Re:Go 1.11.5 and Go 1.10.8 are released
by the_duke on Wednesday January 23, 2019 @06:22PM
(#18984262)
> This DoS vulnerability in the crypto/elliptic implementations of the P-521 and P-384 elliptic curves may let an attacker craft inputs that consume excessive amounts of CPU.
> These inputs might be delivered via TLS handshakes, X.509 certificates, JWT tokens, ECDH shares or ECDSA signatures. In some cases, if an ECDH private key is reused more than once, the attack can also lead to key recovery.
> The issue is CVE-2019-6486 and Go issue golang.org/issue/29903. See the Go issue for more details.
Re:Go 1.11.5 and Go 1.10.8 are released
by lifthrasiir on Wednesday January 23, 2019 @09:14PM
(#18985414)
It is hard to explain what is `beta8` and `curve.P` specifically, but they are arbitrary-precision integers so you can see what went wrong with an appropriate pseudocode:
Essentially we want to compute `(alpha * alpha - beta * 8) % curve.P`, so to say. The modulo is expensive though, so for typical cases we can just repeatedly add `curve.P` to compute the modulo a few times. This is indeed a valid optimization when we are sure of the range of `alpha` and `beta`, but `beta` can be controlled outside. So a very large `beta` from an attacker will cause the while loop run forever---a denial-of-service attack.
Re:Go 1.11.5 and Go 1.10.8 are released
by lifthrasiir on Thursday January 24, 2019 @01:49AM
(#18986518)
I think you are right. Go `big.Mod` should be Euclidean (i.e. `x % y` follows `y`'s sign) so the code is redundant. It doesn't seem to be required to run in constant time (if so we won't have `if` at all), probably the committer wanted a minimal change?
Re:Go 1.11.5 and Go 1.10.8 are released
by inferiorhuman on Thursday January 24, 2019 @02:02AM
(#18986562)
Back in the 70s, Peugeot, Renault, and Volvo collaborated on an engine design (used in the DeLorean among other cars). It's got some utterly bizarre design features but attracted its own relatively dedicated following called… PRVerts.
Re:Go 1.11.5 and Go 1.10.8 are released
by giancarlostoro on Thursday January 24, 2019 @07:57AM
(#18988206)
Dunno, I don't mind being called a Rustacean, though I think Rustafarian is a lot cooler. The Gopher term doesn't bother me either, at least it wasn't "Yo Goats!" or something worse. I also like Pythoneer / Pythonista (don't ask me why I like that one). Not sure what D programmers are called, I guess just D programmers. That or Walter Bright's Heissenbuds? I don't know.
> These inputs might be delivered via TLS handshakes, X.509 certificates, JWT tokens, ECDH shares or ECDSA signatures. In some cases, if an ECDH private key is reused more than once, the attack can also lead to key recovery.
> The issue is CVE-2019-6486 and Go issue golang.org/issue/29903. See the Go issue for more details.
I'm not a "gopher".
Does this label bother anyone else? I love the go programming language but I'm definitely not on board with this.
I happen to be a software developer who found effectiveness and value in Go and will continue to use it as long as it proves effective. That is all.
They are called "Real Programmers", a nickname shared with the Assembly, C, Lisp, Prolog, and Ada programmers.