цифровой сертификат в информатике и цифровой сертификат

Научим детей и подростков делать сайты

Два учебных проекта, которые можно добавить в портфолио: магазин футболок и генератор резюме

Научим детей и подростков делать сайты




Что это и зачем нужен

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

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

  • данные банковских карт и многое другое.

Ещё один способ опознать сайт без защиты мы описали во введении — это вид протокола. У защищённых ресурсов это всегда https, т. е. HyperText Transfer Protocol Secure. Это протокол шифрования, который позволяет передавать гипертекст
по безопасному каналу. У уязвимых же — http, т. е. HyperText Transfer Protocol или обычный протокол передачи гипертекста.

Если вы хотите узнать данные сертификата, кликните по замочку и пройдите такой путь:

Откроется окно со всей информацией о подключённом SSL-сертификате. Там вы найдёте:

  • домен веб-сайта, который пользуется сертификатом;

  • название организации, которая владеет сайтом-клиентом;

  • домен центра, который выдал сертификат;

  • название центра сертификации;

  • дату, когда он выдан;

  • срок действия сертификата;

  • его открытый ключ.

Обратите внимание: во вкладке Подробно
того же окна можно узнать остальные данные, например, серийный номер сертификата. Показываем на примере сайта Skysmart.

SSl-сертификат Skysmart

Как работает SSL-сертификат

В общих чертах мы разобрались, что такое SSL-сертификат для сайта. Теперь поговорим о том, как именно он обеспечивает безопасность пользователей и самого сайта. Если говорить простыми словами, всё проходит в 7 этапов:

  1. Человек пробует зайти на сайт с SSL-защитой.

  2. Его браузер отправляет серверу
    запрос, чтобы узнать, подлинный ли это сайт.

  3. Сервер присылает копию сертификата безопасности.

  4. Браузер подтверждает, что сертификат подлинный, и отправляет запрос на подключение.

  5. Сервер создаёт защищённый канал соединения: присылает браузеру защищённый ключ, который зашифрован SSL.

  6. Браузер подключается к серверу через этот защищённый канал.

  7. Человек попадает на сайт по этому каналу между браузером и сервером.

Да, список длинный, но мы с вами не замечаем, как браузер выполняет его пункты. Всё происходит меньше чем за секунду.

Стартуй в программировании прямо сейчас

Реши свою первую настоящую задачу на JavaScript и поделись крутым результатом с друзьями

Стартуй в программировании прямо сейчас




Виды SSL-сертификатов и для чего они нужны

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

Есть и другие варианты SSL-сертификатов, но они уже выходят за рамки деления по уровню защиты. А друг от друга отличаются специфическими чертами. Вот они:

  • Wildсard.
    Защищает основной домен и его поддомены, сколько бы их ни было.

  • MDC-сертификаты.
    Защищает несколько доменов и поддоменов, кроме локальных.

  • UCC-сертификаты.
    Защищает несколько доменов.

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

Для веб-сайтов юридических лиц мы бы посоветовали подключить OV — этот сертификат создан как раз для них. А если речь об интернет-магазине с личным кабинетом, сайте банка или других крупных ресурсах, которые хранят платёжные данные, важно использовать EV.

ЦИФРОВОЙ СЕРТИФИКАТ В ИНФОРМАТИКЕ И ЦИФРОВОЙ СЕРТИФИКАТ



Выберите идеального наставника по программированию

15 000+ проверенных преподавателей со средним рейтингом 4,8. Учтём ваш график и цель обучения

Выберите идеального наставника по программированию




Как настроить SSL-сертификат

Первое, что вам понадобится, — это сам сайт для SSL-сертификата. Он может быть ещё не готов, но для настройки SSL нужно будет зарегистрировать хотя бы хостинг
и  домен
. Если этот нулевой шаг выполнен, можно приступать к SSL. А мы расскажем, как всё устроить.

Шаг № 1. Регистрируемся и покупаем сертификат

Сперва вам нужно выбрать компанию, у которой вы купите сертификат. Если веб-сайт простой и не требует вводить пользовательские данные, попробуйте начать с бесплатного. Его предлагают многие центры сертификации, например, Let’s Encrypt
.

Если же ресурс более крупный, лучше сразу подберите платный сертификат. Вот несколько хороших компаний, где его можно купить:

Тарифы на SSL-сертификаты на Reg.ru

На то, чтобы подготовить SSL-сертификат, понадобится время. В среднем это от 3 до 7 дней. Компании предупреждают об этом заранее, поэтому внимательно читайте условия и следуйте инструкциям.

Шаг № 2. Устанавливаем SSL-сертификат

Это можно сделать несколькими способами. Если у вас сайт на  WordPress
, вы можете подключить сертификат через специальный плагин Really Simple SSL. Он автоматически распознаёт сертификат, подготовленный для вашего домена, и активирует его. Также это можно сделать вручную с помощью кода.

Плагин Really Simple SSL для WordPress

ЦИФРОВОЙ СЕРТИФИКАТ В ИНФОРМАТИКЕ И ЦИФРОВОЙ СЕРТИФИКАТ



Тем, кто делал веб-сайт на  Tilda
, будет ещё проще — не придётся даже заказывать сертификат самому. Зайдите в  Настройки сайта
, найдите вкладку SEO
, а там — пункт Настройка HTTPS
. Включить безопасное соединение можно будет одним кликом. Но учтите: для этого нужно иметь платную подписку.

Подключение SSL на Tilda

Другие популярные конструкторы сайтов тоже предлагают свои SSL-сертификаты. На  Wix
, например, все сайты по умолчанию защищены ими. Даже на бесплатном тарифе. Один минус — если у вас есть сторонний сертификат, подключить его к веб-сайту на базе Wix не получится. Об этом команда ресурса пишет в своём блоге
.

В остальных случаях заказать или привязать уже заказанный SSL-сертификат можно на той же платформе, где вы регистрировали домен или хостинг. Разберём, как это сделать, на примере Reg.ru.

Первым делом заходим в личный кабинет. В списке услуг ищем свой хостинг и переходим в его карточку, а потом листаем вниз до тех пор, пока не найдём пункт Заказать SSL-сертификат
или Заказать бесплатный SSL-сертификат
.

Бесплатный SSL-сертификат на Reg.ru

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

Установить готовый сертификат проще всего через его карточку, для чего нужно кликнуть по SSL-сертификату. Дальше выбираем домен и жмём Установить
. Откроется окно, где вас попросят приложить файл сертификата. Тот самый, что был в письме. Делаем это — и готово!

Типы SSL-сертификатов на панели управления

Первый этап мы пройдём всего в два шага. Сначала выберем тип сертификата — существующий. Жмём Далее
и попадаем в новое окно, где нас просят ввести данные сертификата:

  • промежуточный и корневой сертификаты.

Это и есть то, для чего вам нужны данные из письма о готовности SSL-сертификата сайта. Начинаем вводить их. Сперва придумайте название — оно может быть любым. Затем вставьте ключ, а после — промежуточный и корневой сертификаты. Не забудьте оставить пустую строку между ними!

Создание SSL-сертификата на панели управления

Останется только нажать Завершить
, и сертификат будет добавлен. Но это ещё не всё — его нужно подключить к домену. Для этого отправляемся во вкладку Сайты
и находим в списке тот, куда нужно установить сертификат. Кликните по нему дважды, тогда откроется окно настройки.

Подключение SSL-сертификата к домену

Поставьте галочку напротив граф Защищённое соединение (SSL)
и  SSL
ниже. Между ними найдите пункт SSL-сертификат
и выберите в выпадающем списке тот, что только что добавили.

После этого сайт будет доступен по обоим протоколам, но автоматически всё равно будет открываться с http. Чтобы исправить это, нужно настроить переадресацию. Для этого отметьте галочкой пункт Перенаправлять HTTP-запросы в HTTPS
.

После этого сохраните изменения.

Шаг № 3. Проверяем подключение

Если вы настроили переадресацию, можете пойти простым путём — открыть свой сайт и проверить сертификат по значку замочка у адресной строки. Но иногда ему нужно время, чтобы начать работать. Если хотите проверить SSL сразу, воспользуйтесь одним из специальных сервисов. Такой есть, например, у того же Reg.ru.

Здесь вам просто нужно ввести домен с SSL-сертификатом и нажать Проверить
. Если вы всё сделали правильно, появится надпись, как на скрине ниже. Это значит, что вы успешно подключили SSL-сертификат. Готово!

Проверка SSL-сертификата

Ответы на частые вопросы

А теперь ответим на вопросы о сертификатах безопасности, которые чаще всего задают начинающие веб-мастера.

Что значит аббревиатура SSL?

SSL расшифровывается как Secure Sockets Layer. Это означает «уровень защищённых сокетов».

Обязательно ли устанавливать SSL-сертификат?

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

Также сертификат влияет на продвижение вашего сайта в поисковой выдаче. Сегодня системы либо понижают приоритетность сайтов с http, как это делает Яндекс, либо вовсе не показывают их, как это делает Google. Также многие браузеры поначалу не дают пользователю свободно зайти на незащищённый ресурс. Человек сам должен зайти в настройки и подтвердить, что он хочет посетить сайт. Но многим проще сразу закрыть вкладку. Поэтому да, SSL желательно установить.

Какие преимущества имеет SSL в сравнении с другими методами защиты веб-сайтов?

Чтобы защитить свой сайт, важно выбрать безопасный хостинг, вовремя делать бэкапы
, обновлять ПО, следить за доступами администраторов и многое другое. Но ни один из этих шагов не даст вам тех преимуществ, которые даёт SSL. Это значит, что сравнивать SSL-сертификат и другие методы защиты некорректно — они не взаимозаменяемы, а идут рука об руку.

Могут ли SSL-сертификаты истечь?

Да, у SSL-сертификатов есть свой срок годности. Например, бесплатные экземпляры от Reg.ru будут защищать ваш сайт 6 месяцев, а после их нужно будет продлевать платно. В остальных случаях срок действия сертификата зависит от тарифа, который вы выбрали. В среднем это 1 год, но бывают и те, что работают 2 года.

Чтобы узнать, когда заканчивается действие вашего SSL-сертификата, откройте информацию о нём по клику на замочек рядом с адресной строкой:

Какие организации выдают SSL-сертификаты?

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

ЦИФРОВОЙ СЕРТИФИКАТ В ИНФОРМАТИКЕ И ЦИФРОВОЙ СЕРТИФИКАТ



В этой статье мы обсудили, в чём заключается функция SSL-сертификата и как его установить на сайт. Надеемся, это поможет вам обезопасить свой проект. А если вы хотите создавать сайты профессионально, попробуйте курс разработки сайтов
в Skysmart. Там мы расскажем всё, что нужно знать о цикле работы над ресурсами разных типов: от визитки до большого интернет-магазина. Вы научитесь кодить на  HTML
, CSS
и  Javascript
, узнаете, что такое  UI
и создадите первые проекты портфолио. Первый урок — бесплатно!

Цифровые сертификаты

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

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

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

Сертификат есть форма удостоверения. Иные виды удостоверений включают ваши водительские права, государственный паспорт, свидетельство о рождении, и т.п. Каждое из них несёт некоторую идентифицирующую вас информацию и определённую неподделываемую запись, что кто-то другой (госструктура, организация) установил вашу личность. Некоторые сертификаты, такие как паспорт, – самодостаточное подтверждение вашей личности; будет довольно скверно, если кто-то похитит его, чтобы выдать себя за вас.

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

Цифровой сертификат состоит из трёх компонентов:

  • открытого ключа, к которому он приложен;
  • данных, или записей, сертификата (сведения о личности пользователя, как то, имя, электронная почта и т.п., а также, по необходимости, дополнительные ограничителельные сведения: права допуска, рабочие лимиты и прочее);
  • одной или нескольких цифровых подписей, «связывающих» ключ с сертификатом.

Цель ЭЦП на сертификате – указать, что сведения сертификата были заверены доверенным третьим лицом или организацией. В то же время цифровая подпись не подтверждает достоверность сертификата как целого; она является поручительством только того, что подписанная запись сертификата (идентифицирующая информация) связаны с данным открытым ключом.

Таким образом, сертификат, обычно, – это открытый ключ с прикреплёнными к нему одной или несколькими формами ID плюс отметка подтверждения от доверенного лица, «связывающая» ID и открытый ключ.

Распространение сертификатов

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

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

Такая система может реализоваться в форме простого хранилища-депозитария, называемого сервером сертификатов
, или сервером-депозитарием открытых ключей
, или иметь более сложную и комплексную структуру, предполагающую дополнительные возможности администрирования ключей, и называемую инфраструктурой открытых ключей
(Public Key Infrastructure, PKI).

Серверы-депозитарии

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

Инфраструктуры открытых ключей (PKI)

PKI, как и простой сервер-депозитарий, имеет базу данных для хранения сертификатов, но, в то же время, предоставляет сервисы и протоколы по управлению открытыми ключами. В них входят возможности выпуска (издания), отзыва (аннулирования) и системы доверия сертификатов. Главной же особенностью PKI является наличие компонентов, известных как Центр сертификации
(Certification Authority, CA) и Центр регистрации
(Registration Authority, RA).

Центр сертификации (ЦС) издаёт цифровые сертификаты и подписывает их своим закрытым ключом. Из-за важности своей роли, ЦС является главным компонентом инфраструктуры PKI. Используя открытый ключ ЦС, любой пользователь, желающий проверить подлинность конкретного сертификата, сверяет подпись Центра сертификации и, следовательно, удостоверяется в целостности содержащейся в сертификате информации и, что более важно, во взаимосвязности сведений сертификата и открытого ключа.

Как правило, Центром регистрации (ЦР) называется система людей, механизмов и процессов, служащая целям зачисления новых пользователей в структуру PKI и дальнейшего администрирования постоянных пользователей системы. Также ЦР может производить «веттинг» – процедуру проверки того, принадлежит ли конкретный открытый ключ предполагаемому владельцу.

ЦР – это человеческое сообщество: лицо, группа, департамент, компания или иная ассоциация. С другой стороны, ЦС – обычно, программа, выдающая сертификаты своим зарегистрированным пользователям. Существуют и защищённые от взлома аппаратные реализации ЦС, сооружённые из пуленепробиваемых материалов и снабжённые «красной кнопкой», аннулирующей в критической ситуации все выданные ключи.

Роль ЦР-ЦС аналогична той, что выполняет государственный паспортный отдел: одни его сотрудники проверяют, требуется ли выдача паспорта (работа ЦР), а другие изготовляют сам документ и передают его владельцу (работа ЦС). Наличие ЦР для ЦС не обязательно, но оно обеспечивает разделение функций, которое иногда необходимо.

Формат сертификатов

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

PGP поддерживает два формата сертификатов:

  • Сертификаты OpenPGP (чаще называемые просто ключами PGP)
  • Сертификаты X.509

Формат сертификата PGP

Сертификат PGP содержит, в частности, следующие сведения:

  • Открытый ключ владельца сертификата – открытая часть ключевой пары и её алгоритм: RSA v4, RSA Legacy v3, DH или DSA.
  • Сведения о владельце сертификата – информация, идентифицирующая личность пользователя: его имя, адрес электронной почты, номер ICQ, фотография и т.д.
  • ЭЦП владельца сертификата – подпись ключевой пары, связанной с сертификатом (т.н. автоподпись
    ).
  • Период действия сертификата – дата начала действия сертификата и дата окончания его действия; указывает на то, когда сертификат станет недействительным (аналогично сроку действия водительских прав). Если ключевая пара содержит дополнительные подключи шифрования, то здесь будет указан период действия каждого из них.
  • Предпочтительный алгоритм шифрования – указывает на то, зашифрованную каким алгоритмом информацию предпочитает получать владелец сертификата. Поддерживаются следующие: CAST, AES, IDEA, Triple-DES и Twofish.

Вы можете представить сертификат PGP в виде открытого ключа с одной или несколькими привязанными к нему «бирками» (рис. 9). На этих «бирках» указана информация, идентифицирующая владельца ключа, а также подпись этого ключа, подтверждающая, что ключ и идентификационные сведения взаимосвязаны. ( Этот вид подписи называется автоподписью
(self-signature); её содержит каждый сертификат OpenPGP.)

Уникальный аспект формата сертификатов PGP в том, что каждый сертификат может содержать множество подписей. Любой человек может подписать идентификационно-ключевую пару, чтобы заверить, полагаясь на своё личное убеждение, что открытый ключ принадлежит именно указанному в ID пользователю. Если поищете на общественных серверах-депозитариях, то можете обнаружить некоторые ключи, как, например, принадлежащий автору PGP Филу Циммерману, содержащие огромное количество подписей.

Некоторые PGP-сертификаты состоят из открытого ключа с несколькими «бирками», каждая из которых содержит собственные сведения, идентифицирующие владельца ключа (например, имя владельца и его рабочий e-mail, прозвище владельца и его домашний e-mail, фотография владельца – всё на одном сертификате). Список подписей на каждой из «бирок» может быть различным; подписи указывают на достоверность определённой «бирки» и её принадлежность открытому ключу, а не на то, что все «бирки» достоверны. ( Учтите, что «достоверность» зависит от установившего её: подписи – это мнения, и разные люди уделяют разную степень внимания проверке подлинности перед подписанием ключа.)

Формат сертификата Х.509

Х.509 – это другой очень распространённый формат. Все сертификаты Х.509 соответствуют международному стандарту ITU-T X.509; таким образом (теоретически), сертификат Х.509, созданный для одного приложения, может быть использован в любом другом, поддерживающем этот стандарт. На практике, однако, сложилась ситуация, что разные компании создают собственные расширения для Х.509, не все из которых между собой совместимы.

Всякий сертификат требует, чтобы кто-то заверил взаимосвязность открытого ключа и идентифицирующей владельца ключа информации. Имея дело с PGP-сертификатом, каждый может выступать в качестве заверителя содержащихся в нём сведений (за исключением случаев, когда эта возможность намеренно ограничена политикой безопасности). Но в случае сертификатов Х.509 заверителем может быть только Центр сертификации или некто, специально уполномоченный им на эту роль. ( Имейте в виду, что PGP-сертификаты также в полной мере поддерживают иерархическое структурирование системы доверия, использующее ЦС для удостоверения сертификатов.)

Сертификат Х.509 – это набор стандартных полей, содержащих сведения о пользователе или устройстве, и их соответствующий открытый ключ. Стардарт Х.509 определяет, какие сведения входят в сертификат и как они кодируются (формат данных).

Сертификат Х.509 содержит следующие сведения:

  • Версия Х.509 – указывает, на основе какой версии стандарта Х.509 построен данный сертификат, что определяет, какая информация может в нём содержаться.
  • Открытый ключ владельца сертификата – открытый ключ наряду с идентификатором используемого алгоритма (указывающим криптосистему, к которой принадлежит данный ключ) и прочая информация о параметрах ключа.
  • Серийный номер сертификата – организация-издатель сертификата обязана присвоить ему уникальный серийный (порядковый) номер для его опознавания среди прочих сертификатов, выданных данной организацией. Эта информация применяется в ряде случаев; например, при аннулировании сертификата, его серийный номер помещается в список аннулированных сертификатов
    (Certificate Revocation List, CRL).
  • Уникальный опознаватель владельца ключа (или DN, distinguished name
    – уникальное имя) – это имя должно быть уникальным и единственным во всём Интернете. D N состоит из нескольких подпунктов и может выглядеть примерно так:

    CN=Bob Davis, EMAIL=bdavis@pgp.com, OU=PGP Engineering,

    O=PGP Corporation, C=US

    (Что обозначает Понятное имя субъекта, Электронную почту, Подразделение организации, Органицию и Страну соответственно.)

  • Период действия сертификата – дата начала действия сертификата и дата окончания его действия; указывает на то, когда сертификат станет недействителен.
  • Уникальное имя издателя – уникальное имя организации, подписавшей сертификат. Обычно, это наименование Центра сертификации. Использование сертификата подразумевает доверие организации, его подписавшей. ( В случаях с корневыми сертификатами выдавшая организация – этот же ЦС – подписывает его сама.)
  • ЭЦП издателя – электронная подпись, созданная закрытым ключом организации, выдавшей сертификат.
  • Идентификатор алгоритма подписи – указывает алгоритм, использованный ЦС для подписания сертификата.

Существует ряд фундаментальных различий между форматами сертификатов Х.509 и PGP:

  • вы можете лично создать собственный сертификат PGP; вы должны запросить и получить сертификат Х.509 от Центра сертификации;
  • сертификаты Х.509 содержат только одно имя владельца сертификата;
  • сертификаты Х.509 содержат только одну ЭЦП, подтверждающую подлинность сертификата.

Чтобы получить сертификат Х.509, вы должны попросить ЦС выдать его вам. Вы предоставляете системе свой открытый ключ, чем доказываете, что обладаете соответствующим закрытым, а также некоторые идентифицирующие вас сведения. Затем вы электронно подписываете эти сведения и отправляете весь пакет – запрос сертификата – в Центр сертификации. Ц С выполняет определённый процесс по проверке подлинности предоставленной информации и, если всё сходится, создаёт сертификат, подписывает и возвращает вам.

Вы можете представить сертификат Х.509, как обычный бумажный сертификат или аттестат с приклеенным к нему открытым ключом. На нём указано ваше имя, а также некоторые сведения о вас, плюс подпись издателя сертификата.

Вероятно, наибольшая польза от сертификатов Х.509, это их применение в Веб-браузерах.

5. Цифровые сертификаты

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

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

Ø   серийный номер сертификата;

Ø   объектный идентификатор алгоритма электронной подписи;

Ø   имя удостоверяющего центра;

Ø   срок годности;

Ø   имя владельца сертификата (имя пользователя, которому принадлежит сертификат);

Ø   открытые ключи владельца сертификата (ключей может быть несколько);

Ø   алгоритмы, ассоциированные с открытыми ключами владельца сертификата;

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

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

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

Криптографическая система с открытым ключом (или Асимметричное шифрование,

Асимметричный шифр) — система шифрования и/или электронной цифровой подписи (ЭЦП), при которой открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу, и используется для проверки ЭЦП и для шифрования сообщения. Для генерации ЭЦП и для расшифрования сообщения используется секретный ключ.

В частности, пакет приложений Microsoft Office XP использует технологию Microsoft Authenticode, позволяющую снабжать проекты макросов и файлы цифровой подписью с использованием цифрового сертификата.

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

6. Настройка безопасности браузера (Internet Explorer)

ЦИФРОВОЙ СЕРТИФИКАТ В ИНФОРМАТИКЕ И ЦИФРОВОЙ СЕРТИФИКАТ
Обозреватель Internet Ехр1огег нельзя полностью обезопасить с помощью его программных настроек. Чтобы чувствовать себя в более менее безопасном состоянии, надо совместно с ним на компьютере использовать хороший брандмауэр (межсетевой экран).

Элементы управления, связанные с настройкой правил безопасности, сосредоточены на вкладках Дополнительно и Безопасность диалогового окна Свойства обозревателя (см. рис. 1).

ЦИФРОВОЙ СЕРТИФИКАТ В ИНФОРМАТИКЕ И ЦИФРОВОЙ СЕРТИФИКАТ

Рис. 1. Свойства обозревателя Internet Explorer

Откройте диалоговое окно Свойства обозревателя (Internet Ехр1огег > Сервис > Свойства обозревателя). Открой вкладку Дополнительно. В разделе Безопасность сбрось галочку Задействовать профиль. Если флажок оставить, браузер будет поставлять удаленным серверам по их запросу личные данные о пользователе (см. рис. 1).

В разделе Обзор необходимо сбросить следующие галочки:

Ø   Автоматически проверять обновление Internet Ехр1огег;

Ø   Включить установку по запросу;

Ø   Использовать встроенное автозаполнение в проводнике;

Ø   Использовать встроенное автозаполнение Web-адресов,

Ø   Разрешить счетчик попаданий на страницы.

Ø   Выполнив указанные настройки, щёлкни по кнопке Применить.

Откройте вкладку Безопасность диалогового окна Свойства обозревателя. На панели зон безопасности выбери зону Интернет (см. рис. 2).

ЦИФРОВОЙ СЕРТИФИКАТ В ИНФОРМАТИКЕ И ЦИФРОВОЙ СЕРТИФИКАТ

Рис. 2. Вкладка безопасность в свойствах Internet Explorer

Откройте диалоговое окно настройки правил безопасности щелчком по кнопке Другой. Для всех операций, которым сопоставлено три метода взаимодействия с сервером: Отключить, Предлагать, Разрешить -включи переключатель Предлагать. В этом случае при потенциально опасных операциях будет открываться диалоговое окно с предложением подтвердить или отвергнуть действие.

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

Эта статья уже во многом устарела и я рекомендую вместо неё сразу читать новую и полностью переработанную: Ещё больше и лучше о цифровых сертификатах: X.509, PKI, PKCS

Цифровые (электронные) сертификаты используются повсеместно, самая известная область их применения — это шифрование HTTPS-трафика в браузере. В таком виде с сертификатами знакомы все, однако более-менее адекватного понимающих гораздо меньше. Многие статьи на эту тему с самого начала топят читателя в абстрактных и несущественных деталях (например, раз
, два
, три
). Между тем, базовые концепции системы сертификатов очень простые и я о них расскажу в этой статье. Эти концепции в моём изложении не являются абсолютно точными, но зато они помогут «въехать» в тему.

Традиционный дисклеймер: все примеры ориентированы на линуксовую, юниксовую или макосную консоль. Если хотите самостоятельно повторить куски консольного кода, поставьте openssl, например, через sudo apt-get install openssl

  • Зачем нужны сертификаты
  • Технические подробности

Зачем нужны сертификаты¶

Итак, сертификат
( certificate
) — это файл, содержащий информацию о персоне или организации и подписанный цифровой подписью, нечто вроде паспорта персоны или организации. Главное содержимое сертификата — это публичный ключ шифрования
. У любого сертификата существует его автор-создатель и у этого автора есть секретный ключ шифрования
. По сути сертификат — это всего лишь обёртка над публичным ключом, где помимо собственно ключа содержится разнообразная дополнительная информация: имя персоны или организации, страна, телефон, емейл и так далее.

Секретный и публичный ключи используются для асиметричной схемы шифрования
: данные шифруются секретным ключом, а расшифровываются публичным. Или наоборот: шифруются публичным, а расшифровываются секретным. За подробностями традиционно отправляю в википедию, в статью Криптосистема с открытым ключом
.

Помним главное: в паре с сертификатом всегда идёт секретный ключ. Когда мы в браузере открываем сайт через HTTPS, сервер отправляет нам сертификат, который мы должны использовать для установки дальнейшего безопасного соединения. В этом сертификате лежит публичный ключ, а также адрес сайта. Браузер проверяет, что адрес сайта соответствует запрошенному и разрешает установку соединения. Секретный ключ при этом находится на сервере сайта и пределы этого сервера никогда не покидает.

Но тут возникает вопрос: а где гарантия, что этот сертификат (и соответственно публичный ключ) настоящий, что он действительно создан автором сайта, а не вклинившимся в сеть злоумышленником? Как проверить подлинность этого «удостоверения сайта»?

Есть два решения этой проблемы. Самое очевидное: на стороне браузера имеется хранилище сертификатов и для каждого сайта в нём уже существует сертификат, дальше мы просто сравниваем полученный сертификат и если он совпадает с имеющимся, устанавливаем соединение. Такая схема используется, например, в работе программы SSH, у неё имеется локальная база сертификатов, при установке соединения она проверяется, что полученный сертификат с этого адреса соответствует уже сохранённому в базе. Очевидный недостаток этой схемы: необходимо каким-то образом заполучить сертификаты заранее.

Если для SSH схема с заранее сохранённым сертификатом более-менее работает, то для HTTPS в браузере она уже не годится, абсолютно невозможно получить сертификаты для всех сайтов в интернете. Поэтому в HTTPS используется другая схема, называемая инфраструктурой публичных ключей
или по-английски Public Key Infrastructure, сокращённо PKI.

Суть PKI очень простая: в браузере хранятся не сертификаты браузеров, а сертификаты так называемых удостоверяющих центров
(по-английски Certificate Authority, сокращённо CA). Предназначение CA — это подписывание
всех остальных сертификатов, это означает, что когда ваш браузер получает сертификат сайта при установке соединения, он видит помимо адреса сайта ещё и «адрес» удостоверяющего центра, а также цифровую подпись, которую сгенерировал удостоверяющий центр с использованием своего секретного ключа. Дальше браузер берёт из локального хранилища сертификат удостоверяющего центра, достаёт из него публичный ключ и с помощью него проверяет подпись в сертификате сайта. Если подпись правильная, соединение успешно устанавливается.

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

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

Технические подробности¶

А теперь самое главное, ради чего эта статья и писалась — технические подробности, стандарты и особенности реализации системы сертификатов.

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

Секретный ключ¶

Главный компонент всего — криптография, точнее криптографические алгоритмы
.

Всё начинается с генерации пары ключей: секретного и публичного. Сначала при помощи математической и компьютерной магии генерируется секретный ключ, а затем из него вычисляется публичный. Чаще всего для сертификатов используется алгоритм RSA
, вот как это делается в консоли через программу openssl:

        
  openssl genrsa 
Generating RSA private key, 2048 bit long modulus


e is 65537 (0x10001)
-----BEGIN RSA PRIVATE KEY-----

























-----END RSA PRIVATE KEY-----
  
  

В этом примере мы сгенерили секретный ключ для алгоритма RSA. Собственно сам ключ находится между специальными маркерами -----BEGIN RSA PRIVATE KEY-----
и -----END RSA PRIVATE KEY-----
. Чтобы при генерации ключа сохранить его сразу в файл, добавьте аргумент -out private.pem
:

       
openssl       
genrsa       
-out       
private.pem       

    Generating RSA private key, 2048 bit long modulus    



    e is 65537 (0x10001)    

С подобным форматом представления криптографических данных вам предстоит сталкиваться постоянно, называется он PEM, что расшифровывается как Privacy-enhanced Electronic Mail. Его предназначение — кодировать бинарные криптографические данные в виде ASCII-текста. И фактически между маркерами из минусов находятся закодированные в base64 бинарные данные, в данном случае — секретный ключ.

Мы можем при помощи openssl сконвертировать секретный ключ из текстового формата PEM в изначальный бинарный, сохраним его в файл private.der:

       
openssl       
rsa       
-inform       
PEM       
-outform       
DER       
-in       
private.pem       
-out       
private.der
    writing RSA key    

Имя формата данных DER расшифровывается как Distinguished Encoding Rules и является частью стандарта ASN.1. В стандарте ASN.1 описываются правила и структуры для кодирования, раскодирования и передачи данных по телекоммуникационным и компьютерным сетям. По сути можно считать ASN.1 форматом для сериализации структурированных бинарных данных. Существует специальный компилятор, который из формальных спецификаций ASN.1 генерирует C-код для работы с бинарными данными такой структуры.

Также существует консольная программа dumpasn1 для просмотра бинарных данных, в дебиане/убунте она ставится через sudo apt-get install dumpasn1
, для макоси можно поставить через macports, через homebrew ( инструкция
), либо скомпилировать самостоятельно из исходников
.

Вот так, например, выглядит дамп нашего созданного секретного ключа:

       
dumpasn1       
private.der

    4 1: INTEGER 0    

    7 257: INTEGER    

    : 00 CB F8 C1 9B 6E 29 63 39 3C 24 9B 2D A3 7D 00    

    : B0 B8 5C E8 D6 96 5D E4 76 67 7F 04 8F 48 D4 F4    

    : 35 64 68 57 10 3D 38 CE A0 B5 DC B2 FC DD 34 FF    

    : 2B AC 48 EE D1 05 37 65 4A 2F AE 8A E0 F8 1D CE    

    : 63 EB 2E C6 7A 09 4B B1 85 71 1E FA FF 55 17 0C    

    : 05 23 71 87 43 21 66 C4 70 6D E8 A8 B4 74 EA E4    

    : C1 75 7B AB 33 5B 8B 8D DB D4 67 BA DC B4 AD 50    

    : 12 AB FB 3E 74 44 AC 48 BE 94 C2 DD 4D 16 D6 0F    


    268 3: INTEGER 65537    

    273 256: INTEGER    

    : 07 01 7D 4C E4 64 C1 86 B6 BD 1F 23 5B 29 30 FB    

    : E0 E9 38 0A 1E D2 0C C5 D0 5A 39 82 DE 62 8A 1C    

    : C7 5D 1A 18 71 B1 E0 CE FE 50 1D 49 B8 23 58 DC    

    : 5C 27 89 24 5E C4 7F 53 23 FE 1F C1 08 64 A5 B1    

    : 22 E3 D1 67 61 A8 5A E9 95 70 15 F8 ED 28 44 7E    

    : 6C B0 3A 90 20 B6 91 EA B6 AB B6 17 B4 A8 58 C1    

    : 18 52 EE 17 6E 7E 85 99 D6 5A D5 BD 3C EB 73 03    

    : A1 2A 99 03 8F 54 47 8F 5C 36 B1 39 33 9E 98 9D    


    533 129: INTEGER    

    : 00 E7 D9 F7 E8 B2 FC A4 07 93 29 B8 60 75 02 80    

    : 10 EE C0 00 CF DA D8 C4 8C D0 B9 44 87 B9 ED 15    

    : 3D 60 17 1E 70 1E A0 E6 31 CA 2D CB D7 2B 05 1C    

    : FF 3F 21 57 44 87 47 92 90 11 8E 7C 1D D5 57 C5    

    : FC 9B 3D 22 E2 A0 E9 5E 4E 38 B7 E8 BC B0 AC 61    

    : AB 84 C6 19 C4 2C E6 64 0A 57 54 03 D6 2A EE CD    

    : 21 A1 FD BE AD B3 9B E7 2B C1 BF 37 80 84 18 A3    

    : 1E D0 CF 44 12 AA B6 3A 05 3B B0 5F DF 32 B2 AE    

    : 71    

    665 129: INTEGER    

    : 00 E1 37 68 C5 C0 92 F7 0F 2E 99 C0 74 13 04 79    

    : DD A7 EF 56 46 A2 C9 A7 96 41 5E 4A 43 F3 57 7E    

    : 3E 98 0D C6 B1 AF 85 F6 29 B9 F0 2A D2 54 8C CE    

    : C8 DB FA 67 2E 5E 56 AB CC 7B E4 F1 3B EC 55 EE    

    : 10 0E B1 6F 76 A8 59 5B 2B B2 FF E2 E8 9A E5 9B    

    : F1 90 D1 65 DC 6D AD DB B3 B5 EC 39 8C 20 88 1F    

    : CA 87 E6 5A 6C 92 B1 75 F5 15 2E B1 41 0C AA 88    

    : 75 88 77 E9 B2 F4 8D B6 16 E2 13 5F EF 89 20 40    

    : E5    

    797 128: INTEGER    

    : 27 3A D1 60 B5 50 5C 2C CF F0 C2 3A C7 F1 A9 5B    

    : B4 1A 16 C9 14 BD 92 DC 44 C0 E4 60 96 CC 0F C8    

    : F7 C6 51 A7 24 F7 92 9B A0 1B 09 9F 99 AE DE CE    

    : 2D 8F 65 A5 B9 C2 19 81 79 07 03 E7 44 5E FA A8    

    : 18 58 4A DB CF E0 4C CD AD 79 28 CF 2C 91 AE 61    

    : 08 31 40 D0 D9 CC 0D E7 56 09 68 30 C7 C8 EA 3A    

    : A3 9F 3C B1 45 6F BE B8 BF AA AC 28 79 B1 75 80    

    : 54 52 8D B1 1E E3 80 83 BC 2A C6 BE 0C 65 01 71    

    928 128: INTEGER    

    : 14 BC 57 47 2D CD DA 35 69 A2 FA 57 35 91 09 EF    

    : 60 90 E6 AE A6 3A 4E D5 C4 BA FB B7 79 E6 2A 57    

    : 75 04 7F B0 C8 6A 5B 19 C8 66 D6 6A 7B 22 63 BF    

    : 96 91 5D 82 A5 68 F1 74 68 4B D1 F2 24 76 5C EE    

    : D9 8B 78 A9 C2 22 48 04 A3 FC 6F 55 DF 3D 18 B8    

    : 8B 0E DC 84 09 0D 22 D7 4E FE AA E5 BD F1 0A 8C    

    : 49 2A EA 54 68 C5 32 09 18 A4 2D E9 C1 52 CA 31    

    : 98 19 02 49 59 BE DA 6F 0C ED 9F BD 9C 30 7E 09    

    1059 128: INTEGER    

    : 75 97 A2 6D 60 94 68 EF AB B4 3A 63 10 21 B8 AA    

    : 2B 98 13 9C 0E 58 B2 FF 29 13 AB 38 18 0E FE DF    

    : C2 7D 08 46 0F D9 70 0C EA AC 86 57 C5 A3 0E EF    

    : 31 C7 7A 13 8D 9B F6 5A 60 C5 1B 1C 0F C3 C3 D3    

    : C7 90 5A E2 1E A1 F0 91 CA E4 6D 6D 89 64 ED 63    

    : C8 D2 F1 8E A4 D4 56 6A 99 17 38 A6 2A 3B 35 D1    

    : 92 2E 35 01 5C BF 85 31 25 F3 11 6F 73 7D F1 63    

    : 99 D6 9A AC D1 B1 80 17 E7 50 2C 3A AB 88 86 58    



    0 warnings, 0 errors     

В нашем файле секретного ключа «упакованы» девять целых чисел, структура ключа для алгоритма RSA весьма простая и описана, например, в RFC 3447, в секции A.1.2 RSA private key syntax
.

Ну и чтобы два раза не вставать, вытащим из секретного ключа публичный ключ в файл public.der, закодированный в бинарный формат DER, openssl умеет делать и это тоже:

       
openssl       
rsa       
-inform       
DER       
-outform       
DER       
-in       
private.der       
-pubout       
-out       
public.der
    writing RSA key    

И сразу же посмотрим на его структуру через dumpasn1:

       
dumpasn1       
public.der


    6 9: OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1)    

    17 0: NULL    

    : }    



    28 257: INTEGER    

    : 00 CB F8 C1 9B 6E 29 63 39 3C 24 9B 2D A3 7D 00    

    : B0 B8 5C E8 D6 96 5D E4 76 67 7F 04 8F 48 D4 F4    

    : 35 64 68 57 10 3D 38 CE A0 B5 DC B2 FC DD 34 FF    

    : 2B AC 48 EE D1 05 37 65 4A 2F AE 8A E0 F8 1D CE    

    : 63 EB 2E C6 7A 09 4B B1 85 71 1E FA FF 55 17 0C    

    : 05 23 71 87 43 21 66 C4 70 6D E8 A8 B4 74 EA E4    

    : C1 75 7B AB 33 5B 8B 8D DB D4 67 BA DC B4 AD 50    

    : 12 AB FB 3E 74 44 AC 48 BE 94 C2 DD 4D 16 D6 0F    


    289 3: INTEGER 65537    

    : }    

    : }    


Структура публичного ключа также описана в RFC3447, в секции A.1.1
, если вы туда посмотрите, то увидите, что дамп файла public.der не соответствует этому описанию. Поздравляю с первыми граблями в openssl, с ними вам тоже придётся сталкиваться постоянно. В данном случае зачем-то добавляется заголовок, указывающий, что дальше будет RSA, и на этом заголовке многим библиотекам срывает крышу.

Для манипуляциями публичными и секретными ключами можно также использовать команду pkey, она позволяет работать с произвольными поддерживаемыми типами ключей. Вот как выглядит её вызов для вытаскивания публичного ключа из приватного:

  
openssl
pkey
-inform
DER
-outform
DER
-in
private.der
-pubout
-out
public.der
</pre

Про урокцифры:  Квест урок цифры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *