Dwa pytania rozstrzygają, gdzie należy prywatny klucz VPN: czy materiał klucza można skopiować z hosta i czy proces może go użyć bez nikogo przy klawiaturze. Etykieta marketingowa magazynu nie odpowiada na żadne z nich. Demon tunelu, który musi wrócić po restarcie, wymaga pracy bez nadzoru, co wyklucza wszystko oparte na PIN-ie wpisywanym przez człowieka.

Wybierz między kopiowaniem a używaniem

Kopiowanie i używanie zawodzą inaczej, więc traktuj je jako dwa wymagania, a nie jedno. Napastnik, który potrafi odczytać bajty klucza, przenosi tożsamość na inny host, a pierwotna maszyna tego nie zauważa. Napastnik, który nie potrafi odczytać bajtów, ale dociera do procesu podpisywania, nadal się uwierzytelnia, dopóki trwa ten dostęp.

Klucz w pliku jest trywialnie kopiowalny, dlatego też najłatwiej go zarchiwizować i przywrócić. Programowy magazyn kluczy zmienia API, a nie granicę: dostawca odrzuca własne wywołania eksportu, ale ten sam kontekst administratora, który zainstalował klucz, zwykle ma inne drogi do materiału. Nieeksportowalność u dostawcy programowego to stwierdzenie o obsługiwanych operacjach, a nie dowód ściany sprzętowej. Traktuj ją jako spowalniacz przed przypadkowym kopiowaniem, nie jako ochronę przed kimś, kto już ma twoją sesję.

TPM lub karta inteligentna wykonuje operację podpisu w sprzęcie i zwraca tylko wynik. To zamyka ścieżkę kopiowania, a ścieżkę używania pozostawia otwartą dla wszystkiego, co może poprosić o podpis.

Dopasuj magazyn do demona tunelu

Demon ogranicza to bardziej niż polityka bezpieczeństwa. WireGuard przyjmuje prywatny klucz base64 z pliku lub z wejścia wg set i nie ma ścieżki do magazynu certyfikatów, więc klucz interfejsu oparty na TPM nie wchodzi w grę. OpenVPN zbudowany wobec OpenSSL 3 może wczytać klucz przez URI dostawcy, a strongSwan dostarcza wtyczkę TPM obok obsługi PKCS#11, ale oba zależą od tego, jak skompilowano pakiet.

Demon, który nie dociera do wybranego magazynu, zamienia granicę sprzętową w dekorację. Ktoś raz eksportuje klucz, zostawia go w pliku, a reszta projektu po cichu działa na tej kopii.

Odnowienie to druga połowa dopasowania i właśnie tam rozpada się większość projektów. Magazyn, który działa przy pierwszej rejestracji, ale wymaga logowania do konsoli przy każdym ponownym wydaniu, jest obchodzony za pierwszym razem, gdy certyfikat wygaśnie o niewygodnej godzinie. Przetestuj ścieżkę ponownego wydania, dopóki bieżący klucz ma jeszcze miesiące.

Zinwentaryzuj klucz przed przeniesieniem

Zapisz, czym jest klucz, zanim zmienisz, gdzie mieszka, bo migracja, która traci subject alternative names, psuje tunel w sposób czytany jako błąd routingu. Wyeksportuj certyfikat, potwierdź, że prywatny klucz jest czytelny tam, gdzie demon go oczekuje, i sprawdź, czy para naprawdę pasuje.

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

Dwa ostatnie skróty muszą być identyczne. Jeśli nie są, demon kończy konfigurację i potem zawodzi przy każdej próbie z błędem certyfikatu lub podpisu, który nie wskazuje nigdzie blisko prawdziwej przyczyny. Odpowiednik WireGuard jest krótszy, bo klucz publiczny wynika bezpośrednio z prywatnego: wg pubkey < /etc/wireguard/wg0.key musi wypisać klucz peera, który twój serwer już przechowuje.

Uprawnienia należą do tego samego spisu. stat -c '%a %U:%G' /etc/wireguard/wg0.key powinno zwrócić 600 root:root, a wszystko czytelne dla grupy lub świata oznacza, że klucz był już dostępny procesom, których nigdy nie przewidziałeś.

Sprawdź magazyn i ścieżkę używania

Weryfikacja ma trzy części, a trzecia jest pomijana. Potwierdź, że klucz istnieje w wybranym magazynie, potwierdź, że demon wczytał ten klucz, a nie pozostałą kopię, i wreszcie potwierdź, że nadal się uruchamia, gdy artefakt eksportu zniknie.

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

W Windows pierwsze polecenie listuje magazyn osobisty i wypisuje dostawcę kluczy obok każdego wpisu, i tam pojawia się certyfikat, który wygląda na chroniony sprzętowo, ale siedzi w dostawcy programowym. Drugie listuje klucze przechowywane przez dostawcę kryptografii platformy, więc tożsamość VPN, której tam brakuje przy obecnym certyfikacie, oznacza, że prywatna połowa mieszka gdzie indziej. Na bramie Linux ipsec listcerts raportuje, co wczytał strongSwan, w tym klucze z wtyczki TPM. Porównuj odciski lub hashe kluczy publicznych ze spisem, zamiast ufać liczbie wpisów.

Test negatywny jest tym, który dowodzi projektu. Przenieś wyeksportowany klucz poza katalog konfiguracji demona, zrestartuj usługę i przeczytaj w dzienniku, jaką tożsamość przedstawia. Tunel, który mimo to wstaje, używa magazynu; nieudany start oznacza, że projekt naprawdę działał na kopii.

Zapisz odnowienie i wycofanie

Wycofanie różni się mocno między obiema rodzinami, a ta różnica należy do notatki projektowej, nie do rozmowy o incydencie. Klucz w pliku można zarchiwizować zaszyfrowany i przywrócić, więc nieudana migracja jest odwracalna. Klucza nieeksportowalnego nie da się zarchiwizować wcale, co czyni ponowne wydanie i ponowną rejestrację jedyną ścieżką odzyskania, gdy urządzenie umrze.

Sprawdzaj wygaśnięcie, zanim stanie się awarią: openssl x509 -in vpn.crt -noout -checkend 2592000 kończy się kodem różnym od zera, gdy certyfikat wygasa w ciągu trzydziestu dni, więc pasuje wprost do kontroli monitoringu. Cotygodniowe uruchomienie tej linii wyłapuje odnowienie, którego nikt nie zaplanował.

Usunięcie odbywa się na serwerze: usuń peera lub unieważnij numer seryjny, a potem potwierdź, że tunel zawodzi, bo klient z sesją w pamięci podręcznej może przez jakiś czas ukryć na wpół wykonane unieważnienie. Unieważnienie musi dotrzeć także do ścieżki CRL lub OCSP koncentratora, nie tylko do bazy CA. Certyfikat jest dokumentem publicznym, a profil RFC 5280 opisuje, jak jest walidowany; nic z tej walidacji nie chroni prywatnego klucza skopiowanego przed rotacją.

Zapisz decyzję w jednym miejscu: który magazyn trzyma klucz, który proces może go używać, kto może go ponownie wydać i jakie jest wycofanie. Ten akapit to, o co pytają audytorzy, i to, co przetrwa zmianę personelu.

Powiązane artykuły