Re: [PATCH ima-evm-utils v3] Use secure heap for private keys and passwords

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mimi,

On Wed, Aug 25, 2021 at 07:39:30AM -0400, Mimi Zohar wrote:
> Hi Vitaly,
> 
> On Sun, 2021-08-22 at 03:10 +0300, Vitaly Chikunov wrote:
> > After CRYPTO_secure_malloc_init OpenSSL will store private keys 
> 
> ^and passwords

No, it meant openssl automatically will handle private keys (and other
internal private data) in secure heap.

Handling of passwords in openssl's secure heap we do ourselves. I can
extend commit message about this.

> > in
> > secure heap. This facility is only available since OpenSSL_1_1_0-pre1.
> > 
> > Signed-off-by: Vitaly Chikunov <vt@xxxxxxxxxxxx>
> 
> Initially we started out discussing ways of protecting passwords, which
> this patch does.  Thank you!  I'm not sure, however, it is protecting
> the private keys.  Does read_priv_pkey()  also use the secure heap or
> is PEM_read_PrivateKey() already safe?

After CRYPTO_secure_malloc_init call all openssl API functions that
handle private keys and passwords should use secure heap. So, in that
regard we don't need to add anything.

> 
> > ---
> >  src/evmctl.c | 148 +++++++++++++++++++++++++++++++++++++++++----------
> >  1 file changed, 121 insertions(+), 27 deletions(-)
> > 
> > diff --git a/src/evmctl.c b/src/evmctl.c
> > 
> > @@ -188,7 +207,9 @@ static int bin2file(const char *file, const char *ext, const unsigned char *data
> >  	return err;
> >  }
> > 
> > -static unsigned char *file2bin(const char *file, const char *ext, int *size)
> > +/* Return data in OpenSSL secure heap if 'secure' is true. */
> > +static unsigned char *file2bin(const char *file, const char *ext, int *size,
> > +			       int secure)
> >  {
> 
> The only caller of file2bin() that sets "secure" is evm_calc_hmac(),
> but evm_calc_hmac() is a debugging tool, not meant for setting the real
> security.evm xattr.

I can undo file2bin change if you wish, but for uniformity I would have
it changed. We can add comment that it is handling only test & debugging
data, thus not using security measures. May also output some warning at
runtime.

> The kernel EVM HMAC key is an "encrypted" key type, which should be
> based on a "trusted" key.  Neither of which are exposed to userspace
> unencrypted. 
> 
> Enabling DEBUG by default was suppose to be temporary.  At this point,
> should it be disabled?  As evm_calc_hmac() is only meant for debugging,
> do we really care whether evm_calc_hmac() uses a secure heap or stack
> for private keys or passwords?


Thanks,


> 
> thanks,
> 
> Mimi
> 
> >  	FILE *fp;
> >  	size_t len;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux Kernel Hardening]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux