Tecnologie

Dettaglio dell'articolo:

mercoledì 07 febbraio 2007

Dispositivi random e Java

Supponiamo di dover realizzare in ambiente Linux un programma in Java che utilizza funzioni di crittografia. Ad esempio un sistema per la firma digitale oppure un programma di trasferimento di dati sensibili che utilizzi connessioni sicure https.

La generazioni delle chiavi casuali viene effettuato dalla jvm utilizzando il contenuto generato dai dispositivi /dev/random. Tali dispositivi utilizzano segnali associati ai dispositivi hardware (tastiere, mouse etc) per generare i propri dati casuali.
In alcune condizioni essi possono non contenere dati. Un esempio tipico sono i server disconnessi da tastiera.

Di conseguenza un programma del tipo:

try {

URL url = new URL("https://www.tecnes.com");
url.openConnection();

}catch (Exception e) {
}


potrebbe bloccarsi in attesa della lettura del dispositivo /dev/random.

Per avere informazioni di debug in merito a questo comportamento, si può impostare la seguente opzione per la jvm:

-Djavax.net.debug=ssl

Il programma genera il seguente messaggio in corrispondenza della chiamata del dispositivo random, e successivamante si blocca.

"trigger seeding of SecureRandom".

Soluzione:
Per risolvere il problema sopra esposto, è sufficiente impostare la seguente opzione nella jvm:

-Djava.security.egd=file:/dev/urandom

Tale opzione, detta "entropy gathering device", consente di selezionare un dispositivo alternativo, /dev/urandom, per la generazione di numeri casuali. La sua caratteristica pricipale è di non essere mai vuoto, generando sempre nuovi numeri casuali partendo dal pool di quelli esistenti.

Commenti:

This is really such a great informative post. Thank you for sharing with us, I too always learn something new from your post. keep doing a great work. Tillys Coupons

Inviato da: nora il: 2018-08-09 13:02:03.904785

You have posted a very detail document. I read all of your article and I really like it, I understand your point of view.

Inviato da: Putlocker il: 2017-12-05 09:04:44.384503

Great stuff! this is really a good article I am telling because of I read your article and I got know this is really a good article. I want to say thank you for giving an important stuff with a powerful point. I hope people love your article and give good feedback.

Inviato da: $1 Web Hosting il: 2018-09-27 08:42:02.746184

Je vous remercie de l'information! Je cherchais et ne pouvait pas trouver. Vous me aidé! 192.168.l.l

Inviato da: Sophie Miller il: 2018-08-15 11:41:20.706052 Normally I do learn article on blogs. Your writing taste has been surprised me. Thanks, quite great article. Let's try to play run 3 game now.

Inviato da: Joseph il: 2017-11-01 09:37:11.881481 Very good, I think I found the knowledge I needed. I will see and refer some information in your post. thank you. Putlocker, 123movies

Inviato da: Anna Shetty il: 2017-12-05 09:05:27.978133 Awesome article! I want people to know just how good this information is in your article. It’s interesting, compelling content. Your views are much like my own concerning this subject.

Inviato da: $1 web Hosting il: 2018-09-27 08:45:25.534776 Really your post is really very good and I appreciate it. It’s hard to sort the good from the bad sometimes.You definitely put a new spin on a topic thats been written about for years.

Inviato da: subway surfers il: 2018-07-10 10:38:19.415202

Scrivi un commento:

Archivio