Адбітак настолькі надзейны, наколькі надзейны канал, які паведаміў вам, чаго чакаць. Калі значэнне, з якім вы параўноўваеце, прыйшло праз тое ж злучэнне, якое вы правяраеце, параўнанне не даказвае нічога, акрамя таго, што той, хто кіруе гэтым злучэннем, паслядоўны. Праверка павінна ісці ў фіксаваным парадку, і няўдалы крок павінен спыніць вас, а не штурхаць да наступнага. Вось парадак, які я выкарыстоўваю, калі кліент VPN паведамляе, што сертыфікат змяніўся.

Спачатку назавіце аб’ект, потым значэнне

Вырашыце, ці чаканае значэнне адносіцца да канцавога сертыфіката сервера, да CA, які яго выдаў, ці да публічнага ключа ўнутры канцавога сертыфіката. Гэта тры розныя праверкі, і яны правальваюцца па-рознаму. Адбітак CA, які супадае, не замацоўвае сервер, а хэш публічнага ключа наўмысна перажывае перавыданне, якое захоўвае той жа ключ.

Запішыце таксама алгарытм. SHA-256 цяпер звычайнае чаканне, але старэйшыя інструменты друкавалі SHA-1, калі вы не прасілі іншага, а 40-сімвальнае hex-значэнне — гэта знак, што вы вось-вось пачняце параўноўваць дзве розныя рэчы.

Атрымайце чаканае значэнне праз другі канал

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

Прасіце поўнае значэнне і алгарытм, ніколі не профікс. Двухкроп’і і рэгістр літар не маюць значэння, але ўсячэнне ператварае праверку ў 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 не кажа вам нічога. Спыніцеся, калі адбітак супадае, але сертыфікат пратэрмінаваны, адкліканы або выдадзены на іншае імя; супадальны хэш — не праверка сапраўднасці і не рамантуе пазначаны ланцуг. Спыніцеся таксама, калі серыйны нумар не супадае з серыйным нумарам у запісе, з якім вы звяраецеся, бо гэта самы танны спосаб заўважыць падменены сертыфікат.

Спыніцеся, калі новае значэнне прыйшло праз канал, які вы правяралі. Ратацыя можа законна змяніць адбітак, але значэнне замены ўсё роўна павінна прыходзіць з даверанага працэсу, а не з дыялога папярэджання, які выклікаў пытанне.

Спыніцеся, калі прапанаванае выпраўленне — адключыць праверку імя хаста або ланцуга. Адбітак дадае абмежаванне да звычайных праверак; ён не замяняе іх, калі толькі разгортванне наўмысна не выбрала мадэль толькі-пін, і гэты выбар нясе свае эксплуатацыйныя выдаткі.

Пасля параўнання

Запішыце, што вы параўноўвалі, адкуль прыйшло чаканае значэнне і калі. Калі сертыфікат перавыдалі, абнавіце захаванае чаканне праз той жа давераны канал і адзначце новы серыйны нумар, бо менавіта серыйны нумар робіць наступную ратацыю аўдытуемай.

Затым ясна ўсвядомце межы. Адбітак пацвярджае, што сертыфікат у вас — менавіта той, які нехта сказаў вам чакаць. Ён нічога не кажа пра тое, ці не скампраметаваны хаст, і нічога пра тое, ці журналізуе служба або абмяжоўвае тое, да чаго гэты сертыфікат можа дацягнуцца.

Падобныя артыкулы