git ssb

3+

cel / ssb-server-wiki



Commit 86f2caf244730fcefb1d6f2d7290cae5cae25dcc

Updated a secure secure channel (markdown)

Dominic Tarr committed on 5/12/2015, 5:59:27 AM
Parent: e41b30a7fc217739155b6f841ef32db85f10fb37

Files changed

a-secure-secure-channel.mdchanged
a-secure-secure-channel.mdView
@@ -1,7 +1,7 @@
11 Alice wants to connect to Bob and communicate privately. Also, we want to realize _all_ the [desireable properties for a secure channel](https://github.com/ssbc/scuttlebot/wiki/desirable-properties-for-a-secure-channel)
22
3-## version 1
3+## version 1 (flawed)
44
55 this version actually fails to provide all the properties desired (or rather, while writing this I realized there was another weakness that could be supported [#16](https://github.com/ssbc/scuttlebot/wiki/desirable-properties-for-a-secure-channel#16-mitmwrong-number-cannot-learn-or-confirm-keys))
66
77 > Alice generates DH key, initiates duplex connection (i.e. tcp) to Bob.
@@ -50,9 +50,9 @@
5050 This would make a compromise of his private key a decidedly schizophrenic experience for Bob! Although to other parties, Bob suddenly acting weird would be simple enough to diagnose - Bob has been hacked - but Bob may instead experience _everyone he knows_ suddenly going schizophrenic. This could potentially be more destructive than merely impersonating Bob. Hopefully loosing control of one's private keys is an extremely unlikely event, but the antics of bitcoin has certainly shown this is possible via a variety of avenues if attackers are sufficiently motivated. If it's reasonable to design a protocol to be forward secure (not leak information if keys are compromised) then it's reasonable to make other aspects of the protocol fail safely in the case of key compromise.
5151
5252 Therefore, my conclusion is that `crypto_box` is not suitable as a _user authentication primitive_, and signatures should be used instead (though, the signatures may be inside a `crypto_box` for privacy).
5353
54-### protocol
54+### protocol description
5555
5656 Alice: Hi call me Andy
5757 > Alice generates a temporary key, Andy, and sends it to (the server she thinks is) Bob
5858
@@ -109,5 +109,7 @@
109109 ```
110110
111111 Now Alice and Bob are mutually authenticated! Bob knows he's talking to Alice, and Alice knows she is talking to Bob. _as far as I have determined, no weird edge cases_. Of course, if your key is compromised, then someone can impersonate you, this is to be expected, and key revocation should be solved in another part of the cryptosystem.
112112
113+the rest of the session is encrypted with Aaron/Barbara. Even the existence of these keys is a secret from both an eavesdropper or a man in the middle!
114+
113115 This design realizes _all_ the [desirable secure channel properties](https://github.com/ssbc/scuttlebot/wiki/desirable-properties-for-a-secure-channel)

Built with git-ssb-web