Share
Embed
WebRTC + Persona
Authenticating WebRTC with Mozilla Persona, I presented this talk as an overview of work I completed during my internship at Mozilla during in the summer of 2013.
Ryan Seys
August 28, 2013
Transcript
106 slides
-
RYAN (THAT’S ME!) LOGIN.PERSONA.ORG EXAMPLE.COM LOL OK YO, PERSONA.ORG, CAN
YOU VERIFY THIS GUY IS [email protected] -
RYAN (THAT’S ME!) LOGIN.PERSONA.ORG EXAMPLE.COM LOL OK HEY, PROVE YOU
ARE [email protected] WHAT IS HIS FAVOURITE COLOUR? YO, PERSONA.ORG, CAN YOU VERIFY THIS GUY IS [email protected] -
RYAN (THAT’S ME!) HERE’S MY ANSWER FOR PROOF LOGIN.PERSONA.ORG EXAMPLE.COM
LOL OK HEY, PROVE YOU ARE [email protected] WHAT IS HIS FAVOURITE COLOUR? ORANGE! YO, PERSONA.ORG, CAN YOU VERIFY THIS GUY IS [email protected] -
RYAN (THAT’S ME!) HERE’S MY ANSWER FOR PROOF LOGIN.PERSONA.ORG EXAMPLE.COM
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE LOL OK HEY, PROVE YOU ARE [email protected] WHAT IS HIS FAVOURITE COLOUR? ORANGE! YO EXAMPLE.COM, HERE’S PROOF YO, PERSONA.ORG, CAN YOU VERIFY THIS GUY IS [email protected] -
RYAN (THAT’S ME!) HERE’S MY ANSWER FOR PROOF LOGIN.PERSONA.ORG EXAMPLE.COM
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE LOL OK HEY, PROVE YOU ARE [email protected] WHAT IS HIS FAVOURITE COLOUR? ORANGE! YO EXAMPLE.COM, HERE’S PROOF ASSERTION = PROOF OF IDENTITY YO, PERSONA.ORG, CAN YOU VERIFY THIS GUY IS [email protected] -
EXAMPLE.COM EXAMPLES: VIDYO, SKYPE, GOOGLE HANGOUTS, FACETIME TRADITIONAL VIDEO CALLS
YOUR DATA YOUR FRIEND’S DATA ALICE BOB -
EXAMPLE.COM EXAMPLES: VIDYO, SKYPE, GOOGLE HANGOUTS, FACETIME TRADITIONAL VIDEO CALLS
ALL THE DATA BELONG TO US! NSA YOUR DATA YOUR FRIEND’S DATA ??? :( ALICE BOB -
The interwebz ALL YOUR VIDEO/ AUDIO DATA! (ARE BELONG TO
YOU) WEBRTC IT IS DIFFERENT ALICE BOB -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
TELLS BOB HOW TO TALK DIRECTLY TO ALICE = CREATE_OFFER() ==> OFFER TO BOB -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = CREATE_OFFER() ==> OFFER TO BOB -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
OFFER TO BOB OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = CREATE_OFFER() ==> OFFER TO BOB -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
OFFER TO BOB OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = CREATE_OFFER() ==> OFFER TO BOB CREATE_ANSWER(OFFER) ==> ANSWE R TO -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
OFFER TO BOB OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = TELLS ALICE HOW TO TALK TO BOB = ANSWER TO ALICE CREATE_OFFER() ==> OFFER TO BOB CREATE_ANSWER(OFFER) ==> ANSWE R TO -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
OFFER TO BOB ANSWER TO ALICE OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = TELLS ALICE HOW TO TALK TO BOB = ANSWER TO ALICE CREATE_OFFER() ==> OFFER TO BOB CREATE_ANSWER(OFFER) ==> ANSWE R TO -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
ANSWER TO ALICE OFFER TO BOB ANSWER TO ALICE OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = TELLS ALICE HOW TO TALK TO BOB = ANSWER TO ALICE CREATE_OFFER() ==> OFFER TO BOB CREATE_ANSWER(OFFER) ==> ANSWE R TO -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
ANSWER TO ALICE OFFER TO BOB ANSWER TO ALICE OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = TELLS ALICE HOW TO TALK TO BOB = ANSWER TO ALICE + BOB & ALICE TALK DIRECTLY TO EACH OTHER = CREATE_OFFER() ==> OFFER TO BOB CREATE_ANSWER(OFFER) ==> ANSWE R TO -
MAKING A WEBRTC CALL BOB ALICE EXAMPLE.COM OFFER TO BOB
ANSWER TO ALICE OFFER TO BOB ANSWER TO ALICE ALL VIDEO & AUDIO SUPER SECURE CHANNEL OFFER TO BOB TELLS BOB HOW TO TALK DIRECTLY TO ALICE = TELLS ALICE HOW TO TALK TO BOB = ANSWER TO ALICE + BOB & ALICE TALK DIRECTLY TO EACH OTHER = CREATE_OFFER() ==> OFFER TO BOB CREATE_ANSWER(OFFER) ==> ANSWE R TO -
EVIL-EXAMPLE.COM ALICE BOB WHAT’S WRONG WITH THAT? CREEPY CAROL! THAT’S
WHAT! CREATE_OFFER() -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() CREATE_OFFER() -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() CREATE_OFFER() EVIL OFFER TO BOB -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB ANSWER TO CAROL -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB ANSWER TO CAROL -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() CREATE_ANSWER(OFFER) CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB ANSWER TO CAROL -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() EVIL ANSWER TO ALICE CREATE_ANSWER(OFFER) CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB ANSWER TO CAROL -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() EVIL ANSWER TO ALICE CREATE_ANSWER(OFFER) ALL TH E DATA ALL THE DATA CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB ANSWER TO CAROL -
EVIL-EXAMPLE.COM OFFER TO BOB ALICE BOB WHAT’S WRONG WITH THAT?
CREEPY CAROL! THAT’S WHAT! CREATE_OFFER() EVIL ANSWER TO ALICE CREATE_ANSWER(OFFER) ALL TH E DATA ALL THE DATA NO DATA HERE!! :( CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) EVIL OFFER TO BOB ANSWER TO CAROL -
OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET ANSWER
TO ALICE IPADDR: 321:654.87.09 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AL:SO:AW:SO:ME OFFERS & ANSWERS “HERE IS HOW YOU CAN TALK DIRECTLY TO ME” -
OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET ANSWER
TO ALICE IPADDR: 321:654.87.09 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AL:SO:AW:SO:ME FINGERPRINTS ARE UNIQUE TO THE USER THAT CREATED THE OFFER OR ANSWER UNIQUE! UNIQUE! OFFERS & ANSWERS “HERE IS HOW YOU CAN TALK DIRECTLY TO ME” -
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE REMEMBER THIS? OFFER
TO BOB ANSWER TO ALICE AND THESE BAD BOYS? + ( ) OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET ASSERTION: PROOF OF IDENTITY -
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE REMEMBER THIS? OFFER
TO BOB ANSWER TO ALICE AND THESE BAD BOYS? + ( ) OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET + ASSERTION: PROOF OF IDENTITY -
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE REMEMBER THIS? OFFER
TO BOB ANSWER TO ALICE AND THESE BAD BOYS? + ( ) *SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET + ASSERTION: PROOF OF IDENTITY -
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE REMEMBER THIS? OFFER
TO BOB ANSWER TO ALICE AND THESE BAD BOYS? + ( ) *SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET + ASSERTION: PROOF OF IDENTITY -
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE REMEMBER THIS? OFFER
TO BOB ANSWER TO ALICE AND THESE BAD BOYS? + ( ) *SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE NOT A REAL WEBSITE! BROWSER HAS TO MAKE IT OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET + ASSERTION: PROOF OF IDENTITY -
*ASSERTION* EMAIL: [email protected] ORIGIN: EXAMPLE.COM CRYPTOSTUFF: SUPERCRYPTOSAUCE REMEMBER THIS? OFFER
TO BOB ANSWER TO ALICE AND THESE BAD BOYS? + ( ) *SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE NOT A REAL WEBSITE! BROWSER HAS TO MAKE IT OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET *SUPER ASSERTION* TO ADD: + ASSERTION: PROOF OF IDENTITY *SUPER -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
BROWSER HOSTS INVISIBLE SANDBOX TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: GET ASSERTION WITH: AUDIENCE: RTCWEB://... FINGERPRINT: AW:ES:UM IFRAME.SEND( ) /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: GET ASSERTION WITH: AUDIENCE: RTCWEB://... FINGERPRINT: AW:ES:UM /COMMUNICATION_IFRAME IFRAME.SEND( ) /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: GET ASSERTION WITH: AUDIENCE: RTCWEB://... FINGERPRINT: AW:ES:UM /COMMUNICATION_IFRAME IFRAME.SEND( ) ARE YO U SIGN ED IN ? /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: GET ASSERTION WITH: AUDIENCE: RTCWEB://... FINGERPRINT: AW:ES:UM /COMMUNICATION_IFRAME IFRAME.SEND( ) ARE YO U SIGN ED IN ? YEP! W ITH ALICE@ EXAM PLE.CO M /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: GET ASSERTION WITH: AUDIENCE: RTCWEB://... FINGERPRINT: AW:ES:UM /COMMUNICATION_IFRAME IFRAME.SEND( ) ARE YO U SIGN ED IN ? YEP! W ITH ALICE@ EXAM PLE.CO M *SUPER ASSERTION* FINGERPRINT: AW:ES:UM /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO -
PERSONA.ORG CREATE_OFFER() ==> OFFER TO BOB FINGERPRINT: AW:ES:UM ALICE SANDBOX
/.WELL-KNOWN/IDP- PROXY/BROWSERID SERVIN’ UP BROWSER HOSTS INVISIBLE SANDBOX <IFRAME SRC={ } > IFRAME.DISPATCHEVENT( ) IFRAME.ADDEVENTLISTENER( ) SEND: RECEIVE: GET ASSERTION WITH: AUDIENCE: RTCWEB://... FINGERPRINT: AW:ES:UM /COMMUNICATION_IFRAME IFRAME.SEND( ) ARE YO U SIGN ED IN ? YEP! W ITH ALICE@ EXAM PLE.CO M *SUPER ASSERTION* FINGERPRINT: AW:ES:UM /.WELL-KNOWN/IDP-PROXY/BROWSERID addEventListener(‘rtcmessage’, function(e) { var message = e.data; if(message.type === ‘SIGN’) { postMessage(getSuperAssertion()); } else if(message.type === ‘VERIFY’) { postMessage(verifySuperAssertion()); } }, false); TECHNICAL MUMBO JUMBO *SUPER ASSERTION* FINGERPRINT: AW:ES:UM -
WHAT?? LOL OK YO, PERSONA! MAKE SUPER ASSERTION FOR: OFFER
TO BOB ALICE PERSONA -
WHAT?? LOL OK YO, PERSONA! MAKE SUPER ASSERTION FOR: OFFER
TO BOB ALICE HERE YA GO *SUPER ASSERTION* PERSONA -
WHAT?? LOL OK YO, PERSONA! MAKE SUPER ASSERTION FOR: OFFER
TO BOB ALICE HERE YA GO *SUPER ASSERTION* PERSONA CREEPY CAROL CAN’T DO THIS BECAUSE SHE ISN’T LOGGED IN AS ALICE -
WHAT?? LOL OK YO, PERSONA! MAKE SUPER ASSERTION FOR: OFFER
TO BOB ALICE HERE YA GO *SUPER ASSERTION* PERSONA CREEPY CAROL CAN’T DO THIS BECAUSE SHE ISN’T LOGGED IN AS ALICE WEBSITES CAN’T DO THIS BECAUSE THEY CANNOT SOURCE THE IFRAME DUE TO SAME-SITE ORIGIN POLICY -
*SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM
CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE SO WE HAVE ONE OF THESE GUYS... OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET ...AND ONE OF THESE -
*SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM
CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE SO WE HAVE ONE OF THESE GUYS... OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET NOW WHAT? ...AND ONE OF THESE -
*SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM
CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE SO WE HAVE ONE OF THESE GUYS... OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET *SUPER ASSERTION* PUT IT IN THE OFFER!! NOW WHAT? ...AND ONE OF THESE IDENTITY: -
*SUPER ASSERTION* FINGERPRINT: AW:SO:ME:SE:CR:ET EMAIL: [email protected] ORIGIN: RTCWEB://PEERCONNECTION AUDIENCE: EXAMPLE.COM
CRYPTOSTUFF: NEWSUPERCRYPTOSAUCE SO WE HAVE ONE OF THESE GUYS... OFFER TO BOB IPADDR: 123.456.78.90 CODEC: BLAHNOTIMPORTANT FINGERPRINT: AW:SO:ME:SE:CR:ET *SUPER ASSERTION* PUT IT IN THE OFFER!! NOW WHAT? ...AND ONE OF THESE IDENTITY: *SUPER OFFER TO BOB!* *SUPER ANSWER TO ALICE!* ...AND BOB CAN MAKE SUPER ANSWERS TOO -
BOB ALICE EXAMPLE.COM PERSONA.ORG *SUPER* OFFER TO BOB CREATE_OFFER() ==>
*SUPER* OFFER TO BOB -
BOB ALICE EXAMPLE.COM PERSONA.ORG *SUPER* OFFER TO BOB *SUPER* OFFER
TO BOB CREATE_OFFER() ==> *SUPER* OFFER TO BOB -
BOB ALICE EXAMPLE.COM PERSONA.ORG *SUPER* OFFER TO BOB *SUPER* OFFER
TO BOB CREATE_OFFER() ==> *SUPER* OFFER TO BOB CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE -
BOB ALICE EXAMPLE.COM PERSONA.ORG *SUPER* OFFER TO BOB *SUPER* ANSWER
TO ALICE *SUPER* OFFER TO BOB CREATE_OFFER() ==> *SUPER* OFFER TO BOB CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE -
BOB ALICE EXAMPLE.COM PERSONA.ORG *SUPER* OFFER TO BOB *SUPER* ANSWER
TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB CREATE_OFFER() ==> *SUPER* OFFER TO BOB CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE -
BOB ALICE EXAMPLE.COM PERSONA.ORG VERIFY PLZ *SUPER* OFFER TO BOB
*SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB CREATE_OFFER() ==> *SUPER* OFFER TO BOB CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE -
BOB ALICE EXAMPLE.COM PERSONA.ORG VERIFY PLZ VERIFY PLZ *SUPER* OFFER
TO BOB *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB *SUPER* OFFER TO BOB CREATE_OFFER() ==> *SUPER* OFFER TO BOB CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE -
BOB ALICE EXAMPLE.COM PERSONA.ORG VERIFY PLZ VERIFY PLZ *SUPER* OFFER
TO BOB *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB *SUPER* OFFER TO BOB VERIFIED: [email protected] CREATE_OFFER() ==> *SUPER* OFFER TO BOB VERIFIED: [email protected] CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE -
BOB ALICE EXAMPLE.COM PERSONA.ORG VERIFY PLZ VERIFY PLZ *SUPER* OFFER
TO BOB *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB *SUPER* OFFER TO BOB VERIFIED: [email protected] VERIFIED: [email protected] CREATE_OFFER() ==> *SUPER* OFFER TO BOB VERIFIED: [email protected] CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE VERIFIED: [email protected] -
BOB ALICE EXAMPLE.COM PERSONA.ORG VERIFY PLZ VERIFY PLZ *SUPER* OFFER
TO BOB *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB *SUPER* OFFER TO BOB VERIFIED: [email protected] VERIFIED: [email protected] SUPER POPUP! CREATE_OFFER() ==> *SUPER* OFFER TO BOB VERIFIED: [email protected] CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE VERIFIED: [email protected] -
BOB ALICE EXAMPLE.COM ALL VIDEO & AUDIO SUPER SECURE CHANNEL
PERSONA.ORG VERIFY PLZ VERIFY PLZ *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* ANSWER TO ALICE *SUPER* OFFER TO BOB *SUPER* OFFER TO BOB VERIFIED: [email protected] VERIFIED: [email protected] SUPER POPUP! CREATE_OFFER() ==> *SUPER* OFFER TO BOB VERIFIED: [email protected] CREATE_ANSWER(OFFER) ==> *SUPER* ANSWER TO ALICE VERIFIED: [email protected] -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB ALICE BOB CREEPY CAROL PERSONA.ORG
PERSONA.ORG CREATE_OFFER() -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB ALICE BOB CREEPY CAROL PERSONA.ORG
PERSONA.ORG CREATE_OFFER() -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB ALICE BOB CREATE_OFFER() EVIL OFFER
TO BOB CREEPY CAROL PERSONA.ORG PERSONA.ORG CREATE_OFFER() -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB ALICE BOB CREATE_OFFER() EVIL OFFER
TO BOB CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB PERSONA.ORG CREATE_OFFER() -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB ALICE BOB CREATE_OFFER() EVIL OFFER
TO BOB CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB PERSONA.ORG CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL OFFER TO BOB CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB PERSONA.ORG CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL OFFER TO BOB CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB PERSONA.ORG CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL ANSWER TO ALICE EVIL OFFER TO BOB CREATE_ANSWER(OFFER) CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB PERSONA.ORG CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL ANSWER TO ALICE EVIL OFFER TO BOB CREATE_ANSWER(OFFER) CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB PERSONA.ORG VERIFY PLZ EVIL ANSWER TO ALICE CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL ANSWER TO ALICE EVIL OFFER TO BOB CREATE_ANSWER(OFFER) CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB VERIFICATION FAILED! PERSONA.ORG VERIFY PLZ VERIFICATION FAILED! EVIL ANSWER TO ALICE CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL ANSWER TO ALICE EVIL OFFER TO BOB CREATE_ANSWER(OFFER) CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB VERIFICATION FAILED! PERSONA.ORG VERIFY PLZ VERIFICATION FAILED! EVIL ANSWER TO ALICE CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) WARNING: NOT VERIFIED!!! WARNING: NOT VERIFIED!!! -
EVIL-EXAMPLE.COM *SUPER* OFFER TO BOB *SUPER* ANSWER TO ALICE ALICE
BOB CREATE_OFFER() EVIL ANSWER TO ALICE EVIL OFFER TO BOB CREATE_ANSWER(OFFER) NO DATA HERE!! :( CREEPY CAROL PERSONA.ORG VERIFY PLZ EVIL OFFER TO BOB VERIFICATION FAILED! PERSONA.ORG VERIFY PLZ VERIFICATION FAILED! EVIL ANSWER TO ALICE CREATE_OFFER() CREATE_ANSWER(EVIL_OFFER) WARNING: NOT VERIFIED!!! WARNING: NOT VERIFIED!!! -
I NEED THIS RIGHT NOW! TIN CAN + TIN CAN
AUTH ADD-ON -
NOTES: NO HTTPS YET... FAIL! WEBRTC.PERSONATEST.ORG NOT LOGIN.PERSONA.ORG NEED TIN
CAN AUTH ADD-ON INSTALLED TO GET SUPER OFFERS/ANSWERS OR BUILD PATCHES 884573 & 878941 TINCAN: HTTP://TINCAN.IM https://addons.mozilla.org/en-US/firefox/addon/tin-can-auth/ TIN-CAN-AUTH ADDON: