4 ms·
instead, programmers are given a fips-compliant "black box" drop-in openssl replacement which they're not expected to question, right? :)
by f2f 10y ago
instead, programmers are given a fips-compliant "black box" drop-in openssl replacement which they're not expected to question, right? :)
- smegel 10y agoIf by "question" you mean an average web scripter with a community college degree in "IT" deciding what elliptic curve to use in conjunction with what cipher suite and protocol...then maybe the answer is yes?
- tptacek 10y agoAre you at all familiar with Go's TLS and crypto libraries? Because, by design, unsafe and exotic curve choices aren't in the standard library. Here's the entire set of curves exposed in 1.7 to Go's TLS: type CurveID uint16 const ( CurveP256 CurveID = 23 CurveP384 CurveID = 24 CurveP521 CurveID = 25 )
- smegel 10y agoSTOP SAYING CURVE! I JUST WANT TO WRITE A WEB APP!
- tptacek 10y ago(a) No. (b) You can use asterisks to set off emphasized text. The guidelines ask you not to use all-caps. (c) You can ignore all these recommendations and write a Go web app by doing what most people do, and put nginx in front of your app server.
- smegel 10y agoI wasn't emphasising, I was quoting a hypothetical developer yelling in frustration because he just wants to write a safe web app and people keep talking about curves. All-caps is the correct markup style for yelling.
- tptacek 10y agoAgain, the guidelines ask you not to do that at all, so regardless of the intention, please don't. Your hypothetical developer has 3 options: (1) Accept the Golang defaults. They might be exposed to one more in a very long series of possible compute DOS vectors, due to the fact that curves other than P-256 aren't assembly optimized in Go. (2) Do what most prod networks do and run the Go app server behind an nginx reverse proxy. This is probably the right architecture regardless. (3) Change the SSL configuration to allow only P-246 and Curve25519, like the article suggests. Option (1) with respect to curves is just fine for virtually everybody. There's really no issue here.