• Non ci sono risultati.

18

mpEntity.addPart("cro", new StringBody("4453764"));

19

20

httppost.setEntity(mpEntity);

21

La te nologia Java Web Start

Uno tragli aspetti fondamentalinella realizzazione di progetti software è quello

he riguarda la strategia di vendita. A anto alla lassi a distribuzione su

sup-portosi o (CDoDVD),staprendendosemprepiùpiede, olpassaredeglianni,

la vendita di software tramite Internet, attraverso il download di le

d'installa-zione. Questo ambiamentoè stato determinato dalnumero sempre maggioredi

prodottidisponibiliediproduttori,maan he dauna questionediopportunità: i

osti di distribuzionesono notevolmenteinferiori e si può raggiungere un ba ino

d'utenza de isamentepiù ampio.

Inquesto s enariosiinseris elastrategiapensataperla ommer ializzazionedel

software realizzato nel mio progetto: Java Web Start. Tramite questo

omo-do strumento è possibile s ari are il programma dal Web ed eliminare le noiose

pro edure di installazione ed aggiornamento, on la ertezza di eseguire sempre

l'ultimarelease disponibiledelprogramma.

Java Web Start 1

(nota an he ome JavaWS o JWS) è una te nologia di

distribuzionedi appli azioni sviluppata dalla Sun Mi rosystems (ora rilevata da

Ora le), he onsente all'utentedi s ari are ed avviare appli ativi software Java

direttamentedaunweb server,quindiavvalendosiditresolistrumenti: una

ma - hina on installata la piattaforma Java SE, una onnessione ad internet ed un

web browser. Con Java Web Start è possibile s ari are ed avviare

un'appli a-zione senza dover eseguire le lassi he (e noiose) pro edure di installazione. Il

software JavaWeb Startsiavviaautomati amentequando vienes ari ataperla

primavoltaun'appli azione he fa iauso dellate nologia JWS;JavaWeb Start

si o upa dimemorizzare lo almente(nella a he)l'interaappli azione: ogni

ul-1

teriore avvio avviene in modo presso hé immediato, dal momento he tutte le

risorse ne essarie sono già disponibili sulla propria ma hina. Inoltre ogni volta

he si avvial'appli ativo,il omponentesoftware JavaWeb Start ontrollailsito

Web dell'appli azione per veri are se è disponibile una nuova versione e, in tal

aso, las ari a e l'avvia automati amente.

Dalpuntodivistadelleopportunità,JavaWebStartpresentaunbuonnumero

di aratteristi he he lorendono parti olarmenteinteressanteperladistribuzione

delle appli azioni. Infatti:

èrealizzatopereseguire es lusivamenteappli azionis ritteperla piattafor-maJavaSE.Unasingolaappli azionepuò osìesseredisponibilesuunWeb

server epoidistribuita su un ampio ventaglio di piattaforme: daWindows

aLinux,da Ma a Solaris;

supporta diverse versioni della piattaformaJava SE. Se un'appli azione ri- hiedequindi unaparti olarereleasedellaJSEnon presentenellama hina

su uiviene eseguita, questaverràs ari ataedinstallataautomati amente.

ConJWSèpossibileeseguirediverseappli azioni ontemporaneamente, he

ri hiedonoversionidellapiattaformaJavadierenti,senza ausare onitti;

permetteagliappli atividivenireseguitian heinmodalitào-line(tuttavia almeno la prima voltadevono essere s ari ati da un sito Internet). Questi

possono essere lan iati an he da ollegamenti presenti su desktop, ome

quando sivuole eseguire un qualsiasiprogramma;

aggiornaautomati amenteleappli azioni,grazieadunsistemadi ontrollo versionedei le;

implementale omponentidi si urezza dellapiattaformaJavaSE, osi hé datie lepresenti sullapropriama hinanon vengonomaiespostiaris hi.

Leappli azioni vengono eseguite inun ambienteprotetto, lasandbox 2

, on

un a esso ristretto al dis o lo ale ed alle risorse di rete: in questo modo

l'utente può eseguire appli azioni provenienti an he da fonti non si ure.

Un'appli azionepuòan he ri hiedereun'ese uzionenon limitata(èil aso

2

Unasandboxèunme anismodisi urezzaperl'ese uzionediprogrammiritenutinon

a-dabili. Lasandboxoreunambienteprotettoeduninsiemedirisorsestrettamente ontrollato

eleappli azioni hevivengonoeseguitehannopesantilimitazioni: l'a essoallarete,la

apa- itàdi re uperareinformazionidi sistema olalettura diinput daperiferi hesonodisabilitate

delleappli azioni rmate)per a edere atutte lerisorsedella ma hina su

ui èeseguita; inquesto aso ompariràuna nestradiavvisoriportantele

informazionisul produttore he ha sviluppato l'appli azione: se si darà la

onferma,il programmaverrà eseguito.

JavaWebStartèin lusoinJavaRuntimeEnvironment (JRE)(apartiredalla

versione 5.0) pertanto,installando Java, viene installatoautomati amentean he

Java Web Start.

Late nologia hestaallabasedellaJavaWebStartèlaJavaNetwork Laun hing

Proto olandAPI ( ui isiriferis e onl'a ronimoJNLP).LaJNLPdenis e,tra

le altre ose, un formato di le standard he des rive ome lan iare

un'appli a-zione, ovvero un le on estensione .jnlp. Con il software Java Web Start quindi

l'utente può eseguire un'appli azione li ando un ollegamento in una pagina

web: tale link punta ad un le JNLP, he in ari a JWS di s ari are, salvare ed

avviare ilprogramma.

Sviluppo di un'appli azione Java Web Start

Questisono ipassi hiaveperlosviluppodiun'appli azione he sipreveda di

rendere fruibilemediante Java Web Start:

1. ompilareil odi e sorgentee rearne il relativopa hetto JAR 3

;

2. reare un le JNLP ad-ho per la propria appli azione. Le appli azioni

Java infatti vengono lan iate attraverso il Java Network Laun h Proto ol

(JNLP);

3. reareuna pagina internet on un ollegamentoal propriole JNLP.

Verrannodiseguitoanalizzati,singolarmente,strumentiepro edureutilizzate

perlarealizzazionediun'appli azionedistribuibile onte nologiaJavaWebStart.

3

JAR: a ronimo di Java Ar hive, è un ar hivio ompresso tipi amente utilizzato per

rag-gruppare lassi Java, metadati e risorse(testo, immagini e .) ad esse asso iatee librerie di

5.1 Creazione di un le .jar

Per realizzare un'appli azione Java Web Start è ne essario, prima di tutto, aver

s ritto un programma Java. Una volta ompilato il programma, si deve reare

un ar hivio JAR he ontenga tutto iò di ui il programma ha bisogno: lassi,

librerie, eventuali le d'immagine e quant'altro. La reazione del le non è

par-ti olarmenteosti ase eettuatamedianteambientidisviluppo (E lipse),merita

un po'più d'attenzione seviene realizzata inve e darigadi omando.

Siosservi un parti olare: seilprogrammaJavausalibreriediterze parti he non

appartengono allapiattaformastandard, isono due stradeperfar sì he

l'ar hi-viovengaeseguito orrettamente. Laprima onsistenell'installareilene essari

sulla piattaformaJava del sistema su ui vogliamo far girare il programma

( o-piandoiJARnella artellaext delJRE),lase onda nell'inserimentodellelibrerie

nelprogetto. Con E lipse questa pro edura è moltosempli e:

si rea una artellaall'internodel progetto;

si inseris ononella artella lelibrerie ne essarie;

siimportanolelibrerienelprogetto,s egliendol'opzioneProperties>Java BuildPath > Libraries >Add JARs.

5.1.1 Creazione di un le .jar da onsole

Lapro edurada onsoleri hiede he siarealizzato innanzituttoun lemanifest 4

he ontieneal uneinformazioniriguardoleproprietàdell'ar hivio he siandràa

reare. Nellemanifestèindi atoadesempioilnomedella lasse he ontiene il

metodomainedil lasspathdellelibrerieutilizzatedalprogramma. L'ultimariga

dellemanifestdeve esserelas iatabian ao,inaltre parole,si deveterminareil

ontenuto delle on un omando di newline.

Unavolta reato ille MANIFEST.MF sipuò eseguire il omando:

jar vfm MANIFEST.MF jar-file input-files

Le opzionie gliattributiutilizzati sono iseguenti:

l'opzione indi a he si vuole reare un le.jar;

l'opzionev indi a hesiprodurràunoutputverbose. Durantela reazione del .jar quindi, sulla onsole vengono visualizzati i nomi di tutti i le he

sono aggiuntial pa hetto;

l'opzionef indi a he si vuole he l'outputsia un le;

l'opzione m permette di indi are il nome del le manifest. Se non si usa l'opzionem, viene reato un lemanifest di default;

MANIFEST.MF èil nome dellemanifest asso iato al leJAR;

jar-le èil nome he si vuole assegnare all'ar hivioJAR. Non è ne essario aggiungereallanedelnomeilsusso.jar he verrà assegnatodidefault;

input-les è il nome dei le, separati da uno spazio, he si vogliono in lu-derenelpa hetto. E'possibileaggiungereall'ar hivioan heintere artelle.

Terminata la reazione, per veri are la orrettezza dell'ar hivio reato è

su ientedigitare ilseguente omando:

java -jar jar-files.jar

eseilpro essoèandatoabuonne,partiràl'ese uzionedelprogrammaJava.

4

5.1.2 Creazione di un le .jar in E lipse

Per reareilleJAR,E lipse metteadisposizioneunutilewizard: basta li are

ol pulsante destro del mouse sul nome del progetto, presente nel pannello di

navigazione disinistra (o in alternativasi selezionail nome del progetto e poi si

s eglieilmenùFile),s eglierelavo e Export,poiJARle. Cisitroverà difronte

allaseguente vista (g. 5.2):

Figura 5.2: Personalizzazione le JAR -S elta deile daesportare

Si può ottenere quindi un ar hivio JAR eseguibile in po hi sempli i passi.

Per in ludere o es ludere deile dall'ar hivio, è possibile selezionarli dalla vista

situata in alto nella nestra; nel aso si voglia allegare an he i le sorgenti del

progetto, ène essariomettereilsegno dispuntaallavo e Export Java sour e le

and resour es.

Proseguendo on il wizardviene data inoltrelapossibilitàall'utentediutilizzare

un le manifest generato in pre edenza (al posto di quello automati o generato

da E lipse) e di inserire il nome della lasse he ontiene il metodo main del

Figura 5.3: Personalizzazione del leJAR - Manifest e Main lass

Al termine del pro esso di personalizzazione, premendo il tasto Finish verrà

generatoun ar hivioJARnellaposizionedanois elta(gura5.2,allavo e sele t

destination), he onterrà i lespe i atiin pre edenza.

5.2 Firma di un le .jar

Uno dei problemi senz'altro più sentiti, in ambito informati o, è quello della

si- urezza. Per ovviare a questo tipo di problemati he, Java propone una serie di

strumenti per la gestione di hiavi pubbli he e private, erti ati e rme

digi-tali. Questi on etti sono essenziali qualora si voglia distribuire un'appli azione

sfruttandola te nologia Java Web Start ed i motivisono presto detti:

sideve garantireall'utentel'adabilitàdi un parti olaresoftware. Se l'au-torità ompetente ri onos e un'entità ome trusted, è probabile he

l'u-tente nale non abbia remore nell'utilizzare un'appli azione distribuita da

quell'entità;

ome si vedrà in 5.3, Java Web Start esegue il software potenzialmente dannoso in un ambiente protetto, la sandbox, he ne limita però le

poten-zialitàel'a esso allerisorse. Per hé l'appli azioneabbiapienoa essoalla

ma hina su ui viene eseguita, deve essere ri onos iuta ome adabile.

Si pro ederà quindi on l'analisi degli strumenti ne essari a rmare un ar hivio

JAR e si vedrà poi nel dettagliola pro edura he porta alla reazione di un

ar- hivio rmato.

Il keytool è uno strumento per la gestione di hiavi e erti ati. Esso

per-metteall'utentediamministrareleproprie oppie hiavepubbli a- hiaveprivata

e di asso iare ad esse dei erti ati on rma digitale, osì da poterle utilizzare

ome erti azione di autenti ità presso altri utenti/servizi o ome garanzia di

integrità deidati. Inoltre il keytool onsenteall'utentedi salvare le hiavi

priva-te ed i erti ati degli altri utenti on ui si viene in ontatto: questi vengono

salvatinelkeystore, un le he protegge hiavi private e erti ati loroasso iate,

perl'autenti azionedella orrispondente hiavepubbli a. Ilkeystore viene reato

ogniqualvoltasiusiil omandokeytool -genkey oppurekeytool -import;esso

è implementato, ome abbiamo già detto, ome un le e se non ne viene

spe i- ato il nome e il path, viene memorizzato nel le di default .keystore presente

nell'home dire torydell'utente. Inoltre, il keystore protegge le hiaviprivate on

delle password, he vengono impostateal momentodella reazione.

Il keystore ha due tipidierentidi entry:

key entry: ontiene la hiave privata, memorizzata in un formato pro-tetto per prevenire a essi non autorizzati, a ompagnata dalla atena di

erti ati per la orrispondente hiave pubbli a;

trusted erti ate entry: ontiene il erti ato on la hiave pubbli- a appartenente ad un'altra entità adabile. Questi erti ati vengono

hiamati trusted erti ate.

Tutteleentrydelkeystore sonoa essibilimediantenomiunivo i,glialias,iquali

vengonospe i atinelmomentodella reazione diuna oppiadi hiavi(pubbli a

Un erti atoèundo umentoelettroni odotatodirmadigitale he

garan-tis e heuna hiavepubbli aappartenenteadun'entità(unapersona,unaso ietà,

e .), sia asso iata alla vera identità delsoggetto he la rivendi a ome propria.

In altre parole, un erti ato è un attestato he garantis e un'asso iazione di

tipo hiave pubbli a - entità. Quando si ri evono dati rmatidigitalmente,la

r-mafungedastrumentodi ontrollo perlaveri a diintegritàedautenti ità. Per

integrità siintende he i datinon siano stati manomessio modi ati,autenti ità

signi ainve e he idati provengonoeettivamentedall'ente he aerma diaver

reatoe rmato talidati.

Iljarsignerutilizzaleinformazionidiunkeystore perveri arel'attendibilità

degliar hiviJava(ile.jar). Lo strumentojarsigner veri alermedigitalidei

le .jar, utilizzando i erti ati he le a ompagnano ( ontenute in le

all'inter-no dell'ar hivio JAR) e poi ontrolla se la hiave pubbli a diquel erti ato sia

adabile o meno, ioé se sia ontenuta nelkeystore spe i ato.

Glistrumentikeytool ejarsigner sostituis onoiltooljavakey fornito nelJDK

1.1. Questiduenuoviappli ativiamplianolepotenzialitàdeljavakey,in ludendo

lapossibilitàdiproteggereilkeystore ele hiaviprivatemediantepassword;

lapossibilitàdiveri arelermeedigenerare oppiedi hiavie erti ati. Lanuovaar hitetturadelkeystore rimpiazzailve hiodatabase heveniva reato

e gestito daljavakey. È possibile omunque importare informazionida un

data-base diidentitàin un keystore, utilizzando il omando keytool -identitylib.

Perpoteravere a esso ompleto allerisorse del lientJNLPille.jar

distri-buito deve essere rmato. Nello spe i o aso dell'appli azione he ho

perso-nalmente reato nel lavoro ditesi, laprovenienza el'identitàdi hil'ha s rittaè

erta (il sottos ritto), pertanto per testare la te nologia JWS è stato su iente

utilizzareun erti atoauto prodotto. Vediamoqualisono ipassi daseguireper

rmare un le on estensione .jar on i se urity tool messi a disposizione dalla

JDK.

Una volta reato il le DesktopAppli ation.jar he ontiene tutte le lassi e

le librerie ne essarie al funzionamento del programma, si devono generare un

keystore ed una oppiadi hiavi. Perfar questo,utilizziamoilseguenti omando:

Questo omando rea un nuovo keystore hiamato mykeystore e situato in

keytool -genkey -dname  n=Mi hele Pantano, o=E-proje t, st=PD

=IT -alias desktopApp -keypass desktopApp -validity 180

-keystore C:/Users/Mi hele/mykeysto re -storepass mykeystorepass

omessaquestavo e, sarebbestato utilizzatoilkeystore didefault .keystore

situa-tonell'home dire torydell'utente). Inoltre viene generata la oppiadi hiavi per

l'entità il ui nome è Mi hele Pantano, l'azienda è E-proje t, la provin ia è

PadovaeloStatoèIT;le hiavisongenerate onalgoritmodigenerazioneDSA

e lunghezza delle hiavi di1024 byte.

Viene reatoinaggiuntaan heun erti atoautormato (utilizzandol'algoritmo

dirmaSHA1withDSA) hein ludela hiavepubbli aeleinformazioni

riguar-danti l'entità generatri e di tale hiave (quelle passate on il omando -dname).

Questo erti ato sarà valido per 180 giorni ed è asso iato alla hiave privata

presente nel keystore a ui i si riferis e on l'alias desktopApp; la password

asso iata alla hiave privata è desktopApp. Il omando avrebbe potuto essere

an he signi ativamente più orto (ssarebbe stato u iente keytool -genkey)

sefosserostate a ettateleimpostazionididefault(validitàdel erti atoper90

giorni, alias mykey, keystore .keystore). Al une informazionisarebbero state

omunque ri hieste all'utente, ome la password delkeystore, lapassword per la

hiaveprivataeleinformazionisull'entitàgeneratri edelle hiavi( hesonodette

distinguished name information).

Finora si è ottenuto un erti ato auto-rmato: un erti ato risulta essere

a ettato on più si urezza se rmato da una Certi ation Authority (CA).

Per ottenere una rma si deve quindi prima di tutto generare una Ri hiesta di

Firma del Certi ato (CSR) attraverso il omando

keytool - ertreq -file CertSignReq. sr -alias desktopApp

per mezzo del quale per l'entry desktopApp del keystore viene reata una

CSR emessa nel leCertSignReq. sr. In un se ondo momentosi dovràinoltrare

taleleadunaCerti ationAuthority(adesempioVeriSign,In ) he provvederà

all'autenti azione e ritornerà un erti ato, rmato da essi stessi, he autenti a

la hiave pubbli a reata. L'ultimo passoè quellodirimpiazzare ilproprio

erti- atoautormato onquelloappenaottenuto dallaCA, osi hégliar hiviJAR

rmati risultino essere adabili agli o hi degli utilizzatorinali. Per fare iò

è su ienteil omando

Giuntiaquestopunto,sihannotuttiglistrumentine essariperrmare onun

erti ato si uro il proprioar hivio .jar. Il omando seguente a partire dalle

desktopApp.jar produ el'ar hiviormatodesktopAppSigned.jar onil erti ato

asso iato all'entry delkeystore desktopApp ( he è l'entry per ui si era ri hiesta

la erti azione allaCAVeriSign, In )

jarsigner -signedjar desktopAppSigned.jar desktopApp.jar desktopApp

Sisuppongaora he l'ar hivioJAR rmatosiastatodistribuito e he il

lien-te he voglia utilizzare tale appli azione, desideri prima veri are l'autenti ità

della rma. Per fare iò egli dovrà, innanzitutto, importare il erti ato della

Documenti correlati