Certificates
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Використовуйте Trickest для легкого створення та автоматизації робочих процесів, підтримуваних найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Що таке сертифікат
Публічний ключовий сертифікат — це цифровий ID, що використовується в криптографії для підтвердження того, що хтось володіє публічним ключем. Він містить деталі ключа, ідентичність власника (суб'єкт) та цифровий підпис від надійного органу (видавця). Якщо програмне забезпечення довіряє видавцю, а підпис дійсний, можлива безпечна комунікація з власником ключа.
Сертифікати в основному видаються сертифікаційними центрами (CA) в рамках інфраструктури відкритих ключів (PKI). Інший метод — це мережа довіри, де користувачі безпосередньо перевіряють ключі один одного. Загальний формат для сертифікатів — X.509, який може бути адаптований для специфічних потреб, як зазначено в RFC 5280.
Загальні поля x509
Загальні поля в сертифікатах x509
У сертифікатах x509 кілька полів відіграють критичну роль у забезпеченні дійсності та безпеки сертифіката. Ось розподіл цих полів:
Номер версії позначає версію формату x509.
Серійний номер унікально ідентифікує сертифікат у системі сертифікаційного центру (CA), головним чином для відстеження відкликання.
Поле Суб'єкт представляє власника сертифіката, яким може бути машина, особа або організація. Воно містить детальну ідентифікацію, таку як:
Загальна назва (CN): домени, охоплені сертифікатом.
Країна (C), Місцевість (L), Штат або провінція (ST, S або P), Організація (O) та Організаційна одиниця (OU) надають географічні та організаційні деталі.
Виділене ім'я (DN) охоплює повну ідентифікацію суб'єкта.
Видавець вказує, хто перевірив і підписав сертифікат, включаючи подібні підполя, як у Суб'єкта для CA.
Період дійсності позначається часовими мітками Не раніше та Не пізніше, що забезпечує, щоб сертифікат не використовувався до або після певної дати.
Розділ Публічний ключ, критично важливий для безпеки сертифіката, вказує алгоритм, розмір та інші технічні деталі публічного ключа.
Розширення x509v3 покращують функціональність сертифіката, вказуючи Використання ключа, Розширене використання ключа, Альтернативне ім'я суб'єкта та інші властивості для тонкої настройки застосування сертифіката.
Використання ключа та розширення
Використання ключа ідентифікує криптографічні застосування публічного ключа, такі як цифровий підпис або шифрування ключа.
Розширене використання ключа ще більше звужує випадки використання сертифіката, наприклад, для аутентифікації сервера TLS.
Альтернативне ім'я суб'єкта та Основне обмеження визначають додаткові імена хостів, охоплені сертифікатом, та чи є це сертифікатом CA або кінцевого суб'єкта відповідно.
Ідентифікатори, такі як Ідентифікатор ключа суб'єкта та Ідентифікатор ключа авторитету, забезпечують унікальність та відстежуваність ключів.
Доступ до інформації про авторитет та Точки розподілу CRL надають шляхи для перевірки видавця CA та перевірки статусу відкликання сертифіката.
SCT попередніх сертифікатів CT пропонують журнали прозорості, критично важливі для публічної довіри до сертифіката.
Різниця між OCSP та CRL Distribution Points
OCSP (RFC 2560) передбачає співпрацю клієнта та респондента для перевірки, чи був відкликаний цифровий сертифікат з публічним ключем, без необхідності завантажувати повний CRL. Цей метод є більш ефективним, ніж традиційний CRL, який надає список серійних номерів відкликаних сертифікатів, але вимагає завантаження потенційно великого файлу. CRL можуть містити до 512 записів. Більше деталей доступно тут.
Що таке Прозорість Сертифікатів
Прозорість сертифікатів допомагає боротися з загрозами, пов'язаними з сертифікатами, забезпечуючи видимість видачі та існування SSL сертифікатів для власників доменів, ЦС та користувачів. Її цілі:
Запобігання видачі ЦС SSL сертифікатів для домену без відома власника домену.
Встановлення відкритої системи аудиту для відстеження помилково або зловмисно виданих сертифікатів.
Захист користувачів від шахрайських сертифікатів.
Журнали Сертифікатів
Журнали сертифікатів є публічно доступними, підлягають аудиту, записами сертифікатів, які ведуться мережевими службами. Ці журнали надають криптографічні докази для цілей аудиту. Як органи видачі, так і громадськість можуть подавати сертифікати до цих журналів або запитувати їх для перевірки. Хоча точна кількість серверів журналів не є фіксованою, очікується, що їх буде менше тисячі в усьому світі. Ці сервери можуть незалежно управлятися ЦС, ISP або будь-якою зацікавленою стороною.
Запит
Щоб дослідити журнали Прозорості Сертифікатів для будь-якого домену, відвідайте https://crt.sh/.
Існують різні формати для зберігання сертифікатів, кожен з яких має свої випадки використання та сумісність. Це резюме охоплює основні формати та надає рекомендації щодо конвертації між ними.
Формати
Формат PEM
Найбільш поширений формат для сертифікатів.
Вимагає окремих файлів для сертифікатів та приватних ключів, закодованих у Base64 ASCII.
Загальні розширення: .cer, .crt, .pem, .key.
Переважно використовується Apache та подібними серверами.
Формат DER
Бінарний формат сертифікатів.
Не містить "BEGIN/END CERTIFICATE" заяв, які є у файлах PEM.
Загальні розширення: .cer, .der.
Часто використовується з платформами Java.
Формат P7B/PKCS#7
Зберігається у Base64 ASCII, з розширеннями .p7b або .p7c.
Містить лише сертифікати та ланцюгові сертифікати, виключаючи приватний ключ.
Підтримується Microsoft Windows та Java Tomcat.
Формат PFX/P12/PKCS#12
Бінарний формат, який інкапсулює серверні сертифікати, проміжні сертифікати та приватні ключі в одному файлі.
Розширення: .pfx, .p12.
Переважно використовується на Windows для імпорту та експорту сертифікатів.
Конвертація Форматів
Конверсії PEM є важливими для сумісності:
x509 до PEM
PEM до DER
DER до PEM
PEM до P7B
PKCS7 до PEM
PFX конверсії є критично важливими для управління сертифікатами на Windows:
PFX до PEM
PFX до PKCS#8 включає два етапи:
Конвертувати PFX в PEM
Перетворення PEM в PKCS8
P7B до PFX також вимагає двох команд:
Конвертувати P7B в CER
Перетворення CER та приватного ключа в PFX
Редагування ASN.1 (DER/PEM) (працює з сертифікатами або майже будь-якою іншою структурою ASN.1):
Клонуйте asn1template
Перетворення DER/PEM у формат генерації OpenSSL
Відредагуйте certificatename.tpl відповідно до ваших вимог
Відновіть модифікований сертифікат
Використовуйте Trickest для легкого створення та автоматизації робочих процесів, підтримуваних найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated