From: Stephan Mueller <smueller@chronox.de>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org
Subject: crypto: zeroization of sensitive data in af_alg
Date: Sun, 09 Nov 2014 23:33:52 +0100 [thread overview]
Message-ID: <1979092.odOtqL46qU@tachyon.chronox.de> (raw)
Hi Herbert,
while working on the AF_ALG interface, I saw no active zeroizations of memory
that may hold sensitive data that is maintained outside the kernel crypto API
cipher handles. I think the following memory segments fall under that
category:
* message digest
* IV
* plaintext / ciphertext handed in by consumer
* ciphertext / plaintext that is send back to the consumer
May I ask whether such zeroizations are present? At least I did not find it.
If we conclude that there is a need for adding such zeroizations, I checked
the code for the appropriate locations:
I think I found the location for the first one: hash_sock_destruct that should
be enhanced with a memset(0) of ctx->result. I have a patch ready which is
tested and works.
For the IV, I think I found the spot as well: skcipher_sock_destruct. This
function should be enhanced with a memset(0) of ctx->iv. Again, I have a patch
ready which is tested and works.
However, I am failing to find the right spot to add a zeroization for the
latter one, i.e. the code that handles the pages send in by the user or the
pages that are returned by the crypto API. Initially I thought
skcipher_pull_sgl is a good spot for the symmetric ciphers as it evicts the
used pages out of the scope of the kernel crypto API. I added a
clear_page(sg_page(sg+1)) as well as memset(sg_page(sg+1), 0, plen) right
before the put_page call. All that I got in return was a BUG() from the memory
management layer.
Then I tried the same in af_alg_free_sg() as this function is used by
algif_hash.c -- with the same result.
That makes me wonder: where should such a zeroization call be added?
Thanks
--
Ciao
Stephan
next reply other threads:[~2014-11-10 7:53 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-09 22:33 Stephan Mueller [this message]
2014-11-10 14:05 ` crypto: zeroization of sensitive data in af_alg Herbert Xu
2014-11-11 2:06 ` Stephan Mueller
2014-11-11 2:53 ` Herbert Xu
2014-11-11 2:55 ` Sandy Harris
2014-11-11 4:16 ` Stephan Mueller
2014-11-11 4:19 ` Herbert Xu
2014-11-11 9:19 ` Daniel Borkmann
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=1979092.odOtqL46qU@tachyon.chronox.de \
--to=smueller@chronox.de \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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