From: Kalle Valo <kvalo@codeaurora.org>
To: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Emil Lenngren <emil.lenngren@gmail.com>,
Emmanuel Grumbach <egrumbach@gmail.com>,
Kees Cook <keescook@chromium.org>,
"Jason A. Donenfeld" <Jason@zx2c4.com>,
LKML <linux-kernel@vger.kernel.org>,
"kernel-hardening\@lists.openwall.com"
<kernel-hardening@lists.openwall.com>,
Anna Schumaker <anna.schumaker@netapp.com>,
David Howells <dhowells@redhat.com>,
David Safford <safford@us.ibm.com>,
"David S. Miller" <davem@davemloft.net>,
Gilad Ben-Yossef <gilad@benyossef.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Gustavo Padovan <gustavo@padovan.org>,
"J. Bruce Fields" <bfields@fieldses.org>,
Jeff Layton <jlayton@poochiereds.net>,
Johan Hedberg <johan.hedberg@gmail.com>,
Johannes Berg <johannes@sipsolutions.net>,
Marcel Holtmann <marcel@holtmann.org>,
Mimi Zohar <zoha r@linux.vnet.ibm.com>,
Trond Myklebust <trond.myklebust@primarydata.com>,
keyrings@vger.kernel.o
Subject: Re: [PATCH 0/6] Constant Time Memory Comparisons Are Important
Date: Mon, 12 Jun 2017 16:46:47 +0300 [thread overview]
Message-ID: <87lgox8gjc.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <5595d4bc-a43e-7a89-eb86-fa77556cd7af@broadcom.com> (Arend van Spriel's message of "Mon, 12 Jun 2017 09:33:24 +0200")
Arend van Spriel <arend.vanspriel@broadcom.com> writes:
> On 6/11/2017 11:30 PM, Emil Lenngren wrote:
>> 2017-06-11 22:48 GMT+02:00 Emmanuel Grumbach <egrumbach@gmail.com>:
>>> On Sun, Jun 11, 2017 at 4:36 PM, Kees Cook <keescook@chromium.org> wrote:
>>>>
>>>> On Sun, Jun 11, 2017 at 1:13 AM, Kalle Valo <kvalo@codeaurora.org> wrote:
>>>>> "Jason A. Donenfeld" <Jason@zx2c4.com> writes:
>>>>>
>>>>>> Whenever you're comparing two MACs, it's important to do this using
>>>>>> crypto_memneq instead of memcmp. With memcmp, you leak timing information,
>>>>>> which could then be used to iteratively forge a MAC.
>>>>>
>>>>> Do you have any pointers where I could learn more about this?
>>>>
>>>> While not using C specifically, this talks about the problem generally:
>>>> https://www.chosenplaintext.ca/articles/beginners-guide-constant-time-cryptography.html
>>>>
>>>
>>> Sorry for the stupid question, but the MAC address is in plaintext in
>>> the air anyway or easily accessible via user space tools. I fail to
>>> see what it is so secret about a MAC address in that code where that
>>> same MAC address is accessible via myriads of ways.
>>
>> I think you're mixing up Media Access Control (MAC) addresses with
>> Message Authentication Code (MAC). The second one is a cryptographic
>> signature of a message.
>
> While this may be obvious to those who are in the know this mixup is
> easily made outside the crypto domain and especially in the (wireless)
> networking domain (my mind wandered towards the same error path).
I did realise that this was about Message Authentication Code (yay!) but
I got lost because I thought this is somehow related to timestamps :)
Thanks to Kees I now understand this is about revealing execution time
to the attacker, not timestamps or anything like that.
> As this series is touching stuff outside crypto it is good to be
> explicit and not use such abbreviations that can be misinterpreted.
> The article Kees referred to is also useful to get into the proper
> context here and at least worth mentioning this or other useful
> references in the cover letter.
And the kernel documentation we have is not really helping much:
/**
* crypto_memneq - Compare two areas of memory without leaking
* timing information.
*
* @a: One area of memory
* @b: Another area of memory
* @size: The size of the area.
*
* Returns 0 when data is equal, 1 otherwise.
*/
For most people "leaking timing information" does not tell much. Adding
a sentence or two _why_ this function should be used would be very
helpful.
--
Kalle Valo
next prev parent reply other threads:[~2017-06-12 13:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-10 2:59 [PATCH 0/6] Constant Time Memory Comparisons Are Important Jason A. Donenfeld
2017-06-10 2:59 ` [PATCH 2/6] net/ipv6: use constant time memory comparison for mac Jason A. Donenfeld
2017-06-11 8:13 ` [PATCH 0/6] Constant Time Memory Comparisons Are Important Kalle Valo
[not found] ` <878tkzq6wi.fsf-5ukZ45wKbUHoml4zekdYB16hYfS7NtTn@public.gmane.org>
2017-06-11 13:36 ` Kees Cook
2017-06-11 20:48 ` Emmanuel Grumbach
[not found] ` <CANUX_P2b0Bx+-E_OBQ0reGW0=d6819qc=r83K0kTv0xMo8mtLQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-11 21:30 ` Emil Lenngren
[not found] ` <CAO1O6see6yDr-hDVNPi9Kv9wO6p-98w7YhsnnwnVOVCSEGVksw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-12 5:03 ` Emmanuel Grumbach
2017-06-12 7:33 ` Arend van Spriel
2017-06-12 13:46 ` Kalle Valo [this message]
[not found] ` <20170610025912.6499-1-Jason-OnJsPKxuuEcAvxtiuMwx3w@public.gmane.org>
2017-06-11 21:06 ` Stephan Müller
2017-06-11 21:21 ` Jason A. Donenfeld
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lgox8gjc.fsf@kamboji.qca.qualcomm.com \
--to=kvalo@codeaurora.org \
--cc=Jason@zx2c4.com \
--cc=anna.schumaker@netapp.com \
--cc=arend.vanspriel@broadcom.com \
--cc=bfields@fieldses.org \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=egrumbach@gmail.com \
--cc=emil.lenngren@gmail.com \
--cc=gilad@benyossef.com \
--cc=gregkh@linuxfoundation.org \
--cc=gustavo@padovan.org \
--cc=jlayton@poochiereds.net \
--cc=johan.hedberg@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=safford@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox