Sistema GNU/Linux criptato, è possible? Un sistema GNU/Linux criptato è possibile? di Rodolfo Giometti <giometti@enneenne.com>
Rodolfo Giometti <giometti@linux.it> Rodolfo Ing. Giometti Ingegnere informatico libero professionista. Embedded x86, ARM, PPC e MIPS. Linux (Maintainer LinuxPPS + driver). U-Boot (ex Custodian Video + driver). Controllo automatico (Real-Time) e monitoraggio remoto. Esperto di protocolli di rete e bus dati industriali. Corsi specialistici su U-Boot/Linux/UNIX. Presidente associazione SIPSI Linux&C e consulenti-ict.it. Software Libre Evangelist. HOMEPAGE: http://www.enneenne.com/staff/giometti
UNIX GNU Il progetto GNU voleva realizzare un sistema basato su UNIX ma che fosse composto solo da Software Libero. Il Software libero fu «riscoperto» da R. M. Stallman nel 1984, anno In cui il progetto GNU prese vita. = Gnu is Not Unix Richard Matthew Stallman
La licenza GNU/GPL Stallman è un hacker (da non confondere con cracker), quindi aveva la compentenze per scrivere un sistema da zero. Ma si rese conto ben presto che questo non bastava: gli serviva una licenza! La licenza GNU GPL si basa su 4 libertà: 0 (o libertà fondamentale): la libertà di eseguire il programma per qualsiasi scopo. 1: la libertà di studiare il funzionamento del programma, e adattarlo alle proprie esigenze. 2: la libertà di copia e redistribuzione. 3: la libertà di migliorare il programma, e distribuirne i miglioramenti.
Una regola da seguire L'unico che ha dei diritti verso di voi (produttori del software) è solo il cliente a cui viene fornito il prodotto software (anche solo in forma compilata), la licenza GNU/GPL dice infatti che solo in questo caso siete obbligati a fornire gratuitamente (o al costo di copia) i sorgenti coperti da tale licenza. Programma GNU compilato Legame indissolubile Programma GNU sorgente La GNU/GPL richiede questo per garantire che anche i vostri clienti godano gli stessi diritti di cui voi avete goduto.
Miti da sfatare Molti erroneamente pensano che un programma coperto dalla licenza GNU/GPL sia automaticamente gratis e/o da pubblicare sul Web coercitivamente. Programma GNU Programma da ottenere gratis Programma da pubblicare sul Web
La Tivoization I sistemi tipo TiVo usano CPU che sono in grado di eseguire solo il codice che vuole il produttore! (Tramite criptazione) Stallman ha dichiarato che questo va contro lo spirito della GPL, mentre per Torvalds questo non crea problemi... anzi è una sicurezza!
L'evoluzione: GPLv3 Stallman (e la FSF) hanno quindi ideato la GNU GPLv3 che vieta espressamente la Tivoization! Con questa licenza si deve poter eseguire il codice sull'hardware in cui viene distribuito! Lo spirito del progetto GNU è salvo. :-)
La GPLv3 blocca i sistemi TiVo? Molti prodotti software sono passati (o stanno passando) a questa nuova licenza (o similare) e quindi il dilemma: se (alcuni) produttori hanno necessità di proteggere il loro lavoro, e i tool più usati sono copeti da GPLv3, i sistemi criptati avranno vita breve nel mondo del Software Libero? Che fine fa la sicurezza indicata da Torvalds? C'è un modo per non infrangere la GPLv3 ed avere un sistema criptato?
Primo passo: caricare il bootloader Il bootloader va criptato con la crypto key memorizzata nella CPU. La CPU se non trova una immagine di boot valida NON parte! Altrimenti carica l'immagine nella sua RAM interna. U boot code RAM interna
Secondo passo: caricare il kernel Il bootloader a questo punto deve decriptare l'immagine del kernel utilizzando la crypto key del kernel. Nota: la crypto key NON può essere linkata nei sorgenti del bootloader! RAM interna U boot code Kernel Crypto key
Terzo passo: caricare il rootfs Questo è (forse) il punto più facile di tutto il processo. Come rootfs iniziale si più usare un INITRAMFS e quindi inglobare il rootfs nell'immagine del kernel stesso. Se c'è necessità di filesystem grandi questi si possono montare successivamente con tool quali cryptsetup et similia. Kernel image Kernel code rootfs
Fine Domande??????