Цифровий підпис і цифровий сертифікат – простий посібник

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

Значно швидше, ніж пересилання паперів поштою та відправлення документів факсом, цифровий підпис прийшов на допомогу різним підприємствам. 

Що таке цифровий підпис? 

Цифровий підпис — це електронна перевірка відправника документа, яка дозволяє одержувачу визначити, чи оригінальний вміст було змінено посередником. 

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

Цифровий підпис служить трьом цілям: 

  1. Authentication – одержувач може встановити авторство повідомлення та визначити, чи є відправник тим, за кого себе видає. 
  2. Не відмова – відправник не може заперечити, що відправив повідомлення пізніше, і може нести відповідальність за незмінене повідомлення. 
  3. Цілісність – повідомлення не було змінено. 

По суті, цифровий підпис має юридичну силу в Сполучених Штатах, Європейському Союзі, Швейцарії, Південній Африці, Алжирі, Туреччині, Індії, Бразилії, Індонезії, Мексиці, Саудівській Аравії, Уругваї та Чилі. 

Як створити цифровий підпис? 

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

Приватний ключ — це елемент цього рівняння, яким володієте лише ви, і надаючи його, ви показуєте доказ того, що саме ви підписали документ. 

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

СІДЕНОТ. Хешування — це перетворення певного вмісту будь-якої довжини в коротше значення фіксованої довжини. 

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

Далі ви шифруєте хеш простого тексту за допомогою свого закритого ключа, що призведе до цифрового підпису. 

Ви вкладаєте цифровий підпис у звичайний текстовий документ і надсилаєте його. 

через асиметричне шифрування, одержувач зможе розшифрувати ваш цифровий підпис і порівняти хеш звичайного тексту з хешем, який ви надаєте.  

Отже, ви можете задатися питанням, як хешувати документ. На щастя, програма на вашому комп’ютері зробить це автоматично за вас.  

Ось як можна створити хеш документа в Windows 7/8/10: 

  1. Доступ до «Командного рядка»;  
  2. Введіть «certutil – hashfile» 
  3. Перетягніть документ у «Командний рядок». 
  4. Додайте «SHA256» у кінці рядка. 

Ваш остаточний рядок має виглядати приблизно так: 

certutil -хеш-файл “C:\User\Computer\Desktop\File.docx” SHA256 

Зробивши це, консоль відобразить 256 біт / 64 шістнадцяткові символи коду, який представляє вміст вашого файлу. 

Але де взяти закритий і відкритий ключ? 

Це також досить просто.  

Ви можете створити їх за допомогою програмного забезпечення, онлайн-платформи або через інфраструктуру відкритих ключів (PKI), зареєстровану в центрі сертифікації. 

SIDENOTE. PKI є прийнятним форматом для керування шифруванням із відкритим ключем, який забезпечує найвищий рівень безпеки та універсальне визнання.  

Тоді як додати цифровий підпис із закритим ключем до документа? 

Для цього вам знову доведеться використовувати спеціальне програмне забезпечення, наприклад Sign Server, Safe pdf або DocuSign. 

Як це допомагає? 

Давайте візьмемо вигаданий сценарій того, як цифровий підпис може захистити вас.  

Ви цифровим способом підписуєте контракт із закордонним постачальником послуг аутсорсингу.  

Після узгодження умов і тарифу 20 доларів США за годину ви хешували документ і підписували його, а потім відправляли назад постачальнику. 

І тут виникає проблема.  

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

Як довести, що документ підроблено?  

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

І навіть якщо керівник не бажає співпрацювати, ви можете подати на нього до суду, довести свою правоту та притягнути його до відповідальності. 

Цифровий підпис у блокчейні 

Блокчейн біткойна використовує алгоритм SHA256 і цифровий підпис для забезпечення незмінності інформації, що зберігається на blockchain. Цифровий підпис допомагає відстежувати транзакції та запобігати подвійним витратам. 

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

Хеш-покажчик містить хеш усіх даних у попередньому блоці. Будь-яка незначна модифікація даних, що містяться в блоці, призведе до різких змін у хеші. Модифікація поширюється не лише на поточний, а й на всі попередні блоки, отже анулюючи їх. 

Що таке цифровий сертифікат? 

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

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

Сам по собі цифровий підпис не підтверджує справжню особу відправника та його відкритий ключ, отже, не має автентифікації. 

Однак цю проблему вирішує цифровий сертифікат. Цифровий сертифікат — це електронний обліковий запис, виданий Центром сертифікації.  

Центр сертифікації реєструє через PKI особу власника, а також перевіряє, що власник дійсно володіє відкритим ключем. 

Цифровий сертифікат зазвичай містить ім’я власника, відкритий ключ, центр сертифікації та цифровий підпис. Таким чином значно знижується ризик отримання цифрового підпису від зловмисника. 

Як створити цифровий сертифікат? 

В основному існує два способи створення цифрового сертифіката: 

  1. Ви створюєте самопідписаний сертифікат. 
  2. Ви запитуєте його в центру сертифікації (CA). 

1. Самопідписаний сертифікат 

Існує кілька методів створення самопідписаного сертифіката, але щоб зрозуміти процес, ми звернемося до самопідписаного сертифіката X509. Ви можете створити все це самостійно в OpenSSL. 

Просто відкрийте командний рядок і введіть «openssl». 

Далі введіть «OpenSSL req -x509 -days 365 -newkey rsa:2048 -keyout my-key.pem -out my-cert.pem». 

І хоча декому з вас це може здатися тарабарщиною, давайте подивимося, що все це означає: 

  • «Req» означає, що це запит на сертифікат; 
  • 'x509' позначає тип сертифіката; 
  • «365» вказує кількість днів, протягом яких він буде дійсним; 
  • 'newkey' означає, що це буде новий сертифікат;
  • "Keyout" буде файлом ключа.

Після цього ви зможете створити закритий ключ і додати ідентифікаційну інформацію.  

Ви можете знайти покрокову інструкцію тут

Однак самопідписаний цифровий сертифікат забезпечує лише шифрування, але не довіру. Такий сертифікат є легкою мішенню для хакерів. Вони можуть скопіювати його, видати себе за «емітента» та почати фішинг для отримання особистої інформації. 

Насправді веб-сайти, які використовують самопідписані сертифікати SSL, позначаються веб-переглядачами як «ненадійні». 

2. Сертифікат, виданий ЦС 

Цифровий сертифікат, перевірений центром сертифікації, є більш надійним і безпечним методом. Його також легше отримати, але це може передбачати оплату.  

Орган сертифікації зазвичай вимагає плату за видачу сертифіката, і ви можете попросити лише їхній сертифікат або попросити їх обробити всі PKI. 

Якщо вам потрібен простий сертифікат, ви можете зв’язатися з ними по телефону або електронною поштою. Вони перевірять вашу особу, а потім видадуть вам сертифікат, який повинен містити відкритий ключ, ідентифікатор центру сертифікації та ідентифікатор користувача. 

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

У випадку веб-сайту запит на підписання сертифіката надходить як команда веб-сервера. 

Ключові винесення 

  • Цифровий підпис — це електронна перевірка відправника. Він покладається на асиметричне шифрування та використовує закритий ключ для шифрування повідомлення та відкритий ключ для його розшифровки. 
  • Вміст повідомлення хешується, щоб зберегти цілісність. Однак хеш є одностороннім процесом і використовується для підтвердження того, що вміст не було змінено. 
  • Отримане повідомлення розшифровується відкритим ключем, а хеш вмісту має відповідати хеш-значенню, наданому відправником. В іншому випадку одержувач має підстави вважати, що вміст було змінено. 
  • Лише цифровому підпису не вистачає автентифікації. Тому він повинен бути підкріплений цифровим сертифікатом, виданим центром сертифікації. 

* Інформація в цій статті та надані посилання призначені лише для загальної інформації та не повинні бути фінансовими або інвестиційними порадами. Ми радимо вам провести власне дослідження або проконсультуватися з фахівцем, перш ніж приймати фінансові рішення. Будь ласка, підтвердьте, що ми не несемо відповідальності за будь-які збитки, спричинені будь-якою інформацією, представленою на цьому веб-сайті.

Джерело: https://coindoo.com/digital-signature/