Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1660702
| From | Theodore Ts'o <tytso@mit.edu> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use |
| Date | 2017-06-08 05:10 +0200 |
| Message-ID | <tPVZD-76l-9@gated-at.bofh.it> (permalink) |
| References | <tPqM9-3tE-3@gated-at.bofh.it> <tPqMa-3tE-27@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, Jun 06, 2017 at 07:48:03PM +0200, Jason A. Donenfeld wrote: > This protocol uses lots of complex cryptography that relies on securely > generated random numbers. Thus, it's important that the RNG is actually > seeded before use. Fortuantely, it appears we're always operating in > process context (there are many GFP_KERNEL allocations and other > sleeping operations), and so we can simply demand that the RNG is seeded > before we use it. > > We take two strategies in this commit. The first is for the library code > that's called from other modules like hci or mgmt: here we just change > the call to get_random_bytes_wait, and return the result of the wait to > the caller, along with the other error codes of those functions like > usual. Then there's the SMP protocol handler itself, which makes many > many many calls to get_random_bytes during different phases. For this, > rather than have to change all the calls to get_random_bytes_wait and > propagate the error result, it's actually enough to just put a single > call to wait_for_random_bytes() at the beginning of the handler, to > ensure that all the subsequent invocations are safe, without having to > actually change them. Likewise, for the random address changing > function, we'd rather know early on in the function whether the RNG > initialization has been interrupted, rather than later, so we call > wait_for_random_bytes() at the top, so that later on the call to > get_random_bytes() is acceptable. Do we need to do all of this? Bluetooth folks, is it fair to assume that hci_power_on() has to be called before any bluetooth functions can be done? If so, adding a wait_for_random_bytes() in hci_power_on() might be all that is necessary. - Ted
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use Theodore Ts'o <tytso@mit.edu> - 2017-06-08 05:10 +0200
Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use Marcel Holtmann <marcel@holtmann.org> - 2017-06-08 07:10 +0200
Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use "Jason A. Donenfeld" <Jason@zx2c4.com> - 2017-06-08 14:10 +0200
Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use "Jason A. Donenfeld" <Jason@zx2c4.com> - 2017-06-08 14:10 +0200
Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use Marcel Holtmann <marcel@holtmann.org> - 2017-06-08 19:10 +0200
Re: [PATCH v4 12/13] bluetooth/smp: ensure RNG is properly seeded before ECDH use "Jason A. Donenfeld" <Jason@zx2c4.com> - 2017-06-08 19:40 +0200
[PATCH] bluetooth: ensure RNG is properly seeded before powerup "Jason A. Donenfeld" <Jason@zx2c4.com> - 2017-06-09 03:20 +0200
csiph-web