2 Use cases that cause problems if Alice is only one able to send the first data message
Created by: cobratbq
As follow up to https://github.com/otrv4/otrv4/issues/147, if I understand your explanation correctly, this will cause problems in the following 2 use cases:
A secure conversation is initiated by Alice immediately sending an Identity Message to Bob. (As described in Starting a conversation interactively.) In this case Alice is the one that is initiating, and sending the Identity message. Hence she ends up waiting for Bob's first message. Bob however, may not be aware that a secure session is being set-up (if this happens in the background, depending on IM client behavior) or is not available/aware that he needs to send the first message. Therefore, Alice has no way to initialize the Double Ratchet and cannot send a message.
Alice sends a whitespace tag or query message and is received by multiple clients of Bob, that respond. Each follows the Interactive DAKE protocol and all end up in an
ENCRYPTED_MESSAGESstate without Double Ratchet being initiatlized. Alice will pick only one instance to chat with, that is the only one initialized. All other instances of Bob are stuck in limbo as a) Initialization of Double Ratchet does not complete, and b) Bob is not expected to send new query messages as he (and also Alice) is already in
I wonder if there should be a mandatory first data message such that we can ensure initializion fully completes for both parties. Alternatively, I can be completely wrong. I did not find any information explaining how these issues are mitigated though. Granted, I don't know the spec by heart.