Secure Boot: non disattivabile

Nell’ultima puntata: l’HashTool non è una via percorribile, i *buntu vanno e Kali Linux non supporta Secure Boot nonostante venga dichiarato il contrario, cioè, ehm, sono io che sono stupido e non so farlo funzionare, sì sì, proprio così.

Arch è la mia salvezza, perché funziona sempre. Al primo colpo. O al massimo al secondo. Anche se aggiungere l’hash del kernel alle MOK con l’HashTool (sì, è questo che si fa) non è una via per me ottimale, è partito subito. Senza neanche dover cercare cosa dovevo fare. Poi l’ho cercato comunque per sincerarmi di non star piallando la chiave Microsoft o qualcosa del genere.

Comunque, Arch include questa UEFI Shell: vediamo di che si tratta.

UEFI Shell

È realizzata da Intel. Dopo un po’ di lotte con gli hash… dà errore Image failed to verify with *ACCESS DENIED*. E poi parte.

Ehm, ok, almeno è partita.

I comandi spesso e volentieri danno plurime paginate di output, che se non si ferma in qualche modo è come guardare il codice di Matrix che scorre davanti e purtroppo non ho ancora la capacità di leggere Matrix.
“comando | less” non va, “comando | more” nemmeno, ma sembra che capisca il carattere di pipe. Googlando un po’, scopro che la paginazione la fa il comando passandogli il parametro -b, se il comando lo supporta.

Insomma, un sistema progettato con i piedi.

Già per soddisfare UEFI bisogna fare partizioni da centinaia di megabyte sul disco rigido (in cui si butta il kernel dell’OS, credo, e\o il boot loader), i BIOS UEFI con la grafica tutta bella e tamarra probabilmente pesano decine di megabyte, la UEFI Shell è in pratica un sistema operativo, possibile che non si potesse mettere il comando more (o less) per paginare l’output a piacimento!? Non c’era spazio per quei pochi kilobyte di roba? Qualche oscuro nodo l’avrebbe prevenuta dal funzionare?

Rovisto nella shell, constatando come sia la sagra dell’inutile sebbene abbia 3 paginate di comandi. Copio l’HashTool nella cartella EFI di Kali, lo avvio, aggiungo gli hash di Kali e bootloader annesso e lo lancio: schermo nero.

E si pianta sullo schermo nero.

Ma che schifo. Va bene che sto improvvisando, ma Kali non supporta Secure Boot, punto e basta. Nonostante venga dichiarato il contrario.

Va beh, sono io che non essendo un pentester non so trovare l’occulto e recondito metodo per farlo avviare, metodo che nessuno sa e nessuno dice (nemmeno la documentazione) ma tutti danno per scontato che esista.

Comunque, la UEFI Shell non può gestire Secure Boot, non si possono gestire le chiavi, non si può attivare la Setup Mode… Speravo che potesse almeno in parte aggirare le deficienze del BIOS e la deficienza degli OEM e dei produttori di BIOS, ma evidentemente non è così. Non ho capito a cosa serva, a questo punto.

Bene, forse è il caso di disattivare Secure Boot.
Mi pare ovvio che, se sto scrivendo questo articolo, ci ho già provato in ogni modo e non c’è verso.
Per fare ciò, in teoria, si passa dal BIOS.

BIOS\UEFI

Veniamo a quest’altra bella opera di altissima ingegneria informatica.

L’UEFI pare un BIOS del 2002 come grafica, ma va benissimo, meglio quello rispetto alla GUI pixellata con cielo stellato tamarrissimo come sfondo, di altri produttori di schede madri.

L’UEFI si identifica come Phoenix SecureCore Tiano™. Phoenix lo pubblicizza dicendo che è bello, è veloce perché compie varie operazioni in parallelo all’avvio (in effetti all’avvio la fase BIOS dura pochissimo), è personalizzabile dai clienti e altre amenità.

Cercando su internet, evinco che ogni OEM (o produttore di computer che li compra a sua volta da altri OEM, ma dirò solo “OEM” per brevità) pensa bene di spostare tutte le opzioni in giro a casaccio, giusto per fare lavori inutili e infastidire tutti i suoi clienti: esamino tutte le impostazioni in lungo e in largo, ma Secure Boot non è disattivabile. Non c’è l’opzione.

Ripeto, Secure Boot non è disattivabile. Che bello, l’OEM ha appiccicato il logo di Windows 8 sul PC ma è riuscito a scontentare Microsoft, che impone di lasciare Secure Boot disattivabile, e gli utenti che vogliono disattivarlo e non possono! In simultanea! Ci va un certo impegno nell’ottenere simili risultati!

Sì, è Windows 8.1 quello vero, non è Windows RT, dove Microsoft impone di non lasciar disattivare Secure Boot adducendo scuse discutibili e fumose.

Legacy Boot

In compenso trovo le opzioni di UEFI Boot e Legacy Boot, entrambe con Enable\Disable come scelte.
Peccato che, e qui viene il colmo, Legacy Boot è grigia, non selezionabile e ovviamente disattivata.

Se disattivo UEFI Boot non cambia nulla. Se riavvio con entrambe disattivate, mi presenta un “boot menu”: qualsiasi cosa provi ad avviare, mi riporta al boot menu perché ovviamente non sa che diamine fare.

CSM

C’è l’opzione, evvai!

Grigia, disattivata, impostata su “No”, non selezionabile, non modificabile, evvai!

L’impegno che l’OEM ci ha messo nel torturare i suoi clienti è notevole! Evvai!

Setup Mode

In teoria deve esistere, serve ad aggiungere le proprie chiavi e piallare la chiave di default. Nei BIOS decenti queste opzioni ci sono, ma gli OEM più straccioni le levano, probabilmente per risparmiare. Su cosa non si sa.

Va da sè che qui non esiste nulla. Nulla.

Non c’è modo di mettere questo dannato aggeggio in Setup Mode, non c’è modo di piallare la PK, il KEK e quelle altre amenità, non c’è modo di aggiungere le proprie chiavi. Non si può fare nulla.

A quanto pare alcuni notebook Lenovo sono buggati e possono entrare in Setup Mode per puro caso quando si “resetta” Windows. Non ho particolarmente voglia di provarci, e questo computer non è Lenovo.

Opzioni segrete

Alcuni BIOS chiedono di scegliere tra “Windows” e “Other OS” per cambiare tra UEFI e Legacy, o attivare\disattivare Secure Boot: nope, nessuna opzione del genere.

Alcuni notebook Acer e Fujitsu richiedono di impostare una “supervisor password” prima di far apparire l’opzione per disattivare Secure Boot: il notebook non è di nessuna di quelle marche e non funziona, l’opzione non compare e Legacy Boot è sempre grigia e disattivata.

Su alcuni notebook Lenovo pare che l’opzione non esista punto e basta ma forse si fa esistere con lo stesso metodo e la gente che ha quegli specifici modelli di notebook non sa esprimersi chiaramente per dire se proprio non c’è o con il trucchetto della supervisor password ha funzionato. Insomma, un’informazione inutile.

In compenso, non posso astenermi dal commentare questo: mi sono imbattuto in un forum dove un disperato con un notebook Lenovo stava cristonando per questa medesima ragione.
Come risposta ha ricevuto: “Beh, forse è il caso che ti abitui a usare Windows 8. Dai, su, pure mio figlio di 5 anni l’ho messo davanti a Windows 8 e ha capito come usarlo”.
Beh, che dire, vattene a giocare col menu Start a schermo intero insieme a tuo figlio, magari vi divertite. Purtroppo, la maggior parte della gente che si compra un notebook vuole fare qualcosa di più che giocare con l’interfaccia grafica. Io su quel notebook ci voglio Linux e avrò Linux, con le buone o le cattive.

E ora?

Secure Boot è, in linea teorica, un sistema ragionevole. L’implementazione, con la chiave di Microsoft ad essere l’unica vera chiave®, gli OEM che tolgono Setup Mode e gestione delle chiavi per risparmiare, e con tutta la valanga di bug che riescono a introdurre nei firmware UEFI pur rimuovendo ogni singola opzione, fa veramente schifo e complica la vita a tutti tranne che Microsoft.

Per aggirare quest’aberrazione della natura, i *buntu sembrano la soluzione migliore, ma non voglio ancora cedere.

Il senso di impotenza che si ha in questa situazione è devastante: ho il computer tra le mani, ma sono bloccato perché l’OEM ha fatto lo sforzo conscio di togliere dal BIOS una cosa che c’era già, vale a dire l’opzione per il Legacy Boot (o quella del CSM): che diamine, è lì ma è grigia, che senso avrebbe di essere lì se SecureCore non la includesse come default e l’OEM l’avesse fatta disattivare per sempre!? E sorvoliamo sul Secure Boot.

E nel fare ciò, ribadisco, è riuscito in simultanea a fare uno sforzo (perché l’ha tolta, non è che non l’ha messa, o almeno questa è l’intepretazione che mi pare più ragionevole), andare contro ciò che dice Microsoft (lasciare Secure Boot disattivabile) e ostacolare i suoi utenti\clienti. Di nuovo, complimenti.

È un po’ come quando bricko il telefono: ce l’ho in mano, il bootloader parte, se non fosse che il bootloader può avviare solo l’immagine dell’OS firmata e benedetta con la solita acqua santa e che deve essere caricata con qualche tool col testo in coreano che gira solo sotto XP a 32 bit senza service pack; se solo l’aggeggio potesse eseguire codice arbitrario, scopo per cui è stato progettato e costruito! Se solo il bootloader fosse più minimalista, se non fossero mai state scritte le righe di codice che lo obbligano a controllare la firma delle immagini dell’OS!
Se solo Secure Boot non fosse mai stato inventato!

Se solo gli OEM si rendessero conto che a loro non porta nessun vantaggio costruire la gabbia dorata e rinchiuderci l’utente sputandogli in faccia, soprattutto perché di dorato c’è ben poco da talmente è mal progettata, realizzata e gestita… Salvo rari casi, come quello di Apple. A cui conviene intendo, ma probabilmente è anche gestita meglio.

Anche se, girando su internet, ho avuto l’impressione che chiunque conosca il giro sostenga velatamente che gli OEM non ci tengono particolarmente a costruire la gabbia (eh, sono tutti costi inutili, per loro!). Microsoft lo ritiene per lei conveniente e gli OEM fanno il minimo indispensabile per appagare Microsoft.

Una direzione pericolosa

Siamo abituati al fatto che gli smartphone abbiano un bootloader bloccato, recintato col filo spinato e con le guardie armate che ci girano intorno peggio di Fort Knox, perché… beh, non lo so.

Immagino che sia un retaggio del passato, di quando i telefoni avevano kilobyte di RAM e l’OS doveva essere in pratica fatto su misura e tanto nessuno provava a bootarci altro perché non c’era altro da bootare. A parte OsmocomBB, che tanto “all’epoca” non c’era.
Ed è anche un favore agli operatori di telefonia mobile che vendono smartphone col “SIM lock”, che a quanto pare in Italia è vietato per legge (RINGRAZIANDO!) quindi non ci facciamo molto caso.
Ad ulteriore riprova che tutto ciò che gli operatori di telefonia mobile toccano diventa all’istante letame.

Ma questo è un dannato notebook, per anni abbiamo potuto avviare quello che volevamo sui dannati notebook! E non tirate fuori scuse demenziali come “tanto ci sono i driver solo per Windows”, su quel notebook Arch gira. Perfettamente. Riconosce tutte le periferiche. Il wifi va, il bluetooth va, lo schermo va, la tastiera va, le porte USB2 e USB3 vanno (e le porte USB3 del computer fisso non mi funzionano su Linux, giusto per dire…), il touchpad va, la CPU ovviamente va e la RAM pure…

Perché dobbiamo gettarci in questa pericolosa direzione? Perché il software deve impegnarsi attivamente a impedirci di usare l’hardware che abbiamo regolarmente acquistato?

È sicuramente più redditizio per Microsoft costringere tutti a usare Windows e levare ogni controllo dalle mani dell’utente, soprattutto ora che c’è lo Store.

Ho l’impressione che Microsoft stia trascurando qualche dettaglio…

Crede veramente di fare valanghe di soldi con lo Store? E trascurare i suoi clienti corporate, quelli che usano le edizioni Enterprise di Windows, quelli a cui vende vagonate di licenze e, immagino, contratti di supporto e simili cose in cambio di valanghe di soldi?
Se intende trascurarli, è solo questione di tempo prima che si mettano a guardare a Linux. E a quel punto qualche OEM dovrà pur permettere di avviare Linux sul suo hardware senza acrobazie imposibili.
Se non intende trascurarli, non può privare anche loro del controllo sui propri computer. Quindi, se l’utente comune si sente chiuso in una gabbia, non credo che ci metterà molto a trovare windows_10_enterprise_+_crack.iso; poi al massimo se lo fa installare dal cuGGino.

Crede veramente che chi vuole installare Linux si faccia scoraggiare? Crede che alla fine desisterà e si ingoierà in silenzio Windows 8.1, 10 o quello che c’è preinstallato?

Crede veramente di far sparire Linux dai desktop, in questo modo? Sarà pure usato da una frazione insignificante della popolazione mondiale, ma è comunque troppo “grande” per svanire nell’oblio.

Microsoft si sarà fatta i suoi conti, no? Ovviamente sa cosa sta facendo, no?
Sul fronte Windows in tempi recenti ha fatto una serie di errori, con Windows 8 e Windows RT, col semplice fatto di averli fatti esistere, e ora sta cercando di mettere una pezza disperata con Windows 10. Sì, Windows 10 è una pezza disperata.

Sto dicendo che Windows è destinato a sparire? No di certo, resterà il sistema operativo “dominante” ancora per anni e anni e anni. Sto dicendo che non è assurdo pensare che Microsoft stia commettendo altri errori, sul fronte Windows. Perché non sarebbero i primi.

La direzione è pericolosa, ma ho fiducia nel fatto che le alternative non spariranno.

E ora vediamo di installare Linux su questo dannato notebook, alla faccia di Microsoft e dell’OEM!

Annunci

Un pensiero su “Secure Boot: non disattivabile

  1. Pingback: Accurata descrizione dell’installazione di una distro Linux, parte 2 | while(false) do {/*nothing*/};

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...