Próbowałem znaleźć różnicę między .keystoreplikami i .jksplikami, ale nie mogłem go znaleźć. Wiem, że jksjest dla „magazynu kluczy Java” i oba są sposobem na przechowywanie par klucz / wartość.
Czy jest jakaś różnica lub preferencja używania jednego nad drugim?
Ostatecznie .keystorei .jkssą tylko rozszerzeniami plików: od Ciebie zależy rozsądne nazewnictwo plików. Niektóre aplikacje używają pliku kluczy przechowywanego w $HOME/.keystore: zwykle implikuje to, że jest to plik JKS, ponieważ JKS jest domyślnym typem pliku kluczy w dostawcy bezpieczeństwa Sun / Oracle Java . Nie wszyscy używają .jksrozszerzenia dla plików JKS, ponieważ domyślnie jest to domyślna. Polecam użycie rozszerzenia, aby zapamiętać, który typ określić (jeśli potrzebujesz).
W Javie słowo keystore może mieć jedno z następujących znaczeń, w zależności od kontekstu:
Mówiąc o pliku i pamięci, tak naprawdę nie jest to pamięć dla par klucz / wartość (jest do tego mnóstwo lub inne formaty). Jest to raczej pojemnik do przechowywania kluczy kryptograficznych i certyfikatów (uważam, że niektóre z nich mogą również przechowywać hasła). Zasadniczo pliki te są szyfrowane i chronione hasłem, aby nie dopuścić do udostępnienia tych danych osobom nieupoważnionym.
Java używa swojej KeyStoreklasy i powiązanego interfejsu API do korzystania z magazynu kluczy ( niezależnie od tego, czy jest oparty na plikach, czy nie ). JKSjest formatem plików specyficznym dla języka Java, ale interfejs API może być również używany z innymi typami plików, zazwyczaj PKCS # 12. Jeśli chcesz załadować magazyn kluczy, musisz określić jego typ. Konwencjonalne rozszerzenia to:
.jksza typ "JKS",
.p12lub .pfxdla typu "PKCS12"(nazwa specyfikacji to PKCS # 12, ale #nie jest używana w nazwie typu magazynu kluczy Java).
Ponadto BouncyCastle zapewnia również swoje implementacje, w szczególności BKS (zwykle przy użyciu .bksrozszerzenia), który jest często używany w aplikacjach na Androida.
Powiedziałbym, że dominującym typem magazynu kluczy jest JKS, a nie PKCS # 12, tylko dlatego, że słowo „keystore” jest częścią terminologii Java, rzadko używaną poza kontekstem Java. To powiedziawszy, pliki PKCS # 12 są rzeczywiście dość powszechne (zazwyczaj .pfxlub .p12).
Bruno
@Bruno: Masz na myśli dominujący typ aplikacji Java.
Cratylus
10
Nie, chodzi mi o to, że słowo „keystore” to przeważnie słowo Java. Inne aplikacje / platformy rzadko nazywają miejsce / plik, w którym klucze i certyfikaty przechowują „magazyn kluczy”. MS nazywa pliki PKCS # 12 na przykład plikami „wymiany informacji osobistych”. Inne mają nazwy takie jak „klucz łańcucha” (OSX), „baza danych certyfikatów” (NSS), „baza certyfikatów”, „klucze”,…, dla miejsc, w których przechowują klucze i certyfikaty, a nie „magazyn kluczy”.
Bruno
3
@Bruno: Rozumiem, co masz na myśli. Dobra uwaga. Nie myślałem o tym wcześniej. Dzięki
Cratylus
3
Jednym z powodów wyboru .keystore zamiast .jks jest to, że Unity rozpoznaje ten pierwszy, ale nie ten drugi, gdy nawigujesz, aby wybrać plik magazynu kluczy (Unity 2017.3, macOS).
Jesteś tym zdezorientowany.
A
keystore
to kontener certyfikatów, kluczy prywatnych itp.Istnieją specyfikacje formatu tego magazynu kluczy, a dominującym jest # PKCS12
JKS jest implementacją magazynu kluczy Java. Istnieje również BKS itp.
Są to wszystkie typy magazynów kluczy .
Aby odpowiedzieć na twoje pytanie:
Nie ma żadnego. JKS to pliki magazynu kluczy. Istnieje jednak różnica między typami magazynu kluczy . Np.
JKS
Vs#PKCS12
źródło
.pfx
lub.p12
).Jednym z powodów wyboru .keystore zamiast .jks jest to, że Unity rozpoznaje ten pierwszy, ale nie ten drugi, gdy nawigujesz, aby wybrać plik magazynu kluczy (Unity 2017.3, macOS).
źródło