Електронний цифровий підпис
Міністерство освіти та науки України
Національний Університет «Львівська політехніка»
Кафедра «ІСМ»
Доповідь
з предмету
Захист та безпека даних
в інформаційних системах та мережах
на тему:
«Електронний цифровий підпис»
Виконав
ст. гр. ІСМ-11c
Ткач Ю. М
Прийняв:
Тарасов Д. О
Львів 2010р.
Зміст
Вступ
Призначення ЕЦП
Вимоги до цифрового підпису
Прямий і арбітражний цифрові підписи
Алгоритми
Використання хеш-функцій
Симетрична схема
Асиметрична схема
Керування ключами
Відкритий ключ
Закритий ключ
Моделі атак та їх можливі результати
Протоколи
Стандартні протоколи узгодження ключів
Підписування електронних документів різних форм
Підпис в HTML-формі
Підпис в базі даних
Підпис документів у форматі XML
Підпис файлів у форматі PDF
Підпис багатофайлових документів
Цифрові сертифікати
Стандарти
Юридичне забезпечення електронного підпису
Література
Вступ
Розвиток глобальних комунікацій в діловому і повсякденному житті привів до появи нової області взаємовідносин, предметом яких є електронний обмін даними. У такому обміні даними можуть брати участь органи державної влади, комерційні і некомерційні організації, а також громадяни в своїх офіційних і особистих стосунках.
Проблема збереження електронних документів від копіювання, модифікації і підробки вимагає для свого вирішення специфічних засобів і методів захисту. Одним з поширених в світі засобів такого захисту є Електронний цифровий підпис (ЕЦП), який за допомогою спеціального програмного забезпечення підтверджує достовірність інформації документу, його реквізитів і факту підписання конкретною особою.
Електронний підпис - дані в електронній формі, які додаються до інших електронних даних або логічно з ними пов'язані та призначені для ідентифікації підписувача цих даних.
Електронний цифровий підпис - вид електронного підпису, отриманого за результатом криптографічного перетворення набору електронних даних, який додається до цього набору або логічно з ним поєднується і дає змогу підтвердити його цілісність та ідентифікувати підписувача. Електронний цифровий підпис накладається за допомогою особистого ключа та перевіряється за допомогою відкритого ключа.
Програма електронного документообігу з використанням ЕЦП на сьогодні активно впроваджується в державних установах і органах державної влади, що істотно розширює можливості застосування ЕЦП і розвиток електронного документообігу в Україні.
Звичайний і Електронний цифровий підпис
Електронний цифровий підпис може використовуватися юридичними і фізичними особами як аналог власноручного підпису для надання електронному документу юридичної сили. Юридична сила електронного документу, підписаного ЕЦП, еквівалентна юридичній силі документу на паперовому носії, підписаного власноручним підписом особи і скріпленим печаткою.
Електронний цифровий підпис функціонально аналогічний звичайному рукописному підпису на папері і володіє всіма його основними перевагами:
засвідчує, що підписаний документ надходить від особи, що його підписала;
гарантує цілісність підписаного документа (захист від модифікацій);
не дає можливості особі, що підписала документ, відмовитися від зобов'язань, пов'язаних з підписаним документом.
Закони України прирівнюють за юридичною силою електронні документи, підписані ЕЦП, до документів з власноручним підписом або печаткою, а також створюють правову основу для застосування ЕЦП і здійснення юридично значущих дій шляхом електронного документообігу.
Безпека використання ЕЦП забезпечується тим, що засоби, які використовуються для роботи з ЕЦП, проходять експертизу та сертифікацію в Департаменті спеціальних телекомунікаційних систем СБУ, що гарантує неможливість злому і підробки ЕЦП.
Переваги використання ЕЦП
Застосування ЕЦП дозволяє значно скоротити час руху документів в процесі оформлення звітів і обміну документацією. Документи, підписані ЕЦП, передаються через Інтернет або локальну мережу протягом декількох секунд. Всі учасники електронного обміну документами дістають рівні можливості, незалежно від їх віддаленості один від одного.
Використання ЕЦП дозволяє:
замінити при без паперовому документообігу традиційні печатку та підпис;
удосконалити і здешевити процедуру підготовки, доставки, обліку і зберігання документів, гарантувати достовірність документації;
значно скоротити час руху документів, прискорити і полегшити процес візування одного документа декількома особами;
використовувати одні і ті ж засоби ЕЦП при обміні інформацією зі всіма міністерствами, відомствами, адміністраціями на території України;
побудувати корпоративну систему обміну електронними документами;
забезпечити цілісність - гарантію того, що інформація зараз існує в її початковому вигляді, тобто при її зберіганні або передачі не було проведено несанкціонованих змін;
мінімізувати ризик фінансових втрат за рахунок забезпечення конфіденційності інформаційного обміну документами (при використанні функції шифрування).
Електронна цифрова печатка
Одним із основних реквізитів документів, що підписуються юридичними особами або фізичними особами-підприємцями, є печатка. Електронний цифровий підпис може також функціонувати і в цій якості. Порядок отримання електронної цифрової печатки юридичними особами і фізичними особами-підприємцями аналогічний порядку отримання електронного цифрового підпису.
Призначення ЕЦП
Цифровий підпис призначений для аутентифікації особи, яка підписала електронний документ. Крім цього, використання цифрового підпису дозволяє здійснити:
Контроль цілісності переданого документа: при будь-якому випадковому або навмисному зміну документа підпис стане недійсним, тому що обчислена вона на підставі вихідного стану документа і відповідає лише йому.
Захист від змін (підроблення) документа: гарантія виявлення підробки при контролі цілісності робить підроблюють недоцільним у більшості випадків.
Неможливість відмови від авторства. Так як створити коректну підпис можна, лише знаючи закритий ключ, а він повинен бути відомим тільки власнику, то власник не може відмовитися від свого підпису під документом.
Доказове підтвердження авторства документа: Так як створити коректну підпис можна, лише знаючи закритий ключ, а він повинен бути відомим тільки власнику, то власник пари ключів може довести своє авторство підпису під документом. Залежно від деталей визначення документа можуть бути підписані такі поля, як «автор», «внесені зміни», «мітка часу» і т. д.
Вимоги до цифрового підпису
Аутентифікація захищає двох учасників, які обмінюються повідомленнями, від впливу деякої третьої сторони. Однак проста аутентифікація не захищає учасників один від одного, тоді як і між ними теж можуть виникати певні форми суперечок.
У ситуації, коли обидві сторони не довіряють один одному, необхідно щось більше, ніж аутентифікація на основі загального секрету. Можливим рішенням подібної проблеми є використання цифрового підпису. Цифровий підпис повинний володіти наступними властивостями:
Повинна бути можливість перевірити автора, дату і час створення підпису.
Повинна бути можливість аутентифікувати вміст під час створення підпису.
Підпис повинен бути перевірений третьою стороною для вирішення спорів.
Таким чином, функція цифрового підпису включає функцію аутентифікації.
На підставі цих властивостей можна сформулювати наступні вимоги до цифрового підпису:
Підпис повинен бути двійкового зразком, який залежить від підписується повідомлення.
Підпис повинен використовувати деяку унікальну інформацію відправника для запобігання підробки або відмови.
Створювати цифровий підпис має бути відносно легко.
Повинно бути обчислювально неможливо підробити цифровий підпис як створенням нового повідомлення для існуючої цифрового підпису, так і створенням помилкової цифрового підпису для деякого повідомлення.
Цифровий підпис має бути досить компактним і не займати багато пам'яті.
Існує кілька підходів до використання функції цифрового підпису. Всі вони можуть бути розділені на дві категорії: прямі та арбітражні.
Прямий і арбітражний цифрові підписи
При використанні прямого цифрового підпису взаємодіють тільки самі учасники, тобто відправник та одержувач. Передбачається, що одержувач знає відкритий ключ відправника. Цифровий підпис може бути створений шифруванням усього повідомлення або його хеш-коду (перетворення вхідного масиву даних довільної довжини в вихідний бітовий рядок фіксованої довжини) закритим ключем відправника.
Конфіденційність може бути забезпечена подальшим шифруванням усього повідомлення разом з підписом відкритим ключем одержувача (асиметричне шифрування) або розділяються секретним ключем (симетричне шифрування). Зазвичай функція підпису виконується першою, і тільки після цього виконується функція конфіденційності. У разі виникнення спору якась третя сторона повинна переглянути повідомлення і його підпис. Якщо функція підпису виконується над зашифрованим повідомленням, то для вирішення спорів доведеться зберігати повідомлення як в незашифрованому вигляді (для практичного використання), так і в зашифрованому (для перевірки підпису). Або в цьому випадку необхідно зберігати ключ симетричного шифрування, для того щоб можна було перевірити підпис початкового повідомлення. Якщо цифровий підпис виконується над незашифрованим повідомленням, одержувач може зберігати тільки повідомлення в незашифрованому вигляді і відповідний підпис до нього.
Всі прямі схеми мають спільне слабке місце. Дієвість схеми залежить від безпеки закритого ключа відправника. Якщо відправник згодом не захоче визнати факт відправлення повідомлення, він може стверджувати, що закритий ключ був втрачений або вкрадений, і в результаті хтось підробив його підпис. Можна застосувати адміністративне управління, що забезпечує безпеку закритих ключів, для того щоб, принаймні, хоч у якійсь мірі послабив ці загрози. Один з можливих способів полягає у вимозі до кожного підпису повідомлення включати позначку часу (дату і час) і повідомляти про скомпрометовані ключі в спеціальний центр.
Інша загроза полягає в тому, що закритий ключ може бути дійсно вкрадений у Х в момент часу Т. Порушник може потім послати повідомлення, підписане підписом Х і позначений тимчасовою міткою, яка менше або дорівнює Т.
Проблеми, пов'язані з прямим цифровим підписом, можуть бути частково вирішені за допомогою арбітра. Існують різні схеми з застосуванням арбітражного підпису. У загальному вигляді арбітражний підпис виконується наступним чином. Кожне підписане повідомлення від відправника до одержувача Х Y першою справою надходить до арбітра А, який перевіряє підпис для цього повідомлення. Після цього повідомлення датується і надсилається до Y із зазначенням того, що воно було підтверджено арбітром. Присутність А вирішує проблему схем прямого цифрового підпису, при яких Х може відмовитися від повідомлення.
Арбітр грає важливу роль в подібного роду схемах, і всі учасники повинні йому довіряти.
Алгоритми
Існує кілька схем побудови цифрового підпису:
На основі алгоритмів симетричного шифрування. Дана схема передбачає наявність у системі третьої особи - арбітра, який користується довірою обох сторін. Авторизацією документа є сам факт зашифрування його секретним ключем і передача його арбітру.
На основі алгоритмів асиметричного шифрування. На даний момент такі схеми ЕЦП найбільш поширені і знаходять широке застосування.
Крім цього, існують інші різновиди цифрових підписів (груповий підпис, незаперечний підпис, довірений підпис), які є модифікаціями описаних вище схем. Їх поява обумовлена різноманітністю завдань, що вирішуються за допомогою ЕЦП.
Використання хеш-функцій
Хеш функція — функція, що перетворює вхідні дані будь-якого (як правило, великого) розміру в дані фіксованого розміру.
Криптографічна хеш-функція повинна забезпечувати:
стійкість до колізій (два різні набори даних повинні мати різні результати перетворення);
необоротність (неможливість обчислити вхідні дані за результатом перетворення).
Оскільки підписуванні документи - змінного (і як правило досить великого) обсягу, в схемах ЕЦП найчастіше підпис ставиться не на сам документ, а на його хеш. Для обчислення хеша використовуються криптографічні хеш-функції, що гарантує виявлення змін документа при перевірці підпису. Хеш-функції не є частиною алгоритму ЕЦП, тому в схемі може бути використана будь-яка надійна хеш-функція.
Використання хеш-функції дає наступні переваги:
Обчислювальна складність. Зазвичай хеш цифрового документа робиться у багато разів меншого обсягу, ніж обсяг вихідного документа, і алгоритми обчислення хешу є більш швидкими, ніж алгоритми ЕЦП. Тому формувати хеш документа і підписувати його виходить набагато швидше, ніж підписувати сам документ.
Сумісність. Більшість алгоритмів оперує з рядками біт даних, але деякі використовують інші уявлення. Хеш-функцію можна використовувати для перетворення довільного вхідного тексту у відповідний формат.
Цілісність. Без використання хеш-функції великий електронний документ у деяких схемах потрібно розділяти на досить малі блоки для застосування ЕЦП. При верифікації неможливо визначити, чи всі блоки отримані і в правильному чи вони порядку.
Варто зауважити, що використання хеш-функції не обов'язково під час цифрового підпису, а сама функція не є частиною алгоритму ЕЦП, тому хеш-функція може використовуватися будь-яка або не використовуватися взагалі.
У більшості ранніх систем ЕЦП використовувалися функції з секретом, які за своїм призначенням близькі до односторонніх функцій. Такі системи уразливі до атак з використанням відкритого ключа, так як, вибравши довільний цифровий підпис і застосувавши до неї алгоритм верифікації, можна отримати вихідний текст. Щоб уникнути цього, разом з цифровим підписом використовується хеш-функція, тобто, обчислення підпису здійснюється не щодо самого документа, а щодо його хешу. У цьому випадку в результаті верифікації можна отримати тільки хеш вихідного тексту, отже, якщо використовується хеш-функція криптографічно стійка, то отримати вихідний текст буде обчислювально складно, а значить атака такого типу стає неможливою.
Симетрична схема
Симетричні схеми ЕЦП менш поширені ніж асиметричні, так як після появи концепції цифрового підпису не вдалося реалізувати ефективні алгоритми підпису, засновані на відомих у той час симетричних шифрах. Першими, хто звернув увагу на можливість симетричної схеми цифрового підпису, були основоположники самого поняття ЕЦП Діффі і Хеллмана, які опублікували опис алгоритму підпису одного біта за допомогою блокового шифру. Асиметричні схеми цифрового підпису спираються на обчислювально складні завдання, складність яких ще не доведена, тому неможливо визначити, чи будуть ці схеми зламані найближчим часом, як це сталося зі схемою, заснованої на задачі про укладання ранця. Також для збільшення криптостійкості потрібно збільшувати довжину ключів, що призводить до необхідності переписувати програми, що реалізують асиметричні схеми, і в деяких випадках перепроектувати апаратуру. Симетричні схеми засновані на добре вивчених блокових шифрах.
У зв'язку з цим симетричні схеми мають наступні переваги:
Стійкість симетричних схем ЕЦП випливає з стійкості використовуваних блокових шифрів, надійність яких також добре вивчена.
Якщо стійкість шифру виявиться недостатньою, його легко можна буде замінити на більш стійкий з мінімальними змінами в реалізації.
Однак у симетричних ЕЦП є і ряд недоліків:
Потрібно підписувати окремо кожен біт інформації, що передається, що призводить до значного збільшення підпису. Підпис може перевершувати повідомлення за розміром на два порядки.
Згенеровані для підпису ключі можуть бути використані тільки один раз, тому що після підписання розкривається половина секретного ключа.
Через розглянутих недоліків симетрична схема ЕЦП Діффі-Хелман не застосовується, а використовується її модифікація, розроблена Березіним і Дорошкевича, в якій підписується відразу група з декількох біт. Це призводить до зменшення розмірів підпису, але до збільшення обсягу обчислень. Для подолання проблеми «одноразовості» ключів використовується генерація окремих ключів з головного ключа.
Асиметрична схема
Асиметричні схеми ЕЦП відносяться до криптосистем з відкритим ключем. На відміну від асиметричних алгоритмів шифрування, в яких зашифрування проводиться за допомогою відкритого ключа, а розшифрування - за допомогою закритого, у схемах цифрового підпису підписування проводиться із застосуванням закритого ключа, а перевірка - із застосуванням відкритого.
Загальновизнана схема цифрового підпису охоплює три процеси :
Генерація ключової пари. За допомогою алгоритму генерації ключа рівно ймовірним чином з набору можливих закритих ключів вибирається закритий ключ, обчислюється відповідний йому відкритий ключ.
Формування підпису. Для заданого електронного документа за допомогою закритого ключа обчислюється підпис.
Перевірка (верифікація) підпису. Для даних документа та підпису за допомогою відкритого ключа визначається дійсність підпису.
Для того, щоб використання цифрового підпису мало сенс, необхідно виконання двох умов:
Верифікація підпису повинна проводитися відкритим ключем, відповідним саме тому закритому ключу, який використовувався під час підписання.
Без володіння закритим ключем має бути обчислювально складно створити легітимний цифровий підпис.
Керування ключами
Відкритий ключ
Важливою проблемою всієї криптографії з відкритим ключем, в тому числі і систем ЕЦП, є управління відкритими ключами. Так як відкритий ключ доступний будь-якому користувачеві, то необхідний механізм перевірки того, що цей ключ належить саме своєму власникові. Необхідно забезпечити доступ будь-якого користувача до справжнього відкритого ключа будь-якого іншого користувача, захистити ці ключі від підміни зловмисником, а також організувати відгук ключа у разі його компрометації.
Завдання захисту ключів від підміни вирішується за допомогою сертифікатів. Сертифікат дозволяє засвідчити укладені в ньому дані про власника і його відкритий ключ підписом будь-якої довіреної особи. Існують системи сертифікатів двох типів: централізовані і децентралізовані. У децентралізованих системах шляхом перехресного підписування сертифікатів знайомих і довірених людей кожним користувачем будується мережа довіри. У централізованих системах сертифікатів використовуються центри сертифікації, підтримувані довіреними організаціями.
Центр сертифікації формує закритий ключ і власний сертифікат, формує сертифікати кінцевих користувачів і засвідчує їх автентичність своїм цифровим підписом. Також центр проводить відгук минулих і компрометованих сертифікатів і веде бази виданих та відкликаних сертифікатів. Звернувшись в сертифікаційний центр, можна отримати власний сертифікат відкритого ключа, сертифікат для іншого користувача і дізнатися, які ключі відкликані.
Закритий ключ
Закритий ключ є найбільш вразливим компонентом всієї криптосистеми цифрового підпису. Зловмисник, який вкрав закритий ключ користувача, може створити дійсний цифровий підпис будь-якого електронного документа від імені цього користувача. Тому особливу увагу потрібно приділяти способу зберігання закритого ключа. Користувач може зберігати закритий ключ на своєму персональному комп'ютері, захистивши його за допомогою пароля. Однак такий спосіб зберігання має ряд недоліків, зокрема, захищеність ключа повністю залежить від захищеності комп'ютера, і користувач може підписувати документи лише на цьому комп'ютері.
В даний час існують наступні пристрої зберігання закритого ключа :
Дискети
Смарт-карти
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-документа також зустрічається, і він є цілком легітимним.
Підпис файлів у форматі PDF
Для формування і перевірки ЕЦП і забезпечення юридичної значимості електронних документів, які формуються в форматі PDF, компанія "крипто-ПРО" розробила спеціальний продукт, званий «КріптоПро PDF». Він є модулем створення та перевірки ЕЦП і призначений для формування та перевірки ЕЦП в програмax Adobe Reader, Adobe Acrobat версії 7 і вище. «КріптоПро PDF» розроблений з використанням програмного інтерфейсу Adobe Systems Inc. і завірений електронним цифровим підписом компанії Adobe Systems.
Це дозволяє використовувати сертифіковані засоби криптографічного захисту інформації "КріптоПро CSP "в продуктах Adobe Acrobat, Adobe Reader та Adobe LiveCycle ES. Важливе зауваження: "крипто-Про CSP" для перевірки ЕЦП не вимагає активації ліцензії, тобто працює безкоштовно. Досить просто встановити цей продукт і перевіряти підпис з використанням Adobe Reader.
Підпис багатофайлових документів
Іноді документ може являти собою досить велику сукупність файлів. Наприклад, відомості про первинні документах для здійснення операцій в реєстрі власників інвестиційних паїв пайового фонду, отриманих від керуючої компанії. У цьому випадку можна формувати для кожного документа свою ЕЦП, а можна від цього відмовитися. Якщо з яких-небудь причин формування ЕЦП для кожного файлу документа неможливо, то створюють ще один файл текстового формату, в який записують ідентифікаційні дані документа і значення хеш-функцій для кожного файлу документа. Саме цей файл (картка документа) і підписують. Але в даному разі в системі повинен бути передбачений інструмент для користувача, що дозволяє розрахувати значення хеш-функцій для кожного файлу та порівняння обчислених значень з даними картки документа.
Цифрові сертифікати
При використанні асиметричних методів шифрування (і, зокрема, електронного цифрового підпису) необхідно мати гарантію автентичності пари (ім'я користувача, відкритий ключ користувача). Для вирішення цього завдання в специфікаціях X.509 вводяться поняття цифрового сертифікату та засвідчувального центру.
Засвідчувальний центр - це компонент глобальної служби каталогів, відповідальний за керування криптографічними ключами користувачів. Відкриті ключі та інша інформація про користувачів зберігається засвідчують центрами у вигляді цифрових сертифікатів, що мають наступну структуру:
порядковий номер сертифіката;
ідентифікатор алгоритму електронного підпису;
ім'я центра, що засвідчує;
термін придатності;
ім'я власника сертифіката (ім'я користувача, якому належить сертифікат);
відкриті ключі власника сертифіката (ключів може бути декілька);
ідентифікатори алгоритмів, асоційованих з відкритими ключами власника сертифіката;
електронний підпис, згенерований з використанням секретного ключа центра, що засвідчує (підписується результат хешування всієї інформації, що зберігається в сертифікаті).
Цифрові сертифікати володіють наступними властивостями:
будь-який користувач, який знає відкритий ключ засвідчувального центру, може дізнатися відкриті ключі інших клієнтів центру і перевірити цілісність сертифіката;
ніхто, крім центра, що засвідчує, не може модифікувати інформацію про користувача без порушення цілісності сертифікату.
У специфікаціях X.509 не описується конкретна процедура генерації криптографічних ключів та управління ними, однак даються деякі загальні рекомендації. Зокрема, обговорюється, що пари ключів можуть породжуватися кожним із наступних способів:
ключі може генерувати сам користувач. У такому випадку секретний ключ не потрапляє в руки третіх осіб, проте потрібно вирішувати задачу безпечного зв'язку з документом з центром;
ключі генерує довірену особу. У такому випадку доводиться вирішувати завдання безпечної доставки секретного ключа власнику та надання довірених даних для створення сертифіката;
ключі генеруються підтверджуючий центр. У такому випадку залишається тільки завдання безпечної передачі ключів власнику.
Цифрові сертифікати у форматі X.509 версії 3 стали не тільки формальним, але і фактичним стандартом, що підтримується численними засвідчувальними центрами.
Стандарти
Цифровий підпис у відповідності зі стандартом ISO 7498-2 представляє собою отримані в результаті криптографічного перетворення блоку даних дані, які дозволяють одержувачу упевнитися в цілісності цього блоку та автентичності джерела, а також забезпечує захист від підробки одержувача. Цифровий підпис дозволяє з високим ступенем достовірності визначити джерело повідомлення або даних.
Стандарти цифрового підпису наведено в табл. 1.
-
№ п/п
Тип цифрового підпису
Стандарт
1
RSA схема
ISO 9796, 11166
2
DSA схема
NIST MD-20899
3
DSA подібна схема
ГОСТ З4.10-94
Таблиця 1. Стандарти цифрових підписів
Усі стандарти припускають несиметричну схему формування і перевірки цифрового підпису. Для виконання цих процедур використовуються різні ключі. Для установки цифрового підпису - т. н. конфіденційні, а для перевірки цифрового підпису - відкриті ключі. Тому додатково з цими схемами використовуються стандарти для роботи з відкритими ключами, наприклад, стандарт для угоди про ключі Діффі-Хелман (Х9.42).
Усі стандарти передбачають використання загальномережевих параметрів. В алгоритмі RSA в якості загальномережевого параметра використовується модуль перетворення
N = P * Q,
де P, Q прості числа (бажано сильні) необхідної розрядності.
Юридичне забезпечення електронного підпису
Верховною Радою України прийнято Закон України "Про електронний цифровий підпис" від 22.05.2003 N 852-IV (далі - Закон). Відповідно до частини 1 статті 18 Закону він набирає чинності з 1 січня 2004 року.
Цей Закон визначає правовий статус електронного цифрового підпису (ЕЦП) та регулює відносини, що виникають при використанні електронного цифрового підпису.
Згідно зі статтею 1 Закону електронний підпис - дані в електронній формі, які додаються до інших електронних даних або логічно з ними пов'язані та призначені для ідентифікації підписувача цих даних; електронний цифровий підпис - вид електронного підпису, отриманого за результатом криптографічного перетворення набору електронних даних, який додається до цього набору або логічно з ним поєднується і дає змогу підтвердити його цілісність та ідентифікувати підписувача. Електронний цифровий підпис накладається за допомогою особистого ключа та перевіряється за допомогою відкритого ключа.
Закон окреслює коло суб'єктів правових відносин у сфері послуг електронного цифрового підпису, його призначення та особливості застосування.
Необхідно особливо підкреслити, що в реалізації цього Закону найбільш зацікавлені на поточний момент банківська система та податкова система України, торгівля, тощо.
Відповідно до статті 4 Закону електронний цифровий підпис призначений для забезпечення діяльності фізичних та юридичних осіб, яка здійснюється з використанням електронних документів.
Електронний цифровий підпис використовується фізичними та юридичними особами - суб'єктами електронного документообігу для ідентифікації підписувача та підтвердження цілісності даних в електронній формі.
Використання електронного цифрового підпису не змінює порядку підписання договорів та інших документів, встановленого законом для вчинення правочинів у письмовій формі.
Нотаріальні дії із засвідчення справжності електронного цифрового підпису на електронних документах вчиняються відповідно до порядку, встановленого законом.
В Законі вживаються наступні терміни:
засіб електронного цифрового підпису - програмний засіб, програмно-апаратний або апаратний пристрій, призначені для генерації ключів, накладення та/або перевірки електронного цифрового підпису;
особистий ключ - параметр криптографічного алгоритму формування електронного цифрового підпису, доступний тільки підписувачу;
відкритий ключ - параметр криптографічного алгоритму перевірки електронного цифрового підпису, доступний суб'єктам відносин у сфері використання електронного цифрового підпису;
засвідчення чинності відкритого ключа - процедура формування сертифіката відкритого ключа;
сертифікат відкритого ключа (далі - сертифікат ключа) - документ, виданий центром сертифікації ключів, який засвідчує чинність і належність відкритого ключа підписувачу. Сертифікати ключів можуть розповсюджуватися в електронній формі або у формі документа на папері та використовуватися для ідентифікації особи підписувача;
посилений сертифікат відкритого ключа (далі - посилений сертифікат ключа) - сертифікат ключа, який відповідає вимогам Закону, виданий акредитованим центром сертифікації ключів, засвідчувальним центром, центральним засвідчувальним органом;
акредитація - процедура документального засвідчення компетентності центра сертифікації ключів здійснювати діяльність, пов'язану з обслуговуванням посилених сертифікатів ключів;
компрометація особистого ключа - будь-яка подія та/або дія, що призвела або може призвести до несанкціонованого використання особистого ключа;
підписувач - особа, яка на законних підставах володіє особистим ключем та від свого імені або за дорученням особи, яку вона представляє, накладає електронний цифровий підпис під час створення електронного документа;
послуги електронного цифрового підпису - надання у користування засобів електронного цифрового підпису, допомога при генерації відкритих та особистих ключів, обслуговування сертифікатів ключів (формування, розповсюдження, скасування, зберігання, блокування та поновлення), надання інформації щодо чинних, скасованих і блокованих сертифікатів ключів, послуги фіксування часу, консультації та інші послуги, визначені Законом;
надійний засіб електронного цифрового підпису - засіб електронного цифрового підпису, що має сертифікат відповідності або позитивний експертний висновок за результатами державної експертизи у сфері криптографічного захисту інформації.
Відповідно до статті 2 Закону суб'єктами правових відносин у сфері послуг електронного цифрового підпису є:
підписувач;
користувач;
центр сертифікації ключів;
акредитований центр сертифікації ключів;
центральний засвідчувальний орган;
засвідчувальний центр органу виконавчої влади або іншого державного органу (далі - засвідчувальний центр);
контролюючий орган.
Стаття 3 Закону визначає правовий статус ЕЦП: „Електронний цифровий підпис за правовим статусом прирівнюється до власноручного підпису (печатки) у разі, якщо:
електронний цифровий підпис підтверджено з використанням посиленого сертифіката ключа за допомогою надійних засобів цифрового підпису;
під час перевірки використовувався посилений сертифікат ключа, чинний на момент накладення електронного цифрового підпису;
особистий ключ підписувача відповідає відкритому ключу, зазначеному у сертифікаті.
Електронний підпис не може бути визнаний недійсним лише через те, що він має електронну форму або не ґрунтується на посиленому сертифікаті ключа.”
Відповідно до статті 6 Закону сертифікат ключа містить такі обов'язкові дані:
найменування та реквізити центру сертифікації ключів (центрального засвідчувального органу, засвідчувального центру);
зазначення, що сертифікат виданий в Україні;
унікальний реєстраційний номер сертифіката ключа;
основні дані (реквізити) підписувача - власника особистого ключа;
дату і час початку та закінчення строку чинності сертифіката;
відкритий ключ;
найменування криптографічного алгоритму, що використовується власником особистого ключа;
інформацію про обмеження використання підпису.
Посилений сертифікат ключа, крім обов'язкових даних, які містяться в сертифікаті ключа, повинен мати ознаку посиленого сертифіката ключа.
Інші дані можуть вноситися у посилений сертифікат ключа на вимогу його власника.
Відповідно до статті 8 Закону Центром сертифікації ключів може бути юридична особа незалежно від форми власності або фізична особа, яка є суб'єктом підприємницької діяльності, що надає послуги електронного цифрового підпису та засвідчила свій відкритий ключ у центральному засвідчувальному органі або засвідчувальному центрі з дотриманням вимог статті 6 Закону.
Обслуговування фізичних та юридичних осіб здійснюється центром сертифікації ключів на договірних засадах.
Центр сертифікації ключів має право:
надавати послуги електронного цифрового підпису та обслуговувати сертифікати ключів;
отримувати та перевіряти інформацію, необхідну для реєстрації підписувача і формування сертифіката ключа безпосередньо у юридичної або фізичної особи чи у її уповноваженого представника.
Центр сертифікації ключів зобов'язаний:
забезпечувати захист інформації в автоматизованих системах відповідно до законодавства;
забезпечувати захист персональних даних, отриманих від підписувача, згідно з законодавством;
встановлювати під час формування сертифіката ключа належність відкритого ключа та відповідного особистого ключа підписувачу;
своєчасно скасовувати, блокувати та поновлювати сертифікати ключів у випадках, передбачених Законом;
своєчасно попереджувати підписувача та додавати в сертифікат відкритого ключа підписувача інформацію про обмеження використання електронного цифрового підпису, які встановлюються для забезпечення можливості відшкодування збитків сторін у разі заподіяння шкоди з боку центру сертифікації ключів;
перевіряти законність звернень про скасування, блокування та поновлення сертифікатів ключів та зберігати документи, на підставі яких були скасовані, блоковані та поновлені сертифікати ключів;
цілодобово приймати заяви про скасування, блокування та поновлення сертифікатів ключів;
вести електронний перелік чинних, скасованих і блокованих сертифікатів ключів;
забезпечувати цілодобово доступ користувачів до сертифікатів ключів та відповідних електронних переліків сертифікатів через загальнодоступні телекомунікаційні канали;
забезпечувати зберігання сформованих сертифікатів ключів протягом строку, передбаченого законодавством для зберігання відповідних документів на папері;
надавати консультації з питань, пов'язаних з електронним цифровим підписом.
Зберігання особистих ключів підписувачів та ознайомлення з ними в центрі сертифікації ключів забороняються.
Центр сертифікації ключів, акредитований в установленому порядку, є акредитованим центром сертифікації ключів.
Акредитований центр сертифікації ключів має право:
надавати послуги електронного цифрового підпису та обслуговувати виключно посилені сертифікати ключів;
отримувати та перевіряти інформацію, необхідну для реєстрації підписувача і формування посиленого сертифіката ключа, безпосередньо у юридичної або фізичної особи чи її представника.
Акредитований центр сертифікації ключів має виконувати усі зобов'язання та вимоги, встановлені законодавством для центру сертифікації ключів, та додатково зобов'язаний використовувати для надання послуг електронного цифрового підпису надійні засоби електронного цифрового підпису.
Кабінет Міністрів України за необхідності визначає засвідчувальний центр центрального органу виконавчої влади для забезпечення реєстрації, засвідчення чинності відкритих ключів та акредитації групи центрів сертифікації ключів, які надають послуги електронного цифрового підпису цьому органу і підпорядкованим йому підприємствам, установам та організаціям.
Засвідчувальний центр відповідає вимогам, встановленим законодавством для акредитованого центру сертифікації ключів.
Засвідчувальний центр реєструється, засвідчує свій відкритий ключ і акредитується у центральному засвідчувальному органі.
Центральний засвідчувальний орган визначається Кабінетом Міністрів України.
Центральний засвідчувальний орган:
формує і видає посилені сертифікати ключів засвідчувальним центрам та центрам сертифікації ключів з дотриманням вимог статті 6 Закону;
блокує, скасовує та поновлює посилені сертифікати ключів засвідчувальних центрів та центрів сертифікації ключів у випадках, передбачених Законом;
веде електронні реєстри чинних, блокованих та скасованих посилених сертифікатів ключів засвідчувальних центрів та центрів сертифікації ключів;
веде акредитацію центрів сертифікації ключів, отримує та перевіряє інформацію, необхідну для їх акредитації;
забезпечує цілодобово доступ засвідчувальних центрів та центрів сертифікації ключів до посилених сертифікатів ключів та відповідних електронних реєстрів через загальнодоступні телекомунікаційні канали;
зберігає посилені сертифікати ключів засвідчувальних центрів та центрів сертифікації ключів;
надає засвідчувальним центрам та центрам сертифікації ключів консультації з питань, пов'язаних з використанням електронного цифрового підпису.
Центральний засвідчувальний орган відповідає вимогам, встановленим законодавством для акредитованого центру сертифікації ключів.
Функції контролюючого органу здійснює спеціально уповноважений центральний орган виконавчої влади у сфері криптографічного захисту інформації.
Контролюючий орган перевіряє дотримання вимог Закону центральним засвідчувальним органом, засвідчувальними центрами та центрами сертифікації ключів.
У разі невиконання або неналежного виконання обов'язків та виявлення порушень вимог, встановлених законодавством для центру сертифікації ключів, засвідчувального центру, контролюючий орган дає розпорядження центральному засвідчувальному органу про негайне вжиття заходів, передбачених законом.
Акредитований центр сертифікації ключів негайно скасовує сформований ним посилений сертифікат ключа у разі:
закінчення строку чинності сертифіката ключа;
подання заяви власника ключа або його уповноваженого представника;
припинення діяльності юридичної особи - власника ключа;
смерті фізичної особи - власника ключа або оголошення його померлим за рішенням суду;
визнання власника ключа недієздатним за рішенням суду;
надання власником ключа недостовірних даних;
компрометації особистого ключа.
Центральний засвідчувальний орган негайно скасовує посилений сертифікат ключа центру сертифікації ключів, засвідчувального центру у разі:
припинення діяльності з надання послуг електронного цифрового підпису;
компрометації особистого ключа.
Центральний засвідчувальний орган, засвідчувальний центр, акредитований центр сертифікації ключів негайно блокують посилений сертифікат ключа:
у разі подання заяви власника ключа або його уповноваженого представника;
за рішенням суду, що набрало законної сили;
у разі компрометації особистого ключа.
Скасування і блокування посиленого сертифіката ключа набирає чинності з моменту внесення до реєстру чинних, скасованих і блокованих посилених сертифікатів із зазначенням дати та часу здійснення цієї операції.
Центральний засвідчувальний орган, засвідчувальний центр, акредитований центр сертифікації ключів негайно повідомляють про скасування або блокування посиленого сертифіката ключа його власника.
Блокований посилений сертифікат ключа поновлюється:
у разі подання заяви власника ключа або його уповноваженого представника;
за рішенням суду, що набрало законної сили;
у разі встановлення недостовірності даних про компрометацію особистого ключа.
Відповідно до статті 15 Закону особи, винні у порушенні законодавства про електронний цифровий підпис, несуть відповідальність згідно з законом.
Література
http://ru.wikipedia.org/wiki/Электронная_цифровая_подпись.
"Методы и средства защиты информации" (курс лекций) Беляев А.В.
И.Д. Горбенко, С.И. Збитнев, А.А. Поляков Криптографические преобразования в группах точек эллиптических кривых методом Полларда // Радиотехника: Всеукр. межвед. науч-тех. сб 2001. Вып. 119. С. 43-50.
И.Д. ГОРБЕНКО, д-р техн. наук, А.А. ПОЛЯКОВ, С.И. ЗБИТНЕВ, ПРОТОКОЛЫ – ПРИМИТИВЫ УПРАВЛЕНИЯ КЛЮЧАМИ В ГРУППАХ ТОЧЕК ЭЛЛИПТИЧЕСКИХ КРИВЫХ