On 14/02/2023 18.00, Julian Calaby wrote: > Hi Arend, > > On Tue, Feb 14, 2023 at 7:04 PM Hector Martin <marcan@xxxxxxxxx> wrote: >> >> Newer Apple firmwares on chipsets without a hardware RNG require the >> host to provide a buffer of 256 random bytes to the device on >> initialization. This buffer is present immediately before NVRAM, >> suffixed by a footer containing a magic number and the buffer length. >> >> This won't affect chips/firmwares that do not use this feature, so do it >> unconditionally for all Apple platforms (those with an Apple OTP). > > Following on from the conversation a year ago, is there a way to > detect chipsets that need these random bytes? While I'm sure Apple is > doing their own special thing for special Apple reasons, it seems > relatively sensible to omit a RNG on lower-cost chipsets, so would > other chipsets need it? I think we could include a list of chips known not to have the RNG (I think it's only the ones shipped on T2 machines). The main issue is I don't have access to those machines so it's hard for me to test exactly which ones need it. IIRC Apple's driver unconditionally provides the randomness. I could at least test the newer chips on AS platforms and figure out if they need it to exclude them... but then again, all I can do is test whether they work without the blob, but they might still want it (and simply become less secure without it). So I guess the answer is "maybe, I don't know, and it's kind of hard to know for sure"... the joys of reverse engineering hardware without vendor documentation. If you mean whether other chips with non-apple firmware can use this, I have no idea. That's probably something for Arend to answer. My gut feeling is Apple added this as part of a hardening mechanism and non-Apple firmware does not use it (and Broadcom then probably started shipping chips with a hardware RNG and firmware that uses it directly across all vendors), in which case the answer is no. - Hector