Különbség a Java kulcstár és a Truststore között

Java Top

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

1. Áttekintés

Ebben a rövid cikkben áttekintést adunk a Java kulcstár és a Java megbízható áruház közötti különbségekről.

2. Fogalmak

A legtöbb esetben, kulcstárolót és truststore-ot használunk, amikor alkalmazásunknak SSL / TLS-en keresztül kell kommunikálnia.

Általában ezek jelszóval védett fájlok, amelyek ugyanazon a fájlrendszerben ülnek, mint a futó alkalmazásunk. A fájlok alapértelmezett formátuma: JKS Java 8-ig.

A Java 9 óta azonban az alapértelmezett kulcstároló formátum a PKCS12. A legnagyobb különbség a JKS és a PKCS12 között az, hogy a JKS a Java-ra jellemző formátum, míg a PKCS12 a titkosított magánkulcsok és tanúsítványok standardizált és nyelv semleges módja.

3. Java KeyStore

A Java kulcstár tárolja a magánkulcs bejegyzéseket, nyilvános kulcsokkal ellátott tanúsítványokat vagy csak titkos kulcsokat amelyet különféle kriptográfiai célokra használhatunk. Mindegyiket álnéven tárolja a megkeresés megkönnyítése érdekében.

Általánosságban elmondható, hogy a kulcstárak olyan kulcsokat tartalmaznak, amelyek alkalmazásunk tulajdonában vannak, és amelyek segítségével bizonyíthatjuk az üzenet integritását és a küldő hitelességét, például hasznos terhek aláírásával.

Általában, kulcstárolót fogunk használni, ha szerver vagyunk és HTTPS-t akarunk használni. SSL-kézfogás során a kiszolgáló megkeresi a magánkulcsot a kulcstárból, és bemutatja annak megfelelő nyilvános kulcsát és tanúsítványát az ügyfél számára.

Ennek megfelelően, ha az ügyfélnek is hitelesítenie kell magát - ezt a helyzetet kölcsönös hitelesítésnek hívják -, akkor az ügyfélnek van kulcstárolója, és bemutatja nyilvános kulcsát és tanúsítványát is.

Nincs alapértelmezett kulcstár, ezért ha titkosított csatornát akarunk használni, akkor be kell állítanunk javax.net.ssl.keyStore és javax.net.ssl.keyStorePassword. Ha kulcstárformátumunk eltér az alapértelmezettől, használhatjuk javax.net.ssl.keyStoreType hogy személyre szabhassa.

Természetesen ezeket a kulcsokat más igények kielégítésére is felhasználhatjuk. A privát kulcsok aláírhatják vagy visszafejthetik az adatokat, a nyilvános kulcsok pedig igazolhatják vagy titkosíthatják az adatokat. A titkos kulcsok képesek elvégezni ezeket a funkciókat is. A kulcstároló olyan hely, ahol megragadhatjuk ezeket a gombokat.

Programozottan is interakcióba léphetünk a kulcstárral.

4. Java TrustStore

A bizalomüzlet ezzel ellentétes - míg a kulcstár általában a minket azonosító tanúsítványokra vonatkozik, a bizalmi üzlet a másokat azonosító tanúsítványokra.

A Java-ban arra használjuk, hogy megbízzunk a harmadik félben, akivel kommunikálni készülünk.

Vegyük korábbi példánkat. Ha egy ügyfél HTTPS-en keresztül beszél Java-alapú szerverrel, akkor a kiszolgáló megkeresi a társított kulcsot a kulcstárából, és bemutatja a nyilvános kulcsot és a tanúsítványt az ügyfélnek.

Mi, az ügyfél, majd megkeresjük a hozzárendelt tanúsítványt a truststore-ban. Ha a külső szerver által bemutatott tanúsítvány vagy tanúsító hatóságok nincsenek a bizalmi üzletünkben, akkor kapunk egy SSLHandshakeException és a kapcsolat nem lesz sikeresen beállítva.

A Java mellékelt egy megbízható üzletet kaktuszok és a $ JAVA_HOME / jre / lib / security Könyvtár.

Alapértelmezett, megbízható tanúsító hatóságokat tartalmaz:

$ keytool -list -keystore cacerts Írja be a kulcstár jelszavát: Kulcstár típusa: JKS Kulcstár szolgáltatója: SUN A kulcstároló 92 bejegyzést tartalmaz verisignclass2g2ca [jdk], 2018-06-13, trustedCertEntry, Certificate fingerprint (SHA1): B3: EA: C4: 47 : 76: C9: C8: 1C: EA: F2: 9D: 95: B6: CC: A0: 08: 1B: 67: EC: 9D

Itt látjuk, hogy a truststore 92 megbízható tanúsítvány bejegyzést tartalmaz, és az egyik bejegyzés a verisignclass2gca belépés. Ez azt jelenti, hogy a JVM automatikusan megbízik az aláírt tanúsítványokban verisignclass2g2ca.

Itt, felülírhatjuk az alapértelmezett truststore helyet a javax.net.ssl.trustStore ingatlan. Hasonlóképpen beállíthatjuk javax.net.ssl.trustStorePassword és javax.net.ssl.trustStoreType a truststore jelszavának és típusának megadásához.

5. Következtetés

Ebben az oktatóanyagban megvitattuk a Java kulcstár és a Java megbízható áruház közötti fő különbségeket és azok célját.

Megmutattuk azt is, hogyan lehet felülírni az alapértelmezéseket a rendszer tulajdonságokkal.

Ezután megnézhetjük a következő SSL útmutatót vagy a JSSE Reference Guide-t, hogy további részleteket megtudjunk a Java titkosított kommunikációjáról.

Java alsó

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT