On Thu, Jan 24, 2019 at 6:24 PM Julius Werner <jwer...@chromium.org> wrote:

> > What does that practically look like? Every time we have to re-walk we
> have to reverify the integrity of the metadata.
>
> I mean, that is exactly what we're doing right now anyway (unless
> something significantly changed in CBFS code since the last time I
> checked). For every single CBFS file access we start at the root and
> we walk the chain until we find the file we're trying to load (and all
> of this are real SPI transfers, it's not cached anywhere). Hashing
> times are generally insignificant compared to SPI access times IIRC
> (especially since this should be a raw hash, not an RSA signature like
> we use in current vboot). Validating the hash means we have to walk
> the whole CBFS directory rather than stopping at the file when we find
> it, but since we generally don't really pay attention for CBFS file
> placement for performance right now that's presumably not a big deal
> (would only double cost on average).
>
> And there are certainly still ways to improve this with the right
> caching, and ways to do that in a safe way even if verification is
> involved, which we could explore if we wanted to. I'm just saying as a
> baseline that the cost of CBFS walks seems to have never bothered us
> in the past, so the comparable cost of reverifying metadata probably
> shouldn't be a major criterion to reject the per-file approach.
>

I wasn't considering just the perf costs. I was including the notion of
re-checking and re-visiting the boot media repeatedly wit TOCTOU in mind. I
think we're on the same page, though, with the two approaches on what both
would entail. We collectively need to align on pros/cons of both and
ultimately decide on an approach.
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to