Защо копирането на ca.key до всеки VPN клиент разрушава CA
Клиентът проверява публичния сертификат на CA; той никога не се нуждае от ключа, който подписва. Копирането на ca.key на всяко устройство дава право на издаване на всеки, който вземе едно копие.
Някъде в инструкциите за настройка цяла директория се копира безразборно на всеки лаптоп, защото това беше по-лесно от решаването кои файлове принадлежат там. Тази директория съдържа ca.key и в момента, в който стигне до второ устройство, сертификатният орган престава да бъде орган. Всеки притежател вече може да издава идентичности, на които останалата част от мрежата ще се довери.
Объркването си струва да бъде изяснено веднъж, защото двата файла изглеждат подобни и вършат противоположни неща.
Материал за проверка и материал за подписване
Клиентът се нуждае от публичния сертификат на CA, за да провери, че сертификатът, представен от отсрещната страна, е бил подписан от този орган. Това е задача по проверка и не изисква никаква тайна. Подписването на сертификат на отсрещната страна е друга задача, изпълнявана веднъж от този, който управлява CA, с частния ключ, който никога не напуска защитеното си хранилище. Разделянето на тези две задачи е целият смисъл на изпращането на два файла.
Затова ca.crt принадлежи в профила, а ca.key не принадлежи никъде близо до него. Имената на файловете са конвенция, не гаранция, поради което типът трябва да се провери, а не да се предполага от името.
Архитектура с междинен CA или онлайн услуга за издаване не е изключение от това. Това е стандартният начин да се държи способността за подписване далеч от крайните точки, докато сертификатите за устройства се издават в мащаб.
Какво трябва да докаже клиентът със собствения си ключ
Всяко устройство получава своя двойка ключове и свой сертификат, подписан веднъж от CA. Клиентът представя този сертификат и доказва притежанието на съответния частен ключ, а сървърът решава дали да го приеме. Това е идентичността, която се отменя, когато лаптоп бъде изгубен.
Контрастът е най-важен след кражба. При идентичности за всяко устройство един разкрит клиент се премахва чрез отмяна или премахване на партньора, а останалата част от флота продължава да работи.
Изтекъл ключ на органа не може да бъде обработен по този начин. Всеки сертификат, който той някога е подписал или е могъл да подпише, става съмнителен, затова реакцията е подмяна на доверието, а не единична отмяна. Това е проект, а не заявка.
| File | Role | Belongs on |
|---|---|---|
ca.crt | Public certificate used to verify signatures | Every client profile |
ca.key | Private key that issues certificates | Protected CA storage only |
| client key pair | Proves one device's identity | That device alone |
Прочетете файл, преди да го копирате някъде
Две команди ви казват какъв вид обект държите, без да отпечатват никаква тайна. Първата посочва субекта и флага на CA в сертификат; втората проверява ключ и съобщава типа му. Изпълнете и двете върху файловете в пакета, който ще разпространявате. Всичко, което се валидира като частен ключ, не принадлежи в клиентска директория.
openssl x509 -in ca.crt -noout -subject -ext basicConstraints openssl pkey -in ca.key -noout -check
Ако втората команда успее върху файл, който стои в клиентски пакет, спрете и третирайте пакета като компрометиран. Изходът, който казва, че ключът е валиден, казва също, че той присъства, а присъствието е целият проблем.
Обърнете внимание и на другата посока: клиентският профил законно съдържа собствения частен ключ на този клиент. Изтриването на всеки намерен ключ прекъсва връзката, без да подобри нищо, затова обектът трябва да бъде идентифициран, преди да бъде премахнат.
Овладяване на ключ, който вече сте разпространили
Не предполагайте, че изтриването на локалното копие обръща разкриването. Всеки, който е държал файла, може да го е копирал, и безопасното предположение е, че го е направил. Следвайте процедурата за инциденти на оператора и подменете котвата на доверие, като издадете отново сертификатите на устройствата под нов CA.
След това променете опаковката, която създаде проблема. Изпращайте списък на директория с явен бял списък на файловете, дръжте ключа на CA на машина, която никога не се присъединява към клиентския флот, и записвайте коя система го съхранява.
Ако органът трябва да издава често, преместете подписването зад услуга или междинен орган с тесен обхват и кратък срок на валидност. Така бъдеща грешка разкрива подмножество от издаването, а не корена на доверие за цялото разгръщане.