Messages in this thread | | | Subject | Re: [Linux-ima-devel] [PATCH 0/7] IMA: new parser for ima_restore_measurement_list() | From | Roberto Sassu <> | Date | Wed, 24 May 2017 10:18:46 +0200 |
| |
On 5/23/2017 10:48 PM, Ken Goldman wrote: > On 5/18/2017 5:38 AM, Roberto Sassu wrote: >> On 5/17/2017 6:28 PM, Ken Goldman wrote: >>> On 5/17/2017 3:25 AM, Roberto Sassu wrote: >>>> >>>> The format of digestN is: <algo name>:\0<digest value>, the same used >>>> for the file digest. >>> >>> Since the format is changing from the SHA-1 log format anyway ... >>> >>> How do people feel about the colon and null terminated string format for >>> algorithm identifiers? >>> >>> The TCG standard enumerations are uint16_t, and there is a registry of >>> hash algorithms. >>> >>> As a consuming parser, it feels nice to know it's always 2 bytes and not >>> have to worry about a missing colon or a missing nul terminator risking >>> a buffer overflow. >> >> There cannot be buffer overflow, because the length of each digest >> field is known. >> >> Roberto >> > > I was not referring to the digest, but the digest algorithm. > > I wanted opinions on the colon and null terminated string format for > algorithm identifiers. > > The TCG standard log uses the TCG standard enumerations. They're always > exactly 2 bytes. Parsing is trivial.
I have two concerns regarding this:
is there a standard way to convert TPM_ALG_ to strings, like a function exposed by the TSS? If not, suppose that a parser uses openssl to verify the integrity of event data, by calculating the digest. Then, the parser should maintain an association table between TPM_ALG_ and a string (the string will be passed to EVP_get_digestbyname()). When a new TPM algorithm is added to the TCG registry, all parsers should be modified to update the association table. If IMA sends a string, only the crypto subsystem has to be updated.
The format I'm proposing for event data digests would be the same of that used for file digests. Should IMA provide a list with two different formats?
Roberto
> If IMA uses strings, the attacker can send, e.g., sha1: and not null > terminate it. A careful parser can go a byte at a time until it reaches > a maximum length - if you specify a maximum length. But it is an attack > surface. Is there a corresponding advantage? > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Linux-ima-devel mailing list > Linux-ima-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-ima-devel >
| |