After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 793012 - thunderbolt: new panel for thunderbolt devices
thunderbolt: new panel for thunderbolt devices
Status: RESOLVED INCOMPLETE
Product: gnome-control-center
Classification: Core
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Control-Center Maintainers
Control-Center Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-01-29 19:27 UTC by Christian Kellner
Modified: 2018-04-12 09:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Multiple devices connected (41.18 KB, image/png)
2018-01-29 19:28 UTC, Christian Kellner
Details
Page when the daemon is not available (63.75 KB, image/png)
2018-01-29 19:29 UTC, Christian Kellner
Details
Page when there are no devices connected or stored (71.30 KB, image/png)
2018-01-29 19:29 UTC, Christian Kellner
Details
Device details dialog (32.45 KB, image/png)
2018-01-29 19:30 UTC, Christian Kellner
Details
Page with a device missing authorization (51.14 KB, image/png)
2018-01-29 19:31 UTC, Christian Kellner
Details
Device dialog with missing authorization (23.56 KB, image/png)
2018-01-29 19:31 UTC, Christian Kellner
Details
Page with warning of low thunderbolt controller security (43.68 KB, image/png)
2018-01-29 19:33 UTC, Christian Kellner
Details
Dialog to set the hightened security mode (24.40 KB, image/png)
2018-01-29 19:34 UTC, Christian Kellner
Details
Page when in heightened security mode (47.73 KB, image/png)
2018-01-29 19:34 UTC, Christian Kellner
Details

Description Christian Kellner 2018-01-29 19:27:07 UTC
Thunderbolt is a new IO technology to connect peripherals to the computer. Thunderbolt version 3 has new built in security levels, which also require devices to be authorized.
More details and the design for UI/UX here: https://wiki.gnome.org/Design/Whiteboards/ThunderboltAccess

During the implementation, the following problem came up: if devices could not be authorized because the computer was locked, we issue a notification to the user; but: 1) there is not much space to put a descriptive text, especially once the popup-message is gone. 2) the message is not actionable, i.e. clicking on it does nothing.

To mitigate, and also give the user more control over thunderbolt device management, a new thunderbolt device panel has been implemented.
It lists devices, shows device and global warnings. Also there is an advanced setting that can put the system daemon into a higher security mode, where a password is always required for new devices. This came up often in discussions as something people would like to activate during conferences.

panel code: https://gitlab.gnome.org/gicmo/gnome-shell/tree/wip/thunderbolt/
Comment 1 Christian Kellner 2018-01-29 19:28:13 UTC
Created attachment 367596 [details]
Multiple devices connected
Comment 2 Christian Kellner 2018-01-29 19:29:24 UTC
Created attachment 367597 [details]
Page when the daemon is not available
Comment 3 Christian Kellner 2018-01-29 19:29:55 UTC
Created attachment 367598 [details]
Page when there are no devices connected or stored
Comment 4 Christian Kellner 2018-01-29 19:30:31 UTC
Created attachment 367599 [details]
Device details dialog
Comment 5 Christian Kellner 2018-01-29 19:31:27 UTC
Created attachment 367600 [details]
Page with a device missing authorization

That is what one would see after a click on the notification of a missing device authorization.
Comment 6 Christian Kellner 2018-01-29 19:31:53 UTC
Created attachment 367601 [details]
Device dialog with missing authorization
Comment 7 Christian Kellner 2018-01-29 19:33:32 UTC
Created attachment 367602 [details]
Page with warning of low thunderbolt controller security

If we detect that the thunderbolt is in low or no security mode we issue a warning.
An open question is: on legacy system (thunderbolt 1/2) we only have "none", i.e. no security. Shall we warn there too? Or detect that situation and not warn then?
Comment 8 Christian Kellner 2018-01-29 19:34:24 UTC
Created attachment 367603 [details]
Dialog to set the hightened security mode

Hidden (on purpose) behind the hamburger menu on the main page.
Comment 9 Christian Kellner 2018-01-29 19:34:54 UTC
Created attachment 367604 [details]
Page when in heightened security mode
Comment 10 Christian Kellner 2018-01-29 19:38:02 UTC
Setting the ui-review keyword. There are a few thunderbolt icons missing.

One open question for the device list: shall we have some indication (icon, text) if a device is stored locally or not? There are a few situation where currently the text does not communicate it. Also should the authorization level (with key, without key) be communicated via an icon?
Comment 11 Christian Kellner 2018-01-29 19:42:23 UTC
(In reply to Christian Kellner from comment #0)
> panel code: https://gitlab.gnome.org/gicmo/gnome-shell/tree/wip/thunderbolt/

It is here: https://gitlab.gnome.org/gicmo/gnome-control-center/tree/thunderbolt
Comment 12 Bastien Nocera 2018-01-30 10:30:35 UTC
As mentioned on IRC:
- Can you use the Adwaita theme please when making screenshots? Makes it hard to compare otherwise
- You can probably remove most of the details in the devices properties window, as they're not relevant to end-users
- The "security" wording and functionality is probably too involved, I don't understand what most of it means, and linking to documentation is unlikely to help. Is this something that's even in users' hands?
Comment 13 Bastien Nocera 2018-02-06 15:51:35 UTC
I watched https://www.youtube.com/watch?v=_oLSrNYDAlY so I'm a little more clued in.

- Is there any reason why we'd want boltd to be in any mode other than "Heightened security"? There only seems to be 2 modes available from the UI, one which will ask for the admin password, and one that will just enable all devices. Given the security risks, why don't we default to the former, and users that want the latter can use boltctl or "sudo vi" to change that setting?
  If we went that way, you'd only show the warning icon if the mode is anything but the strictest.

- I don't understand the need to say "securely connected". I think you'd only want devices to either be connected securely (eg. connected) or not connected. Ditto for "authorized".

- Most of the properties seem to only be useful as a debugging tool. I would make those properties print out when the device is clicked on in the UI, using g_debug() so it would appear in "gnome-control-center -v"

- I wouldn't show a "please re-plug" message, but instead a button to allow connecting the device. It would ask the user for the password at that point.

In short, remove the 2 separate security modes, remove the use of "authorization" and "securely", and allow connecting to devices without unplugging/replugging.
Comment 14 Bastien Nocera 2018-02-06 17:23:56 UTC
(In reply to Bastien Nocera from comment #13)
> I watched https://www.youtube.com/watch?v=_oLSrNYDAlY so I'm a little more
> clued in.

One major thing that I completely missed is that the "Security levels" aren't something we change in the kernel or in user-space. They're BIOS settings. Which changes quite a lot of things :/

> - Is there any reason why we'd want boltd to be in any mode other than
> "Heightened security"? There only seems to be 2 modes available from the UI,
> one which will ask for the admin password, and one that will just enable all
> devices. Given the security risks, why don't we default to the former, and
> users that want the latter can use boltctl or "sudo vi" to change that
> setting?
>   If we went that way, you'd only show the warning icon if the mode is
> anything but the strictest.

This isn't possible, because we'll just have to live with whatever mode the BIOS gives us.

> - I don't understand the need to say "securely connected". I think you'd
> only want devices to either be connected securely (eg. connected) or not
> connected. Ditto for "authorized".

Most of those are terms that we came up with (the vocabulary to use isn't defined in a standard, and there's very little prior art), and they correspond to what the security level was when the device was plugged in.

Because those are purely informative, and can't be changed on a per device basis, I would move the information about those to the Properties dialogue. Something like "Security level" with values of "None" (for the None level), "Remembered" (for "User") and "Trusted" ("Secure mode").

I'm also guessing this can be combined with information about whether the device is connected and active. For example:
Connected: Yes/No/Cable plugged in (button to connect here?)
maybe.

> - Most of the properties seem to only be useful as a debugging tool. I would
> make those properties print out when the device is clicked on in the UI,
> using g_debug() so it would appear in "gnome-control-center -v"

In the properties, you could have the device name (in a way that can be copy/pasted), maybe a way to rename the device ("Dock - Home"). We also have the Security level above which should cover most questions about future behaviour and security.

I would hide the UUID (and if challenged, will take photos of all the labels of Bluetooth devices with Bluetooth addresses on them).

> - I wouldn't show a "please re-plug" message, but instead a button to allow
> connecting the device. It would ask the user for the password at that point.

This seems technically possible, and something we'd want to do in the Settings. This doesn't change the current interaction model in the Shell (though we could allow opening the panel from the notification...).

I wouldn't use warning icons in the UI, but present the current behaviour when devices are plugged in. The warnings are scary, and because there's no way to fix them or avoid them, not needed. I would however point to the BIOS settings (and here it would be great to be able to reboot to the BIOS...).

Finally, I didn't understand the "Heightened security" at all. Could this be labelled as "Allow users to plug in Thunderbolt devices", defaulting to "yes"?
Maybe this needs a second switch to allow users to plug/connect/authorise those devices without inputing a password?

Last comment. If a user plugs a device in, but only admins are allowed, I'd expect to see a password window asking for an admin password.
Comment 15 Jakub Steiner 2018-02-07 13:19:42 UTC
I'm sorry about being late with the details on the settings panel. I hopefully addressed some of the concerns Bastien brought up and hopefully avoided exposing the mad "security modes" while allowing to set the TB3 chip to the safer USB+DP mode for travel (in teh OS rather than BIOS).

https://wiki.gnome.org/Design/Whiteboards/ThunderboltAccess

What's missing is communicating a restrictive BIOS setting.
Comment 16 Bastien Nocera 2018-04-12 09:22:00 UTC
The discussion has moved to:
https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/22