Зашто копирање 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 на машини која се никада не придружује клијентској флоти и забележите који систем га чува.
Ако тело мора често да издаје, преместите потписивање иза сервиса или посредног тела уског обухвата и кратке важности. Тако будућа грешка излаже део издавања, а не корен поверења целог постављања.