[149342] in cryptography@c2.net mail archive
Re: [Cryptography] cheap sources of entropy
daemon@ATHENA.MIT.EDU (Jerry Leichter)
Mon Feb  3 19:38:39 2014
X-Original-To: cryptography@metzdowd.com
From: Jerry Leichter <leichter@lrw.com>
In-Reply-To: <7A97CB60-3422-405A-A5F5-DC7D6E1B18C5@gmail.com>
Date: Mon, 3 Feb 2014 18:12:40 -0500
To: John Kelsey <crypto.jmk@gmail.com>
Cc: Bill Stewart <bill.stewart@pobox.com>,
	"cryptography@metzdowd.com" <cryptography@metzdowd.com>,
	John Gilmore <gnu@toad.com>, "James A. Donald" <Jamesd@echeque.com>
Errors-To: cryptography-bounces+crypto.discuss=bloom-picayune.mit.edu@metzdowd.com
--===============5667364824820455480==
Content-Type: multipart/signed; boundary="Apple-Mail=_A6685C97-11C8-4C68-9C2C-8FA24CF4BCC4"; protocol="application/pkcs7-signature"; micalg=sha1
--Apple-Mail=_A6685C97-11C8-4C68-9C2C-8FA24CF4BCC4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii
On Feb 3, 2014, at 12:14 PM, John Kelsey <crypto.jmk@gmail.com> wrote:
>> So, if an attacker running malware in a hypervisor (or SMM) knew you
>> were depending on disk drive timings for the random numbers that
>> create your encryption keys, how easily could they attack you by
>> rigidizing those interrupt timings, e.g. delaying your virtual =
machine
>> interrupts at to the next even 1/60th of a second?
> Maybe this is just my lack of understanding coming out, but I'm having =
a hard time seeing how any crypto code is going to remain secure if the =
hypervisor controlling the VM it's running on is under an attacker's =
control. =20
No, you've got it right.  A hypervisor has complete control over =
everything the guest OS can see.  It controls the horizontal; it =
controls the vertical.  :-)  While a hypervisor could not realistic =
monitor every instruction a guest executes - the slowdown would be =
recognized rapidly - it does have control over every interaction the =
guest has with the outside world.  And that includes, of course, program =
loading, paging, and so on.
In general*, every layer of the abstraction stack can completely subvert =
every layer above it.  A user-mode process is completely at the mercy of =
the OS; the OS is completely at the mercy of the hypervisor; the =
hypervisor is completely at the mercy of the microcode; the microcode is =
completely at the mercy of the hardware.  (Everything above the =
microcode is also completely at the mercy of System Management Mode, =
which doesn't fit exactly into this hierarchy - but in some sense is =
really "below" the hypervisor.  Similarly, you have to consider attacks =
on pieces of hardware other than the CPU - see the paper recently =
referred to here showing how to "spike" disk drive code.)
*The "in general" isn't quite the case.  There's some very interesting =
recent work on how to use the virtualization hardware to protect =
processes from malicious OS's.  Very clever stuff.  Basically, you =
arrange that any given page is set in the hardware so that the process =
XOR the OS has access to it.  When the OS needs access, you encrypt and =
MAC the page before resetting the page tables; when the process needs =
access back, you check the MAC and decrypt.  You similarly protect =
anything that gets written to disk.  So the OS can manage the processes =
- create them, give them memory, map code into them - but it can neither =
read nor modify the code that gets run or anything that code actually =
does in memory.  (There are tons more details.  I can't immediately lay =
my hands on the paper I read, but =
https://www.usenix.org/legacy/events/hotsec08/tech/full_papers/ports/ports=
_html/is an overview from some members of the group working on this.)
The reason I mention this is to raise the question:  Can similar ideas =
be applied at other levels of the abstraction hierarchy?  Until I saw =
these papers, I would have dismissed the idea that one could protect a =
process from a malicious OS.  Granted, you now have to trust the =
virtualization hardware and the protection code that uses it.  But (a) =
you always end up trusting *something*; (b) the pieces you have to trust =
are much smaller (hence much mor amenable to verification) than a full =
OS.
                                                        -- Jerry
--Apple-Mail=_A6685C97-11C8-4C68-9C2C-8FA24CF4BCC4
Content-Disposition: attachment;
	filename=smime.p7s
Content-Type: application/pkcs7-signature;
	name=smime.p7s
Content-Transfer-Encoding: base64
MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIO5DCCBJ0w
ggOFoAMCAQICEDQ96SusJzT/j8s0lPvMcFQwDQYJKoZIhvcNAQEFBQAwbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0
d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9vdDAeFw0wNTA2MDcwODA5MTBa
Fw0yMDA1MzAxMDQ4MzhaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNh
bHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0
dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJzdC1DbGllbnQgQXV0
aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsjmF
pPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIxB8dOtINknS4p1aJk
xIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8om+rWV6lL8/K2m2q
L+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHGTPNpsaguG7bUMSAs
vIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7NlyP0e03RiqhjKaJMe
oYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4H0MIHxMB8GA1UdIwQYMBaAFK29mHo0tCb3
+sQmVO8DveAky1QaMB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTAOBgNVHQ8BAf8EBAMC
AQYwDwYDVR0TAQH/BAUwAwEB/zARBgNVHSAECjAIMAYGBFUdIAAwRAYDVR0fBD0wOzA5oDegNYYz
aHR0cDovL2NybC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMDUGCCsG
AQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG
9w0BAQUFAAOCAQEAAbyc42MosPMxAcLfe91ioAGdIzEPnJJzU1HqH0z61p/Eyi9nfngzD3QWuZGH
kfWKJvpkcADYHvkLBGJQh5OB1Nr1I9s0u4VWtHA0bniDNx6FHMURFZJfhxe9rGr98cLRzIlfsXzw
PlHyNfN87GCYazor4O/fs32G67Ub9VvsonyYE9cAULnRLXPeA3h04QWFMV7LmrmdlMa5lDd1ctxE
+2fo8PolHlKn2iXpR+CgxzygTrEKNvt3SJ/vl4r7tP7jlBSog7xcLT/SYHFg7sJxggzpiDbj2iC0
o6BsqpZLuICOdcpJB/Y7FLrf3AXZn9vgsuZNoHgm5+ctbn9fxh6IFTCCBRowggQCoAMCAQICEG0Z
6qcZT2ozIuYiMnqqcd4wDQYJKoZIhvcNAQEFBQAwga4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJV
VDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29y
azEhMB8GA1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3QuY29tMTYwNAYDVQQDEy1VVE4tVVNFUkZp
cnN0LUNsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgRW1haWwwHhcNMTEwNDI4MDAwMDAwWhcNMjAw
NTMwMTA0ODM4WjCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQ
MA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENP
TU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAJKEhFtLV5jUXi+LpOFAyKNTWF9mZfEyTvefMn1V0HhMVbdC
lOD5J3EHxcZppLkyxPFAGpDMJ1Zifxe1cWmu5SAb5MtjXmDKokH2auGj/7jfH0htZUOMKi4rYzh3
37EXrMLaggLW1DJq1GdvIBOPXDX65VSAr9hxCh03CgJQU2yVHakQFLSZlVkSMf8JotJM3FLb3uJA
AVtIaN3FSrTg7SQfOq9xXwfjrL8UO7AlcWg99A/WF1hGFYE8aIuLgw9teiFX5jSw2zJ+40rhpVJy
ZCaRTqWSD//gsWD9Gm9oUZljjRqLpcxCm5t9ImPTqaD8zp6Q30QZ9FxbNboW86eb/8ECAwEAAaOC
AUswggFHMB8GA1UdIwQYMBaAFImCZ33EnSZwAEu0UEh83j2uBG59MB0GA1UdDgQWBBR6E04AdFvG
eGNkJ8Ev4qBbvHnFezAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADARBgNVHSAE
CjAIMAYGBFUdIAAwWAYDVR0fBFEwTzBNoEugSYZHaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VU
Ti1VU0VSRmlyc3QtQ2xpZW50QXV0aGVudGljYXRpb25hbmRFbWFpbC5jcmwwdAYIKwYBBQUHAQEE
aDBmMD0GCCsGAQUFBzAChjFodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVROQWRkVHJ1c3RDbGll
bnRfQ0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3
DQEBBQUAA4IBAQCF1r54V1VtM39EUv5C1QaoAQOAivsNsv1Kv/avQUn1G1rF0q0bc24+6SZ85kyY
wTAo38v7QjyhJT4KddbQPTmGZtGhm7VNm2+vKGwdr+XqdFqo2rHA8XV6L566k3nK/uKRHlZ0sviN
0+BDchvtj/1gOSBH+4uvOmVIPJg9pSW/ve9g4EnlFsjrP0OD8ODuDcHTzTNfm9C9YGqzO/761Mk6
PB/tm/+bSTO+Qik5g+4zaS6CnUVNqGnagBsePdIaXXxHmaWbCG0SmYbWXVcHG6cwvktJRLiQfsrR
eTjrtDP6oDpdJlieYVUYtCHVmdXgQ0BCML7qpeeU0rD+83X5f27nMIIFITCCBAmgAwIBAgIQbDkx
1BIhYvJPPyuqUq3TXjANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExp
bWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBF
bWFpbCBDQTAeFw0xMzEyMTIwMDAwMDBaFw0xNDEyMTIyMzU5NTlaMCExHzAdBgkqhkiG9w0BCQEW
EGxlaWNodGVyQGxydy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDcxkWWIpx9
1jeZsY58KmdNT9YcnXrfzFTzt0FGBkQ+kHKX1CqirfmGXSK2dGGZG1pkcnQYC/xYjWV/EuKM+34v
mvrmqpYqP6ZcvTE5xEHhcjSQTVGtFRH/ysswm6ckEIhlQ+szhGMkE9DGiMN+ExoDdGXW0vkjIxvm
YlZtI4ohw0plXB5jBz+JXR+uWovnvRrYVNujXV8P1f4oGHEiqS++ThsDkdrwgUAuVt3Vd+AR2b9u
4p7BBg2ifK+nnpB9Qvp8nJu4byIs86J07k5NVjprMUrZ4zpA1GuVIavFwntDIVueGRpi4jwtr/OE
NQOOfJ+n8hp2rs0LfrRWH+dRQW5jAgMBAAGjggHgMIIB3DAfBgNVHSMEGDAWgBR6E04AdFvGeGNk
J8Ev4qBbvHnFezAdBgNVHQ4EFgQUGC6zwEozq6+Xt9SC3MUWhApg0oUwDgYDVR0PAQH/BAQDAgWg
MAwGA1UdEwEB/wQCMAAwIAYDVR0lBBkwFwYIKwYBBQUHAwQGCysGAQQBsjEBAwUCMBEGCWCGSAGG
+EIBAQQEAwIFIDBGBgNVHSAEPzA9MDsGDCsGAQQBsjEBAgEBATArMCkGCCsGAQUFBwIBFh1odHRw
czovL3NlY3VyZS5jb21vZG8ubmV0L0NQUzBXBgNVHR8EUDBOMEygSqBIhkZodHRwOi8vY3JsLmNv
bW9kb2NhLmNvbS9DT01PRE9DbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3VyZUVtYWlsQ0EuY3Js
MIGIBggrBgEFBQcBAQR8MHowUgYIKwYBBQUHMAKGRmh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NP
TU9ET0NsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcnQwJAYIKwYBBQUHMAGG
GGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAbBgNVHREEFDASgRBsZWljaHRlckBscncuY29tMA0G
CSqGSIb3DQEBBQUAA4IBAQBDmBD7c/0z1sApyjMF3WMva4b2Kid9frR+p1+BhKtTOYXQ1NOYF5bb
Qm/c0mEQ0JGaNA64x2ujfjnfwaKt9BPa4FP2Ffvvod5uu8pasxuOR07iODBx8b78vqXOS4fUsdE+
Ial+ALtsAQcjdh8TRWN+myFcSf0qQH/7k3IODp2eVy4i4mHEDvHwMoUWaIsUACOoHgpxbqHqDyXg
c7uey1TH1F+CjcSzyycEP8dAzxuh7npov0IWFniY/y6Qm/ZSeTPU6CpzH29t/IZiJUfzgfzYQnR1
DED4ZMBQ8BjAZdpdqz7F00Vudwsojrj7qqreBVN1D7MAjpoevnq0r5qjomM0MYIDqzCCA6cCAQEw
gagwgZMxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcT
B1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xp
ZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEGw5MdQSIWLyTz8rqlKt014w
CQYFKw4DAhoFAKCCAdcwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN
MTQwMjAzMjMxMjQ0WjAjBgkqhkiG9w0BCQQxFgQU19/qAp7r4W1+KkLB2JnBIm6RTk8wgbkGCSsG
AQQBgjcQBDGBqzCBqDCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3Rl
cjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMT
MENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQQIQbDkx1BIh
YvJPPyuqUq3TXjCBuwYLKoZIhvcNAQkQAgsxgauggagwgZMxCzAJBgNVBAYTAkdCMRswGQYDVQQI
ExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBD
QSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1
cmUgRW1haWwgQ0ECEGw5MdQSIWLyTz8rqlKt014wDQYJKoZIhvcNAQEBBQAEggEAH1nn7/64xa+e
V8T2y+e6YfB9K6sRrs19dIts+BuJpeS4oEdDX3CtW/T9Clo9OZjM2AJZcfh8VJ6/QY/QOqZ+UZSM
s7tDm3RKmr4jUpASzcdcUZ3VXTD0S8BG3zS8fvZkgy3lu46ydjtG8dURZAJiXRYQaf/Y+IR2P/Tr
/lPXW5TmVYFBvmMASXihA5PVdb49mq4eSraZSivnj8cO1I0TkqeR6DcUZaXJ/80AUARW5mbTbreX
xWt4HTAuiXg8Xw22nEcrjJAn5qdFYEGI6jsIZNS/ygKBewLrJajmmXYawJsWi9g1OkIzany8UV2S
+q1brSl3jIq+TiyOmSfwg4T8rQAAAAAAAA==
--Apple-Mail=_A6685C97-11C8-4C68-9C2C-8FA24CF4BCC4--
--===============5667364824820455480==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
The cryptography mailing list
cryptography@metzdowd.com
http://www.metzdowd.com/mailman/listinfo/cryptography
--===============5667364824820455480==--