Цифровий сертифікат — електронний документ, який пов’язує відкритий ключ із власником (доменним ім’ям, організацією чи особою) і підписаний довіреним центром сертифікації.
Як працюють цифрові сертифікати
Більшість сертифікатів відповідають стандарту X.509, профіль якого для інтернету описано в RFC 5280. Сертифікат містить ім’я суб’єкта (для сайтів — доменні імена в полі Subject Alternative Name), його відкритий ключ, видавця, серійний номер, строк дії та цифровий підпис видавця. Браузери й операційні системи перевіряють ланцюжок довіри: сертифікат сервера підписаний проміжним ЦС, а той — кореневим, що зберігається у сховищі довірених сертифікатів. Якщо ланцюжок, ім’я чи дати не збігаються, з’єднання відхиляється.
Основні типи — серверні сертифікати для TLS і HTTPS, сертифікати підписування коду, S/MIME-сертифікати для пошти та клієнтські сертифікати для автентифікації пристроїв і користувачів. Сертифікати відкликають через CRL або OCSP, а журнали Certificate Transparency (RFC 6962) публічно фіксують кожен виданий TLS-сертифікат.
Чому сертифікати важливі для безпеки
Сертифікати — фундамент довіри у вебі, тому вони приваблюють зловмисників:
- Злам ЦС — у 2011 році хакери проникли в нідерландський центр DigiNotar і видали підроблений сертифікат для google.com, за допомогою якого стежили за користувачами в Ірані; DigiNotar збанкрутував.
- Крадіжка сертифікатів підписування коду — драйвери Stuxnet були підписані сертифікатами, викраденими у двох тайванських виробників обладнання.
- Фішинг — безкоштовне автоматичне видавання означає, що замок в адресному рядку підтверджує лише контроль над доменом, а не чесність сайту.
Рекомендації
- Автоматизувати видавання й поновлення за протоколом ACME (Let’s Encrypt або комерційні центри сертифікації), адже максимальні строки дії постійно скорочуються.
- Вести реєстр сертифікатів і відстежувати журнали Certificate Transparency для своїх доменів.
- Зберігати закриті ключі та ключі підписування коду в HSM і негайно відкликати сертифікати в разі компрометації.