Pull to refresh

Разбираем x.509 сертификат

Reading time11 min
Views218K

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments31

Шпоры по сертификатам X.509

Reading time8 min
Views101K
Чудище обло, озорно, огромно, стозевно и лаяй.

Набор технологий, который мы по привычке именуем сертификатами SSL, представляет из себя здоровенный айсберг, на вершине которого зеленый замочек слева от доменного имени в адресной строке вашего браузера. Правильное название X.509 сертификат, который восходит к X.500 стандарту ITU-T DAP (Directory Access Protocol). DAP не взлетел, в IETF его посчитали неудобным для использования со всеми этими OSI нагромождениями и вместо него придумали LDAP, Lightweight DAP где первая буква обозначает «легковесный». Те, кому пришлось настраивать, или что хуже производить его отладку могут оценить иронию в полной мере. Никогда еще первая буква аббревиатуры так не лгала, не считая SNMP.


Шпоры


Кстати что общего между LDAP, SNMP и X.509 ну кроме того, что им еще не скоро предстоит собрать стадионы фанатов? Их объединяет ASN.1 — мета-язык описания объектов древности. Если бы эти технологии создавали сейчас, в ход бы пошли XML, DTD или какой-нибудь другой ML. Но в то время стандарты создавались титанами, для которых даже SNMP был простым делом.

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments12

Памятка для удостоверяющих центров и других участников PKI

Reading time12 min
Views6.6K

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

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

Некорректная работа или сбой удостоверяющего центра может привести к санкциям регуляторов, искам недовольных клиентов для самого УЦ и значительным финансовым и репутационным потерям всех участников электронного обмена.

Для удостоверяющих центров, аккредитованных в Министерстве цифрового развития, связи и массовых коммуникаций, выпускающих квалифицированные сертификаты и обеспечивающих безусловно юридически значимый электронный документооборот, такой вопрос стоит еще более остро.

В этом посте я хочу рассказать, с какими критическими проблемами и нарушениями в работе УЦ часто приходится сталкиваться, а также о том, как их избежать.

У полноправного участника Public Key Infrastructure, должна быть информационная система со встроенными СКЗИ, которая позволяет вести электронный документооборот с клиентами и партнерами, обмениваясь с ними документами с электронной подписью (ЭП) или зашифрованными данными.

Когда партнер присылает документы с ЭП, система выполняет ряд действий. Она проверяет электронную подпись на документе и партнерский сертификат открытого ключа проверки этой подписи.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments0

Практическое применение DNSSEC

Reading time10 min
Views65K


В статье описываются недостатки существующей структуры DNS, полный процесс внедрения DNSSEC на примере доменов .com и .org, процедура создания валидного самоподписанного SSL-сертификата подписанного с помощью DNSSEC.

Читать дальше →
Total votes 76: ↑75 and ↓1+74
Comments31

Щит и меч в системах ДБО. Прикладное решение

Reading time3 min
Views11K
Механизмы аутентификации и подтверждения платежа посредством электронной подписи широко применяются в системах ДБО. Эволюция технических средств электронной подписи наглядно показана в статье Щит и меч в системах ДБО. Кратко линейку можно представить в виде — токены, токены с криптографией на борту, trustscreen с криптографией на борту.

Обычно устройства с криптографией на борту реализуют базовые криптографические алгоритмы — ЭП, хэш-функцию, шифрование. Но в ряде случаев в системах ДБО для аутентификации и ЭП применяются цифровые сертификаты. Для интеграции криптографических возможностей устройств и инфраструктуры PKI мы выпустили решение Рутокен WEB PKI Edition, мультиплатформенный и мультибраузерный плагин для систем с web-интерфейсом.



Новая версия плагина поддерживает наш trustscreen с криптографией на борту — устройство Рутокен PINPad. Теперь можно проверить, что подписывается действительно платежка, отображаемая в браузере.

Читать дальше →
Total votes 29: ↑20 and ↓9+11
Comments44

Примеры грамотного применения SSH-шаблонов

Reading time6 min
Views9.1K


SSH-сертификаты — очень мощный инструмент. Первоначально в удостоверяющем центре step-ca мы реализовали только минимальный набор функций для аутентификации по сертификатам пользователя и хоста. Затем добавили шаблоны сертификатов X.509, а ещё в августе прошлого года — и SSH-шаблоны, в версии 0.15.2. Наконец, мы задокументировали эту функцию и готовы о ней рассказать.

Шаблоны для сертификатов SSH действуют аналогично шаблонам X.509: это JSON-файлы, написанные в Go text/template. Они применяются для настройки SSH-сертификатов, которые выдаёт step-ca. Давайте посмотрим, что представляют собой эти шаблоны и как их можно использовать.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments1

Помощь девопсам по внедрению PKI

Reading time2 min
Views8.4K

Ключевые интеграции Venafi

У девопсов и так много работы, а от них ещё требуют экспертных знаний по криптографии и инфраструктуре открытых ключей (PKI). Это неправильно.

Действительно, у каждой машины должен быть валидный TLS-сертификат. Они нужны для серверов, контейнеров, виртуальных машин, в сетках service mesh. Но количество ключей и сертификатов растёт как снежный ком, а управление быстро становится хаотичным, дорогостоящим и рискованным, если всё делать самостоятельно. При отсутствии надлежащей практики применения политик и мониторинга бизнес может пострадать из-за слабых сертификатов или неожиданного истечения срока действия.

GlobalSign и Venafi организовали два вебкаста в помощь девопсам. Первый — вводный, а второй — с более конкретными техническими советами по подключению системы PKI от GlobalSign через облако Venafi с помощью опенсорсных инструментов через HashiCorp Vault из конвейера Jenkins CI/CD.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments6

X.509 своми силами в .Net Core

Reading time6 min
Views17K

image


Некоторое время назад я задался вопросом, можно ли наладить фабрику сертификатов, не прибегая к утилите openssl. Как подвести «под кнопку» весь процесс от генерации ключей до проверки подлинности. Забегая вперед, скажу, что пространство System.Security.Cryptography в этом плане является вполне самодостаточным. В статье я рассмотрю этапы создания сертификатов, экспорт в форматы pem и pkcs12, хранение сертификатов в файловой системе, а также проверку подлинности, используя только классы из System.Security.Cryptography.

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments4

Почему я люблю IKEv2 больше других VPN

Reading time5 min
Views158K


Сейчас все вокруг настраивают VPN для удаленных сотрудников. Мне больно смотреть, как люди устанавливают монструозные глючные программы, настраивают какие-то сертификаты, устанавливают драйвера TUN/TAP и делают множество сложных операций, в то время как лучшее решение уже встроено в операционную систему.

IKEv2 — это современный протокол VPN, разработанный Microsoft и Cisco. Он используется по умолчанию для новых VPN-подключений в Windows, macOS, iOS. Он быстрее и безопаснее большинства VPN-протоколов и может легко настраиваться на стороне клиента в два клика без использования сторонних программ.

Я считаю, что IPsec IKEv2 отлично подходит не только для соединения серверов, но и для обычных VPN-подключений конечных пользователей. В этом посте я постараюсь убедить вас использовать IPsec IKEv2 для обычных домашних пользователей вместо OpenVPN.
Читать дальше →
Total votes 68: ↑59 and ↓9+50
Comments163

Сам себе PKI: Теория на примере Let’s Encrypt. (Статья 1)

Reading time9 min
Views14K

За последние годы инфраструктура приватных ключей PKI (Public Key Infrastructure) незаметно окружила нас со всех сторон:

- Большинство сайтов в сети Интернет используют HTTPS протокол. Для его работоспособности необходимо получать сертификаты из удостоверяющих центров (Certificate Authority)

- Компании организуют доступ к своей IT инфраструктуре и информационным ресурсам с помощью ключей и сертификатов, которые сотрудники получают из специальных систем.

- Для отправки документов в государственные и коммерческие структуры требуется цифровая подпись, которая реализуется теми же механизмами.

Давайте разберемся как работают системы PKI, т.к. они еще долго будут актуальны для обеспечения аутентификации и безопасной передачи данных. В данной статье рассмотрим теорию и в качестве примера PKI возьмём самую известную в мире реализацию PKI - HTTPS протокол в сети Интернет. В качестве удостоверяющего центра будем использовать бесплатный Let's Encrypt. В следующей статье "Сам себе PKI: Практика на примере OpenSSL и CA Smallstep" перейдем к практике и организуем безопасную передачу данных на основе TLS протокола.

На схеме упрощенная система PKI для организации HTTPS в сети Интернет.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Сам себе PKI: Практика на примере OpenSSL и CA Smallstep. (Статья 2)

Reading time10 min
Views20K

Введение 

В предыдущей статье "Сам себе PKI: Теория на примере Let’s Encrypt" мы рассмотрели теорию и разобрали пример, как происходит установка HTTPS соединения между браузером и веб-сайтом при использовании сертификатов Let's Encrypt. В этой статье перейдем к практике и самостоятельно реализуем ту же самую схему: 

- Сначала вручную с помощью OpenSSL пройдем цепочку генерации и использования самоподписанных сертификатов в HTTPS сервере. 

- Далее развернем собственный удостоверяющий центр Smallstep и будем получать сертификаты, подписанные им.

Схема PKI остаётся той же, только изменяются компоненты:

- В качестве CA вместо Let's Encrypt, будет использоваться OpenSSL и CA Smallstep.

- В роли Web-сервера вместо Интернет веб-сайта, будет выступать простой HTTPS сервер, запущенный на Node.js.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments3

PKI (Public Key Infrastructure) с помощью JavaScript? Теперь это возможно с помощью библиотек PKIjs и ASN1js

Reading time5 min
Views12K
Представляю вашему вниманию две библиотеки, реализующие практически полный спектр требуемого функционала для организации инфраструктуры PKI: PKIjs и вспомогательную библиотеку ASN1js. Библиотеки свободны доступны и распространяются по лицензии, позволяющей использовать их код без особых ограничений, даже в коммерческих продуктах. Полный код данных библиотек доступен на GitHub: PKIjs + ASN1js.

Дабы привлечь читателей прямо во введении приведу краткий список особенностей вышеупомянутых библиотек:
  1. Объектно-ориентированный код;
  2. Работа с HTML5 (ArrayBuffer, Promises, WebCrypto (используется «dev nightly build» Google Chrome));
  3. Возможность создавать, проверять, получать внутренние данные, изменять данные для следующих объектов:
    1. Сертификаты X.509
    2. Списки отзыва (CRL) X.509
    3. Запросы на сертификат (PKCS#10)
    4. OCSP запросы;
    5. Ответы OCSP сервера
    6. Time-stamping (TSP) запросы
    7. Ответы TSP сервера
    8. CMS Signed Data
    9. CMS Enveloped Data

  4. Реализация собственной «certificate chain validation engine» на JavaScript;
  5. … И многое другое! Смотрите под катом!


Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments18

Библиотека для встраивания электронной подписи в приложения С++

Reading time16 min
Views14K


Наша компания продолжает развивать линейку библиотек, которые позволяют встраивать электронную подпись с использованием российских криптоалгоритмов в информационные системы различного типа.

Некоторое время назад мы поддержали Рутокен ЭЦП в openssl, затем выпустили кроссплатформенный плагин для браузера, а теперь сделали высокоуровневую криптобиблиотеку для встраивания в С++ приложения.

Концептуально данные решения выполнены идентично: используется аппаратная реализация российских криптоалгоритмов на чипе Рутокен ЭЦП, обеспечивается поддержка цифровых сертификатов X.509, запросов на сертификаты PKCS#10, подписанных и зашифрованных сообщений CMS.

Новая библиотека пригодится тем, кто пишет «толстые клиенты», десктопные приложения, свои браузерные плагины и т.п.

Поддерживаемые устройства:
  • USB-токен Рутокен ЭЦП
  • Смарт-карта Рутокен ЭЦП
  • Bluetooth-токен Рутокен ЭЦП
  • Trustscreen-устройство Рутокен PINPad
  • USB-токен Рутокен WEB (HID)


Основные сценарии применения библиотеки с примерами кода под катом.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments4

ASN1js и PKIjs — год после создания

Reading time4 min
Views7.8K
Почти год назад я рассказал о новых библиотеках PKIjs и ASN1js. Пришло время рассказать о развитии этих библиотек. Для ASN1js за это время были сделаны в основном «косметические» изменения. Из существенных изменений можно заметить только возможность конвертации любых объектов ASN.1 в JSON формат. А вот с PKIjs произошли более существенные перемены.

Итак, текущие основные особенности PKIjs:
  • Полная поддержка Web Cryptography API;
  • Ограниченная возможность использования как в iPhone (через использование Safari), так и в Android приложениях (Google Chrome);
  • Расширилось количество примеров. В частности, добавились примеры использования PKIjs для проверки подписей в PDF файлах и для проверки подписей в S/MIME;
  • Использование всех алгоритмов подписи из Web Cryptography API:
    • RSASSA-PKCS1-v1_5 (PKCS#1 v1.5);
    • RSA-PSS (PKCS#1 v2);
    • ECDSA (подпись на ECC, Elliptic Curve Cryptography);
  • Первая реализация «certificate chain verification engine» (верификация цепочки сертификатов) на чистом JavaScript и проходящая основные тесты NIST;
  • Первая и пока единственная реализация «Suite B» для подписи и шифрования данных в виде CMS (Cryptographic Message Syntax) в «open-source» на чистом JavaScript;
    • Подпись CMS с помощью ECDSA;
    • Шифрование с применением схем «ephemeral-static» ECDH;
    • Использование AES-CBC и AES-GCM;
    • Использование расширенного списка алгоритмов хеширования: от SHA-1 до SHA-512;
    • Возможность создания зашифрованных сообщений на основе использования пароля с использованием алгоритмов серии AES;

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments6

Symantec самовольно выпустил сертификат для google.com и www.google.com

Reading time2 min
Views47K
Незамеченным на Хабре остался инцидент с выпуском сертификата для доменов google.com и www.google.com удостоверяющим центром компании Symantec. Об этом сообщается в блоге «корпорации добра».

Сертификат был выпущен 14 сентября примерно в 19:20 (GMT) удостоверяющим центром Thawte (принадлежит компании Symantec) без разрешения или запроса со стороны Google. Причем не простой сертификат, а Extended Validation (EV). Таким образом, это первый зафиксированный случай нелегального выпуска EV сертификата.
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments94

Коллизия для SHA-1 за 100$ тыс

Reading time2 min
Views32K
image

В начале года я рекомендовал обновить SSL/TLS сертификаты, имеющие подпись с алгоритмом SHA-1. Теперь это стало не просто рекомендацией, а предупреждением.

Недавние новости показали — оценка того, что получение коллизии для SHA-1 будет вполне доступно для криминального мира уже к 2018 году, оказалась оптимистичной. Марк Стивенс, Пьер Карпмэн и Томас Пейрин (надеюсь они простят меня за такой перевод их имен) опубликовали статью и пресс-релиз, в которых призывают как можно скорее отказаться от SHA-1. Они показывают, что создание поддельной подписи, основанной на SHA-1 сейчас может стоить около 100$ тыс., что вполне по карману преступному миру, а не 700$ тыс., как рассчитывал на 2015 год известный криптограф Брюс Шнайер.
Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments42

Let's Encrypt объявил о кросс-сертификации от IdenTrust

Reading time3 min
Views14K

На сайте проекта Let's Encrypt появилась информация, что 19 октября 2015 удостоверяющие центры «Let's Encrypt Authority X1» и «Let's Encrypt Authority X2» получили кросс-подписи от IdenTrust. Теперь сертификаты выпущенные Let's Encrypt стали доверенными для всех основных браузеров. Проверить это можно, зайдя на страницу, защищенную первым сертификатом Let's Encrypt: helloworld.letsencrypt.org. Если ваш браузер не выдает предупреждения, значит, считает сертификат этого домена доверенным.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments35

Обзор Certificate Transparency

Reading time7 min
Views22K

Принцип работы протокола SSL/TLS основан на криптографии с открытым ключом. Одна или обе стороны взаимодействия обладают сертификатами и соответствующими закрытыми ключами. Это позволяет производить аутентификацию и шифрование трафика.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments14

Security Week 49: б/у сертификаты, кража данных из детских игрушек, Microsoft блокирует нежелательное ПО

Reading time5 min
Views17K
На этой неделе ничего не произошло. Ну как, поток новостей о безопасности в IT был обычный — тут взломали, там уязвимость, здесь патч — но без каких-то серьезных откровений. Когда я только начинал вести еженедельный дайджест, мне казалось, что таких недель будет немало, но пока, с августа, получилось всего две: нынешняя и еще одна. Но вы посмотрите, из чего состоит этот якобы вакуум:

— У производителя игрушек украли данные миллионов клиентов, кучу личной информации о детях-владельцах «умных» устройств с камерами и прочим.
— Тысячи модемов, роутеров и подобных устройств у многих производителей используют одинаковые сертификаты и ключи для доступа по SSH.
— В США бурно обсуждают запросы ФБР в стиле «дайте нам данные и никому не рассказывайте об этом», детали которых впервые были обнародованы с 2001 года, когда такую практику ввели.

Нормальное такое «ничего», хотя да, никаких супервзломов не было, ничего капитально не упало, и то хорошо. Впрочем, наши эксперты, подводя итоги года по самым громким событиям инфобезопасности, никакого снижения активности не видят, скорее наоборот. Ну и мы не будем расслабляться, зима близко. Традиционные правила: каждую неделю редакция новостного сайта Threatpost выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти по тегу.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments3

Настройка MongoDB ShardedCluster с X.509 аутентификацией

Reading time45 min
Views13K
Всем доброго времени суток! Недавно жизнь подкинула автору увлекательную работу по развертыванию MongoDB кластера с настройкой репликации и шардирования, а также аутентификации c использованием x.509 сертификатов. В данной статье я в первую очередь хотел бы изложить свои мысли и поделиться полученными опытом. Так как некоторые вещи оказались не тривиальными и сделать их с первого раза не удавалось, то думаю мои пошаговые инструкции могут пригодиться для освещения вопроса тем кто только знакомится с шардированием данных и работой с MongoDB в целом.
Также я буду очень рад увидеть рекомендации по добавлению/изменению конфигурации кластера и просто вопросы или критику по самой статье или по сути вопроса.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments16
1