Отисак је само толико добар колико је добар канал који вам је рекао шта да очекујете. Ако је вредност са којом поредите стигла истом везом коју тестирате, поређење не доказује ништа осим да је онај ко контролише ту везу доследан. Провера мора да се одвија фиксним редом, а неуспешан корак треба да вас заустави уместо да вас гурне на следећи. Ово је ред који користим када VPN клијент јави да се сертификат променио.

Именујте објекат пре него што именујете вредност

Одлучите да ли очекивана вредност припада завршном сертификату сервера, CA-у који га издаје или јавном кључу унутар завршног сертификата. То су три различите провере и оне падају на различите начине. CA отисак који се поклапа не прикива сервер, а хеш јавног кључа намерно преживљава поновно издавање које задржава исти кључ.

Запишите и алгоритам. SHA-256 је данас нормално очекивање, али старији алати су исписивали SHA-1 осим ако нисте тражили другачије, а хексадецимална вредност од 40 знакова знак је да ћете поредити две различите ствари.

Прибавите очекивану вредност преко другог канала

Други канал мора бити онај у који страна од које се штитите не може да пише. Систем за снабдевање у који се већ аутентификујете, штампани запис у сефу, база конфигурације или потписани документ који доставља други процес, сви задовољавају. Чет порука од колеге, страница подршке до које сте стигли преко резултата претраге и све што је залепљено у терминал у којем већ дебагујете не задовољавају.

Тражите пуну вредност и алгоритам, никад префикс. Двотачке и велика или мала слова нису важни, али скраћивање претвара проверу од 256 бита у игру погађања.

Ако нико не може да пружи очекивану вредност из независног извора, искрен резултат је да се овај сертификат данас не може проверити. Рећи то боље је него приковати оно што је клијент управо приказао, што упозорење претвара у навику.

Извуците вредност на својој страни

За датотеку сертификата команда је openssl x509 -in server.crt -noout -fingerprint -sha256. Експлицитни дигест је важан: без њега излаз зависи од ваше верзије OpenSSL-а. Резултат је хексадецимални низ раздвојен двотачкама, зато уклоните двотачке и обе стране преведите у мала слова пре поређења.

За крајњу тачку која говори TLS директно, повежите се и испумпајте сертификат: openssl s_client -connect vpn.example.com:443 -servername vpn.example.com < /dev/null | openssl x509 -noout -fingerprint -sha256. То ради за веб административни панел или TLS слушалац, не за OpenVPN, чији контролни канал стоји унутар тунела. За OpenVPN читајте сертификат из профила на диску уместо да покушавате да га ухватите са сокета.

Поређење треба да буде механичко. Нормализујте обе вредности помоћу tr -d ':' и превођења у иста слова, па упоредите цео низ. Поређење на око је начин на који подударни префикс сакрије разлику у последњем бајту. Ако се низови разликују, третирајте разлику као стварну пре него што потражите објашњење.

Услови за заустављање

Зауставите се ако се објекат разликује, јер CA отисак не може да очисти завршни сертификат а завршни не може да очисти CA. Зауставите се ако се алгоритам разликује, јер вредност SHA-1 према вредности SHA-256 не говори вам ништа. Зауставите се ако се отисак поклапа али је сертификат истекао, опозван или издат за друго име; подударни хеш није провера ваљаности и не поправља покварен ланац. Зауставите се и ако се серијски број не поклапа са серијским бројем у запису с којим се поредите, јер је то најјефтинији начин да уочите замењен сертификат.

Зауставите се ако је нова вредност стигла каналом који сте тестирали. Ротација може легитимно да промени отисак, али заменска вредност ипак мора да дође из поузданог процеса, не из дијалога упозорења који је изазвао питање.

Зауставите се ако је предложено решење да искључите проверу имена хоста или ланца. Отисак додаје ограничење нормалним проверама; он их не замењује осим ако распоређивање намерно није изабрало модел само са пином, а тај избор носи сопствене оперативне трошкове.

Након поређења

Запишите шта сте упоредили, одакле је дошла очекивана вредност и када. Ако је сертификат поново издат, ажурирајте сачувано очекивање преко истог поузданог канала и забележите нови серијски број, јер серијски број је оно што следећу ротацију чини проверивом.

Затим будите јасни о границама. Отисак потврђује да је сертификат који држите онај који вам је неко рекао да очекујете. Он не говори ништа о томе да ли је хост некомпромитован, нити о томе да ли услуга евидентира или ограничава до чега тај сертификат може да стигне.

Повезани чланци