TLS, сертификаты и цифровые подписи
| English | Русский |
|---|---|
| TLS/ˌtiː el ˈes/ | TLS |
| digital certificate/ˈdɪdʒɪtl səˈtɪfɪkət/ | цифровой сертификат |
| digital signature/ˈdɪdʒɪtl ˈsɪɡnɪtʃə/ | цифровая подпись |
| authenticity/ɔːθənˈtɪsɪti/ | аутентичность |
| integrity/ɪnˈteɡrɪti/ | целостность |
| Certificate Authority/səˈtɪfɪkət əˈθɒrɪti/ | центр сертификации |
Одно лишь шифрование не помогло бы
- Предположим, ваше соединение с банком идеально защищено шифрованием, и предположим, что злоумышленник находится между вами и банком, устанавливая зашифрованные соединения с каждой из сторон.
- Каждый байт зашифрован. Каждый байт также читается и изменяется злоумышленником. Шифрование сделало именно то, что обещало, и не защитило ничего важного.
- Чего не хватало, так это не тайны, а идентичности: подтверждения того, что открытый ключ, к которому вы шифровали, принадлежит банку, а не тому, кто ответил на запрос.
- Этот урок содержит три вещи, которые закрывают этот разрыв: TLS для защиты канала, цифровой сертификат для идентификации и цифровая подпись для подлинности и целостности.
Что предоставляет TLS
- TLS (Transport Layer Security), преемник SSL, — это протокол, обеспечивающий безопасность передаваемых данных. Он предоставляет вместе три функции, и на экзамене требуется указать все три названия.
- Шифрование, чтобы прослушиватель читал только зашифрованный текст. Аутентификация, чтобы клиент знал, с каким сервером он общается. Целостность, чтобы любое вмешательство в процессе передачи было обнаружено.
- Это означает значок замка в браузере, и используется в HTTPS, защищенной электронной почте, VPN и онлайн-банкинге.
Какой комплекс защиты предоставляет TLS для данных при передаче?
TLS шифрует трафик, аутентифицирует сервер (через сертификат) и обнаруживает вмешательство (целостность).
Какие защиты предоставляет TLS для данных при передаче? Выберите все подходящие варианты.
Доставка — задача TCP. Поверх него TLS добавляет конфиденциальность, идентификацию и обнаружение вмешательства.
Ручная передача (Handshake)
- Клиент предлагает наборы шифров, которые он поддерживает. Сервер отвечает своим выбором и своим цифровым сертификатом, который содержит его открытый ключ.
- Клиент проверяет сертификат. Если проверка удовлетворительна, две стороны используют асимметричное шифрование для согласования свежего сессионного ключа.
- Весь последующий трафик шифруется симметрично с использованием этого сессионного ключа: быстро и с новым ключом, специфичным для данного разговора.
- Проверка сертификата — это шаг, который нейтрализует атаку, описанную в примере. Без нее клиент легко согласовал бы сессионный ключ со злоумышленником.

Асимметричное для согласования ключа, симметричное для всего остального
Рукопожатие TLS
Разберитесь, что происходит до появления значка замка. Медленная криптография на открытых ключах используется только для согласования общего ключа; сама страница затем передается под защитой быстрого симметричного шифрования.
Расставьте шаги рукопожатия TLS в правильном порядке.
Проверка сертификата происходит до согласования ключа, именно это предотвращает атаку «человек посередине», позволяющую злоумышленнику согласовать ключ с клиентом.
Цифровые сертификаты
- Цифровой сертификат привязывает идентичность (домен или организацию) к открытому ключу и подписывается доверенным центром сертификации (CA).
- Он содержит субъекта, чья идентичность им подтверждается, открытый ключ субъекта, выпустившего центра, срок действия и цифровую подпись CA ко всему этому содержимому.
- Подпись делает документ доверенным: любой может создать документ, претендующий на роль банка, но только CA может поставить подпись, которая верифицируется с помощью открытого ключа CA.

Доверенная третья сторона гарантирует, что этот ключ принадлежит данному имени
Соотнесите каждый механизм безопасности с тем, что он делает.
Сертификат поручается за публичный ключ; подпись использует приватный ключ, чтобы доказать отправителя и то, что ничего не изменилось.
Разобранное решение: как клиент проверяет сертификат
- Опишите проверки, которые браузер выполняет для цифрового сертификата веб-сайта. [4]
- Проверяется, что сертификат находится в пределах срока действия, т.е. он не истек и еще не наступил срок его начала действия.
- Проверяется, что имя субъекта совпадает с доменом, который запрашивал пользователь; это проверка, которая выявляет злоумышленника, представляющего подлинный сертификат для другого сайта.
- Верифицируется подпись CA на сертификате с использованием открытого ключа CA, доказывая, что сертификат не был изменен.
- Пройдена цепочка до корневого центра сертификации, которому браузер уже доверяет. При любом провале проверки браузер отображает предупреждение «Подключение не является приватным».
При проверке сертификата клиент убеждается, что он:
Браузер проверяет даты действия, соответствие имени субъекта сайту и подпись CA до доверенного корневого узла.
Что делает цифровой сертификат надежным?
Любой может написать документ, притворяясь банком, и поместить в него ключ. Только CA может создать подпись, которая верифицируется с помощью публичного ключа CA.
Цифровые подписи
- Цифровая подпись подтверждает подлинность (кто отправил сообщение) и целостность (что оно не было изменено). Она не шифрует сообщение и не делает его секретным.
- Для создания подписи: отправитель пропускает сообщение через функцию хэширования для получения дигеста, затем шифрует этот дигест своим закрытым ключом. Зашифрованный дигест — это подпись, которая передается вместе с сообщением.
- Для проверки: получатель расшифровывает подпись открытым ключом отправителя, чтобы восстановить дигест, самостоятельно хэширует полученное сообщение и сравнивает результаты.
- Если они совпадают, только владелец закрытого ключа мог создать эту подпись (подлинность), а сообщение не могло измениться (целостность), поскольку любое изменение привело бы к другому хэшу.

Зашифруйте дигест закрытым ключом, проверьте его открытым ключом
Чтобы создать цифровую подпись, отправитель:
Подпись = хэширование сообщения, затем шифрование хеша приватным ключом; получатель проверяет с помощью публичного ключа.
Цифровая подпись подтверждает подлинность и целостность (кто подписал и что ничего не изменилось), но НЕ скрывает само сообщение — для конфиденциальности его также необходимо зашифровать.
Подписание и шифрование — разные цели: подпись доказывает источник/целостность; шифрование сохраняет содержимое в тайне.
Чтобы подписать сообщение, отправитель шифрует его хеш своим собственным ____ ключом.
Затем получатель расшифровывает его публичным ключом отправителя. Только владелец приватного ключа мог создать подпись, которая распаковывается таким образом.
Разобранное решение: почему ключи используются наоборот
- В конфиденциальной переписке отправитель использует открытый ключ получателя. При создании подписи отправитель использует свой собственный закрытый ключ. Объясните почему.
- Для конфиденциальности нужно, чтобы только один человек мог читать сообщение, поэтому мы закрываем его ключом, доступным всем, а открываем только тем ключом, которого нет ни у кого другого.
- Для подписи нужно, чтобы все могли её проверить, а создавать её мог только вы: поэтому она блокируется ключом, который есть только у вас, и открывается ключом, доступным всем.
- Направление выбора пары ключей зависит от того, что именно вы хотите доказать. Это единственная самая проверяемая идея в данной теме.
Шифрование соединения само по себе достаточно для предотвращения атаки «человек посередине».
Шифрование защищает канал для любого, кто находится на другом конце. Сертификат доказывает, кто это, поэтому проверка является несущим этапом.
Получение сертификата
- Владелец сервера генерирует пару ключей и отправляет открытый ключ и данные об идентичности в Центр сертификации. Закрытый ключ остается у владельца. Центр сертификации проверяет управление доменом или идентичностью, требуемую типом сертификата.
- Центр сертификации подписывает сертификат, привязывающий эту идентичность к открытому ключу, используя закрытый ключ центра сертификации, и возвращает его для установки. Сертификат является публичным доказательством относительно ключа, а не контейнером для секретного ключа владельца.
Какие элементы должны быть включены в запрос сертификата для CA? Выберите все подходящие варианты.
CA проверяет заявленную личность и привязывает её к публичному ключу. Закрытый ключ заявителя остается в секрете.
Расставьте шаги получения цифрового сертификата по порядку.
Проверка личности выполняется перед тем, как CA подпишет привязку. Сервер предоставляет сертификаты клиентам.
Разобранный пример: чей ключ подписывает что?
- Разработчик программного обеспечения подписывает загрузку закрытым ключом издателя. Получатель получает открытый ключ издателя из действующего сертификата и использует его для проверки подписи загрузки.
- Закрытый ключ ЦА подписывает сертификат; закрытый ключ издателя подписывает загрузку. Действующий сертификат устанавливает, чей открытый ключ следует доверять. Сам по себе он не подписывает программу и не гарантирует, что программа безопасна.
Сопоставьте каждую операцию с соответствующим ключом.
CA гарантирует привязку личности к ключу. Издатель подписывает свой собственный контент; получатель проверяет его с помощью соответствующего публичного ключа.
Потерянные баллы
- TLS обеспечивает шифрование, аутентификацию и целостность. Упоминание только шифрования лишает ответа двух третей баллов.
- Подпись шифрует хэш сообщения закрытым ключом отправителя, а не само сообщение, и это не делает сообщение секретным.
- Проверка сертификата означает проверку дат, соответствия имени домену, подписи центра сертификации (CA) и цепочки к доверенному корню. Проверка имени — то, что чаще всего забывают кандидаты.
- Сертификат предотвращает атаку «человек посередине». Шифрование само по себе этого не делает: оно защищает канал с любым собеседником на другом конце.
Вы поняли
- TLS обеспечивает шифрование, аутентификацию и целостность: его handshake представляет сертификат, затем согласовывает ключ сессии для быстрого симметричного шифрования.
- Цифровой сертификат связывает личность с открытым ключом и подписывается центром сертификации; он содержит субъекта, его открытый ключ, эмитента, срок действия и подпись CA.
- Проверьте сертификат по датам, соответствию имени домену, подписи центра сертификации и цепочке до доверенного корня.
- Цифровая подпись — это хэш сообщения, зашифрованный закрытым ключом отправителя, проверяемый открытым ключом отправителя: она доказывает подлинность и целостность, но не конфиденциальность.