Browse Source

move key negotiation to common section, define ecdhe

main
John-Mark Gurney 2 years ago
parent
commit
f5d3142efb
1 changed files with 11 additions and 8 deletions
  1. +11
    -8
      PROTOCOL.md

+ 11
- 8
PROTOCOL.md View File

@@ -22,7 +22,16 @@ Key Negotiation
Where type is to be:
shared - shared secret
ecdh - Results of an ECDH exchange, key = K || K_A || K_B
ecdhe - Results of an ECDHE exchange, key = TBD
ecdhe - Ephemeral keys + static keys for PFS

In order to handle a reset and prevent a replay attack, an existing
session, if any is maintained till the completion of a reset request
aka new key negotiation completes. Only after that, does the old
connection key get removed. This does mean that after a reset request,
it is required that both sides attempt to decode each packet w/ both
states. This is safe as it is assumed that the initiator will not
initiate a new key negotiation unless it wants it's previous session
to be removed.

### shared

@@ -77,13 +86,7 @@ It seems odd to respond to the confirm message, BUT, as using strobe
requires explicit hand off (similar to a token), in order for the
initiator to send any commands it needs to be "passed back".

The new key/session does not become active till this point.

In order to handle a reset and prevent a replay attack, the existing
session, if any is maintained till the completion of a reset request.
Only after that, does the old connection key get removed. This does
mean that after a reset request, it is required that both sides attempt
to decode each packet w/ both states.
At this point, the new key/session becomes active.

Command Phase
-------------


Loading…
Cancel
Save