Seeking community feedback: Disallow add-ons to run on secure screens. #14795
Replies: 29 comments
This comment has been minimized.
This comment has been minimized.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
I'm going to collect responses and add them to description, hiding the original comment (to make it easy to track what has been responded to). First, I want to highlight the difference between the 'lock screen' and the 'sign on screen'. The first is not a secure screen. The second (where a Windows user enters their password) is. To make identifying secure screens easier, set a unique synth voice, copy it for use on secure screens and experiment. I'll attempt to respond to all the comments so far, per user. @ruifontes comment
This sounds like a preference rather than a requirement. @lukaszgo1 comment
I'll add "unsupported languages", these should be added to core. 2. Do you have specific examples of languages not supported well enough for the sign-on screen and UAC prompts out of the box? I'll add "Braille display drivers", with a note about deafblind users. These should be added to the core, future displays should use BrailleHID. 3. Can you please supply specific examples of braille displays that aren't supported? CyrilleB79 comment
4. This one makes me hesitate, is this something a regular user requires? It shouldn't be. I understand developers are much more likely to run into strange situations, but I really want to focus on average end users to start with.
Again, I'll add this to secondary use cases. 5. By 'logon screen', do you mean 'lock screen' (not a secure screen, addons will run), or sign-on screen (where a password is entered)?
This is too general, please add: 6. Which 'secure screen', and what action on it requires this add-on? @josephsl comment
Yes, this may be an action, I've linked to it in the description. But please stay on topic: specific use-cases that require an add-on on secure screens.
To be clear, we are after use-cases that aren't about preference, but requirement.
This may be an action, I have included it as a possible outcome in the description. But we need the concrete use-cases. @jmdaweb comment
I'll add a note, however: 8. Why can't the proxy be configured at a system level? @sukiletxe comment
This potential solution has been added, see issue #6305. On this issue, please focus on required use-cases for now. @davidacm comment
9. Can you expand on this, is it required (I.E. you would not be able to log in without it)? If this is a general preference, it sounds simple enough that it should be added to core.
To be clear, the lock screen and sign-on screen are different. Only the sign-on screen is a 'secure screen'. Add-ons would continue to work on the lock screen. I have added notes to the description on how to confirm you're on a secure screen. @pitermach commentThere are potentially a variety of solutions. Right now, we want to focus on discovering the requirements. @davidacm comment
We aren't looking for solutions right now. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
As per my last comment I'll respond to all new comments in one go. @sukiletxe comment
10. You've encountered this on the sign-on screen or during a UAC prompt? @Simon818 comment
11. Can you elaborate, why do you need Bluetooth Audio?
This won't change, only in the very specific circumstances.
The problem is as the add-on developer community grows it becomes impossible to verify that add-ons are safe. This is already true. Add-on source code and dependencies are not reviewed. Even if the available source code was reviewed, there may be malicious binaries included with the add-on.
This issue should make it clear one way or another. To be clear, our current priority is identifying requirements "must have", rather than preferences "might want". I.E. the user can not proceed without it. @gregjozk comment
This doesn't sound like something you would be doing on the sign-on screen, or during a UAC prompt.
Yes, NVDA freezing is a serious bug, not recovering automatically is also serious. These situations should be reported and fixed in core. @jmdaweb comment
Thanks for the extra information. I didn't realize you were talking about observing proxy settings from Python rather than configuring them. @zersiax comment
This is all it would take to start a new elevated process. The process can then run as the system user, and install whatever services etc. It may replace binaries of the OS or other applications. An extended period of time is not required.
Add-on source code is not reviewed in any official capacity, and may not be reviewed at all.
This is what we would like to identify, it is the purpose of this issue. @CyrilleB79 comment
It maybe that we have to adopt all or part of this functionality into NVDA in order to solve this problem. It's noted in the description.
Thanks for the clarification. I have updated the description with this.
13. Could you give a specific usage on either the sign-on screen, the UAC prompt, or any other secure screen? @Simon818 comment
The motivations are primarily internal (however discussion amongst add-on authors has also increased priority).
Understanding what additional requirements exist for NVDA core allows us to make a realistic assessment of the costs associated with various approaches.
14. This indicates that add-ons are not required, and are a "nice to have", is this your opinion?
This seems to contradict, if you have specific examples please include them. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
As per my last comment @sukiletxe comment
Ok. In this case it isn't really relevant to this conversation. @DrSooom comment
Thanks, I have added this link to the description. |
Beta Was this translation helpful? Give feedback.
-
Hi Reef For Windows Magnifier use cases, I do not think it is totally necessary to have it on sign-on screen or UAC one, it's more a nice-to-have for my personal usage: I feel more comfortable to be able to follow visually what NVDA says, but I am able to sign in or to enter my password without any problem. If I encounter a blocking issue for myself or someone else, I will let you know. Regarding an example of Braille display driver not included in NVDA, maybe MB408SL-driver. I know nothing about it but just read something about it here:
|
Beta Was this translation helpful? Give feedback.
-
A few use cases that come to mind:
I'm not sure if it's possible for system administrators to add custom secure screens (thing custom authentication flows, 2FA screens that appear before signing in etc.) If so, we need to allow arbitrary add ons to run, in case some users require an add-on to make such screens accessible. The fact is that we can never really predict what kinds of addons users might come up with. Whether it's voice control, switch access or something altogether different, if we disallow addons on secure screens, we're potentially limiting the usefulness of all kinds of accommodations addons, and that's something we need to think about. |
Beta Was this translation helpful? Give feedback.
-
Sorry for the late reply:
I also don't think we can draw any definitive conclusions from the discussion here. Most users, especially outside English speaking countries would never comment or even look at this issue and there is a high chance they have some specific need we haven't considered. In fact if we know that synthesizers and braille display drivers can be distributed as an add-ons we should not look for a specific examples as we cannot possibly find all of them. What I'm saying is that if it is decided that add-ons on secure screens are going to be disallowed we should have a plan for an unexpected cases as most of them would be reported by ordinary users after and not before the release. |
Beta Was this translation helpful? Give feedback.
-
Kill NVDA - I don't think it is as necessary as people tent to imply. An alternative approach which works for me is to create a second user account, and when NVDA is frozen badly enough I just log into it from the CTRL+ALT+Del screen and kill NVDA that way using task manager.
This approach assumes you have administrative access to your machine, which may not always be the case. Integrating the functionality of kill NVDA into core seems reasonable, though.
|
Beta Was this translation helpful? Give feedback.
-
Why not just allow users to choose what add-ons they want to use in secure screens? Like an add-on manager that let to users to select and install / uninstall add-ons in secure screens. This can be implemented in the add-ons manager view. And obviously, that will require user UAC confirmation each time the users copy or remove add-ons from the NVDA's system configuration, and a confirmation dialog warning the user about risks of doing that action. We can't assume all the needs of all users, we are not gods that can foresee all users situations and needs. Talking about security risks, even a ill-intentioned braille driver can damage the system or compromise security. So, from that point of view, 0 add-ons should be copied to the system configuration. I see here some complex solutions that requires advanced knowledge from users. We need to think as common users, not developer users. |
Beta Was this translation helpful? Give feedback.
-
Overview
There is currently no way to ensure that add-ons are secure to run. This is especially concerning on secure screens. When config is copied to secure screens, all add-ons are also copied. This presents an elevated security risk to users.
NV Access intends that NVDA should meet the minimum requirements for users when on secure screens, without requiring add-ons.
Examples of secure screens:
To make identifying secure screens easier, set a unique synth voice, copy it for use on secure screens and experiment.
There may be use-cases that require add-ons on secure screens e.g. NVDA remote. These use-cases can be studied and alternative approaches will be suggested. Other example use-cases are welcomed.
We'll first collect use cases for secure screens, then we'll plan our approach.
This may involve:
Why now?
The security risks are being taken more seriously. Add-on source code isn't reviewed, and can't be guaranteed to be secure. Every update to an add-on and all dependencies would need to be inspected.
Some users assume that the "official" add-ons are reviewed. This is not the case.
Even if the add-on itself can be trusted, it is very easy for it to introduce an additional attack vector.
E.G. making it possible to open a saveAs/open dialog, or command prompt.
The other motivating factor is ensuring NVDA meets a minimum set of core requirements. Secure screens have a narrow set of requirements for the core to meet.
Use-cases for add-ons on secure screens
Primary use-cases, which may prevent some person from using NVDA without assistance.
Other suggestions
Other suggestions made, which aren't as clear cut. These may require further discussion AFTER we have made a decision on the approach for primary use-cases.
Related issues:
Beta Was this translation helpful? Give feedback.
All reactions