Først og fremst: INGEN system er 100% trygt, men å bruke TPM er bedre enn ingen TPM i det hele tatt. TPM Chip er bare en slags kryptert lagring, som ligger på hovedkortet til datamaskiner som støtter Trusted Platform Environment, og som har BIOSer forberedt på å håndtere den.
PCR er registre med spesifikke funksjoner som håndteres gjennom TPM_Extend -operasjon. De kan ikke "settes", bare utvides (new_hash = [old_hash || new_measurement]).
TPM har Static Root of Trust for Measurements (SRTM) og Dynamic Root of Trust for Measurements (DRTM), og kombinasjonen av begge skaper et sikkert miljø. Denne fyren forklarer veldig godt hvordan dette gjøres. Det er en tillitskjede mellom faste og dynamiske gjenstander.
Tilbake til PCR-er, de er plattformuavhengige registre, og de vanligste er:
PCR 0 til 3 for BIOS, ROMS ... PCR 4 - MBR-informasjon og stage1PCR 8 - bootloader-informasjon stage2 part1PCR 9 - bootloader-informasjon stage2 part2PCR 12 - alle kommandolinjeargumenter fra menu.lst og de som er oppgitt i shellPCR 13 - alle filer sjekket via sjekkfilen -routinePCR 14 - alle filer som faktisk er lastet inn (f.eks. Linux-kjerne, initramfs, moduler ...) PCR 15 til 23 blir ikke brukt
Intel-baserte notatbøker bruker ofte de første 16 registerene , men det kan utvides til andre programvare / bruksområder.
Mens du skriver informasjon (forsegling) til TPM, kan du legge til en Storage Root Key (SRK) som på en eller annen måte er en "Management key" og som brukes til legg til andre nøkler til denne lagringsplassen. I henhold til manpages, vil bruk av -z
sette TSS_WELL_KNOWN_SECRET (20 null byte)
.
-z, - velkjent Bruk TSS_WELL_KNOWN_SECRET (20 null byte) som SRK-passord. Du blir ikke bedt om å oppgi SRK-passordet med dette alternativet.
Så hvis denne SRK er satt til standardhemmeligheten ( TSS_WELL_KNOWN_SECRET
), vil det ikke være nok til å angripe noen siden TPM bare kan forsegles hvis de nåværende PCR-ene samsvarer med de som brukes til å forsegle dataene. Dessuten skjer noe av PCR-håndteringen ved oppstartstid (BIOS), og det er veldig vanskelig å manipulere disse og dermed lage "falske" PCR-er. BIOS er det eneste stedet der PCR-er blir sett på som nuller før resten av prosessen finner sted.
Det eneste GRUNNLIGE angrepet er den som tar sikte på MITM-kommunikasjon mellom BIOS og PCR for å nullstille PCR uten å starte maskinen på nytt for å sette systemet i "klarert" tilstand. Dette angrepet er kjent som TPM Reset Attack.
Attacket
Så gitt alt vi har sett ovenfor, burde det være veldig vanskelig for å forfalske en klarert oppstartsprosess, så lenge BIOS tar de første målingene. Den kritiske antagelsen her er at PCR-ene ikke lett kan tilbakestilles uten å starte hele plattformen som TPM-en ligger på. Hvis en angriper er i stand til å overvåke målingene som er sendt til PCR-ene fra BIOS (med for eksempel en logisk analysator, se dette papiret), og i stand til å nullstille PCR-ene uten å starte maskinen på nytt, kan hun ta en plattform i alle konfigurasjon og sette den i en 'klarert' tilstand. Så den vanskelige delen er å få TPM til å tilbakestilles uten å få ned hele maskinen. Det er verdt å nevne at vi også har sett på mellomliggende minne og andre slike ting for å endre det løpende systemet etter at det er blitt målt, men på grunn av hastigheten på bussene som minne og harddisker sitter på, er dette en vanskelig innsats. Å angripe en tregere buss er mye lettere.
TPM-er ligger vanligvis på LPC-bussen (Low Pin Count). LPC-bussen støtter en bakkedrevet reset-linje. Dette betyr at når denne linjen på bussen kjøres til jord, skal hver enhet på denne bussen tilbakestilles. Andre enheter som er koblet til denne bussen inkluderer
BIOS, og eldre tastatur- og musekontrollere. Videoen nedenfor viser at det å kjøre denne linjen virkelig er mulig, og ganske enkelt å gjøre. Vær oppmerksom på at vi i videoen får tilgang til den aktuelle datamaskinen via en ekstern ssh-økt. Dette er fordi tastaturet og musekontrolleren blir tilbakestilt når vi kjører tilbakestillingsknappen, men nettverkskortet gjør det ikke. Flere detaljer om dette angrepet (og andre!) Kan sees i min senioroppgave: A Security Assessment of Trusted Platform Modules, Dartmouth College Computer Science Technical Report TR2007-597.
Merk at dette er en forenklet versjon av ALLE TINGER som involverer Trusted Computing . Ta en titt på Architecture Document of TPMv2 for å få mer informasjon om alle operasjoner som skjer mellom bio, maskinvare og programvare under oppsettet av et pålitelig miljø.
tl; dr : Å bruke standard lagringsrotnøkkel (20 byte uten null) er ikke nok til å lage et usikkert system.
Relaterte ting: