Corso di Internet e Sicurezza dei Sistemi

Generatore Random del radiusclient


Cronologico Percorso di conversazione 
  • From: "ZioPRoTo (Saverio Proto)" < >
  • To:
  • Subject: Generatore Random del radiusclient
  • Date: Thu, 29 Mar 2007 17:16:49 +0200
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type; b=VuOm9733SvVAeqkbZhc68SWf52vbXZlHqhJ/hD6Wwjut45xCDwyeUOjVgMeNgYHVrTHwRCBKrqqQMDqQYFICaM4+jSsATP+NCTRLx1KvqRjfcvjG9edZSZlixEt5XDjpFPG5TwkavfzRaePB117O/2AL5i8b4fXaH7m4VeuXl1w=

Per la curiosità di tutti gli studenti sono andato a vedere il codice dell'implementazione di radiusclient (l'implementazione del NAS in Linux)

Scaricate il sorgente ftp://ftp.cityline.net/pub/radiusclient/

alla riga 446 del file lib/sendserver.c inizia l'implementazione del generatore random!

ragazzi è sconvolgente! primo commento:

Purpose: generates a random vector of AUTH_VECTOR_LEN octets.

AUTH_VECTOR_LEN è ovviamente definito a 16, in quanto 16 * 8 = 128 bit

Vedete che nel file lib/sendserver.c riga 453
c'e questo commento:

/* well, I added this to increase the security for user passwords.
   we use /dev/urandom here, as /dev/random might block and we don't
   need that much randomness. BTW, great idea, Ted!     -lf, 03/18/95    */

In pratica usano /dev/urandom di Linux:
http://linux.about.com/library/cmd/blcmdl4_urandom.htm

che gli genera numeri random basandosi sullo stato della macchina, stato dell'hardware, dei drivers, numero di processi ecc ecc

La cosa incredibile è che noi a lezione abbiamo detto che per arrivare a 128bit è una cattiva idea incollare 4 blocchi da 32 bit! in questa implementazione fanno ancora peggio: incollano 16 blocchi da 8 bit! lo fanno fidandosi della bontà del loro generatore da 8 bit!
Ma se il vostro kernel è compilato senza il supporto per /dev/random, e compilate radiusclient, il software va in fall back ed usa la semplice rand() !!!!!

ma anche senza fall back ci fidiamo veramente di /dev/urandom ?? :)

Forse cmq ho sbagliato a leggere il codice! sono sicuro che andrete tutti a controllare ;)

Saverio








Archivio con motore MhonArc 2.6.16.

§