Avanti Indietro Indice

7. Sicurezza nel Kernel

Questa è una descrizione delle opzioni del kernel che riguardano la sicurezza, una spiegazione di ciò che fanno e di come si usano.

Visto che il kernel controlla il networking del vostro computer, è importante che sia molto sicuro e non venga compromesso. Per evitare alcuni dei recenti attacchi via rete dovreste tentare di mantenere aggiornato il vostro kernel. Potete trovare nuovi kernel presso ftp://ftp.kernel.org o dal distributore del vostro sistema.

Esiste anche un gruppo internazionale che fornisce una singola patch crittografica per il kernel principale di Linux. Questa patch fornisce il supporto per una serie di sottosistemi crittografici e caratteristiche che non possono essere incluse nel kernel principale per limiti di esportazione. Per ulteriori informazioni visitate la loro pagina web presso: http://www.kerneli.org

7.1 2.0 Kernel Compile Options

Per i kernel 2.0.x, si applicano le seguenti opzioni. Dovreste trovare le seguenti opzioni durante il processo di configurazione del kernel. Molti dei commenti qui vengono da ./linux/Documentation/Configure.help, che è lo stesso documento che leggete usando l'Help durante la fase make config della compilazione del kernel.

7.2 2.2 Kernel Compile Options

Per i kernel 2.2.x molte opzioni sono rimaste uguali, ma ne sono state aggiunte di nuove. Molti dei commenti vengono da ./linux/Documentation/Configure.help, Che è lo stesso documento che leggete quando usate l'Help nella fase make config della compilazione del kernel. Sono segnate qui solo le opzioni nuove. Consultate la descrizione del 2.0 per avere una lista di altre opzioni necessarie. Il cambiamento più significativo nei kernel 2.2.x è il codice del firewall IP. Ora viene usato il programma ipchains per istallare il firewall, invece del ipfwadm usato nei kernel 2.0.

7.3 Device nel Kernel

Nel kernel ci sono alcuni device a blocchi e a caratteri che vi aiuteranno con la sicurezza.

I due device /dev/random e /dev/urandom sono forniti dal kernel per avere sempre a disposizione dati casuali.

Sia /dev/random che /dev/urandom dovrebbero essere abbastanza sicuri da essere usati per generare chiavi PGP, autenticazioni ssh ed altre applicazioni in cui servono numeri casuali sicuri. Un attaccante non dovrebbe essere capace di predire il numero seguente, data una qualsiasi sequenza di numeri da queste sorgenti. È stato fatto un grande sforzo perché i numeri ottenuti da questi device siano casuali in ogni senso della parola.

L'unica differenza fra i due device è che /dev/random finisce i byte casuali e vi fa aspettare finché non ce ne sono di nuovi. Notate che su alcuni sistemi potrebbe bloccarsi per molto tempo in attesa che nuova entropia sia generata dagli utenti. Quindi riflettete prima di usare /dev/random. (Forse la miglior cosa da fare è usarlo quando generate dovete generare codice importante: dite agli utenti di scrivere molto sulle tastiere fino a quando dite "Ok, basta".)

/dev/random è entropia di qualità, generata dalla misura dei tempi fra gli interrupt ecc. Si blocca finché non ha abbastanza bit casuali di dati.

/dev/urandom è simile, ma quando la riserva di entropia sta finendo fornisce una replica crittograficamente forte di ciò che rimane. Non è altrettanto sicuro, ma basta per la maggior parte delle applicazioni.

Potete leggere da questi device con qualcosa del genere:

        root#  head -c 6 /dev/urandom | mimencode
Questo comando visualizza otto caratteri casuali sulla console, adatti per la generazione di password. Potete trovare mimencode nel pacchetto metamail.

Leggete /usr/src/linux/drivers/char/random.c per la descrizione dell'algoritmo.

Grazie a Theodore Y. Ts'o, Jon Lewis, e altri sviluppatori del kernel per avere aiutato me (Dave) in questo.


Avanti Indietro Indice