Co to jest format pliku PFX?
Pliki .pfx są powiązane ze standardem kryptograficznym PKCS #12, pierwotnie opracowanym przez RSA Laboratories, a obecnie regulowanym przez RFC 7292.
Pliki z rozszerzeniem .pfx przechowują zaszyfrowane i podpisane cyfrowo obiekty kryptograficzne w binarnym kontenerze kodowanym metodą DER. Każdy plik .pfx jest podzielony na tak zwane SafeBags, które mogą być również niezależnie szyfrowane i podpisywane. Standard PKCS #12 dodatkowo dzieli SafeBags na typy odpowiednie do przechowywania kluczy prywatnych, certyfikatów X.509, łańcuchów certyfikatów i innych danych bezpieczeństwa.
.pfx jest najczęściej używany do łączenia klucza prywatnego wraz z pasującym do niego łańcuchem certyfikatów w jednym pliku chronionym hasłem. Typowe zastosowania obejmują eksportowanie certyfikatów TLS/SSL między serwerami, dystrybucję tożsamości do podpisywania kodu oraz przenoszenie poświadczeń S/MIME między urządzeniami.
.pfx i .p12 są funkcjonalnie identyczne - narzędzia Windows używają .pfx, podczas gdy macOS i Linux preferują .p12. Oba można przekonwertować na format tekstowy .pem za pomocą polecenia openssl pkcs12. W przeciwieństwie do samodzielnych certyfikatów .cer, plik .pfx przenosi klucz prywatny obok certyfikatu, co czyni go preferowanym formatem, gdy klucz musi podróżować wraz z certyfikatem.
Bezpieczeństwo
RYZYKO: HIGHPlik PFX zawiera KLUCZ PRYWATNY, więc jest jednym z najbardziej wrażliwych typów plików, z jakimi styka się użytkownik: każdy, kto posiada plik i hasło, może podszyć się pod właściciela certyfikatu - podpisywać kod lub dokumenty w jego imieniu lub uruchomić serwer z jego tożsamością TLS. Nigdy nie wysyłaj pliku PFX e-mailem bez zabezpieczeń, nie umieszczaj go w systemach kontroli wersji, używaj silnego hasła eksportu i przechowuj go bezpiecznie (najlepiej usuń plik po zaimportowaniu). Traktuj nieoczekiwane załączniki .pfx jako podejrzane. Generuj i obsługuj pliki PFX wyłącznie za pomocą zaufanych narzędzi (kreatory systemowe, OpenSSL) - nie korzystaj z przypadkowych stron internetowych typu „przeglądarka certyfikatów”, które mogłyby przejąć Twój klucz i hasło.
Szczegóły formatu
w pigułceProgramy otwierające pliki PFX
Szczegóły techniczne
specyfikacja| Kodowanie kontenera | Binarny DER (Distinguished Encoding Rules) nad ASN.1; plik nie jest czytelny dla człowieka bez dedykowanego parsera |
| Typ MIME | application/x-pkcs12 |
| Magiczne bajty | 30 82 pod offsetem 0 (ASN.1 DER SEQUENCE z 2-bajtową długością); współdzielone z innymi formatami kodowanymi w DER - identyfikuj po rozszerzeniu lub typie MIME, nie po samych bajtach |
| Struktura wewnętrzna | Zagnieżdżone warstwy: PFX → AuthenticatedSafe → SafeContents → SafeBags; każdy SafeBag zawiera jeden typowany obiekt kryptograficzny |
| Typy SafeBag | KeyBag, PKCS8ShroudedKeyBag, CertBag, CRLBag, SecretBag, SafeContents - sześć oficjalnych typów SafeBag zdefiniowanych w RFC 7292 |
| Ochrona hasłem | Całe archiwum oraz poszczególne SafeBags mogą być szyfrowane niezależnie wybranym przez użytkownika hasłem za pomocą szyfrowania opartego na haśle |
| Algorytmy szyfrowania | AES-256-CBC i 3DES-CBC dla nowoczesnych stosów; RC2 i RC4 pojawiają się w starszych plikach (przestarzałe - unikaj przy generowaniu nowych archiwów) |
| Integralność MAC | HMAC (SHA-1 w starszych; SHA-256 lub SHA-384 w nowoczesnych implementacjach) obejmuje strukturę AuthenticatedSafe w celu wykrycia manipulacji |
| Derwacja klucza | PBKDF1 (RFC 7292 Dodatek B) lub PBKDF2 z konfigurowalną liczbą iteracji wzmacnia szyfrowanie oparte na haśle przeciwko atakom brute-force |
| Nazwa Windows vs. IETF | .pfx to oryginalny sufiks ukuty przez Microsoft; .p12 to nazwa standardu IETF; oba są identyczne bajt po bajcie i w pełni wymienne |
| Przechowywanie wielu obiektów | Pojedynczy .pfx może zawierać wiele certyfikatów i kluczy - na przykład pełny łańcuch certyfikatów końcowych, pośrednich i głównych CA wraz z kluczem prywatnym |
| Typowa konwersja CLI | openssl pkcs12 -in file.pfx -out file.pem -nodes wyodrębnia do tekstu PEM; openssl pkcs12 -export -out file.pfx łączy dane wejściowe PEM w nowe archiwum |
| Obsługa platform | Natywna w Windows (Kreator importu certyfikatów, certutil, PowerShell), macOS (Dostęp do pęku kluczy), iOS, Android, Java (keytool) i większości bibliotek TLS |
| Typowe przypadki użycia | Wdrażanie certyfikatów serwera TLS/SSL, tożsamości do podpisywania kodu, klucze e-mail S/MIME, poświadczenia klienta VPN i przygotowywanie kart inteligentnych |
| Wydano | PKCS #12 v1.0 published 1999 by RSA; Microsoft .pfx predates and feeds into it |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.rfc-editor.org |