Secure boot versus measured boot: handtekeningcontrole, TPM-metingen en attestatie vergeleken
Beide mechanismen controleren bij elke opstartfase, vanaf het inschakelen tot het besturingssysteem draait, de volgende software. Secure boot verifieert de digitale handtekening van de volgende fase en stopt het opstarten als die niet correct ondertekend is. Measured boot berekent een hash van de volgende fase en legt die cumulatief vast in de PCR's (Platform Configuration Registers) van de TPM, zonder iets te stoppen. Secure boot voorkomt; measured boot legt vast, zodat de toestand later kan worden gecontroleerd en aangetoond. Het zijn geen alternatieven voor elkaar en ze worden vaak samen gebruikt.
| Kenmerk | Secure boot | Measured boot |
|---|---|---|
| Wat het controleert | De digitale handtekening van de volgende software: of de handtekening van de leverancier over de hash van het image klopt met een vertrouwde sleutel | De hash (meting) van de volgende software: de waarde van wat werkelijk is geladen, wordt ongewijzigd vastgelegd |
| Als er iets mis is | Stopt het opstarten ter plekke als de verificatie mislukt (afdwingen) | Laat het opstarten doorgaan en legt alleen iets vast (registreren) |
| Root of trust | Onveranderlijke bootcode in ROM en de publieke sleutel voor de verificatie (vaak als hash in eFuses opgeslagen om ruimte te sparen) | Een klein vertrouwd stuk code dat als eerste draait en met meten begint, plus de TPM die de registratie bewaart |
| Als software is gemanipuleerd | De handtekening klopt niet, dus de software draait nooit; een gewijzigde bootloader of kernel kan niet starten | Het systeem start toch, maar de PCR-waarden wijken af van de verwachte, dus controle van de registratie brengt het later aan het licht |
| Wat het nodig heeft | Een publieke verificatiesleutel op het apparaat en een privésleutel voor ondertekening die de leverancier veilig bewaart; gecombineerd met anti-rollback, zodat oude versies niet opnieuw kunnen worden geïnstalleerd | TPM-PCR's (die alleen kunnen worden uitgebreid, waarbij een nieuwe meting via een hash wordt ingevouwen) en een registratie van de metingen van elke fase (het eventlog) |
| Hoe het resultaat wordt gebruikt | Voorkomt dat niet-geautoriseerde software op dat apparaat start. Om anderen te tonen wat er is opgestart, wordt het gecombineerd met measured boot of iets vergelijkbaars | Remote attestation (PCR-waarden, ondertekend met een TPM-sleutel en aan een server voorgelegd) en sealing (geheimen zoals een sleutel voor schijfversleuteling alleen vrijgeven als de PCR's de verwachte waarden bevatten) |
| Beperkingen | Het zegt alleen of code door een vertrouwde sleutel is ondertekend, dus het kan een oude maar geldig ondertekende kwetsbare versie of een configuratiewijziging niet onderscheiden; het beschermt alleen het opstartpad | Het kan niet voorkomen dat kwaadaardige code draait, en de registratie heeft pas betekenis als iemand die controleert; verwachte PCR-waarden veranderen bij elke software-update en moeten worden beheerd |
| Typisch gebruik | Smartphones, pc's en veel embedded apparaten; geleverde producten vergrendelen ook debugpoorten zoals JTAG | Pc's met een TPM, voor schijfversleuteling en controle van de apparaatstatus vóór netwerktoegang; microcontrollers zonder TPM gebruiken voor hetzelfde doel schema's zoals DICE, die sleutels afleiden uit metingen |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.