[personal profile] mjg59
Recent Intel-based systems often implement something called Intel Rapid Start Technology. Like many things with the word "Technology" in the name, there's a large part of this that's marketing. The relatively small amount of technical documentation available implies that it's tied to your motherboard chipset and CPU, but as far as I can tell it's entirely implemented in firmware and could work just as well on, say, a Cyrix on a circa 1996 SIS-based motherboard if someone wrote the BIOS code[1]. But since nobody has, we're stuck with the vendors who've met Intel's requirements and licensed the code.

The concept of IRST is pretty simple. There's a firmware mechanism for setting a sleep timeout. If you suspend your computer and this timeout expires, it'll resume. However, instead of handing control back to the OS, the firmware just copies the entire contents of RAM to a special partition and turns the computer off. Next time you hit the power button, the firmware dumps the partition contents back into RAM and resumes as if nothing had changed. This takes a few seconds longer than resume from S3 but is far faster than resume from hibernation since it starts the moment the system gets power.

At a more technical level, it's a little more complicated. The first thing to know about this feature is that it's entirely invisible unless your hard drive is set up correctly. There needs to be a partition that's at least the size of your system's physical RAM. For GPT systems, this needs to have a type GUID of D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593. For MBR systems, you need a partition type of 0x84[2]. If the firmware doesn't find an appropriate partition then the OS will get no indication that the firmware supports it. Boo.

(The second thing is that it seems like it really does have to be on an SSD, and if you try to do this on spinning media your firmware will ignore it anyway)

If all the prerequisites are in place, an ACPI device with an HID of INT3392 will exist. It has four methods associated with it: GFFS, SFFS, GFTV and SFTV. GFFS returns an integer representing the events that will cause the system to wake up from S3 and suspend to SSD. The system will wake after the timeout expires if bit 0 is set, and will wake when the battery becomes critically low if bit 1 is set. The other bits appear to be unused at the moment[3]. SFFS sets the wakeup events, using the same bit values as GFFS. GFTV returns an integer containing the current wakeup timeout in minutes. SFTV sets it. Values above 1440 (ie, 24 hours) seem to be considered invalid - if I set them the value instead ends up as 10 and the timeout flag gets cleared from the wakeup events field.

I've submitted a patch that adds a sysfs interface for setting these values, and unless anyone objects it'll probably end up in 3.11. There's still the remaining question of how userspace should make use of these, and also how installers should behave when it comes to systems that support IRST. As previously mentioned, there's no obvious indication to the OS that the feature is supported unless the appropriate partition already exists. The easiest way to deal with this is for installers to default to retaining any partitions with the magic IDs, but I'm still looking into whether it's possible to get the firmware to cough up some more information so it can be created automatically even if the drive's entirely blank.

And now, having got this working on a test machine, I just need to split my Thinkpad's swap partition in half and make sure it works here as well. Woo.

[1] Note: I am not going to do this.
[2] Conveniently, the same as the partition type that APM systems used for suspend to disk back when dubstep hadn't been invented yet
[3] At least, if you attempt to set them they get ignored.
Page 1 of 3 << [1] [2] [3] >>

Threat to dm-crypt

Date: 2013-07-03 06:31 pm (UTC)
From: (Anonymous)
What if you had encrypted volumes or swap open when your computer did this? Your keys get written out to disk in plaintext I would imagine. Along with other stuff from mlock()d RAM like unlocked keyrings for GNOME or GPG, your browser's memory cache and session cookies, open documents, ...

What goes around comes around

Date: 2013-07-03 07:12 pm (UTC)
From: [identity profile] mas90.livejournal.com
My family's IBM PS/1 circa 1994 had something very similar ("Rapid Resume").

Re: Threat to dm-crypt

Date: 2013-07-03 07:26 pm (UTC)
From: (Anonymous)
It's unencrypted in RAM before it's suspended too. My point is that the SSD is non-volatile storage. Worse, your keys or private data would likely stay there even if you subsequently rapid-start, unmount, scrub keys from RAM and do a full shutdown.

Encrypting the root file system or whole disk would require scrubbing the keys from RAM before suspend, being able to prompt for credentials on resume, and reattach. One-time keys for encrypted swap would have to be written into that secure storage area too and somehow re-opened. You still have to hope nothing confidential remains anywhere in RAM. And/or do a scrub of the rapid-start partition after resume, hoping the SSD is actually overwriting the same blocks.

In summary, if the machine might be still logged into something non-public, like a website account or email box, or has been used to view/create/store anything since booting that should stay private, this feature is junk and you wouldn't want to use it.

Re: Threat to dm-crypt

Date: 2013-07-03 08:07 pm (UTC)
From: (Anonymous)
I just think: Friends wouldn't let friends use this feature.

Zeroing on resume is some comfort, probably reducing the persistence of this on disk.

But whilst appearing to be a convenience, at least temporarily it must write a snapshot of the user's activities since the last cold boot onto non-volatile storage. (Mostly recent, and falling off logarithmically by age). That data might stay there for months until the device is stolen, sent away for repair, sold or disposed of. It might include documents and media, session cookies, password keyrings, random excerpts of keyboard input or copies things from removable media, and probably lots of email and Internet history, even if that was transferred encrypted. And still recoverable if since deleted on-disk with a 'secure erase', or encryption products used for swap, individual files, containers or the whole disk.

Re: Threat to dm-crypt

Date: 2013-07-03 08:14 pm (UTC)
From: (Anonymous)
A reasonable compromise would be if the save process used a randomly generated key, and that key was available during the resume. Presumably the TPM or a similar mechanism could be used.

Reading secrets from the disk will generally leave behind no evidence. All the bad guy needs is a screwdriver. Reading them from memory is very likely to leave evidence in the form of scrambled/lost memory. In any event I'd claim the cost to the bad guys is $10 to grab data from disk (leaving no evidence it has been done) versus $1000 to grab from ram but being evident. Not the same order of magnitude as usual crypto gives ("$millions") but a noticeable difference.

Requires SSD?

Date: 2013-07-03 11:08 pm (UTC)
From: [personal profile] steveriley
Matthew writes...
(The second thing is that it seems like it really does have to be on an SSD, and if you try to do this on spinning media your firmware will ignore it anyway)

Sounds like an effort to goose the sales of SSDs. I can't think of any technical reason that IRST wouldn't work on a spining disk. I can think of a marketing reason, though -- it won't feel so rapid any more.

Interesting post

Date: 2013-07-04 12:15 am (UTC)
From: (Anonymous)
Interesting post, you're great at writing about these hardware/BIOS related things.

You brought up a point relating to trusting your firmware. Since it's probably proprietary, and since it's not possible to trust proprietary stuff, maybe you can get in on the coreboot team and give the world a Free Software BIOS? Wouldn't that be awesome?

The bonus is that you wouldn't have to fight with arbitrary binary code, and you could implement awesome things!

Cheers,
James

Quirks?

Date: 2013-07-04 12:33 am (UTC)
From: (Anonymous)
What does IRST do about video cards and other devices that need some kind of re-initialization on resume?

Re: Threat to dm-crypt

Date: 2013-07-04 01:08 am (UTC)
From: (Anonymous)
It is only $10 to read from ram also. Google "read ram after power off". You do have a valid point that grabbing the ram leaves evidence.

Re: What goes around comes around

Date: 2013-07-04 05:56 am (UTC)
From: (Anonymous)
Except without the mandatory SSD requirement (I guess)

Intel Rapid Start Technology

Date: 2013-07-04 06:28 am (UTC)
From: (Anonymous)
Facing a problem with my Fujitsu UH572 and it is pretty related with this (great) post. After a board replacement intel controller is refusing to see the disk as hybrid and especially the SSD partition. Intel was using a 8G volume inside this 30G SSD partition for fastboot - but i dont use windows so i've encrypted the SSD partition and installed linux.

The fujitsu service is telling me that the disk is OK! but they are working on found out why the SSD partition has been disappeared.

Is it possible that this feature (intel rapid start technology) is being glued with the specific board or is it possible that a UEFI setting exist that tells the board the specs of the disk ?

It seems idiotic to me to exist such a connection but its being 3 weeks now and none of the fujitsu technicians cant reply to me on this.

btw This is my second UH572. I had the same problem with the board on the first but they have replaced it as the problem occurred 3 days after the purchase of it

Thanks for this!

Date: 2013-07-04 06:54 am (UTC)
From: (Anonymous)
I don't know that I will actually use it, but I have wanted to see if I could get this working for some time now. I had tried before after finding a blog post of someone else who had gotten this to work. But I failed at that time since I didn't understand that gdisk's 8300 was actually representative of a type GUID.

I have an SSD in my machine that is currently blank while I try to figure out what to use it for. So I think I will leave this enabled for a bit and see how it goes. So far so good.

Unfortunately, the firmware only allows for up to 3 hours before the IRST kicks in. You say that 24 hours is invalid, but does adjustment with your patch allow you to go over the bios listed max at all?

PS D'oh, I got the anti-spam question wrong...

Re: Requires SSD?

Date: 2013-07-04 09:07 am (UTC)
From: (Anonymous)
One marginally technical reason is that the write-to-disk operation will occur when the user thinks the system is off. It is less risky to write to an SSD in a moving backpack than spinning up a hard drive.

Re: Threat to dm-crypt

Date: 2013-07-04 10:13 am (UTC)
From: (Anonymous)
The user experience would likely be "I closed the lid... so it's turned off" or "it's shut itself down because I wasn't using it" and they may have to enter a password to log back in. RAM suspend is common, but sooner or later the battery is drained or removed, and within seconds the data is gone. So the attack window is finite. With IRST the same data is going to be copied to persistent storage, staying on the SSD indefinitely even if the device is disassembled, and users are unlikely to know it happened.

You come back from lunch, spill your coffee over the device and it won't switch back on. You send the machine for repair or sell it as spares, but all manner of sensitive data is retrievable from SSD. Even if a person took sensible precautions such as using a master passphrase to protect stored passwords, use a corporate VPN and password-protected authentication keys, encrypt your emails, all removable media, files, swap space or whole disk...

Re: Requires SSD?

Date: 2013-07-04 10:34 am (UTC)
From: (Anonymous)
The erase operation on resume might be instantaneous with an SSD, whereas a rotary disk may have to write out several GiB for the same effect, at the precise moment you wanted to something useful with the device.

Although, it could be optimised by encrypting the data written out to disk and then only the key needs to be erased. Already that would improve the security/privacy situation, especially if hardware crypto were used, and maybe a 'reset' button to erase/change the key.

Re: Threat to dm-crypt

Date: 2013-07-04 05:13 pm (UTC)
From: (Anonymous)
You should test it to see, but it might not write the data out unencrypted.

Also, many SSDs these days have strong encryption tied to your BIOS disk password. Not as safe as dm-crypt, but still decent.
Page 1 of 3 << [1] [2] [3] >>

Profile

Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Google. Member of the Free Software Foundation board of directors. Ex-biologist. @mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer.

Expand Cut Tags

No cut tags