Messages in this thread | | | Subject | Re: [PATCH 2/2] ima: Support appraise_type=imasig_optional | From | Mimi Zohar <> | Date | Wed, 13 Feb 2013 07:56:35 -0500 |
| |
On Wed, 2013-02-13 at 14:31 +0200, Kasatkin, Dmitry wrote: > On Mon, Feb 11, 2013 at 10:11 PM, Vivek Goyal <vgoyal@redhat.com> wrote:
> > @@ -158,7 +165,8 @@ int ima_appraise_measurement(int func, struct integrity_iint_cache *iint, > > } > > switch (xattr_value->type) { > > case IMA_XATTR_DIGEST: > > - if (iint->flags & IMA_DIGSIG_REQUIRED) { > > + if (iint->flags & IMA_DIGSIG_REQUIRED || > > + iint->flags & IMA_DIGSIG_OPTIONAL) { > > cause = "IMA signature required"; > > status = INTEGRITY_FAIL; > > break; > > This looks a bit odd... If "optional" signature is missing - we fail.. > It is optional... Why we should fail?
'imasig_optional' does not only mean that the signature is optional, but also implies that it has to be a digital signature, not a hash. This latter part is what IMA_DIGSIG_REQUIRED means.
If 'imasig_optional' set both 'IMA_DIGSIG_OPTIONAL' and 'IMA_DIGSIG_REQUIRED', then this change wouldn't be necessary.
IMA_DIGSIG_REQUIRED would enforce that it is a signature. IMA_DIGSIG_OPTIONAL would fail only for files with invalid signatures.
thanks,
Mimi
| |