Processo sicuro di caricamento iniziale del programma (IPL)

La funzione Secure Boot impedisce l'accesso non autorizzato ai dati del cliente, sia attraverso un firmware non autorizzato che gira su un processore di sistema, sia attraverso l'accesso tramite vulnerabilità di sicurezza nel firmware del processore di servizio autorizzato, o attraverso interfacce di servizio hardware a cui si accede tramite un processore di servizio flessibile (FSP).

Sebbene la funzione Secure Boot impedisca l'accesso non autorizzato ai dati dei clienti, i meccanismi di Secure Boot non forniscono protezione contro le seguenti minacce:
  • Attacchi basati sul software del sistema operativo per ottenere l'accesso non autorizzato ai dati dei clienti.
  • Amministratori di sistema disonesti.
  • Attacchi fisici hardware (ad esempio, sostituzione di chip e registrazione del traffico del bus).

La funzione Secure Boot implementa una catena di fiducia basata sul processore nell'hardware del processore POWER9 processore, abilitata dallo stack del firmware POWER9 stack del firmware. La funzione Secure Boot fornisce una base firmware affidabile per migliorare la riservatezza e l'integrità dei dati dei clienti in un ambiente virtualizzato.

La funzione di avvio affidabile dei server basati su POWER9 server basati su processori consente di misurare la configurazione del sistema e il codice del percorso di caricamento iniziale del programma (IPL), che può essere utilizzato successivamente come prova, attraverso l'attestazione della configurazione iniziale del percorso IPL del sistema. Per creare un Core Root of Trust per queste misure (CRTM), viene utilizzato un flusso di avvio sicuro che aggiunge controlli crittografici in ogni fase del processo IPL fino a quando non viene stabilita la comunicazione con il Trusted Platform Module (TPM). Il flusso Secure Boot garantisce l'integrità di tutti i firmware che devono essere eseguiti sui processori core, impedendo così l'esecuzione di firmware non autorizzati o modificati in modo malevolo. La mancata autenticazione del codice in qualsiasi momento impedisce il completamento del processo IPL.

La funzione Secure Boot nei sistemi POWER9 sistemi stabilisce la fiducia attraverso il processo di avvio della piattaforma. In questo caso, per affidabilità si intende che il codice eseguito durante il processo IPL proviene dal produttore della piattaforma, è firmato dal produttore della piattaforma e non è stato modificato.

La protezione in modalità sicura disponibile nei server basati su POWER9 server basati su processore mantiene la fiducia, impedendo l'accesso in lettura/scrittura ai dati del cliente da parte dell'FSP e delle interfacce di servizio, impedendo l'esecuzione di codice non attendibile sul processore host e mantenendo la fiducia in tutti i punti chiave del processo di avvio sicuro.

La funzione POWER9 La funzione Secure Boot implementa una catena di fiducia basata sul processore. La catena inizia con un componente implicitamente affidabile, mentre gli altri componenti vengono autenticati e controllati per l'integrità prima di essere eseguiti sui core del processore host. Il codice di verifica che si trova nel processore bloccato nella ROM seriale programmabile e cancellabile elettricamente (SEEPROM) convalida il caricamento iniziale del firmware. Il firmware verifica le firme crittografiche di tutti i firmware successivi che devono essere affidabili e che vengono caricati per l'esecuzione sui core del processore POWER9 core del processore. Su un POWER9 in un sistema, gli interruttori di sicurezza SEEPROM sono impostati nel codice del Self-Boot Engine (SBE) e fissati nella linea di assemblaggio del sistema per fornire la base per l'applicazione hardware dei flussi IPL sicuri. I ponticelli della modalità di sicurezza fisica sono disponibili sul backplane del sistema. I ponticelli possono essere utilizzati per escludere gli interruttori della modalità sicura del processore se il sistema è fisicamente accessibile da una persona. Il processo IPL sicuro migliora ulteriormente la piattaforma di trusted computing Power®.

Il diagramma seguente illustra le operazioni di un processo IPL di avvio sicuro e affidabile.

Figura 1. Flusso di avvio sicuro e affidabile
Un diagramma di flusso che illustra le operazioni di un processo IPL di avvio sicuro e affidabile.

La funzione Secure Boot stabilisce la SEEPROM bloccata, la SBE e il codice di base dell'avvio dell'host (compresa una piccola porzione di codice esteso dell'avvio dell'host) come Core Root of Trust for Measurement (CRTM), con la catena di fiducia estesa a includere Power Hypervisor (PHYP), il firmware della partizione (PFW), partizioni aggiuntive selezionate (modulo della piattaforma fisica fidata ( pTPM ), modulo della piattaforma virtuale fidata ( vTPM ), runtime dell'avvio dell'host e aggiunte di crittografia) e On Chip Controller (OCC - gestione termica). Questo dominio di fiducia e il supporto di sicurezza hardware del processore garantiscono che i dati del cliente non vengano visualizzati o alterati attraverso meccanismi hardware o firmware.

Lo stack completo del firmware fidato è autenticato utilizzando immagini firmate e viene eseguito in posizioni di memoria fidate. L'FSP viene tenuto fuori dal dominio di fiducia del server host e gli viene impedito di accedere ai registri dell'unità Alter/Display (ADU), ad altri registri protetti e alle regioni di memoria fidate. Il Self Boot Engine (SBE) applica il blocco dell'FSP filtrando la lista nera delle strutture di comunicazione di scansione (SCOM) di lettura/scrittura dei registri del processore. Le funzioni SCOM sono abilitate dall'interruttore di accesso sicuro nell'area SEEPROM del chip del processore.

La figura seguente mostra l'ambiente Secure Boot.

Figura 2. L'ambiente Secure Boot
Un diagramma che illustra l'ambiente di avvio sicuro.

Quando si avvia il processo Secure Boot, l'elemento FSP invia una richiesta di avvio e i dettagli sul tipo di avvio ai chip del processore nel sistema. Internamente, lo stato della logica di avvio sicuro viene cancellato dai valori precedentemente impostati per partire da uno stato appropriato e noto. Lo stato viene anche ripulito da eventuali richieste di temperamento eseguite in precedenza. I meccanismi di protezione hardware sono implementati per impedire a un malintenzionato di saltare questa fase iniziale. L'accesso dell'FSP alle risorse interne del chip è bloccato e il motore di avvio sicuro inizia a recuperare il codice di inizializzazione dalla memoria del modulo, sicura, non volatile e bloccata. Questo codice esegue l'inizializzazione di base del chip e resetta il TPM.

Dopo aver completato la fase iniziale del processo di avvio, il Self Boot Engine (SBE) carica il boot loader dell'host e il codice di convalida dalla SEEPROM nella cache interna L3 del chip del processore. Viene quindi avviato un core del processore e il boot loader recupera il codice Host Boot Base (HBB) iniziale dal chip flash NOR del processore (PNOR) e lo carica nella cache L3. In modalità sicura, il codice di convalida della cache L3 viene utilizzato per verificare l'immagine HBB ora disponibile nella cache attendibile. Dopo la verifica del codice flash iniziale, il core del processore continua a eseguire il codice convalidato dallo spazio di memoria affidabile e carica e convalida le funzioni estese HB (HBI). Dopo che l'HBI è stato misurato e la firma è stata verificata e copiata, la sua misura (hash dell'immagine), che indica un'autenticazione valida, viene registrata nel TPM, come indicato dal passo 1 nella Figura Flusso di avvio sicuro e affidabile. A questo punto, tutto il codice che viene eseguito è completamente contenuto nel chip flash PNOR e il sistema non è accessibile da nessun altro meccanismo. Questo viene definito il confine dell'avvio fidato. Nel caso in cui la verifica fallisca, il sistema viene immediatamente arrestato e protetto da meccanismi di protezione hardware per impedire l'esecuzione di codice non attendibile o non autorizzato.

Il codice HB gestisce quindi tutti gli aggiornamenti in corso della memoria non volatile sicura utilizzando una nuova immagine fidata. Per proteggere il Core Root of Trust (CRTM), il codice HB blocca la memoria sicura, impedendo così qualsiasi ulteriore accesso in scrittura a tale memoria (questa azione significa che se il sistema viene riavviato, ritorna a questo stato di fiducia). Il codice HB inizializza quindi il controller di memoria on-chip e i moduli di memoria dual inline (DIMM) collegati. Il codice HB inizializza anche altri chip direttamente collegati al processore su cui è in esecuzione prima di stabilire l'interfaccia coerente della memoria con gli altri chip del sistema. Anche questi altri chip vengono verificati per garantire che siano in uno stato sicuro e affidabile.

I componenti superiori dello stack firmware vengono quindi caricati, verificati, eseguiti e le loro misure vengono registrate nel TPM. Questa azione completa il passaggio 2, indicato nella Figura Flusso di avvio sicuro e affidabile. Nel passo 3 della figura Flusso di avvio sicuro e affidabile, il payload di Power Hypervisor (PHYP) viene caricato nella memoria principale. Quindi, il codice viene autenticato crittograficamente e, dopo l'avvenuta autenticazione, il PHYP inizia a funzionare. La misura di autenticazione del codice PHYP viene registrata nel TPM. Allo stesso modo, i passaggi da 4 a 8, indicati nella Figura Flusso di avvio sicuro e affidabile, vengono eseguiti per caricare il codice dalla memoria flash sbloccata alla memoria affidabile, il codice viene autenticato crittograficamente e quindi vengono eseguiti vari accessori e il firmware della partizione (PFW).