Информационна сигурност - цифров подпис

Applet кандидатстване е причинил най-голям интерес в платформата Java. Програмистите веднага разбраха, че от практическа гледна точка, въпреки обширните възможности за анимация, аплети не подкрепят напълно модела на сигурността. В JDK аплети пакет е строго контролирано. От друга страна, в защитена корпоративна мрежа на риска от нападение с помощта на аплети е минимална, така че би било логично да се предвиди аплети, работещи в него допълнителни права. експерти на Sun бързо осъзнали ползите, свързани с използването на аплети, и решиха да дадат на потребителите възможност да зададете различни нива на сигурност за аплети, в зависимост от техния произход. Например, ако един аплет е от надежден доставчик, които имате доверие, а след това аплет може да бъде назначен на по-широки права за достъп.

Този допълнителен контрол е станало възможно благодарение на вградените в Java 1.1 пакет механизъм цифров подпис. С цел да се осигури допълнителни правомощия за аплета да отговори на два vpros.
  1. Къде е аплета?
  2. Бил ли е по време на превоза, като се е променило?

по математика и компютърни специалисти са разработили много сложни алгоритми за подкрепа на целостта на данните и цифрови подписи. Много от тях се изпълняват в пакет java.security. За да използвате тези алгоритми не е задължително да се разберат математическите принципи, на които се основават. Механизмът на съобщение разграждане (съобщението смилане) може да открие това, промяна на документа или съобщението. Използването на електронни подписи, дава възможност да се предостави документ за самоличност.

Съобщението дайджест

съобщение смилане има две важни свойства.
  1. Ако промените една или повече бита данни, а след това съобщението дайджест също ще бъде променен.
  2. Не можете да промените първоначалното съобщение, така че в резултат на невярна съобщението имаше същите храносмилане като това на оригиналното съобщение.
Има няколко алгоритми за идентификация на съобщението дайджест. Най-известният от тях са SHA1, разработен от Националния институт за стандарти и технологии (Националния институт за стандарти и технологии - NIST) и MD5, изобретен от Роналд Rivest (Ronald Rivest) от Масачузетския технологичен институт (Масачузетс Институт по технологии - MIT). И двата алгоритми катеря съобщение по различни начини до оригинала.

И двете от тези алгоритми се изпълняват на езика Java. MessageDigest клас е фабрика (фабрика) обекти, които формират алгоритмите за създаване на дигитални отпечатъци. Този клас съдържа статичен метод getInstance (). MessageDigest която връща инстанция на подклас. Затова MessageDigest клас може да действа като фабрично клас или суперкласа за всички алгоритми създадете профил, публикации.

На следващо място, един пример за изчисление за получаване на обекта в съответствие с алгоритъма за печат SHA1.

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

За обект, който използва алгоритъм MD5 е необходимо като метод аргумент getInstance вместо низ "SHA-1" точка "MD5" линия.
След създаването MessageDigest обект е необходимо да се прехвърли всички байтове на съобщението от актуализацията на метод (). Например, следния кодов фрагмент минава съдържанието на файла, създадени ALG-горе обект. генерира цифров пръстов отпечатък.

статичен MessageDigest getInstance (String ALG)

Връща MessageDigest обект, който реализира алгоритъма. Ако определен алгоритъм не се поддържа, по изключение се генерира NoSuchAlgoritmException.
Вариант. ALG Наименование Алгоритъм (SHA-1, MD5)

нищожен актуализация (байт вход)
невалидни актуализация (байт [] вход)
нищожен актуализация (байт [] вход, Int офсет, вътр дъл)

Обновява дайджест, като се имат предвид определени байтове.

Извършва изчисляване Според алгоритъма за хеширане връща изчислената дайджест и връща един обект, който реализира алгоритъм за първоначалното състояние.

Тя връща обект, който реализира алгоритъм за първоначалното състояние.