Смекни!
smekni.com

Електронний цифровий підпис (стр. 3 из 5)

В даний час існують наступні пристрої зберігання закритого ключа :

· Дискети

· Смарт-карти

· USB-брелок

· Таблетки Touch-Memory

Крадіжка або втрата одного з таких пристроїв зберігання може бути легко помічена користувачем, після чого відповідний сертифікат може бути негайно відкликаний.

Найбільш захищений спосіб зберігання закритого ключа - зберігання на смарт-картці. Для того, щоб використовувати смарт-карту, користувачеві необхідно не тільки її мати, але й ввести PIN-код, тобто, виходить двофакторна аутентифікації. Після цього підписується документ або його хеш передається в карту, її процесор здійснює підписування хешу і передає підпис назад. У процесі формування підпису таким способом не відбувається копіювання закритого ключа, тому весь час існує тільки єдина копія ключа. Крім того, зробити копіювання інформації зі смарт-карти складніше, ніж з інших пристроїв зберігання.

Моделі атак та їх можливі результати

У своїй роботі Гольдвассер, Міка і Рівестом описують наступні моделі атак, які актуальні і в даний час:

· Атака з використанням відкритого ключа. Криптоаналітиків володіє тільки відкритим ключем.

· Атака на основі поширених повідомлень. Противник володіє допустимими підписами набору електронних документів, відомі йому, але не обраних ним.

· Адаптивна атака на основі вибраних повідомлень. Криптоаналітик може одержати підписи електронних документів, які він обирає сам.

Можливі результати атак:

· Повний злом цифрового підпису. Отримання закритого ключа, що означає повний злом алгоритму.

· Універсальна підробка цифрового підпису. Знаходження алгоритму, аналогічного алгоритму підпису, що дозволяє підробляти підписи для будь-якого електронного документа.

· Вибіркова підробка цифрового підпису. Можливість підробляти підписи для документів, вибраних криптоаналітиком.

· Екзистенціальна підробка цифрового підпису. Можливість отримання допустимого підпису для якогось документа, не вибраного криптоаналітиком.

Ясно, що самою «небезпечною» атакою є адаптивна атака на основі вибраних повідомлень, і при аналізі алгоритмів ЕЦП на криптостійкість потрібно розглядати саме її (якщо немає яких-небудь особливих умов).

При безпомилковій реалізації сучасних алгоритмів ЕЦП отримання закритого ключа алгоритму є практично неможливим завданням через обчислювальні складності завдань, на яких ЕЦП побудована. Набагато більш ймовірний пошук криптоаналітиків колізій першого і другого роду. Колізія першого роду еквівалентна екзистенціальної підробці, а колізія другого роду - вибіркової. З урахуванням застосування хеш-функцій, знаходження колізій для алгоритму підпису еквівалентно знаходження колізій для самих хеш-функцій.

Протоколи

Протоколи електронного цифрового підпису (ЕЦП): в основі протоколу цього класу міститься деякий алгоритм обчислення ЕЦП на передачі за допомогою секретного ключа відправника та перевірки ЕЦП на прийомі за допомогою відповідного відкритого ключа, витягнутого з відкритого довідника, але захищеного від модифікацій. У разі позитивного результату перевірки протокол, зазвичай, завершується операцією архівування отриманого повідомлення, його ЕЦП і відповідного відкритого ключа. Операція архівування може не виконуватися, якщо ЕЦП використовується тільки для забезпечення властивостей цілісності і автентичності отриманого повідомлення, але не безвідмовності. У цьому випадку, після перевірки, ЕЦП може бути знищена відразу або після обмеженого проміжку часу очікування.

Протоколи управління ключами можна розділити на два класи:

· Протоколи погодження ключів, завданням яких є вироблення загального секрету (таємного ключа) на основі відомих відкритих ключів об'єктів;

· Протоколи транспортування ключів, завданням яких є доставка, введення в дії та використання ключів із забезпеченням їх цілісності, дійсності та при не-обхідності, конфіденційності.


Стандартні протоколи узгодження ключів

Можна виділити два об'єкти, один з яких є джерелом (ініціатором), а інший відповідачем (приймачем). У такому протоколі ключі складаються з пари сеансових ключів.

Протокол 1. Сеансовий протокол узгодження ключів

Секретними є ключі

і
, відкриті
і
.

Загальним секретом є

, що виробляється користувачами А і В, де h-кофактор. Конкретне секретне значення виробляється як

Таким чином, протокол реалізує вироблення сеансових пар ключів і виробляє про-мен відкритими сеансовий ключ, на підставі яких виробляється загальне секрет-ве значення.


Протокол 2. Протокол на головних ключах


У протоколі використовуються тільки головні пари ключів

і

Протокол виконує обчислення загального секрету, грунтуючись тільки на головних ключах, що дозволяє не виробляти передачі відкритих ключів під час виконання протоколу. Секретний ключ обчислюється з використанням наступної функції:

.

Протокол 3. Повний протокол узгодження ключів


Даний протокол є повним протоколом узгодження ключів. Ключовий матеріал складається з двох пар головних ключів та

,
і двох пар сеансових ключів
,
.

У цьому протоколі виконується дві передачі сеансових відкритих ключів. З використанням сеансових і довготривалих відкритих та особистих ключів, що формуються загальні секретні значення

та
. Обчислення секретного ключа здійснюється за формулою

.

Підписування електронних документів різних форм

Підпис в HTML-формі

Така задача виникає при встановленні засобів ЕЦП в системах коли користувач працює в системі через Web-браузер (MS IE). У таких системах надходять наступним чином: створюється приховане hidden-поле у формі. Коли користувач натискає кнопку типу "підписати і відправити", відповідний скрипт обробника (наприклад, на VBScript) формує строкову змінну, в яку методом конкатенації записують важливу інформацію з ідентифікації документа і вміст текстових полів, які ввів користувач. Далі сформована стрічка підписується. Найчастіше використовуються методи об'єктів CAPICOM.dll, не відділений підпис. Підписана строкою змінна і є електронний документ. Підписаний документ (підписаний рядок) записується в hidden-полі і методом POST передається на сервер. Серверний додаток перевіряє підпис у змінної, отриманої з hidden-поля, і в залежності від результатів перевірки ЕЦП і змістовної частини електронного документа здійснює його подальшу обробку. Важливим моментом є збереження підписаного документа на сервер. Для цього, як правило, створюють таблицю в базі даних системи з двома полями: поле ключа і строкове поле з підписаним електронним документом.

Підпис в базі даних

Досить часто зустрічається нефайлова форма подання електронного документа, а електронний документ - як сукупність записів в таблицях бази даних. Для підписання такого документа значення полів записів в таблицях бази даних наводяться в рядковий тип, і за допомогою конкатенації формується строкою змінна, відображає істотну змістовну і ідентифікаційну частину документа. Саме цей рядок тепер вважається оригіналом електронного документа і підписується. Підписаний рядок зберігається у відповідній таблиці бази даних системи з двома полями: поле ключа документа і строкове поле, що містить підписаний електронний документ.

Підпис документів у форматі XML

Якщо документ представлений у форматі XML, то є кілька підходів до формування його підписів: формування ЕЦП XML-документів XMLdsig для Windows (MSXML5, MSXML6) з використанням Microsoft Office InfoPath 2003 - нової складової системи Microsoft Office; підпис XML-документа як звичайного файлу. Іноді для підпису в XML-документі в тезі документа створюють окремий атрибут, в який заноситься ЕЦП від символьного рядка змінної довжини, що містить значення атрибутів тега документа. Такий досить цікавий підхід до підпису XML-документа також зустрічається, і він є цілком легітимним.