[personal profile] mjg59
One of the benefits of the Shim approach of bridging trust between the Microsoft key and our own keys is that we can define whatever trust policy we want. Some of the feedback we've received has indicated that people really do want the ability to disable signature validation without having to go through the firmware. The problem is in ensuring that this can't be done either accidentally or via trivial social engineering.

We've come up with one possible solution for this. A tool run at the OS level generates a random password and hashes it. This hash is appended to the desired secure boot state and stored in an EFI variable. On reboot, Shim notices that this variable is set and drops to a menu. The user then selects "Change signature enforcement" and types the same password again. The system is then rebooted and Shim now skips the signature validation.

This approach avoids automated attacks - if malware sets this variable, the user will have no idea which password is required. Any social engineering attack would involve a roughly equivalent number of steps to disabling Secure Boot in the firmware UI, so it's not really any more attractive than just doing that. We're fairly confident that this meets everyone's expectations of security, but also guarantees that people who want to run arbitrary kernels and bootloaders can do so.

Re: How do they know the password

Date: 2012-10-18 01:27 am (UTC)
From: [identity profile] ff426444-2eac-4286-8f78-f088e98a036e [openid.stackexchange.com]
Why wouldn't malware impersonate this user-space tool, generate a hash of its design, and print something like "At next reboot, type YES to continue."

Re: How do they know the password

Date: 2012-10-18 01:49 am (UTC)
marahmarie: (M In M Forever) (Default)
From: [personal profile] marahmarie
Always my first thought and why I have trouble taking this topic seriously. Until you can iron out every wrinkle here, what is the point.

Re: How do they know the password

Date: 2012-10-18 12:00 pm (UTC)
From: (Anonymous)
Enforcing a minimum password length (or even a complexity, e.g. requiring a digit) within a shim would make this kind of attacks more difficult.

At the very least, a zero-length password should definitely be prohibited.

Re: How do they know the password

Date: 2012-10-18 05:32 pm (UTC)
From: (Anonymous)
One way to enforce ugliness of passwords would be to require that the password be a hash of some information provided to the firmware by the userland program, so the userland program can only choose a password if it can reverse the hash. OTOH, that might require rather long passwords and does rather conflict with sending the password to the firmware as a hash.

Profile

Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Aurora. Ex-biologist. [personal profile] mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer. Also on Mastodon.

Expand Cut Tags

No cut tags