* [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd
@ 2009-12-28 20:28 Olivier Sessink
2009-12-28 21:20 ` Luca Berra
` (3 more replies)
0 siblings, 4 replies; 25+ messages in thread
From: Olivier Sessink @ 2009-12-28 20:28 UTC (permalink / raw)
To: dm-crypt
Hi all,
I was wondering if there are some 'common' ways to prevent tampering
with the unencrypted kernel and initrd in the case of an encrypted root
filesystem? If somebody has access to your computer they could change
the initrd and kernel and make your encryption useless (e.g. store the
password in /boot, or send it over the network, etc. etc.). It shouldn't
be too hard to make this at least very difficult.
I was thinking along the lines of:
- check a checksum of the MBR and partition table
- check a checksum of the complete /boot filesystem
- check the pointers in the kernel system call table (detects many rootkits)
- check for virtualization (any virtual rootkits)
- ...? any better ideas how to detect tampering?
Obviously all of this should be done by a binary inside the encrypted
filesystem - everything in /boot (kernel and initrd) is not to be
trusted. That means we can only warn the user after the password is
probably gone already, but this is better than nothing.
Any comments, ideas or links ?
regards,
Olivier
^ permalink raw reply [flat|nested] 25+ messages in thread* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 20:28 [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd Olivier Sessink @ 2009-12-28 21:20 ` Luca Berra 2009-12-28 21:41 ` Olivier Sessink 2009-12-28 22:41 ` Zdenek Kaspar ` (2 subsequent siblings) 3 siblings, 1 reply; 25+ messages in thread From: Luca Berra @ 2009-12-28 21:20 UTC (permalink / raw) To: dm-crypt On Mon, Dec 28, 2009 at 09:28:43PM +0100, Olivier Sessink wrote: > Hi all, > > I was wondering if there are some 'common' ways to prevent tampering with > the unencrypted kernel and initrd in the case of an encrypted root > filesystem? If somebody has access to your computer they could change the > initrd and kernel and make your encryption useless (e.g. store the password > in /boot, or send it over the network, etc. etc.). It shouldn't be too hard > to make this at least very difficult. I'm sorry if anyone has physical access to the machine, you lose. there is nothing you can do to prevent it. If your laptop is stolen and later found, i would not trust typing my password again booting from that disk. I would boot from a rescue media or install the disk in another machine and recover the data. What you suggest only creates a false sense of security and should be avoided. L. -- Luca Berra -- bluca@comedia.it Communication Media & Services S.r.l. /"\ \ / ASCII RIBBON CAMPAIGN X AGAINST HTML MAIL / \ ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 21:20 ` Luca Berra @ 2009-12-28 21:41 ` Olivier Sessink 2009-12-28 23:11 ` Heinz Diehl 0 siblings, 1 reply; 25+ messages in thread From: Olivier Sessink @ 2009-12-28 21:41 UTC (permalink / raw) To: dm-crypt Luca Berra wrote: > On Mon, Dec 28, 2009 at 09:28:43PM +0100, Olivier Sessink wrote: >> Hi all, >> >> I was wondering if there are some 'common' ways to prevent tampering >> with the unencrypted kernel and initrd in the case of an encrypted >> root filesystem? If somebody has access to your computer they could >> change the initrd and kernel and make your encryption useless (e.g. >> store the password in /boot, or send it over the network, etc. etc.). >> It shouldn't be too hard to make this at least very difficult. > > I'm sorry if anyone has physical access to the machine, you lose. > there is nothing you can do to prevent it. > If your laptop is stolen and later found, i would not trust typing my > password again booting from that disk. I would boot from a rescue media > or install the disk in another machine and recover the data. > What you suggest only creates a false sense of security and should be > avoided. yes you are 100% right from a perfect security viewpoint. However, we're looking at a "regular user" deployment, and we know that our regular users are not going to look after their devices as good as most IT security professionals will do (they might even carry their password in their wallet, or tell the password over the phone). So our aim is not 100% perfect security, but just "make it (a lot) harder" to get to the data. The data on the devices is interesting enough for a simple hack, but not interesting enough for a very complicated attack (or a physical keylogger or tempest attack). So if we can avoid the simple attacks we have improved the overall security. So in our not-so-perfect world we will loose from a determined hacker anyway. But perhaps we can be safe from the script kiddies. Olivier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 21:41 ` Olivier Sessink @ 2009-12-28 23:11 ` Heinz Diehl 2009-12-29 10:05 ` Olivier Sessink ` (3 more replies) 0 siblings, 4 replies; 25+ messages in thread From: Heinz Diehl @ 2009-12-28 23:11 UTC (permalink / raw) To: dm-crypt On 28.12.2009, Olivier Sessink wrote: > yes you are 100% right from a perfect security viewpoint. However, > we're looking at a "regular user" deployment, and we know that our > regular users are not going to look after their devices as good as > most IT security professionals will do (they might even carry their > password in their wallet, or tell the password over the phone). So > our aim is not 100% perfect security, but just "make it (a lot) > harder" to get to the data. Anybody who has the skills and the motivation to modify your kernel/initrd is far from being your "regular user", and is most likely able and has the expertise to do other things to your machine as well. "Please repeat with me: there is no way to avoid or detect backdoors if physical access to the machine has ever been granted." (Werner Koch on gnupg-users 19.02.2009 on exactly the same topic). ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 23:11 ` Heinz Diehl @ 2009-12-29 10:05 ` Olivier Sessink 2009-12-29 10:23 ` [lesh] Ivan Nikolic ` (2 subsequent siblings) 3 siblings, 0 replies; 25+ messages in thread From: Olivier Sessink @ 2009-12-29 10:05 UTC (permalink / raw) To: dm-crypt Heinz Diehl wrote: > On 28.12.2009, Olivier Sessink wrote: > >> yes you are 100% right from a perfect security viewpoint. However, >> we're looking at a "regular user" deployment, and we know that our >> regular users are not going to look after their devices as good as >> most IT security professionals will do (they might even carry their >> password in their wallet, or tell the password over the phone). So >> our aim is not 100% perfect security, but just "make it (a lot) >> harder" to get to the data. > > Anybody who has the skills and the motivation to modify your kernel/initrd > is far from being your "regular user", and is most likely able and has the > expertise to do other things to your machine as well. I'm not so sure about that. Most script kiddies can modify an initrd (just google for 'dm-crypt evil maid' and you'll find at least one script-kiddie level recipe). But I don't think there are many script kiddies that can do a TEMPEST attack or install a physical keylogger in a laptop. > "Please repeat with me: there is no way to avoid or detect backdoors if > physical access to the machine has ever been granted." (Werner Koch on > gnupg-users 19.02.2009 on exactly the same topic). add to that: "encryption is not perfect if your house is not TEMPEST proof or burglar proof, or if you can be blackmailed, or if you have children that can be kidnapped, or if they simply drug you, etc. etc." If somebody is really determined to get to your data they will succeed, skilled or not skilled. I suppose everybody on this list knows this one: http://imgs.xkcd.com/comics/security.png Olivier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 23:11 ` Heinz Diehl 2009-12-29 10:05 ` Olivier Sessink @ 2009-12-29 10:23 ` [lesh] Ivan Nikolic 2009-12-29 12:25 ` Olivier Sessink 2009-12-29 20:24 ` Arno Wagner 3 siblings, 0 replies; 25+ messages in thread From: [lesh] Ivan Nikolic @ 2009-12-29 10:23 UTC (permalink / raw) To: dm-crypt [-- Attachment #1: Type: text/plain, Size: 2196 bytes --] you can set bios password for every boot (if you trust your bios, this would mean that for any software tampering your machine has to be taken appart, disk unplugged, etc. but most bioses had a lot of backdoor passwords few years back, don't know how it is now, but not very nice I suppose) so, to be extra sure, somekind of sum of unencrypted files is nice, yes. that would mean that person would have to get past bios, boot another system, modify your kernel to make your hashing program lie to you (know in advance that you use one, and which) and that is hard enough for me:) (and is the most feaseable software hack idea those "if there is phisical access game over" people are talking about) if you are that paranoid, you cary your initrd/kernel on usb with you. btw, those problems can be addressed with an evil child of drm, chain of trust. http://theinvisiblethings.blogspot.com/2009/01/why-do-i-miss-microsoft-bitlocker.html I'm gonna setup the hash thing right now :) * Heinz Diehl (htd@fancy-poultry.org) wrote: > On 28.12.2009, Olivier Sessink wrote: > > > yes you are 100% right from a perfect security viewpoint. However, > > we're looking at a "regular user" deployment, and we know that our > > regular users are not going to look after their devices as good as > > most IT security professionals will do (they might even carry their > > password in their wallet, or tell the password over the phone). So > > our aim is not 100% perfect security, but just "make it (a lot) > > harder" to get to the data. > > Anybody who has the skills and the motivation to modify your kernel/initrd > is far from being your "regular user", and is most likely able and has the > expertise to do other things to your machine as well. > > "Please repeat with me: there is no way to avoid or detect backdoors if > physical access to the machine has ever been granted." (Werner Koch on > gnupg-users 19.02.2009 on exactly the same topic). > > > _______________________________________________ > dm-crypt mailing list > dm-crypt@saout.de > http://www.saout.de/mailman/listinfo/dm-crypt -- PGP 0x96085C00 http://lesh.sysphere.org [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 23:11 ` Heinz Diehl 2009-12-29 10:05 ` Olivier Sessink 2009-12-29 10:23 ` [lesh] Ivan Nikolic @ 2009-12-29 12:25 ` Olivier Sessink 2009-12-29 12:37 ` Milan Broz 2009-12-29 20:24 ` Arno Wagner 3 siblings, 1 reply; 25+ messages in thread From: Olivier Sessink @ 2009-12-29 12:25 UTC (permalink / raw) To: dm-crypt Heinz Diehl wrote: > On 28.12.2009, Olivier Sessink wrote: > >> yes you are 100% right from a perfect security viewpoint. However, >> we're looking at a "regular user" deployment, and we know that our >> regular users are not going to look after their devices as good as >> most IT security professionals will do (they might even carry their >> password in their wallet, or tell the password over the phone). So >> our aim is not 100% perfect security, but just "make it (a lot) >> harder" to get to the data. > > Anybody who has the skills and the motivation to modify your kernel/initrd > is far from being your "regular user", and is most likely able and has the > expertise to do other things to your machine as well. > > "Please repeat with me: there is no way to avoid or detect backdoors if > physical access to the machine has ever been granted." (Werner Koch on > gnupg-users 19.02.2009 on exactly the same topic). I seem to be unable to find this discussion in http://lists.gnupg.org/pipermail/gnupg-users/2009-February/date.html are you sure about this date? Olivier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 12:25 ` Olivier Sessink @ 2009-12-29 12:37 ` Milan Broz 0 siblings, 0 replies; 25+ messages in thread From: Milan Broz @ 2009-12-29 12:37 UTC (permalink / raw) To: Olivier Sessink; +Cc: dm-crypt On 12/29/2009 01:25 PM, Olivier Sessink wrote: > Heinz Diehl wrote: >> On 28.12.2009, Olivier Sessink wrote: >> "Please repeat with me: there is no way to avoid or detect backdoors if >> physical access to the machine has ever been granted." (Werner Koch on >> gnupg-users 19.02.2009 on exactly the same topic). > > I seem to be unable to find this discussion in > http://lists.gnupg.org/pipermail/gnupg-users/2009-February/date.html > > are you sure about this date? http://lists.gnupg.org/pipermail/gnupg-users/2009-February/035776.html Milan ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 23:11 ` Heinz Diehl ` (2 preceding siblings ...) 2009-12-29 12:25 ` Olivier Sessink @ 2009-12-29 20:24 ` Arno Wagner 2009-12-29 21:15 ` Heinz Diehl 2009-12-29 21:31 ` Hannes Erven 3 siblings, 2 replies; 25+ messages in thread From: Arno Wagner @ 2009-12-29 20:24 UTC (permalink / raw) To: dm-crypt On Tue, Dec 29, 2009 at 12:11:58AM +0100, Heinz Diehl wrote: > On 28.12.2009, Olivier Sessink wrote: > > > yes you are 100% right from a perfect security viewpoint. However, > > we're looking at a "regular user" deployment, and we know that our > > regular users are not going to look after their devices as good as > > most IT security professionals will do (they might even carry their > > password in their wallet, or tell the password over the phone). So > > our aim is not 100% perfect security, but just "make it (a lot) > > harder" to get to the data. > > Anybody who has the skills and the motivation to modify your kernel/initrd > is far from being your "regular user", and is most likely able and has the > expertise to do other things to your machine as well. > > "Please repeat with me: there is no way to avoid or detect backdoors if > physical access to the machine has ever been granted." (Werner Koch on > gnupg-users 19.02.2009 on exactly the same topic). I don't agree. But you have to think outside of the box and use a separate, uncompromised boot medium that the attacker did not have access to. With only the potentially modified system, you would have to reverse-engineer all software on it, which is infeasible in practice, even more so without an additional external system to do the analysis on. Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 20:24 ` Arno Wagner @ 2009-12-29 21:15 ` Heinz Diehl 2009-12-29 23:02 ` Olivier Sessink 2009-12-30 2:52 ` Arno Wagner 2009-12-29 21:31 ` Hannes Erven 1 sibling, 2 replies; 25+ messages in thread From: Heinz Diehl @ 2009-12-29 21:15 UTC (permalink / raw) To: dm-crypt On 29.12.2009, Arno Wagner wrote: > I don't agree. But you have to think outside of the box and use a > separate, uncompromised boot medium that the attacker did not have > access to. Sorry, but I can't see how this would help. The attacker installs a hardware keylogger and just doesn't care. It's a matter of concept: before a security solution is implemented, a risk analysis has to be done. To have /boot on an external medium or to store checksums of the unencrypted files on a CD/DVD/stick is fine, as long as the risk it carries is accepted, along with the worst case scenario under given circumstances. It's up to the operator. For total security, the machine is regarded compromised if access to it ever has been granted. As a last consequence, it's impossible to detect if the machine has been tampered with. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 21:15 ` Heinz Diehl @ 2009-12-29 23:02 ` Olivier Sessink 2009-12-30 2:52 ` Arno Wagner 1 sibling, 0 replies; 25+ messages in thread From: Olivier Sessink @ 2009-12-29 23:02 UTC (permalink / raw) To: dm-crypt Heinz Diehl wrote: > On 29.12.2009, Arno Wagner wrote: > >> I don't agree. But you have to think outside of the box and use a >> separate, uncompromised boot medium that the attacker did not have >> access to. > > Sorry, but I can't see how this would help. The attacker installs a > hardware keylogger and just doesn't care. I don't see the averae script kiddie install a hardware keylogger in a modern laptop. If you have an intelligence agency after you you're screwed anyway. They'll use a tempest attack or something so you won't even notice that you gave them your password (I don't have a tempest proof room in my house, perhaps other people have?). So it's a matter of security management. For highly confidential data you need ($$$) a tempest proof environment with armed guards. For only slightly sensitive data, simple disk encryption and some measures against script kiddies are usually enough. Olivier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 21:15 ` Heinz Diehl 2009-12-29 23:02 ` Olivier Sessink @ 2009-12-30 2:52 ` Arno Wagner 2009-12-30 14:16 ` Heinz Diehl 1 sibling, 1 reply; 25+ messages in thread From: Arno Wagner @ 2009-12-30 2:52 UTC (permalink / raw) To: dm-crypt On Tue, Dec 29, 2009 at 10:15:36PM +0100, Heinz Diehl wrote: > On 29.12.2009, Arno Wagner wrote: > > > I don't agree. But you have to think outside of the box and use a > > separate, uncompromised boot medium that the attacker did not have > > access to. > > Sorry, but I can't see how this would help. The attacker installs a > hardware keylogger and just doesn't care. That will require a second access to the hardware. And it is a whole order of magnitude (at least) more difficult and expensive that the software attack. > It's a matter of concept: before a security solution is implemented, a > risk analysis has to be done. To have /boot on an external medium or to > store checksums of the unencrypted files on a CD/DVD/stick is fine, as > long as the risk it carries is accepted, along with the worst case scenario > under given circumstances. It's up to the operator. > > For total security, the machine is regarded compromised if access to it ever > has been granted. As a last consequence, it's impossible to detect if the > machine has been tampered with. "total security" is a meaningless concept, unless you design and manufacture all hardware components yourself, which in practce means it is a meaningless concept. Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-30 2:52 ` Arno Wagner @ 2009-12-30 14:16 ` Heinz Diehl 2009-12-30 15:34 ` Arno Wagner 0 siblings, 1 reply; 25+ messages in thread From: Heinz Diehl @ 2009-12-30 14:16 UTC (permalink / raw) To: dm-crypt On 30.12.2009, Arno Wagner wrote: > "total security" is a meaningless concept, unless you design and > manufacture all hardware components yourself, which in practce > means it is a meaningless concept. Yes, that was a bad choice of words, I realised it directly after sending the mail to the list. s/total security/max possible security under given circumstances/; ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-30 14:16 ` Heinz Diehl @ 2009-12-30 15:34 ` Arno Wagner 0 siblings, 0 replies; 25+ messages in thread From: Arno Wagner @ 2009-12-30 15:34 UTC (permalink / raw) To: dm-crypt On Wed, Dec 30, 2009 at 03:16:44PM +0100, Heinz Diehl wrote: > On 30.12.2009, Arno Wagner wrote: > > > "total security" is a meaningless concept, unless you design and > > manufacture all hardware components yourself, which in practce > > means it is a meaningless concept. > > Yes, that was a bad choice of words, I realised it directly after sending > the mail to the list. > > s/total security/max possible security under given circumstances/; Better but not quite there either. You do not need "max", you need to find the right risk balance. IT security is risk management, nothing else. First you need an attacker model and an estimation of the worth of your data/system integrity. Then you go from there. If the attacker needs to invest slighlty more than you loose from the attack (and the countermeasurer cost), you have found the right balance. This is made more difficult because you will only have estimates for most numbers. Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 20:24 ` Arno Wagner 2009-12-29 21:15 ` Heinz Diehl @ 2009-12-29 21:31 ` Hannes Erven 2009-12-29 21:41 ` Gregy 2009-12-30 2:53 ` Arno Wagner 1 sibling, 2 replies; 25+ messages in thread From: Hannes Erven @ 2009-12-29 21:31 UTC (permalink / raw) To: dm-crypt Arno Wagner schrieb: > On Tue, Dec 29, 2009 at 12:11:58AM +0100, Heinz Diehl wrote: >> "Please repeat with me: there is no way to avoid or detect backdoors if >> physical access to the machine has ever been granted." (Werner Koch on >> gnupg-users 19.02.2009 on exactly the same topic). > > I don't agree. How do you protect against e.g. a hardware key logger? You don't. -hannes ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 21:31 ` Hannes Erven @ 2009-12-29 21:41 ` Gregy 2009-12-30 2:53 ` Arno Wagner 1 sibling, 0 replies; 25+ messages in thread From: Gregy @ 2009-12-29 21:41 UTC (permalink / raw) To: Hannes Erven; +Cc: dm-crypt 2009/12/29 Hannes Erven <h.e@gmx.at>: > Arno Wagner schrieb: >> On Tue, Dec 29, 2009 at 12:11:58AM +0100, Heinz Diehl wrote: >>> "Please repeat with me: there is no way to avoid or detect backdoors if >>> physical access to the machine has ever been granted." (Werner Koch on >>> gnupg-users 19.02.2009 on exactly the same topic). >> >> I don't agree. > > How do you protect against e.g. a hardware key logger? You don't. > Well, you could set entirely new, random keymap for every boot. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 21:31 ` Hannes Erven 2009-12-29 21:41 ` Gregy @ 2009-12-30 2:53 ` Arno Wagner 1 sibling, 0 replies; 25+ messages in thread From: Arno Wagner @ 2009-12-30 2:53 UTC (permalink / raw) To: dm-crypt On Tue, Dec 29, 2009 at 10:31:16PM +0100, Hannes Erven wrote: > Arno Wagner schrieb: > > On Tue, Dec 29, 2009 at 12:11:58AM +0100, Heinz Diehl wrote: > >> "Please repeat with me: there is no way to avoid or detect backdoors if > >> physical access to the machine has ever been granted." (Werner Koch on > >> gnupg-users 19.02.2009 on exactly the same topic). > > > > I don't agree. > > How do you protect against e.g. a hardware key logger? You don't. A hardware keylogger not a backdoor at all. Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 20:28 [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd Olivier Sessink 2009-12-28 21:20 ` Luca Berra @ 2009-12-28 22:41 ` Zdenek Kaspar 2009-12-28 22:51 ` Zdenek Kaspar 2009-12-28 22:57 ` Heinz Diehl 2009-12-29 20:18 ` Arno Wagner 3 siblings, 1 reply; 25+ messages in thread From: Zdenek Kaspar @ 2009-12-28 22:41 UTC (permalink / raw) To: dm-crypt Dne 28.12.2009 21:28, Olivier Sessink napsal(a): > Hi all, > > I was wondering if there are some 'common' ways to prevent tampering > with the unencrypted kernel and initrd in the case of an encrypted root > filesystem? If somebody has access to your computer they could change > the initrd and kernel and make your encryption useless (e.g. store the > password in /boot, or send it over the network, etc. etc.). It shouldn't > be too hard to make this at least very difficult. > > I was thinking along the lines of: > - check a checksum of the MBR and partition table > - check a checksum of the complete /boot filesystem > - check the pointers in the kernel system call table (detects many > rootkits) > - check for virtualization (any virtual rootkits) > - ...? any better ideas how to detect tampering? > > Obviously all of this should be done by a binary inside the encrypted > filesystem - everything in /boot (kernel and initrd) is not to be > trusted. That means we can only warn the user after the password is > probably gone already, but this is better than nothing. > > Any comments, ideas or links ? > > regards, > Olivier Hi Olivier, If you think someone had access to your hardware then you should avoid running untrusted/modified kernel, initrd and bootloader at all. The checksum approach looks fine to me when it's done with binaries from trusted LiveCD/USB environment - http://www.sysresccd.org/ For /boot and bootloader might be efficient: $ dd ... | sha512sum If you're really paranoid then you should remove the drive and investigate on another machine....... annoying. HTH, Z. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 22:41 ` Zdenek Kaspar @ 2009-12-28 22:51 ` Zdenek Kaspar 0 siblings, 0 replies; 25+ messages in thread From: Zdenek Kaspar @ 2009-12-28 22:51 UTC (permalink / raw) To: dm-crypt Dne 28.12.2009 23:41, Zdenek Kaspar napsal(a): > Dne 28.12.2009 21:28, Olivier Sessink napsal(a): >> Hi all, >> >> I was wondering if there are some 'common' ways to prevent tampering >> with the unencrypted kernel and initrd in the case of an encrypted root >> filesystem? If somebody has access to your computer they could change >> the initrd and kernel and make your encryption useless (e.g. store the >> password in /boot, or send it over the network, etc. etc.). It shouldn't >> be too hard to make this at least very difficult. >> >> I was thinking along the lines of: >> - check a checksum of the MBR and partition table >> - check a checksum of the complete /boot filesystem >> - check the pointers in the kernel system call table (detects many >> rootkits) >> - check for virtualization (any virtual rootkits) >> - ...? any better ideas how to detect tampering? >> >> Obviously all of this should be done by a binary inside the encrypted >> filesystem - everything in /boot (kernel and initrd) is not to be >> trusted. That means we can only warn the user after the password is >> probably gone already, but this is better than nothing. >> >> Any comments, ideas or links ? >> >> regards, >> Olivier > > Hi Olivier, > > If you think someone had access to your hardware then you should avoid > running untrusted/modified kernel, initrd and bootloader at all. > > The checksum approach looks fine to me when it's done with binaries from > trusted LiveCD/USB environment - http://www.sysresccd.org/ > > For /boot and bootloader might be efficient: > $ dd ... | sha512sum > > If you're really paranoid then you should remove the drive and > investigate on another machine....... annoying. > > HTH, Z. > > _______________________________________________ > dm-crypt mailing list > dm-crypt@saout.de > http://www.saout.de/mailman/listinfo/dm-crypt Just check the critical files on /boot + bootloader. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 20:28 [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd Olivier Sessink 2009-12-28 21:20 ` Luca Berra 2009-12-28 22:41 ` Zdenek Kaspar @ 2009-12-28 22:57 ` Heinz Diehl 2009-12-29 20:18 ` Arno Wagner 3 siblings, 0 replies; 25+ messages in thread From: Heinz Diehl @ 2009-12-28 22:57 UTC (permalink / raw) To: dm-crypt On 28.12.2009, Olivier Sessink wrote: > I was wondering if there are some 'common' ways to prevent tampering > with the unencrypted kernel and initrd in the case of an encrypted > root filesystem? If somebody has access to your computer they could > change the initrd and kernel and make your encryption useless If anyone ever gets physical access to your machine, all bets are off. There's no way for you to proof that your machine has not been tampered with. You can have a checksum of the contents in /boot, the MBR or whatsoever, you name it. The attacker won't care and install a hardware keylogger or whatever suits best. ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-28 20:28 [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd Olivier Sessink ` (2 preceding siblings ...) 2009-12-28 22:57 ` Heinz Diehl @ 2009-12-29 20:18 ` Arno Wagner 2009-12-29 22:52 ` Olivier Sessink 3 siblings, 1 reply; 25+ messages in thread From: Arno Wagner @ 2009-12-29 20:18 UTC (permalink / raw) To: dm-crypt On Mon, Dec 28, 2009 at 09:28:43PM +0100, Olivier Sessink wrote: > Hi all, > > I was wondering if there are some 'common' ways to prevent tampering > with the unencrypted kernel and initrd in the case of an encrypted root > filesystem? No. Any "common" way would automatically become ineffective. Your only chance is to do something unexpected and hence uncommon. > If somebody has access to your computer they could change > the initrd and kernel and make your encryption useless (e.g. store the > password in /boot, or send it over the network, etc. etc.). It shouldn't > be too hard to make this at least very difficult. It is theoretically impossible and practically very hard. > I was thinking along the lines of: > - check a checksum of the MBR and partition table => Fake the check > - check a checksum of the complete /boot filesystem => See above > - check the pointers in the kernel system call table (detects many rootkits) => See above. > - check for virtualization (any virtual rootkits) => Very hard and the check can be removed. > - ...? any better ideas how to detect tampering? > > Obviously all of this should be done by a binary inside the encrypted > filesystem - everything in /boot (kernel and initrd) is not to be > trusted. That means we can only warn the user after the password is > probably gone already, but this is better than nothing. > > Any comments, ideas or links ? With an attacker competent enough to do this type of tampering you are screwed as long as you rely on the on-disk information. But here is something easy: Use an external boot medium for verification, e.g. a memory-stick installed Knoppix with some custom check script you call manually or automatically. Keep the external checker system separate from the laptop. With that the ideas you outlined above would work. You can, e.g., compary MBR and files in /boot to checksums or good copies. I currently have an 8GB SuperTalent Stick with the Knoppix DVD installed on it in my vallet. Adding packages and your own data/programs is possible as it has a writable filesystem (writes get ovelayed on top of the read-only DVD image). Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 20:18 ` Arno Wagner @ 2009-12-29 22:52 ` Olivier Sessink 2009-12-30 2:56 ` Arno Wagner 0 siblings, 1 reply; 25+ messages in thread From: Olivier Sessink @ 2009-12-29 22:52 UTC (permalink / raw) To: dm-crypt Arno Wagner wrote: > On Mon, Dec 28, 2009 at 09:28:43PM +0100, Olivier Sessink wrote: >> Hi all, >> >> I was wondering if there are some 'common' ways to prevent tampering >> with the unencrypted kernel and initrd in the case of an encrypted root >> filesystem? > > No. Any "common" way would automatically become ineffective. Your > only chance is to do something unexpected and hence uncommon. true. >> If somebody has access to your computer they could change >> the initrd and kernel and make your encryption useless (e.g. store the >> password in /boot, or send it over the network, etc. etc.). It shouldn't >> be too hard to make this at least very difficult. > > It is theoretically impossible and practically very hard. That sentence was incorrect, read "make this at least very difficult to do undetected". I know there is no way to stop the password getting stolen, but it should be pretty hard to do this undetected. >> I was thinking along the lines of: >> - check a checksum of the MBR and partition table > => Fake the check that is practically very hard. As attacker you only have access to to the unencrypted /boot the first time. So even if you know there will be an MBR check, you have to change the kernel to provide the original MBR data when the first sectors of the harddisk is requested by some binary. For the MBR this might be feasible, but for the complete /boot device this might become more problematic. The attacker cannot change the binary that does the check because the attacker doesn't know which one it is, and he doesn't know what it looks like (it's in the encrypted image). Too hard for a script kiddie. Or am I overlooking something obvious? [..] > With an attacker competent enough to do this type of tampering google and follow the recipe how to change the initrd? > you are screwed as long as you rely on the on-disk information. with a determined attacker (does not need to be a hacker) you are screwed anyway (tempest attacks, physical keyloggers, camera's, drugs, blackmail etc.). Encryption doesn't matter if they want your data. > But here is something easy: Use an external boot medium for > verification, e.g. a memory-stick installed Knoppix with some > custom check script you call manually or automatically. Keep > the external checker system separate from the laptop. With > that the ideas you outlined above would work. You can, e.g., > compary MBR and files in /boot to checksums or good copies. > I currently have an 8GB SuperTalent Stick with the Knoppix > DVD installed on it in my vallet. Adding packages and your own > data/programs is possible as it has a writable filesystem > (writes get ovelayed on top of the read-only DVD image). I am aware of this concept, but it just moves the problem to the usb image (somebody sneaks into your hotel room at night ....). And again if somebody did change the usb image there is no way you are going to find out, even if they did something that could have been detected very easily such as a changed initrd. I don't expect our "regular users" to carry a very good safe with them day and night (and a safe can be picked as well). Olivier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-29 22:52 ` Olivier Sessink @ 2009-12-30 2:56 ` Arno Wagner 2009-12-30 10:48 ` Olivier Sessink 0 siblings, 1 reply; 25+ messages in thread From: Arno Wagner @ 2009-12-30 2:56 UTC (permalink / raw) To: dm-crypt On Tue, Dec 29, 2009 at 11:52:37PM +0100, Olivier Sessink wrote: > Arno Wagner wrote: [...] >> But here is something easy: Use an external boot medium for >> verification, e.g. a memory-stick installed Knoppix with some >> custom check script you call manually or automatically. Keep the >> external checker system separate from the laptop. With >> that the ideas you outlined above would work. You can, e.g., >> compary MBR and files in /boot to checksums or good copies. >> I currently have an 8GB SuperTalent Stick with the Knoppix >> DVD installed on it in my vallet. Adding packages and your own >> data/programs is possible as it has a writable filesystem (writes get >> ovelayed on top of the read-only DVD image). > > I am aware of this concept, but it just moves the problem to the usb > image (somebody sneaks into your hotel room at night ....). And again if > somebody did change the usb image there is no way you are going to find > out, even if they did something that could have been detected very > easily such as a changed initrd. I don't expect our "regular users" to > carry a very good safe with them day and night (and a safe can be picked > as well). Simple again: Wear it on a chain around your neck. Anybody that can beat this likely can beat any and all other security measures you can implement. Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-30 2:56 ` Arno Wagner @ 2009-12-30 10:48 ` Olivier Sessink 2009-12-30 15:28 ` Arno Wagner 0 siblings, 1 reply; 25+ messages in thread From: Olivier Sessink @ 2009-12-30 10:48 UTC (permalink / raw) To: dm-crypt Arno Wagner wrote: > On Tue, Dec 29, 2009 at 11:52:37PM +0100, Olivier Sessink wrote: >> Arno Wagner wrote: > [...] >>> But here is something easy: Use an external boot medium for >>> verification, e.g. a memory-stick installed Knoppix with some >>> custom check script you call manually or automatically. Keep the >>> external checker system separate from the laptop. With >>> that the ideas you outlined above would work. You can, e.g., >>> compary MBR and files in /boot to checksums or good copies. >>> I currently have an 8GB SuperTalent Stick with the Knoppix >>> DVD installed on it in my vallet. Adding packages and your own >>> data/programs is possible as it has a writable filesystem (writes get >>> ovelayed on top of the read-only DVD image). >> I am aware of this concept, but it just moves the problem to the usb >> image (somebody sneaks into your hotel room at night ....). And again if >> somebody did change the usb image there is no way you are going to find >> out, even if they did something that could have been detected very >> easily such as a changed initrd. I don't expect our "regular users" to >> carry a very good safe with them day and night (and a safe can be picked >> as well). > > Simple again: Wear it on a chain around your neck. > Anybody that can beat this likely can beat any and all > other security measures you can implement. we're talking "regular users" here. You know, the ones that write passwords on pieces of paper even if you tell them not to write passwords ever down. So these users are quite a weak link in the security. So we do the best we can do that is acceptable for the end-user, and will likely work with our end-users. I think they will laugh very hard if we tell them to wear a memory-stick around their necks.. It won't work. They will leave it on their hotel room or in their luggage. Olivier ^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd 2009-12-30 10:48 ` Olivier Sessink @ 2009-12-30 15:28 ` Arno Wagner 0 siblings, 0 replies; 25+ messages in thread From: Arno Wagner @ 2009-12-30 15:28 UTC (permalink / raw) To: dm-crypt On Wed, Dec 30, 2009 at 11:48:03AM +0100, Olivier Sessink wrote: > Arno Wagner wrote: > > On Tue, Dec 29, 2009 at 11:52:37PM +0100, Olivier Sessink wrote: > >> Arno Wagner wrote: > > [...] > >>> But here is something easy: Use an external boot medium for > >>> verification, e.g. a memory-stick installed Knoppix with some > >>> custom check script you call manually or automatically. Keep the > >>> external checker system separate from the laptop. With > >>> that the ideas you outlined above would work. You can, e.g., > >>> compary MBR and files in /boot to checksums or good copies. > >>> I currently have an 8GB SuperTalent Stick with the Knoppix > >>> DVD installed on it in my vallet. Adding packages and your own > >>> data/programs is possible as it has a writable filesystem (writes get > >>> ovelayed on top of the read-only DVD image). > >> I am aware of this concept, but it just moves the problem to the usb > >> image (somebody sneaks into your hotel room at night ....). And again if > >> somebody did change the usb image there is no way you are going to find > >> out, even if they did something that could have been detected very > >> easily such as a changed initrd. I don't expect our "regular users" to > >> carry a very good safe with them day and night (and a safe can be picked > >> as well). > > > > Simple again: Wear it on a chain around your neck. > > Anybody that can beat this likely can beat any and all > > other security measures you can implement. > > we're talking "regular users" here. You know, the ones that write > passwords on pieces of paper even if you tell them not to write > passwords ever down. So these users are quite a weak link in the > security. So we do the best we can do that is acceptable for the > end-user, and will likely work with our end-users. I think they will > laugh very hard if we tell them to wear a memory-stick around their > necks.. It won't work. They will leave it on their hotel room or in > their luggage. > So your set-up is one with no user competence, no willingness to do anything that could increase physical security if it is a bit bothersome? How do you get them to use passwords in the first place? Anyways, it does not have to be around the neck, in the wallet with instructions to give/show it to nobody would also work. I don't think anything in the machine would work against a competent attacker. That means the user has to do attack detection and the bootable USB key is one of the few means to qualify a low competence user to do this. Arno -- Arno Wagner, Dr. sc. techn., Dipl. Inform., CISSP -- Email: arno@wagner.name GnuPG: ID: 1E25338F FP: 0C30 5782 9D93 F785 E79C 0296 797F 6B50 1E25 338F ---- Cuddly UI's are the manifestation of wishful thinking. -- Dylan Evans If it's in the news, don't worry about it. The very definition of "news" is "something that hardly ever happens." -- Bruce Schneier ^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2009-12-30 15:34 UTC | newest] Thread overview: 25+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-12-28 20:28 [dm-crypt] encrypted root: prevent / detect tampering with kernel / initrd Olivier Sessink 2009-12-28 21:20 ` Luca Berra 2009-12-28 21:41 ` Olivier Sessink 2009-12-28 23:11 ` Heinz Diehl 2009-12-29 10:05 ` Olivier Sessink 2009-12-29 10:23 ` [lesh] Ivan Nikolic 2009-12-29 12:25 ` Olivier Sessink 2009-12-29 12:37 ` Milan Broz 2009-12-29 20:24 ` Arno Wagner 2009-12-29 21:15 ` Heinz Diehl 2009-12-29 23:02 ` Olivier Sessink 2009-12-30 2:52 ` Arno Wagner 2009-12-30 14:16 ` Heinz Diehl 2009-12-30 15:34 ` Arno Wagner 2009-12-29 21:31 ` Hannes Erven 2009-12-29 21:41 ` Gregy 2009-12-30 2:53 ` Arno Wagner 2009-12-28 22:41 ` Zdenek Kaspar 2009-12-28 22:51 ` Zdenek Kaspar 2009-12-28 22:57 ` Heinz Diehl 2009-12-29 20:18 ` Arno Wagner 2009-12-29 22:52 ` Olivier Sessink 2009-12-30 2:56 ` Arno Wagner 2009-12-30 10:48 ` Olivier Sessink 2009-12-30 15:28 ` Arno Wagner
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.