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

Выберыце паміж капіраваннем і выкарыстаннем

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

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

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

Узгадніце сховішча з дэманам тунеля

Дэман абмяжоўвае гэта мацней, чым палітыка бяспекі. WireGuard бярэ прыватны ключ у base64 з файла або з уводу wg set і не мае шляху да сховішча сертыфікатаў, таму ключ інтэрфейсу з падтрымкай TPM не разглядаецца. OpenVPN, сабраны супраць OpenSSL 3, можа загрузіць ключ праз URI пастаўшчыка, а strongSwan пастаўляе плагін TPM разам з падтрымкай PKCS#11, але абодва залежаць ад таго, як сабраны ваш пакет.

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

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

Інвентарызуйце ключ да пераносу

Зафіксуйце, што гэта за ключ, перш чым змяняць месца яго захавання, бо міграцыя, якая страціла subject alternative names, ламае тунель так, што гэта чытаецца як памылка маршрутызацыі. Выгрузіце сертыфікат, упэўніцеся, што прыватны ключ чытаецца там, дзе яго чакае дэман, і праверце, што пара сапраўды супадае.

openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256

Апошнія два дайджэсты павінны быць аднолькавымі. Калі не, дэман завяршае наладку, а затым церпіць няўдачу пры кожнай спробе з памылкай сертыфіката або подпісу, якая не паказвае нідзе побач сапраўднай прычыны. Эквівалент для WireGuard карацейшы, бо адкрыты ключ выводзіцца прама з прыватнага: wg pubkey < /etc/wireguard/wg0.key павінен вывесці ключ піра, які ваш сервер ужо захаваў.

Правы доступу належаць да той жа інвентарызацыі. stat -c '%a %U:%G' /etc/wireguard/wg0.key павінен вярнуць 600 root:root, а ўсё, што чытаецца групай або светам, азначае, што ключ ужо быў даступны працэсам, якіх вы не задумвалі.

Праверце сховішча і шлях выкарыстання

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

certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts

У Windows першая каманда пералічвае асабістае сховішча і друкуе пастаўшчыка ключа побач з кожным запісам, і там з'яўляецца сертыфікат, які выглядае апаратна абароненым, але ляжыць у праграмным пастаўшчыку. Другая пералічвае ключы, якімі валодае платформавы крыптапастаўшчык, таму ідэнтычнасць VPN, адсутная там пры наяўным сертыфікаце, азначае, што прыватная палова жыве дзесьці іншым. На шлюзе Linux ipsec listcerts паведамляе, што загрузіў strongSwan, уключна з ключамі з плагіна TPM. Параўноўвайце адбіткі або хэшы адкрытых ключоў з інвентарызацыяй, а не давярайце колькасці запісаў.

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

Запішыце абнаўленне і адкат

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

Правярайце сканчэнне, пакуль яно не стала збоем: openssl x509 -in vpn.crt -noout -checkend 2592000 завяршаецца з ненулявым кодам, калі сертыфікат сканчаецца на працягу трыццаці дзён, таму радок прама ўбудоўваецца ў праверку маніторынгу. Штотыднёвы запуск гэтага радка ловіць абнаўленне, якое ніхто не запланаваў.

Выдаленне адбываецца на серверы: выдаліце піра або адклічце серыйны нумар, затым пацвердзіце, што тунель адмаўляе, бо кліент з кэшаванай сесіяй можа некаторы час хаваць напалову выкананы адклік. Адклік павінен даходзіць і да шляху CRL або OCSP канцэнтратара, а не толькі да базы даных CA. Сертыфікат — публічны дакумент, і профіль RFC 5280 апісвае, як ён правяраецца; нішто ў гэтай праверцы не абараняе прыватны ключ, скапіяваны да ротацыі.

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

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