Loop/Architecture/Fingerprint Validation: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 1: Line 1:
== API Changes ==
=== Joining a Room ===
[[Loop/Architecture/Rooms#Joining a Room]]
[[Loop/Architecture/Rooms#Joining a Room]]


Line 16: Line 20:




=== User Identification in a Room ===
[[Loop/Architecture/Rooms#User Identification in a Room]]
[[Loop/Architecture/Rooms#User Identification in a Room]]


Line 27: Line 32:
* fingerprints: A list of "fingerprint" values associated with all the PeerConnections the client currently has in use. Only included if client included "fingerprint" in features array in "join"
* fingerprints: A list of "fingerprint" values associated with all the PeerConnections the client currently has in use. Only included if client included "fingerprint" in features array in "join"


=== Joining a Room ===
[[Loop/Architecture/Rooms#Joining a Room]]
[[Loop/Architecture/Rooms#Joining a Room]]


Line 40: Line 46:
     "fingerprint": "sha-256 15:E2:AF:50:91:87:FD:54:4C:82:F5:65:46:7A:84:D8:6C:53:00:99:C6:97:4E:64:2A:32:AA:A5:3C:91:E9:51"
     "fingerprint": "sha-256 15:E2:AF:50:91:87:FD:54:4C:82:F5:65:46:7A:84:D8:6C:53:00:99:C6:97:4E:64:2A:32:AA:A5:3C:91:E9:51"
  }
  }
=== Retrieving Room Information ===


[[Loop/Architecture/Rooms#GET_.2Frooms.2F.7Btoken.7D]]
[[Loop/Architecture/Rooms#GET_.2Frooms.2F.7Btoken.7D]]
Line 82: Line 91:
  }
  }


== Proof-of-Concept Shim ==
== Client Behavior ==
Roughly:
* Monkeypatch setLocalDescription. When called:
** POST new fingerprint to the room using "newpc" action
* Monkeypatch setRemoteDescription. When called:
*# Check list of fingerprints published by other person in the room
*# If no match, perform a room GET to refresh information, and compare again
*# If still no match, set a timer for 1 second; on expiry, try one more fetch and compare
*# If still no match, error out the session and log an error to the server
 
 
== Proof-of-Concept Monkeypatch Shim ==


   window._originalRTCPeerConnection = window.mozRTCPeerConnection;
   window._originalRTCPeerConnection = window.mozRTCPeerConnection;
Confirmed users
632

edits

Navigation menu