Небольшое развёртывание тянется к отпечаткам, потому что удостоверяющий центр выглядит как инфраструктура, на которую ни у кого нет времени. Инстинкт разумен, а короткий путь, который люди выбирают вместо него—копирование одного секрета канала данных на оба конца—нет. Настройка peer-fingerprint сохраняет структуру TLS нетронутой: каждая сторона по-прежнему держит свой закрытый ключ и сертификат, и каждая сторона по-прежнему проверяет другую. Меняется то, где закреплена проверка: от доверенного издателя к короткому списку закреплённых дайджестов. Поскольку дайджест покрывает весь сертификат, а не имя, продление становится операцией, которая действительно отнимает время.

К чему на самом деле обязывает отпечаток

Отпечаток сертификата — это дайджест всего сертификата в кодировке DER, а не его открытого ключа и не имени его субъекта. Поэтому два сертификата с одинаковыми именами и одним и тем же ключом, но разными сроками действия имеют разные отпечатки. Это делает закрепление точным и это же делает продление хлопотным. Закрепление не может означать доверие к ключу вообще, потому что оно называет один артефакт в один момент его жизни. Дайджест может знать кто угодно, и само знание ничего не доказывает.

openssl x509 -in server.crt -noout -fingerprint -sha256
openssl x509 -in client-07.crt -noout -fingerprint -sha256

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

Карта взаимна, а не симметрична

Каждому концу нужны две вещи: собственный закрытый ключ с сертификатом и заявление о том, какие сертификаты партнёров он примет. У клиента это заявление — дайджест сертификата сервера; у сервера это список дайджестов зарегистрированных клиентов. Официальный пример для небольшой конфигурации для Community 2.6 показывает устройство с peer-fingerprint, и его стоит прочитать перед выбором этой модели доверия для реального развёртывания. Два направления не являются одним перевёрнутым списком, и они не отказывают в один и тот же момент.

Verification directionWhat is pinnedWhat never leaves that endpointHow a wrong pin shows up
Client checks the serverOne digest, for the server certificateThe server private keyThe client aborts during the TLS handshake
Server checks the clientA digest per enrolled clientEach client private keyThe server rejects the peer before a tunnel exists

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

Регистрация: как присоединяется новое устройство

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

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

Продление — дорогой момент

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

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

Чего карта доверия не решает

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

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

Похожие статьи