Updated Whisper Push Notifications (markdown)

Victor Farazdagi 2017-04-13 08:31:33 +03:00
parent 78ddd0a99e
commit e715cd9846
1 changed files with 6 additions and 3 deletions

@ -18,9 +18,12 @@ The crux here is how to allow `DeviceB` to trigger notifications on `DeviceA`, a
- It is important to understand that notification request messages go *along* the normal communication i.e.
- on `DeviceA` you send encrypted message to `DeviceB` (so, only `DeviceB` can open envelope)
- once done, you need to send a broadcast message encrypting it with `Chat SymKey`
- some node over there, will be able to decrypt your broadcast (the only one that has SymKey)
- once decrypted, wnode will go over list of device ids (that were previously registered with given Chat SymKey) and send notifications requests to FCM on behalf of them to them (only 1 request for one-on-one chats, `n-1` requests for group of `n` chats - that's we do not notify ourselves)
- So, messages are never exposed, and they are routed in parallel. Notifications are also encrypted (by Chat SymKey), so are not exposed to eavesdropper. This means we are not compromising on darkness. What gets exposed, however? Well, by registering device id's with a given chat session we expose it to `wnode`.
- some node over there, will be able to decrypt your broadcast (the only one that has `Chat SymKey`)
- once decrypted, wnode will go over list of device IDs previously registered for this Chat, and send notifications requests to FCM using those IDs (only 1 request for one-on-one chats, `n-1` requests for group of `n` chats - that's we do not notify ourselves)
- So, messages are never exposed, and they are routed in parallel. Notifications are also encrypted (by Chat SymKey), so are not exposed to eavesdropper. This means we are not compromising on darkness. The following info gets exposed though:
- by registering device ID with a given chat session we expose it to `wnode`
- we expose our PubKeys (wnodes need message to be signed, so that you PubKey can be filtered out, and notification by you towards yourself is avoided)
- we may expose some critical information in body of notification message (highly not advised!).
# Communication Protocol