SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
WebRTC Standards &
Implementation Q&A
Amir	
  Zmora	
  
TheNewDialTone	
  
Dan	
  Burne3	
  
StandardsPlay	
  
Alex	
  Gouaillard	
  
WebRTC	
  by	
  Dr	
  Alex	
  /	
  Citrix	
  
Session sponsored by
WebRTC.ventures	
  is	
  a	
  custom	
  design	
  and	
  development	
  shop	
  dedicated	
  to	
  building	
  WebRTC	
  based	
  applicaFons	
  
for	
  web	
  and	
  mobile.	
  We	
  have	
  built	
  end-­‐to-­‐end	
  broadcast	
  soluFons	
  for	
  events	
  and	
  entertainment	
  clients,	
  
telehealth	
  soluFons	
  for	
  mulFple	
  clients,	
  live	
  support	
  tools,	
  as	
  well	
  as	
  communicaFon	
  tools	
  for	
  a	
  variety	
  of	
  other	
  
applicaFons.	
  	
  WebRTC.ventures	
  is	
  a	
  recognized	
  development	
  partner	
  of	
  TokBox	
  and	
  has	
  also	
  built	
  naFve	
  
WebRTC	
  soluFons	
  	
  
We use CrowdCast….It’s WebRTC
WebRTCStandards.info	
  
About Us
•  Amir Zmora •  Dan Burnett •  Alex Gouaillard
Screen Capture & Screen Sharing with WebRTC
Screen Sharing in WebRTC
•  Is WebRTC plus Screen Capture
•  Screen capture gives you MediaStreamTrack
•  WebRTC lets you send it
•  We will talk about the Screen Capture piece
Security in native apps
•  If you install it, the app has complete access to your device
•  So, choosing not to install is the first level of security
Security in the Web model
•  Visiting a site is the "install"
•  But visiting a site needs to be safe
•  So, the Web uses site origin as security
•  By default, limited access to the device browser runs on
•  Also, page has access to JS it loads but no access to JS from other tabs/windows
Problem - API keys in stupid sites
Screen capture breaks web model
•  Browser controls allow Site A to do a user View-Source on Site B
•  Normally, user can see B's popped up source but A can't read
•  But with screen capture, A can read
Nasty scenario
•  Site A uses WebRTC with user permission to access camera, screen
•  Site A scrapes screen image to see what other tabs/windows user has open in browser
•  Site A tracks user's eyes with camera
•  When user looks away, Site A does view-source on a tab, scrapes the screen, closes
view-source window
WebRTC Screen Capture standard
•  http://w3c.github.io/mediacapture-screen-share/
•  Still very new
navigator.mediaDevices.getDisplayMedia({ video: true })
.then(stream => {
// we have a stream, attach it to a feedback video element
videoElement.srcObject = stream;
}, error => {
console.log("Unable to acquire screen capture", error);
});
Protections in the standard
•  By default no viewing of other tabs or other browser windows, even in other browser apps
(e.g., Chrome app can't see FF browser)
•  Requirement for explicit, elevated permissions in order to view these since one app could
control what is presented on the others
•  In practice,
•  Permissions will probably be a form of whitelist similar to what FF uses today
•  Likely no way for WebRTC apps to get exemptions in advance
Screen Sharing with Chrome
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  GUM	
  JS	
  API	
  
(tab/sandbox)	
  
1.	
  Send	
  request	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  GUM	
  JS	
  API	
  
(tab/sandbox)	
  
2.	
  Check	
  if	
  MST	
  is	
  already	
  available	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  GUM	
  JS	
  API	
  
(tab/sandbox)	
  
Security	
  Manager	
  
(source,	
  origin)	
  
3.	
  Check	
  rights	
  
2.	
  Check	
  if	
  MST	
  is	
  already	
  available	
  -­‐	
  NO	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Audio	
  
Capturer	
  
Video	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
4.	
  Ask	
  Corresponding	
  capturer	
  type	
  to	
  start	
  
capturing	
  
3.	
  Check	
  rights	
  -­‐	
  OK	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Audio	
  
Capturer	
  
Video	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
A	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
4.	
  Ask	
  Corresponding	
  capturer	
  type	
  to	
  create	
  
one	
  -­‐	
  OK	
  
V	
  
5.	
  Store	
  the	
  MST	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Audio	
  
Capturer	
  
Video	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
A	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
V	
  
6.	
  Trigger	
  callback	
  
Keep	
  feeding	
  frames	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Audio	
  
Capturer	
  
Video	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
A	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
V	
  
NOTE	
  1:	
  second	
  call	
  for	
  same	
  device	
  with	
  same	
  constraints	
  will	
  directly	
  return	
  the	
  MST,	
  that	
  allows	
  to	
  share	
  
streams	
  across	
  tabs	
  without	
  blocking	
  
	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Audio	
  
Capturer	
  
Video	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
A	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
V	
  
NOTE	
  2:	
  Recently,	
  a	
  second	
  call	
  for	
  the	
  same	
  device	
  but	
  with	
  different	
  constraints	
  (think	
  simulcast)	
  will	
  indeed	
  
return	
  a	
  different	
  resoluFon.	
  Before	
  it	
  would	
  return	
  the	
  first	
  resoluFon	
  asked.	
  
	
  
Chrome Specific WebRTC Bits
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Audio	
  
Capturer	
  
Video	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
A	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
V	
  
NOTE	
  3:	
  Not	
  only	
  this	
  allow	
  to	
  share	
  cams	
  across	
  processes,	
  it	
  allows	
  for	
  global	
  echo	
  cancellaFon	
  (yes,	
  including	
  
the	
  key	
  strokes).	
  Before	
  tabs	
  could	
  cross	
  feed.	
  
	
  
Chrome Screensharing 2 steps (1)
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Screen/Windows/Tab	
  
Capturer	
  
Security	
  Manager	
  
(source,	
  origin)	
  
Screensharing	
  
(extension)	
  
1	
  
2	
  
3	
  
4	
  
S	
  
5	
  
Chrome Screensharing 2 steps (2)
Media	
  Stream	
  Manager	
  
(singleton@browser)	
  	
  
Screen/Windows/Tab	
  
Capturer	
  
S	
  
GUM	
  JS	
  API	
  
(tab/sandbox)	
  
With	
  ID	
  
Screen Sharing with Firefox
Firefox
•  Whitelisting (wiki.mozilla.org/Screensharing)
•  Manual
•  Hardcoded
•  Extension
Firefox
•  Whitelisting - Manual
•  Manual
•  Hardcoded
•  Extension
Firefox
•  Whitelisting - Manual
•  Manual
•  Hardcoded
•  Extension
Firefox
•  Whitelisting (wiki.mozilla.org/Screensharing)
•  Hardcoded
⇒ open a bug!
⇒ Attack surface?
Firefox•  webex.com,*.webex.com,ciscospark.com,*.ciscospark.com,projectsquared.com,*.projectsquared.com,
•  *.room.co,room.co,
•  beta.talky.io,talky.io,
•  *.clearslide.com,
•  appear.in,*.appear.in,
•  tokbox.com,*.tokbox.com, *.opentok.com,
•  *.sso.francetelecom.fr,*.si.francetelecom.fr,*.sso.infra.ftgroup,*.multimedia-conference.orange-business.com,*.espacecollaboration.orange-business.com,
•  example.com,
•  *.mypurecloud.com,*.mypurecloud.com.au,
•  spreed.me,*.spreed.me,*.spreed.com,
•  air.mozilla.org,
•  *.circuit.com,*.yourcircuit.com,circuit.siemens.com,yourcircuit.siemens.com,circuitsandbox.net,*.unify.com,tandi.circuitsandbox.net,
•  *.ericsson.net,*.cct.ericsson.net,
•  *.conf.meetecho.com,
•  meet.jit.si,*.meet.jit.si,
•  web.stage.speakeasyapp.net,web.speakeasyapp.net,
•  *.hipchat.me,
•  *.beta-wspbx.com,*.wspbx.com,
•  *.unifiedcloudit.com,
•  *.smartboxuc.com,
•  *.smartbox-uc.com,
•  *.panterranetworks.com,
•  pexipdemo.com,
•  *.pexipdemo.com,pex.me,*.pex.me,*.rd.pexip.com,
•  1click.io,*.1click.io,
•  *.fuze.com,*.fuzemeeting.com,
•  *.thinkingphones.com,
•  free.gotomeeting.com,g2m.me,*.g2m.me,gotomeeting.com,*.gotomeeting.com,gotowebinar.com,*.gotowebinar.com,gototraining.com,*.gototraining.com,citrix.com,*.citrix.com,expertcity.com,*.expertcity.com,citrixonline.com,*.citrixonline.com,g2m.me,*.g2m.me,gotomeet.me,*.gotomeet.me,gotomeet.at,*.gotomeet.at
Both Firefox and Chrome
•  FF-Whitelisting – Extension / addOn
•  Cr – Extension
See e.g. here:
Blog - https://tokbox.com/developer/guides/screen-sharing/js/
Code - https://github.com/opentok/screensharing-extensions
?
Thank You
Amir	
  Zmora	
  
TheNewDialTone	
  
Dan	
  Burne3	
  
StandardsPlay	
  
Alex	
  Gouaillard	
  
WebRTC	
  by	
  Dr	
  Alex	
  

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Asterisk and WebRTC - Digium 'Demo & Eggs' Presentation Slides
Asterisk and WebRTC - Digium 'Demo & Eggs' Presentation SlidesAsterisk and WebRTC - Digium 'Demo & Eggs' Presentation Slides
Asterisk and WebRTC - Digium 'Demo & Eggs' Presentation Slides
 
Видео+Конференция 2015: Секреты WebRTC: как вендоры извлекают пользу из проры...
Видео+Конференция 2015: Секреты WebRTC: как вендоры извлекают пользу из проры...Видео+Конференция 2015: Секреты WebRTC: как вендоры извлекают пользу из проры...
Видео+Конференция 2015: Секреты WebRTC: как вендоры извлекают пользу из проры...
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
 
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
 
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?WebRTC, Whats in it for me?
WebRTC, Whats in it for me?
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
Astricon WebRTC Update
Astricon WebRTC UpdateAstricon WebRTC Update
Astricon WebRTC Update
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
 
WebRTC for Billions
WebRTC for BillionsWebRTC for Billions
WebRTC for Billions
 
ClueCon 2016: Should you use WebRTC?
ClueCon 2016: Should you use WebRTC?ClueCon 2016: Should you use WebRTC?
ClueCon 2016: Should you use WebRTC?
 
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeWEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
 
Introduction To Webrtc
Introduction To WebrtcIntroduction To Webrtc
Introduction To Webrtc
 
WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)WebRTC Check-in (from WebRTC Boston 6)
WebRTC Check-in (from WebRTC Boston 6)
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 
The future of WebRTC - Sept 2021
The future of WebRTC - Sept 2021The future of WebRTC - Sept 2021
The future of WebRTC - Sept 2021
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTC
 
What is WebRTC? What can I do with it?
What is WebRTC? What can I do with it?What is WebRTC? What can I do with it?
What is WebRTC? What can I do with it?
 

Similar a WebRTC Live Q&A and Screen Capture session 3

Streaming Video into Second Life
Streaming Video into Second LifeStreaming Video into Second Life
Streaming Video into Second Life
Videoguy
 

Similar a WebRTC Live Q&A and Screen Capture session 3 (20)

WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
 
Accessible Video in The Enterprise
Accessible Video in The Enterprise Accessible Video in The Enterprise
Accessible Video in The Enterprise
 
WebRTC Standards & Implementation Q&A - All about browser interoperability
WebRTC Standards & Implementation Q&A - All about browser interoperabilityWebRTC Standards & Implementation Q&A - All about browser interoperability
WebRTC Standards & Implementation Q&A - All about browser interoperability
 
SkyViewer: An in-browser solution to fast video calling
SkyViewer: An in-browser solution to fast video callingSkyViewer: An in-browser solution to fast video calling
SkyViewer: An in-browser solution to fast video calling
 
Chromecast, CheapCast and TV - DevFest Brussels 2013
Chromecast, CheapCast and TV - DevFest Brussels 2013Chromecast, CheapCast and TV - DevFest Brussels 2013
Chromecast, CheapCast and TV - DevFest Brussels 2013
 
WebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationWebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computation
 
ADD14: ChromeCast and the future of Android TV
ADD14: ChromeCast and the future of Android TVADD14: ChromeCast and the future of Android TV
ADD14: ChromeCast and the future of Android TV
 
Webrtc
WebrtcWebrtc
Webrtc
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
Opera and the Open Web platform
Opera and the Open Web platformOpera and the Open Web platform
Opera and the Open Web platform
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video Tutorial
 
Web rtc standards live session #13 - The Browser-Standards Gap
Web rtc standards live session #13 - The Browser-Standards GapWeb rtc standards live session #13 - The Browser-Standards Gap
Web rtc standards live session #13 - The Browser-Standards Gap
 
Streaming Video into Second Life
Streaming Video into Second LifeStreaming Video into Second Life
Streaming Video into Second Life
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York Times
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York Times
 
Make Browser Extensions Great Again
Make Browser Extensions Great AgainMake Browser Extensions Great Again
Make Browser Extensions Great Again
 
HTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingHTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're going
 
HTML5 Intoduction for Web Developers
HTML5 Intoduction for Web DevelopersHTML5 Intoduction for Web Developers
HTML5 Intoduction for Web Developers
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 

Más de Amir Zmora

Más de Amir Zmora (20)

FlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
FlexiWAN Webinar - The Role of Open Source in Your SD-WAN StrategyFlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
FlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
 
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
 
WebRTC Standards & Implementation Q&A - IP address privacy revisited
WebRTC Standards & Implementation Q&A - IP address privacy revisitedWebRTC Standards & Implementation Q&A - IP address privacy revisited
WebRTC Standards & Implementation Q&A - IP address privacy revisited
 
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meetingWebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
 
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
 
WebRTC Standards & Implementation Q&A - The Future is Now2!
WebRTC Standards & Implementation Q&A - The Future is Now2!WebRTC Standards & Implementation Q&A - The Future is Now2!
WebRTC Standards & Implementation Q&A - The Future is Now2!
 
WebRTC Standards & Implementation Q&A - The Future is Now!
WebRTC Standards & Implementation Q&A - The Future is Now!WebRTC Standards & Implementation Q&A - The Future is Now!
WebRTC Standards & Implementation Q&A - The Future is Now!
 
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
 
WebRTC Standards & Implementation Q&A - WebRTC Constrains
WebRTC Standards & Implementation Q&A - WebRTC ConstrainsWebRTC Standards & Implementation Q&A - WebRTC Constrains
WebRTC Standards & Implementation Q&A - WebRTC Constrains
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
WebRTC Standards & Implementation Q&A - Legacy API Support ChangesWebRTC Standards & Implementation Q&A - Legacy API Support Changes
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
 
WebRTC Webinar & Q&A - Standards Update
WebRTC Webinar & Q&A - Standards UpdateWebRTC Webinar & Q&A - Standards Update
WebRTC Webinar & Q&A - Standards Update
 
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
 
WebRTC Webinar & Q&A - Sending DTMF in WebRTC the standard way
WebRTC Webinar & Q&A -  Sending DTMF in WebRTC the standard wayWebRTC Webinar & Q&A -  Sending DTMF in WebRTC the standard way
WebRTC Webinar & Q&A - Sending DTMF in WebRTC the standard way
 
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream RecordingWebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
 
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTCWebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & ImplementationWebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
 
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge InteroperabilityWebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
 
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

WebRTC Live Q&A and Screen Capture session 3

  • 1. WebRTC Standards & Implementation Q&A Amir  Zmora   TheNewDialTone   Dan  Burne3   StandardsPlay   Alex  Gouaillard   WebRTC  by  Dr  Alex  /  Citrix  
  • 2. Session sponsored by WebRTC.ventures  is  a  custom  design  and  development  shop  dedicated  to  building  WebRTC  based  applicaFons   for  web  and  mobile.  We  have  built  end-­‐to-­‐end  broadcast  soluFons  for  events  and  entertainment  clients,   telehealth  soluFons  for  mulFple  clients,  live  support  tools,  as  well  as  communicaFon  tools  for  a  variety  of  other   applicaFons.    WebRTC.ventures  is  a  recognized  development  partner  of  TokBox  and  has  also  built  naFve   WebRTC  soluFons    
  • 5. About Us •  Amir Zmora •  Dan Burnett •  Alex Gouaillard
  • 6. Screen Capture & Screen Sharing with WebRTC
  • 7. Screen Sharing in WebRTC •  Is WebRTC plus Screen Capture •  Screen capture gives you MediaStreamTrack •  WebRTC lets you send it •  We will talk about the Screen Capture piece
  • 8. Security in native apps •  If you install it, the app has complete access to your device •  So, choosing not to install is the first level of security
  • 9. Security in the Web model •  Visiting a site is the "install" •  But visiting a site needs to be safe •  So, the Web uses site origin as security •  By default, limited access to the device browser runs on •  Also, page has access to JS it loads but no access to JS from other tabs/windows
  • 10. Problem - API keys in stupid sites
  • 11. Screen capture breaks web model •  Browser controls allow Site A to do a user View-Source on Site B •  Normally, user can see B's popped up source but A can't read •  But with screen capture, A can read
  • 12. Nasty scenario •  Site A uses WebRTC with user permission to access camera, screen •  Site A scrapes screen image to see what other tabs/windows user has open in browser •  Site A tracks user's eyes with camera •  When user looks away, Site A does view-source on a tab, scrapes the screen, closes view-source window
  • 13. WebRTC Screen Capture standard •  http://w3c.github.io/mediacapture-screen-share/ •  Still very new navigator.mediaDevices.getDisplayMedia({ video: true }) .then(stream => { // we have a stream, attach it to a feedback video element videoElement.srcObject = stream; }, error => { console.log("Unable to acquire screen capture", error); });
  • 14. Protections in the standard •  By default no viewing of other tabs or other browser windows, even in other browser apps (e.g., Chrome app can't see FF browser) •  Requirement for explicit, elevated permissions in order to view these since one app could control what is presented on the others •  In practice, •  Permissions will probably be a form of whitelist similar to what FF uses today •  Likely no way for WebRTC apps to get exemptions in advance
  • 16. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)    GUM  JS  API   (tab/sandbox)   1.  Send  request  
  • 17. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)    GUM  JS  API   (tab/sandbox)   2.  Check  if  MST  is  already  available  
  • 18. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)    GUM  JS  API   (tab/sandbox)   Security  Manager   (source,  origin)   3.  Check  rights   2.  Check  if  MST  is  already  available  -­‐  NO  
  • 19. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)     Audio   Capturer   Video   Capturer   Security  Manager   (source,  origin)   GUM  JS  API   (tab/sandbox)   4.  Ask  Corresponding  capturer  type  to  start   capturing   3.  Check  rights  -­‐  OK  
  • 20. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)     Audio   Capturer   Video   Capturer   Security  Manager   (source,  origin)   A   GUM  JS  API   (tab/sandbox)   4.  Ask  Corresponding  capturer  type  to  create   one  -­‐  OK   V   5.  Store  the  MST  
  • 21. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)     Audio   Capturer   Video   Capturer   Security  Manager   (source,  origin)   A   GUM  JS  API   (tab/sandbox)   V   6.  Trigger  callback   Keep  feeding  frames  
  • 22. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)     Audio   Capturer   Video   Capturer   Security  Manager   (source,  origin)   A   GUM  JS  API   (tab/sandbox)   V   NOTE  1:  second  call  for  same  device  with  same  constraints  will  directly  return  the  MST,  that  allows  to  share   streams  across  tabs  without  blocking    
  • 23. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)     Audio   Capturer   Video   Capturer   Security  Manager   (source,  origin)   A   GUM  JS  API   (tab/sandbox)   V   NOTE  2:  Recently,  a  second  call  for  the  same  device  but  with  different  constraints  (think  simulcast)  will  indeed   return  a  different  resoluFon.  Before  it  would  return  the  first  resoluFon  asked.    
  • 24. Chrome Specific WebRTC Bits Media  Stream  Manager   (singleton@browser)     Audio   Capturer   Video   Capturer   Security  Manager   (source,  origin)   A   GUM  JS  API   (tab/sandbox)   V   NOTE  3:  Not  only  this  allow  to  share  cams  across  processes,  it  allows  for  global  echo  cancellaFon  (yes,  including   the  key  strokes).  Before  tabs  could  cross  feed.    
  • 25. Chrome Screensharing 2 steps (1) Media  Stream  Manager   (singleton@browser)     Screen/Windows/Tab   Capturer   Security  Manager   (source,  origin)   Screensharing   (extension)   1   2   3   4   S   5  
  • 26. Chrome Screensharing 2 steps (2) Media  Stream  Manager   (singleton@browser)     Screen/Windows/Tab   Capturer   S   GUM  JS  API   (tab/sandbox)   With  ID  
  • 29. Firefox •  Whitelisting - Manual •  Manual •  Hardcoded •  Extension
  • 30. Firefox •  Whitelisting - Manual •  Manual •  Hardcoded •  Extension
  • 31. Firefox •  Whitelisting (wiki.mozilla.org/Screensharing) •  Hardcoded ⇒ open a bug! ⇒ Attack surface?
  • 32. Firefox•  webex.com,*.webex.com,ciscospark.com,*.ciscospark.com,projectsquared.com,*.projectsquared.com, •  *.room.co,room.co, •  beta.talky.io,talky.io, •  *.clearslide.com, •  appear.in,*.appear.in, •  tokbox.com,*.tokbox.com, *.opentok.com, •  *.sso.francetelecom.fr,*.si.francetelecom.fr,*.sso.infra.ftgroup,*.multimedia-conference.orange-business.com,*.espacecollaboration.orange-business.com, •  example.com, •  *.mypurecloud.com,*.mypurecloud.com.au, •  spreed.me,*.spreed.me,*.spreed.com, •  air.mozilla.org, •  *.circuit.com,*.yourcircuit.com,circuit.siemens.com,yourcircuit.siemens.com,circuitsandbox.net,*.unify.com,tandi.circuitsandbox.net, •  *.ericsson.net,*.cct.ericsson.net, •  *.conf.meetecho.com, •  meet.jit.si,*.meet.jit.si, •  web.stage.speakeasyapp.net,web.speakeasyapp.net, •  *.hipchat.me, •  *.beta-wspbx.com,*.wspbx.com, •  *.unifiedcloudit.com, •  *.smartboxuc.com, •  *.smartbox-uc.com, •  *.panterranetworks.com, •  pexipdemo.com, •  *.pexipdemo.com,pex.me,*.pex.me,*.rd.pexip.com, •  1click.io,*.1click.io, •  *.fuze.com,*.fuzemeeting.com, •  *.thinkingphones.com, •  free.gotomeeting.com,g2m.me,*.g2m.me,gotomeeting.com,*.gotomeeting.com,gotowebinar.com,*.gotowebinar.com,gototraining.com,*.gototraining.com,citrix.com,*.citrix.com,expertcity.com,*.expertcity.com,citrixonline.com,*.citrixonline.com,g2m.me,*.g2m.me,gotomeet.me,*.gotomeet.me,gotomeet.at,*.gotomeet.at
  • 33. Both Firefox and Chrome •  FF-Whitelisting – Extension / addOn •  Cr – Extension See e.g. here: Blog - https://tokbox.com/developer/guides/screen-sharing/js/ Code - https://github.com/opentok/screensharing-extensions
  • 34. ?
  • 35. Thank You Amir  Zmora   TheNewDialTone   Dan  Burne3   StandardsPlay   Alex  Gouaillard   WebRTC  by  Dr  Alex