Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Закрепление сертификатов — это метод безопасности, в котором принимаются только авторизованные или закрепленные сертификаты при установке безопасного сеанса. Любая попытка установить безопасный сеанс с использованием другого сертификата отклоняется.
Журнал закреплений сертификатов
Пиннинг сертификатов изначально был разработан как средство предотвращения атак типа 'человек посередине' (MITM). Закрепление сертификатов впервые стало широко использоваться в 2011 году в результате компрометации Центра сертификации DigiNotar (ЦС), в результате чего злоумышленник мог создать подстановочные сертификаты для нескольких известных веб-сайтов, включая Google. Chrome был обновлен на "закрепление" текущих сертификатов для веб-сайтов Google и отклонит любое подключение, если был представлен другой сертификат. Даже если злоумышленник нашел способ убедить ЦС выпустить мошеннический сертификат, он по-прежнему будет признан Chrome недействительным, и подключение отклонено.
Хотя веб-браузеры, такие как Chrome и Firefox, были одними из первых приложений для реализации этого метода, диапазон вариантов использования быстро расширяется. Устройства Интернета вещей, мобильные приложения iOS и Android, а также разрозненные коллекции программных приложений начали использовать этот метод для защиты от атак "Человек в середине".
В течение нескольких лет закрепление сертификатов считалось хорошей практикой безопасности. Надзор за ландшафтом инфраструктуры открытых ключей (PKI) улучшился благодаря прозрачности практики выдачи сертификатов общедоступными доверенными ЦС.
Как решить проблему пиннинга сертификатов в вашем приложении
Как правило, приложение содержит список авторизованных сертификатов или свойств сертификатов, включая различающиеся имена субъектов, отпечатки, серийные номера и открытые ключи. Приложения могут закреплять отдельные листовые или конечные сертификаты сущностей, сертификаты подчиненного удостоверяющего центра или даже сертификаты корневого удостоверяющего центра.
Если приложение явно указывает список допустимых центров сертификации, может потребоваться периодически обновлять закрепленные сертификаты при изменении или истечении срока действия центров сертификации. Чтобы определить закрепление сертификатов, рекомендуется выполнить следующие действия.
Если вы разработчик приложения, поищите в исходном коде любую из следующих ссылок на ЦС, у которой изменяется или истекает срок действия. Если есть совпадение, обновите программное обеспечение, чтобы включить отсутствующие центры сертификации.
- Отпечатки сертификатов
- Уникальные имена субъектов
- Общие имена
- Серийные номера
- Открытые ключи
- Другие свойства сертификата
Если ваше пользовательское клиентское приложение интегрируется с API Azure или другими службами Azure и вы не уверены, использует ли оно закрепление сертификатов, обратитесь к поставщику приложения.
Ограничения прикрепления сертификатов
Практика закрепления сертификатов стала широко спорной, так как она несет неприемлемые затраты на гибкость сертификатов. Конкретная реализация, HTTP пиннинг открытых ключей (HPKP), полностью устарела.
Поскольку нет единого веб-стандарта для того, как выполняется закрепление сертификатов, мы не можем предложить прямое руководство по обнаружению его использования. Хотя мы не рекомендуем против пиннинга сертификатов, клиенты должны знать об ограничениях, которые эта практика создает, если они решат её использовать.
- Убедитесь, что закрепленные сертификаты можно обновить по краткому уведомлению.
- Отраслевые требования, такие как Базовые требования Форума CA/Browser по выдаче и управлению сертификатами общедоступного доверия, требуют ротации и отзыва сертификатов в течение 24 часов в определённых ситуациях.