Certificates
Last updated
Last updated
Вивчайте та практикуйте 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.
Серійний номер унікально ідентифікує сертифікат у системі сертифікаційного центру (CA), головним чином для відстеження відкликання.
Поле Суб'єкт представляє власника сертифіката, яким може бути машина, особа або організація. Воно містить детальну ідентифікацію, таку як:
Загальна назва (CN): домени, охоплені сертифікатом.
Країна (C), Місцевість (L), Штат або провінція (ST, S або P), Організація (O) та Організаційна одиниця (OU) надають географічні та організаційні деталі.
Виділене ім'я (DN) охоплює повну ідентифікацію суб'єкта.
Видавець вказує, хто перевірив і підписав сертифікат, включаючи подібні підполя, як у Суб'єкта для CA.
Період дійсності позначається часовими мітками Не раніше та Не пізніше, що забезпечує, щоб сертифікат не використовувався до або після певної дати.
Розділ Публічний ключ, критично важливий для безпеки сертифіката, вказує алгоритм, розмір та інші технічні деталі публічного ключа.
Розширення x509v3 покращують функціональність сертифіката, вказуючи Використання ключа, Розширене використання ключа, Альтернативне ім'я суб'єкта та інші властивості для тонкої настройки застосування сертифіката.
Використання ключа ідентифікує криптографічні застосування публічного ключа, такі як цифровий підпис або шифрування ключа.
Розширене використання ключа ще більше звужує випадки використання сертифіката, наприклад, для аутентифікації сервера TLS.
Альтернативне ім'я суб'єкта та Основна обмеження визначають додаткові імена хостів, охоплені сертифікатом, та чи є це сертифікатом CA або кінцевого суб'єкта відповідно.
Ідентифікатори, такі як Ідентифікатор ключа суб'єкта та Ідентифікатор ключа авторитету, забезпечують унікальність та відстежуваність ключів.
Доступ до інформації про авторитет та Точки розподілу CRL надають шляхи для перевірки видавця CA та перевірки статусу відкликання сертифіката.
SCT сертифікатів CT пропонують журнали прозорості, критично важливі для публічної довіри до сертифіката.
OCSP (RFC 2560) передбачає співпрацю клієнта та респондента для перевірки, чи був відкликаний цифровий сертифікат з публічним ключем, без необхідності завантажувати повний CRL. Цей метод є більш ефективним, ніж традиційний CRL, який надає список серійних номерів відкликаних сертифікатів, але вимагає завантаження потенційно великого файлу. CRL можуть містити до 512 записів. Більше деталей доступно тут.
Прозорість сертифікатів допомагає боротися з загрозами, пов'язаними з сертифікатами, забезпечуючи видимість видачі та існування SSL сертифікатів для власників доменів, ЦС та користувачів. Її цілі:
Запобігання видачі ЦС SSL сертифікатів для домену без відома власника домену.
Встановлення відкритої системи аудиту для відстеження помилково або зловмисно виданих сертифікатів.
Захист користувачів від шахрайських сертифікатів.
Журнали сертифікатів є публічно доступними, підлягають аудиту, записами сертифікатів, які ведуться мережевими службами. Ці журнали надають криптографічні докази для цілей аудиту. Як органи видачі, так і громадськість можуть подавати сертифікати до цих журналів або запитувати їх для перевірки. Хоча точна кількість серверів журналів не є фіксованою, очікується, що їх буде менше тисячі в усьому світі. Ці сервери можуть незалежно управлятися ЦС, ISP або будь-якою зацікавленою стороною.
Щоб дослідити журнали Прозорості Сертифікатів для будь-якого домену, відвідайте https://crt.sh/.
Існують різні формати для зберігання сертифікатів, кожен з яких має свої випадки використання та сумісність. Це резюме охоплює основні формати та надає рекомендації щодо конвертації між ними.
Найбільш поширений формат для сертифікатів.
Вимагає окремих файлів для сертифікатів та приватних ключів, закодованих у Base64 ASCII.
Загальні розширення: .cer, .crt, .pem, .key.
Переважно використовується Apache та подібними серверами.
Бінарний формат сертифікатів.
Не містить заяв "BEGIN/END CERTIFICATE", які є у файлах PEM.
Загальні розширення: .cer, .der.
Часто використовується з платформами Java.
Зберігається у Base64 ASCII, з розширеннями .p7b або .p7c.
Містить лише сертифікати та ланцюгові сертифікати, виключаючи приватний ключ.
Підтримується Microsoft Windows та Java Tomcat.
Бінарний формат, який інкапсулює серверні сертифікати, проміжні сертифікати та приватні ключі в одному файлі.
Розширення: .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)