Nozioni base sulla sicurezza in Java

di: Marco Altese     26 Maggio 2006

Uno dei punti fondamentali di una tecnologia come Java è sicuramente quello della sicurezza. Sappiamo bene infatti quante informazioni di vitale importanza risiedano sui sistemi informatici di tutto e viaggino sovente in rete per essere fruibili dai più svariati servizi.

Oltre alla struttura stessa del linguaggio, basata su alcune scelte architetturali ben precise (si pensi all'assenza dei puntatori ad esempio, che non permette di manipolare locazioni di memoria in modo arbitrario) esistono una serie di package che offrono numerose funzioni il cui obiettivo comune è quello di garantire la massima sicurezza delle applicazioni. Molti di questi package sono accomunati attraverso degli acronimi che ne illustrano le caratteristiche di fondo. Tra i più noti, ricordiamo:

  1. JCE (Java Cryptography Extension)
  2. JSSE (Java Secure Socket Extension)
  3. JAAS (Java Authentication and Authorization Service)

In questo articolo faremo riferimento a JCE ed, in particolare, analizzeremo i seguenti concetti:

  1. Message Digest
  2. Private Key encryption
  3. Public Key encryption
  4. Digital signatures
  5. Digital certificates

Message Digest

Un Message Digest è, semplicemente, uno strumento che garantisce l'integrità di un messaggio. Viene spesso identificato come una sorta di "impronta digitale" ed il suo compito è quello di prendere in input un messaggio e di produrre in output un blocco di bit che ne rappresentino, appunto, l'impronta digitale in modo inequivocabile. È chiaro che due o più persone che calcolino il Message Digest di un particolare messaggio devono necessariamente attendersi lo stesso risultato. Una minima modifica al messaggio di input potrebbe produrre in output un Message Digest completamente diverso.

Ma in che occasioni possono essere utili i Message Digest? Supponiamo che un'ipotetica persona di nome Gianni voglia inviare alla sua amica Laura un messaggio importante. Come farà Laura ad essere sicura che il messaggio di Gianni non sia stato modificato durante il tragitto da qualche malintenzionato?

Sarà sufficiente confrontare il Message Digest che Gianni avrà prodotto dal suo messaggio originale con quello che Laura potrà calcolare dal messaggio a lei giunto. Se il confronto avrà esito positivo allora Laura potrà avere la garanzia che quanto da lei ricevuto corrisponda a quanto scritto da Gianni.

Gli algoritmi più utilizzati per il calcolo del Message Digest sono, fondamentalmente, due:

  1. MD5 (che utilizza 128 bit)
  2. SHA-1 (che utilizza 160 bit)

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti