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ő:
- Bizonyítja az alkalmazás eredetét és a kiadó identitását
- 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
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
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
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.
Biztonságos SSL tanúsítványok szakértője
Symantec Sales Expert Plus
e-mail: pataki(at)zoner.hu