Java alkalmazások és appletek aláírása

2018. ápr. 17. | Pataki Tamás

A Java-t kevésbé megbízható platformának tartják. Továbbra is számos sebezhetőséggel küzd, és a Java alkalmazások vagy appletek aláírása alapvető fontosságú a célfelhasználó bizalmának elnyeréséhez. Ebben a cikkben a Java-alkalmazások aláírására szolgáló tanúsítvány igénylésének és használatának megkezdésére vonatkozó eljárást talál.

Mire jók az alkalmazások aláírására szolgáló tanúsítványok

Az egyéb tanúsítványokhoz hasonlóan a Code Signing tanúsítványok is a biztonság növelésére szolgálnak; azonban nem a böngésző és a szerver közötti kommunikációra használják őket, hanem az alkalmazások digitális aláírására. A tanúsítvány használata hasonlít az elektronikus aláírásra, ahogy azt az e-mail kommunikációban ismerjük.

A kód aláírásának legfőbb jelentősége a következő:

  1. Bizonyítja az alkalmazás eredetét és a kiadó identitását
  2. Bizonyítja a kód sértetlenségét a felhasználóhoz való továbbításkor

Az elektronikus aláíráshoz hasonlóan itt is bizonyítani kell a kiadó identitását, hogy biztosak lehessünk benne, hogy a szoftver nem megbízhatatlan forrásból származik. Ugyanilyen fontos az adatok integritásának ellenőrzése, tehát teljességük és változatlanságuk. A digitális aláírásnak köszönhetően meggyőződhetünk arról, hogy az alkalmazást senki nem módosította a kiadás után. Az alkalmazásod felhasználói számára az aláírás garancia, hogy a program tőled származik, és senki nem módosította a kiadás után.

Milyen előnyökkel jár a Java Code Signing tanúsítvány?

Általánosságban már említettem a kód aláírására szolgáló tanúsítvány tulajdonságait és előnyeit. Az említett előnyökön túlmenően a Java alkalmazások aláírására szolgáló tanúsítvány lehetővé teszi:

  • Jar fájlok aláírását asztali platformok számára.
  • A Secure Hash Algorithm SHA-1 és opcionálisan a fejlettebb SHA 2 hash algoritmusok használatát.
  • Kompatibilitást a Runtime Environment (JRE) környezettel.
  • Bizonyítja a felhasználónak a kód eredetét és biztonságát, segít csökkenteni a figyelmeztető üzenetek számát

A Java-t kevésbé megbízhatónak tartják. Továbbra is küzd a nagy számú sebezhetőséggel, ezért az alkalmazások és appletek aláírása alapvető fontosságú a célfelhasználói bizalom szempontjából.

Hogyan lehet Java tanúsítványt igényelni?

A kód aláírására szolgáló tanúsítvány megredelése mellett a kriptográfiai szempontokat, például a CSR kérést és a privát kulcsot is meg kell oldani.

A Java alkalmazások és appletek aláírásához szükséges az Oracle által terjesztett JDK (Java Development Kit). A tanúsítvánnyal való munkához és az aláíráshoz a csomagban található keytool, jar és jarsigner programokra lesz szüksége.

Keystore és privát kulcs létrehozása

A tanúsítvány kérése előtt, amely a nyilvános kulcs, létre kell hozni a privát kulcsodat. Ezt a következő parancsal hajthatod végre:

keytool -genkey -keyalg rsa -keystore -alias -keysize 3072

A Keystore megkér arra, hogy nevezd el, hozz létre egy alias-t és egy jelszót a keystore-ho. A vállalatod nevét is meg kell adnod.

A kulcspár a létrehozás után a Keystore-ban tárolódik, és a privát kulcsot semmiképpen se küldd el sehova.

Most hozz létre egy CSR kérést, amely szükséges a tanúsítvány megrendeléséhez. További információk megadását kérik tőled.

keytool -certreq -file certreq.csr -keystore -alias

A létrehozott CSR kérelmet illeszd be a Code Signing tanúsítvány rendeléséhez az SSLmarketon.

Hogyan lehet aláírni a tanúsítvánnyal?

Tanúsítvány importálása a Keystore-ba

A tanúsítványkiadó a vállalatod ellenőrzése után kiadja a tanúsítványt, és az SSLmarket e-mailen keresztül megküldi neked. Használat előtt importálni kell azt a keystore-ba a következő paranccsal:

keytool -import -trustcacerts -keystore -alias -file cert.p7b

Figyelmeztetek, hogy az importált P7B fájl nem az általunk küldött Intermediate tanúsítvány. Szükséges az SSLmarket által küldött SSL tanúsítványt PEM formátumból (Base64) PKCS#7 formátumba, tehát P7B-be konvertálni, majd az intermediátummal együtt importálni. Ehhez segítséget nyújt a Alapvető munkák az OpenSSL-lel.

Alkalmazások és appletek aláírása

Jar fájl aláírásához használd a jarsigner alkalmazást.

jarsigner -keystore

Az időpecsétet (timestamp) a következő paranccsal adhatod hozzá:

jarsigner -tsa https://timestamp.geotrust.com/tsa -keystore

Az aláírás során kérni fogják a Keystore létrehozásakor megadott jelszót.

Aláírás ellenőrzése

Valószínűleg szeretnéd ellenőrizni az új aláírásodat. Ezt a következő paranccsal teheted meg:

jarsigner -verify -verbose -certs C:TestApplet.jar

Ha minden rendben van, közzéteheted az aláírt alkalmazást az interneten, és elérhetővé teheted a felhasználók számára. Ha letöltik a Java programodat vagy appletedet, a Java Runtime Environment megjeleníti nekik a digitális azonosítódat az aláírásból.

További információk a dokumentációban találhatók

Ez a cikk a Java alkalmazás aláírásával kapcsolatos gyors tájékozódásra szolgál. Javaslom tanulmányozd az Oracle teljes dokumentációját, amely lefedi a Java alkalmazások és appletek aláírásának teljes kérdéskörét. A The Java Tutorials weboldalon találod.


Pataki Tamás
Biztonságos SSL tanúsítványok szakértője
Symantec Sales Expert Plus
e-mail: pataki(at)zoner.hu