Live data from Hacker News

Adam Langley's Pond: Secure Async Messaging

pond.imperialviolet.org

11–20 of 43 posts

Re: Adam Langley's Pond: Secure Async Messaging

#11
> For secure, synchronous communication we have OTR and, when run over Tor, this is pretty good. But while we have secure asynchronous messaging in the form of PGP email, it's not forward secure and it gratuitously leaks traffic information.

This is probably a stupid question, but what exactly is the distinction here? Why can't we just think of the "asynchronous messaging" email-equivalent as long, drawn-out synchronous OTR communication?

Re: Adam Langley's Pond: Secure Async Messaging

#12

(Or, how to better organise a discreet relationship with the Director of the CIA.) from https://github.com/agl/pond (the source) is a good elevator pitch, for people (like me) who are taking their time getting what this is. also, is code like this https://github.com/agl/pond/blob/master/server/server.go#L15... just extreme defensive programming? or is there some other reason for the check (eg is not everything locked…

> also, is code like this https://github.com/agl/pond/blob/master/server/server.go#L15... just extreme defensive programming? or is there some other reason for the check (eg is not everything locked)?

That's checking for integer overflow - an often-overlooked source of many security vulnerabilities.

That's a signed integer though, and I don't know if signed integer overflow has defined behavior in Go. In C that would be undefined behavior, allowing the compiler to do potentially nutty things, so you would want to do the overflow check before the increment. (Edit: considering who the author of this code is, I would assume that Go has sane defined behavior on signed integer overflow ;-)

Re: Adam Langley's Pond: Secure Async Messaging

#13
I don't know about you people but I can't access this site in latest firefox:

  Secure Connection Failed

          An error occurred during a connection to pond.imperialviolet.org.

  Peer attempted old style (potentially vulnerable) handshake.

  (Error code: ssl_error_unsafe_negotiation)

  The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
  Please contact the website owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site.

Re: Adam Langley's Pond: Secure Async Messaging

#14
post #12

(Or, how to better organise a discreet relationship with the Director of the CIA.) from https://github.com/agl/pond (the source) is a good elevator pitch, for people (like me) who are taking their time getting what this is. also, is code like this https://github.com/agl/pond/blob/master/server/server.go#L15... just extreme defensive programming? or is there some other reason for the check (eg is not everything locked…

> also, is code like this https://github.com/agl/pond/blob/master/server/server.go#L15... just extreme defensive programming? or is there some other reason for the check (eg is not everything locked)? That's checking for integer overflow - an often-overlooked source of many security vulnerabilities. That's a signed integer though, and I don't know if signed integer overflow has defined behavior in Go. In C that would…

From the Go language spec:

"For signed integers, the operations +, -, *, and

  func main() {
    var foo int8 = 127
    fmt.Println(foo + 1)
  }
prints -128

Re: Adam Langley's Pond: Secure Async Messaging

#15
post #12

Earlier quoted context omitted.

> also, is code like this https://github.com/agl/pond/blob/master/server/server.go#L15... just extreme defensive programming? or is there some other reason for the check (eg is not everything locked)? That's checking for integer overflow - an often-overlooked source of many security vulnerabilities. That's a signed integer though, and I don't know if signed integer overflow has defined behavior in Go. In C that would…

From the Go language spec: "For signed integers, the operations +, -, *, and func main() { var foo int8 = 127 fmt.Println(foo + 1) } prints -128

Cool, thanks for the info!

Looking at the spec, I see that signed integers are elsewhere defined to be represented using 2's complement, so this is completely kosher.

Re: Adam Langley's Pond: Secure Async Messaging

#16

> For secure, synchronous communication we have OTR and, when run over Tor, this is pretty good. But while we have secure asynchronous messaging in the form of PGP email, it's not forward secure and it gratuitously leaks traffic information. This is probably a stupid question, but what exactly is the distinction here? Why can't we just think of the "asynchronous messaging" email-equivalent as long, drawn-out synchron…

Can you send a message to someone who's currently offline using OTR? It seems to use diffie helman, so I'd expect not.

Re: Adam Langley's Pond: Secure Async Messaging

#17
post #13

I don't know about you people but I can't access this site in latest firefox: Secure Connection Failed An error occurred during a connection to pond.imperialviolet.org. Peer attempted old style (potentially vulnerable) handshake. (Error code: ssl_error_unsafe_negotiation) The page you are trying to view cannot be shown because the authenticity of the received data could not be verified. Please contact the website own…

This is kind of ironic considering it's Adam Langley's website, but it appears his server is not indicating that it supports secure renegotiation, and apparently in the latest Firefox that's grounds to refuse a connection[1]. See:

https://www.ssllabs.com/ssltest/analyze.html?d=pond.imperial...

https://wiki.mozilla.org/Security:Renegotiation

https://community.qualys.com/blogs/securitylabs/2010/10/06/d...

If you set security.ssl.require_safe_negotiation to false in about:config you should be able to establish a connection.

[1] Edit: actually it's not; the parent poster had tweaked settings in about:config ;-)

Re: Adam Langley's Pond: Secure Async Messaging

#18
post #17
post #13

I don't know about you people but I can't access this site in latest firefox: Secure Connection Failed An error occurred during a connection to pond.imperialviolet.org. Peer attempted old style (potentially vulnerable) handshake. (Error code: ssl_error_unsafe_negotiation) The page you are trying to view cannot be shown because the authenticity of the received data could not be verified. Please contact the website own…

This is kind of ironic considering it's Adam Langley's website, but it appears his server is not indicating that it supports secure renegotiation, and apparently in the latest Firefox that's grounds to refuse a connection[1]. See: https://www.ssllabs.com/ssltest/analyze.html?d=pond.imperial... https://wiki.mozilla.org/Security:Renegotiation https://community.qualys.com/blogs/securitylabs/2010/10/06/d... If you set se…

It seems to be that. I had initializaed a new profile in firefox and played with some options in about:config and somehow the option security.ssl.require_safe_negotiation was set to true.

All this week this was the first website to fail because of that.

It works with it set to false.

Re: Adam Langley's Pond: Secure Async Messaging

#19
post #17
post #13

I don't know about you people but I can't access this site in latest firefox: Secure Connection Failed An error occurred during a connection to pond.imperialviolet.org. Peer attempted old style (potentially vulnerable) handshake. (Error code: ssl_error_unsafe_negotiation) The page you are trying to view cannot be shown because the authenticity of the received data could not be verified. Please contact the website own…

This is kind of ironic considering it's Adam Langley's website, but it appears his server is not indicating that it supports secure renegotiation, and apparently in the latest Firefox that's grounds to refuse a connection[1]. See: https://www.ssllabs.com/ssltest/analyze.html?d=pond.imperial... https://wiki.mozilla.org/Security:Renegotiation https://community.qualys.com/blogs/securitylabs/2010/10/06/d... If you set se…

Good to know. I knew that I needed to do it, but I'll be sure to add support for this prior to Go 1.2.

(The TLS stack doesn't support renegotiation at all, so it's not vulnerable, but a client can't know that unless it echos the extension in question.)

Re: Adam Langley's Pond: Secure Async Messaging

#20
post #19
post #17

Earlier quoted context omitted.

This is kind of ironic considering it's Adam Langley's website, but it appears his server is not indicating that it supports secure renegotiation, and apparently in the latest Firefox that's grounds to refuse a connection[1]. See: https://www.ssllabs.com/ssltest/analyze.html?d=pond.imperial... https://wiki.mozilla.org/Security:Renegotiation https://community.qualys.com/blogs/securitylabs/2010/10/06/d... If you set se…

Good to know. I knew that I needed to do it, but I'll be sure to add support for this prior to Go 1.2. (The TLS stack doesn't support renegotiation at all, so it's not vulnerable, but a client can't know that unless it echos the extension in question.)

Ah, you're using the Go TLS package? That makes sense ;-).

As it turns out the latest version of Firefox still connects to servers which don't indicate secure renegotiation; the parent poster caused the problem by mucking around with the TLS settings in about:config.

Post reply on HN