В даний час існують наступні пристрої зберігання закритого ключа :
· Дискети
· Смарт-карти
· USB-брелок
· Таблетки Touch-Memory
Крадіжка або втрата одного з таких пристроїв зберігання може бути легко помічена користувачем, після чого відповідний сертифікат може бути негайно відкликаний.
Найбільш захищений спосіб зберігання закритого ключа - зберігання на смарт-картці. Для того, щоб використовувати смарт-карту, користувачеві необхідно не тільки її мати, але й ввести PIN-код, тобто, виходить двофакторна аутентифікації. Після цього підписується документ або його хеш передається в карту, її процесор здійснює підписування хешу і передає підпис назад. У процесі формування підпису таким способом не відбувається копіювання закритого ключа, тому весь час існує тільки єдина копія ключа. Крім того, зробити копіювання інформації зі смарт-карти складніше, ніж з інших пристроїв зберігання.
У своїй роботі Гольдвассер, Міка і Рівестом описують наступні моделі атак, які актуальні і в даний час:
· Атака з використанням відкритого ключа. Криптоаналітиків володіє тільки відкритим ключем.
· Атака на основі поширених повідомлень. Противник володіє допустимими підписами набору електронних документів, відомі йому, але не обраних ним.
· Адаптивна атака на основі вибраних повідомлень. Криптоаналітик може одержати підписи електронних документів, які він обирає сам.
Можливі результати атак:
· Повний злом цифрового підпису. Отримання закритого ключа, що означає повний злом алгоритму.
· Універсальна підробка цифрового підпису. Знаходження алгоритму, аналогічного алгоритму підпису, що дозволяє підробляти підписи для будь-якого електронного документа.
· Вибіркова підробка цифрового підпису. Можливість підробляти підписи для документів, вибраних криптоаналітиком.
· Екзистенціальна підробка цифрового підпису. Можливість отримання допустимого підпису для якогось документа, не вибраного криптоаналітиком.
Ясно, що самою «небезпечною» атакою є адаптивна атака на основі вибраних повідомлень, і при аналізі алгоритмів ЕЦП на криптостійкість потрібно розглядати саме її (якщо немає яких-небудь особливих умов).
При безпомилковій реалізації сучасних алгоритмів ЕЦП отримання закритого ключа алгоритму є практично неможливим завданням через обчислювальні складності завдань, на яких ЕЦП побудована. Набагато більш ймовірний пошук криптоаналітиків колізій першого і другого роду. Колізія першого роду еквівалентна екзистенціальної підробці, а колізія другого роду - вибіркової. З урахуванням застосування хеш-функцій, знаходження колізій для алгоритму підпису еквівалентно знаходження колізій для самих хеш-функцій.
Протоколи електронного цифрового підпису (ЕЦП): в основі протоколу цього класу міститься деякий алгоритм обчислення ЕЦП на передачі за допомогою секретного ключа відправника та перевірки ЕЦП на прийомі за допомогою відповідного відкритого ключа, витягнутого з відкритого довідника, але захищеного від модифікацій. У разі позитивного результату перевірки протокол, зазвичай, завершується операцією архівування отриманого повідомлення, його ЕЦП і відповідного відкритого ключа. Операція архівування може не виконуватися, якщо ЕЦП використовується тільки для забезпечення властивостей цілісності і автентичності отриманого повідомлення, але не безвідмовності. У цьому випадку, після перевірки, ЕЦП може бути знищена відразу або після обмеженого проміжку часу очікування.
Протоколи управління ключами можна розділити на два класи:
· Протоколи погодження ключів, завданням яких є вироблення загального секрету (таємного ключа) на основі відомих відкритих ключів об'єктів;
· Протоколи транспортування ключів, завданням яких є доставка, введення в дії та використання ключів із забезпеченням їх цілісності, дійсності та при не-обхідності, конфіденційності.
Можна виділити два об'єкти, один з яких є джерелом (ініціатором), а інший відповідачем (приймачем). У такому протоколі ключі складаються з пари сеансових ключів.
Протокол 1. Сеансовий протокол узгодження ключів
Секретними є ключі
і , відкриті і .Загальним секретом є
, що виробляється користувачами А і В, де h-кофактор. Конкретне секретне значення виробляється якТаким чином, протокол реалізує вироблення сеансових пар ключів і виробляє про-мен відкритими сеансовий ключ, на підставі яких виробляється загальне секрет-ве значення.
Протокол 2. Протокол на головних ключах
Протокол виконує обчислення загального секрету, грунтуючись тільки на головних ключах, що дозволяє не виробляти передачі відкритих ключів під час виконання протоколу. Секретний ключ обчислюється з використанням наступної функції:
.Протокол 3. Повний протокол узгодження ключів
У цьому протоколі виконується дві передачі сеансових відкритих ключів. З використанням сеансових і довготривалих відкритих та особистих ключів, що формуються загальні секретні значення
та . Обчислення секретного ключа здійснюється за формулою .Така задача виникає при встановленні засобів ЕЦП в системах коли користувач працює в системі через Web-браузер (MS IE). У таких системах надходять наступним чином: створюється приховане hidden-поле у формі. Коли користувач натискає кнопку типу "підписати і відправити", відповідний скрипт обробника (наприклад, на VBScript) формує строкову змінну, в яку методом конкатенації записують важливу інформацію з ідентифікації документа і вміст текстових полів, які ввів користувач. Далі сформована стрічка підписується. Найчастіше використовуються методи об'єктів CAPICOM.dll, не відділений підпис. Підписана строкою змінна і є електронний документ. Підписаний документ (підписаний рядок) записується в hidden-полі і методом POST передається на сервер. Серверний додаток перевіряє підпис у змінної, отриманої з hidden-поля, і в залежності від результатів перевірки ЕЦП і змістовної частини електронного документа здійснює його подальшу обробку. Важливим моментом є збереження підписаного документа на сервер. Для цього, як правило, створюють таблицю в базі даних системи з двома полями: поле ключа і строкове поле з підписаним електронним документом.
Досить часто зустрічається нефайлова форма подання електронного документа, а електронний документ - як сукупність записів в таблицях бази даних. Для підписання такого документа значення полів записів в таблицях бази даних наводяться в рядковий тип, і за допомогою конкатенації формується строкою змінна, відображає істотну змістовну і ідентифікаційну частину документа. Саме цей рядок тепер вважається оригіналом електронного документа і підписується. Підписаний рядок зберігається у відповідній таблиці бази даних системи з двома полями: поле ключа документа і строкове поле, що містить підписаний електронний документ.
Якщо документ представлений у форматі XML, то є кілька підходів до формування його підписів: формування ЕЦП XML-документів XMLdsig для Windows (MSXML5, MSXML6) з використанням Microsoft Office InfoPath 2003 - нової складової системи Microsoft Office; підпис XML-документа як звичайного файлу. Іноді для підпису в XML-документі в тезі документа створюють окремий атрибут, в який заноситься ЕЦП від символьного рядка змінної довжини, що містить значення атрибутів тега документа. Такий досить цікавий підхід до підпису XML-документа також зустрічається, і він є цілком легітимним.