Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API for capturing all screens #856

Closed
1 task done
shangl opened this issue Jun 12, 2023 · 6 comments
Closed
1 task done

API for capturing all screens #856

shangl opened this issue Jun 12, 2023 · 6 comments
Assignees
Labels
Progress: review complete Resolution: unsatisfied The TAG does not feel the design meets required quality standards Venue: Second Screen CG

Comments

@shangl
Copy link

shangl commented Jun 12, 2023

こんにちは TAG-さん!

I'm requesting a TAG review of "capture all screens" (getAllScreensMedia).

In some scenarios (e.g. legal compliance or training purposes) it must be ensured that all screens attached to a client are captured. With getDisplayMedia, a web application would need to call the API N-times, asking the user to pick a different screen each time. This is a cumbersome and error-prone process and it can't be guaranteed that all the screens are captured. We propose the getAllScreensMedia API that allows capturing of all screens without user interaction. To protect the users privacy, the API is safe-guarded by an enterprise policy and the user must be notified before capture can happen and while capturing is happening.

Further details:

  • I have reviewed the TAG's Web Platform Design Principles
  • Relevant time constraints or deadlines: N/A
  • The group where the work on this specification is currently being done: SCCG
  • The group where standardization of this work is intended to be done: N/A
  • Major unresolved issues with or opposition to this specification: N/A
  • This work is being funded by: Google

We'd prefer the TAG provide feedback as (please delete all but the desired option):

💬 leave review feedback as a comment in this issue and @-notify @shangl

@torgo torgo added Venue: WebRTC WebRTC and media capture and removed Progress: untriaged labels Jun 15, 2023
@torgo torgo added this to the 2023-06-19-week milestone Jun 15, 2023
@torgo torgo added Venue: Second Screen CG and removed Venue: WebRTC WebRTC and media capture labels Jun 15, 2023
@cynthia
Copy link
Member

cynthia commented Jun 20, 2023

Why does this need to be provided as a web-facing API? All three provided use-cases could likely be done with closed (e.g. extension specific) APIs and you could deploy that as an enterprise policy, which would alleviate the risks of abuese by having it exposed on the web.

@eladalon1983
Copy link

Why does this need to be provided as a web-facing API? All three provided use-cases could likely be done with closed (e.g. extension specific) APIs and you could deploy that as an enterprise policy, which would alleviate the risks of abuese by having it exposed on the web.

An extension API requires the installation of an extension, which implicitly grants permission to the extension to access a myriad other APIs that the admin might not even know about, let alone wish to allow. In some regards the extension path is actually riskier than a Web-exposed path, where the default stance is more security-conscious, and the holes enterprise policies poke through the wall are more deliberate.

@torgo
Copy link
Member

torgo commented Jul 18, 2023

Hi @eladalon1983 I'm not sure we entirely follow your argument. As @cynthia said, there are risks for abuse by exposing this to the entire web. From a safe to browse point of view, it should be difficult for the user to get into a scenario where they are sharing their screens. A risk I see that is not discussed in the explainer or the spec is users' responses to permission prompts being gamed – e.g. by phishing attacks claiming to be customer service for a financial provider. At the very least, it feels like there needs to be more in the spec about the potential abuse scenarios and mitigations, beyond presence of a "privacy indicator".

@eladalon1983
Copy link

A risk I see that is not discussed in the explainer or the spec is users' responses to permission prompts being gamed

@torgo, a user cannot chance upon an arbitrary malicious site and be shown a dialog to share all their screens with that site. This API is restricted to origins allowlisted by the admin. That configuration should even be enough to forego a user-prompt altogether, if the user was warned earlier that the device might be subject to surveillance at any time, allowing them to walk away from the device rather than use it if they don't accept that.

That said, I believe other concerns (XSS) have prompted discussion of potentially moving this API off of the Web. @shangl would know the status of these and whether this TAG review request is still relevant.

@torgo
Copy link
Member

torgo commented Aug 1, 2023

Hi @eladalon1983 we've just been discussing in our TAG f2f today. We're of the mind that, for many of the same reasons articulated in our review of the managed device API we don't think this should be part of the web platform. The kind of surveillance you're talking about (where, by the way, people might not be able to make the decision to "walk away" without also losing their job or incurring other harms) is not something we're comfortable signing off on.

@torgo torgo added Resolution: unsatisfied The TAG does not feel the design meets required quality standards Progress: review complete labels Aug 1, 2023
@eladalon1983
Copy link

The kind of surveillance you're talking about (where, by the way, people might not be able to make the decision to "walk away" without also losing their job or incurring other harms) is not something we're comfortable signing off on.

I understand the discomfort and even share it, especially after seeing some public backlash to other controversial APIs. So I'd like to mention[*] for record that this very unfortunate dilemma - "accept or quit" - is already present in the lives of countless people, whose employers provide a machine running Windows/Mac/Linux with a native application installed that surveils the employee. Such existing native applications can even surveil the user without their knowledge. The API proposed by Simon here would take steps to improve our world, because it would at least ensure that the user knows the machine is subject to potential surveillance.

Creating a world completely free of surveillance is beyond our powers; we take pride in the little strides forward we can make.

--
[*] Also mentioned here.

@torgo torgo closed this as completed Oct 10, 2023
@torgo torgo removed this from the 2023-07-31-f2f-Mos-Eisley milestone Oct 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Progress: review complete Resolution: unsatisfied The TAG does not feel the design meets required quality standards Venue: Second Screen CG
Projects
None yet
Development

No branches or pull requests

6 participants