agl:
This has previously been a good method for educating people not to use crypto/tls for serious things. Since the whole crypto stack, from ModExp upwards, is basically unreviewed, I want to encourage people to put Go behind OpenSSL or something similar once they get to the point of having client diversity like this.
So I would actually like to not support SSLv2 compat handshakes; not just because it highlights poor clients (OpenSSL fixed this behaviour quite a while ago), but because of that more subtle reason.
ian:
The reason given for not merging my patch is that they don't consider the existing TLS code production ready, not because of any known defects, but because it hasn't received the kind of code review warranted for a cryptographic library.
A more interesting question (and perhaps a bug for this one to depend on) is what level of review WOULD be sufficient for this code to be considered production ready. Identifying that as a need could be the start of a good project for someone, perhaps a summer of code project, or something that could be sponsored by one of the companies out there using Go in production.
Many people have claimed that Go is being used in production and that it is production ready.
According to a some comments in a few unresolved issues, the crypto/tls package is not production ready.
agl:This has previously been a good method for educating people not to use crypto/tls for serious things. Since the whole crypto stack, from ModExp upwards, is basically unreviewed
What is and what isn't considered serious in production? What about financial information?
Hi,to me it's still a sandbox language (python replacement to some degree) because of:
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
On Wed, Sep 25, 2013 at 10:32 AM, Luke Scott <lu...@visionlaunchers.com> wrote:On Tuesday, September 24, 2013 6:53:31 PM UTC-7, Andrew Gerrand wrote:On 25 September 2013 09:10, Luke Scott <lu...@visionlaunchers.com> wrote:
What is and what isn't considered serious in production? What about financial information?
It's really up to the provider of the service in question to make the call. All we can say about crypto/tls is that it hasn't been thoroughly reviewed from a cryptographic standpoint. Whether that suits your use case or not is very much up to you.AndrewSo what you're saying is there might be some risk, and it's mine to take.Would it be possible for a company(s) to sponsor the work for crypto/tls to be more feature-complete / be throughly audited?I don't think anyone would mind if such a sponsor appeared. If nothing else, it's another set of eyes on the code. Eventually, with enough eyes, trust in the code will grow.I take it you have a sponsor in mind? :)- Dave
Many people have claimed that Go is being used in production and that it is production ready. According to a some comments in a few unresolved issues, the crypto/tls package is not production ready. Either this information is out of date, or this fact has not been made apparent (comment in the docs).We've been integrating with some secure API's and one of them in particular requires client certificates and regeneration. I was quite shocked to find out that not only is this not supported, but there is no plans to support it (https://code.google.com/p/go/issues/detail?id=5742).
While digging further I came across this post (http://stackoverflow.com/questions/12642689/does-golang-tls-support-ie8). So users of IE8 cannot connect to a Go https server... great because IE8 is what we have to support at a minimum.
Is this out of date? If not, why has it not received enough attention? Are there any companies out there willing to sponsor it?
On Tuesday, September 24, 2013 1:55:48 PM UTC-4, Luke Scott wrote:Many people have claimed that Go is being used in production and that it is production ready. According to a some comments in a few unresolved issues, the crypto/tls package is not production ready. Either this information is out of date, or this fact has not been made apparent (comment in the docs).We've been integrating with some secure API's and one of them in particular requires client certificates and regeneration. I was quite shocked to find out that not only is this not supported, but there is no plans to support it (https://code.google.com/p/go/issues/detail?id=5742).It is the case the renegotiation is not supported. I think I know what API you're trying to use and the one previous user who contacted me about it was able to get it working with only a small patch. Renegotiation, in general, was a design mistake in TLS but crypto/tls does, of course, try to be useful. If there's a significant need to support this then it is a candidate for inclusion in the standard library, but the standard library doesn't try to be all things to all people. It quite deliberately aims to be simpler at the cost of only supporting the 90% case. If edge cases can be handled with local modifications then that does release the trunk from the burden of maintaining the code.If you choose to pursue using Go for this I can dig up the patch for you if you wish.
While digging further I came across this post (http://stackoverflow.com/questions/12642689/does-golang-tls-support-ie8). So users of IE8 cannot connect to a Go https server... great because IE8 is what we have to support at a minimum.That stack overflow post is suggesting that IE8 is sending an SSLv2 format ClientHello, which is very surprising. I've just tested an IE 8 client on Windows XP and it actually works fine with Go and sends a TLS ClientHello as I would expect. crypto/tls doesn't support SSLv2 format ClientHellos, but nor should you need it to.I was able to get IE 8 to send an SSLv2 format hello by enabling SSLv2 support in the advanced settings, but that doesn't appear to be the default (unless that setting has already been changed on the machine that I'm using), and I'm sure that there are lots of other ways to break things in there too.Is this out of date? If not, why has it not received enough attention? Are there any companies out there willing to sponsor it?Nobody to my knowledge has yet had a major review performed. (Although they may wish to put work into the ModExp functions first to close side-channels.)
On Tuesday, September 24, 2013 1:55:48 PM UTC-4, Luke Scott wrote:It is the case the renegotiation is not supported. I think I know what API you're trying to use and the one previous user who contacted me about it was able to get it working with only a small patch. Renegotiation, in general, was a design mistake in TLS but crypto/tls does, of course, try to be useful. If there's a significant need to support this then it is a candidate for inclusion in the standard library, but the standard library doesn't try to be all things to all people. It quite deliberately aims to be simpler at the cost of only supporting the 90% case. If edge cases can be handled with local modifications then that does release the trunk from the burden of maintaining the code.