Terve!
Ajattelin käyttää Java Web Start ohjelmaa, jolla sovellus voidaan ladata web - palvelimelta. Kyseinen sovellus avaisi socket - yhteyksiä verkkoon ja se vaatii koodin signeerauksen.
Onko tämä vaikea prosessi (vrt. Signed applet) ja pitääkö koodi signeerata selainkohtaisesti? Mitä sertifikaattia kannattaisi käyttää?
Mikäli joku osaa kertoa, niin kiitos!
JWS
Ajattelin käyttää Java Web Start ohjelmaa, jolla sovellus voidaan ladata web - palvelimelta. Kyseinen sovellus avaisi socket - yhteyksiä verkkoon ja se vaatii koodin signeerauksen.
Onko tämä vaikea prosessi (vrt. Signed applet) ja pitääkö koodi signeerata selainkohtaisesti? Mitä sertifikaattia kannattaisi käyttää?
Mikäli joku osaa kertoa, niin kiitos!
JWS
Vastaukset 2
Vanhimmat
Ei ole vaikea prosessi. Mut suosittelen lukemaan asiasta paljon eri lähteistä että ymmärrät koko prosessin, tässä nopee pikku tiivistelmä.
Teet softasta jar:in, ja signaat sen, en muista tarkalleen miten se tapahtuu, löydät kyllä googlella ohjeia (how to sign jar), jne..
Signattu jarri toimii joka "selaimessa", tai siis selainkohtaisesti jos se on appletti, tosin tiukilla turva-asetuksilla ei ajeta, mutta web start softa on standalone sovellus, joten sitä ei ajeta selaimessa, vaan niinkuin jotain normaalia softaa, vaikka tylpöydällä mikäli windows.
Sertifikaateissa on periaatteessa kahden tyyppisiä, varmennettuja ja varmentamattomia. Varmennetun saat, kun tilaat jostain vaikka Verisigneltä, joka tietysi maksaa, ja se tulee kait postissa tai jossain, ja sit voit tehdä itsekkin varmentamattoman sertifikaatin vaikka javan mukana tulevilla ohjelmilla. Se toimii jotenkin niin, että sertifikaattiin tulee jonkinlainen ketju varmentajista, eli itse voisin luoda sertifikaatin, jonka varmentaa yritykseni, jonka sertifikaatti on vaikka verisignen varmentama. Noita ylimmän tason varmentajia löydät vaikka selaimesi asetuksista. (certificates).
Itse voin sanoa että jos ajan jotain applettia, niin yleensä ottaen en hyväksy edes varmennettuja, mikäli alin taso on vaikka mikrosoft tai vastaava, ja ei varmennettuja en hyväksy koskaan ajettavaksi.
...jotenkin musta tuntuu, että teidän molempien kannattaisi tutustua Javan turvallisuusarkkitehtuuriin hieman lisää, jotta saisitte paremman kokonaiskuvan tästä asiasta. Ensinnäkin kaikkia Java-sovelluksia ajetaan aina jonkin tietyn sertifikaatin määrittelemien oikeuksien mukaisesti, jolla voidaan määritellä mitä se saa tehdä ja mitä ei. Esimerkiksi selaimen asetuksia muuttamalla muutetaan itseasiassa selaimen sertifikaatin vastaavia asetuksia, jolla voidaan määrittää mitä selaimen lataama appletti saa tehdä ja mitä taasen ei. Niin, ja käytännössä selain omistaa vielä useita eri sertifikaatteja, jolla voidaan asettaa erilaisia oikeuksia eri lähteistä (Trusted Sites, jne.) ladatuille appleteille.
Java Web Start on uskoakseni JarRunnerin kaltainen, mutta simppelimpi namupersesovellus, joka lataa sovelluksen verkosta URLClassLoader-luokan avulla ja nakittaa sen ajettavaksi JVM:lle. Tietoturvallisuuden takia JWS edellyttää kaikkien sovellusten allekirjoittamista sekä tätä vastaavan ajo-oikeuden määritystä. Sitä en sitten tiedä, että miten (mitä kautta) JWS muuttaa JRE:n Security-kansiossa olevaa "java.security"-tiedostoa ja tapahtuuko muutos suoraan muuttamalla "java.policy"-tiedostoa vai lisäämällä sinne uusi "JWS.policy"-tiedosto sekä lisäämällä "java.security" tiedostoon vastaava "policy.url."-viite.
Anyway, toimiakseen tarvitaan ainakin sertifikaatti (varmentamaton), joka voidaan tehdä SDK:N mukana tulevalla keytool-ohjelmalla. Tässä samassa ohjelmassa on myös import- ja export-toiminnot, jolla luotua sertifikaattia voidaan siirrellä paikasta toiseen. Jar-paketti allekirjoitetaan JarSigner-ohjelmalla. Ohjeita löytyy netistä.
t. Jonttu