Securitatea informațiilor - semnătura digitală

Applet Aplicație a provocat cel mai mare interes în platforma Java. Programatorii imediat a dat seama că, din punct de vedere practic, în ciuda capabilități extinse de animație, applet-uri nu sprijină pe deplin modelul de securitate. JDK pachet applet-uri este strict controlat. Pe de altă parte, într-o rețea corporativă protejat de riscul de atac prin intermediul applet-uri este minimă, deci ar fi logic să se prevadă applet-uri care rulează în ea drepturi suplimentare. Experții Sun au realizat rapid beneficiile asociate cu utilizarea de applet-uri, și a decis să dea utilizatorilor posibilitatea de a atribui diferite niveluri de securitate pentru applet-uri, în funcție de originea lor. De exemplu, în cazul în care un applet este de la un furnizor de încredere care aveți încredere, atunci acest applet poate fi atribuit drepturi extinse de acces.

Acest control suplimentar este posibil datorită construit în Java 1.1 pachetul mecanism de semnătură digitală. În scopul de a oferi competențe suplimentare pentru applet-ul pentru a răspunde la două vpros.
  1. În cazul în care a făcut applet?
  2. el a fost la momentul expedierii este schimbat?

în matematică și oameni de știință de calculator au dezvoltat multe algoritmi sofisticați pentru a sprijini integritatea datelor și semnături digitale. Multe dintre ele sunt puse în aplicare în pachetul java.security. Pentru a utiliza acești algoritmi nu înțeleg neapărat principiile matematice pe care se bazează. Mecanismul mesajului Digest (mesajul Digest) poate detecta faptul schimbării documentului sau a mesajului. Utilizarea semnăturilor digitale face posibilă pentru a oferi o dovadă a identității.

Mesajul Digest

un rezumat al mesajului are două proprietăți importante.
  1. Dacă modificați unul sau mai mulți biți de date, atunci mesajul Digest va fi schimbat.
  2. Nu se poate schimba mesajul original, astfel încât mesajul fals rezultat a avut același digest ca și cea a mesajului original.
Există mai multe algoritmi de identificare a mesajului Digest. Cel mai renumit dintre ele sunt SHA1, dezvoltat de Institutul Național de Standarde și Tehnologie (Institutul Național de Standarde și Tehnologie - NIST), și MD5, inventat de Ronald Rivest (Ronald Rivest) de la MIT (Institutul Massachussets de Tehnologii - MIT). Ambii algoritmi încăierare un mesaj în moduri diferite de a originalului.

Ambele algoritmi sunt implementate în limbajul Java. clasa MessageDigest este o fabrică (fabrica) obiecte care formează algoritmii pentru a crea printuri digitale. Această clasă conține metoda statică getInstance (). MessageDigest care returneaza o instanta a unei subclase. Prin urmare, MessageDigest clasa poate acționa ca o fabrică de clasă sau superclasa pentru toți algoritmii crea un profil de posturi.

În continuare, un exemplu de calcul pentru obținerea obiectului conform algoritmului de imprimare SHA1.

MessageDigest alg = MessageDigest.getInstance ( "SHA-1");

Pentru un obiect care utilizează algoritmul MD5 este necesar ca argument metoda getInstance în loc de „SHA-1“, punctul „MD5“ linia șir.
După crearea MessageDigest obiect este necesar să se transfere toți biții mesajului de actualizare metoda (). De exemplu, următorul fragment de cod trece conținutul fișierului creat ALG deasupra obiectului. generează o amprentă digitală.

statică MessageDigest getInstance (String ALG)

Returnează MessageDigest obiect care implementează algoritmul. Dacă algoritmul specificat nu este acceptat, o excepție este generată NoSuchAlgoritmException.
Opțiunea. alg Name Algorithm (SHA-1, MD5)

void actualizare (intrare octet)
void actualizare (byte [] de intrare)
void actualizare (byte [] de intrare, int offset, int len)

Actualizări digest, având în vedere bytes specificate.

Efectuează calcul conform algoritmului hash returnează calculat digest și returnează un obiect care implementează un algoritm la starea inițială.

Se returnează un obiect care implementează un algoritm la starea inițială.