|
Appunti informatica |
|
Visite: 2935 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Cifratura e decifraturaCifratura e decifratura La cifratura è il concetto più semplice della crittografia, Il provider Bouncy CastleIl provider Bouncy Castle Per quanto riguarda i provider, oltre a quello della La firma digitaleLa firma digitale Un utilizzo molto diffuso della crittografia è per processi |
Per quanto riguarda i provider, oltre a quello della Sun Microsystem, ce ne sono molti altri che offrono, più o meno, gli stessi servizi. Tra questi uno particolarmente ricco di funzionalità interessanti è il provider org.bouncycastle, il qual è stato anche adoperato anche nel nostro progetto per implementare alcuni servizi. Il package con le funzionalità offerte da questo provider è veramente ampio. Una delle caratteristiche peculiari di questo package è rappresentata dal fatto che la licenza d'utilizzo è gratuita ed è liberamente scaricabile dal sito della BouncyCastle [8].
Un difetto di questo provider è che tutte le sue funzionalità e i servizi offerti sono scarsamente documentati.
Ci soffermeremo brevemente su quelle che sono le parti di nostro interesse, e che sono state utilizzate nell'implementazione del progetto, in quanto una breve introduzione al package, ed ai principali servizi, è già stata data nel paragrafo 2.2.
Le classi su cui ci soffermeremo rappresentano alcune classi del package di supporto allo standard ASN.1[1] [20]. Tra le classi di questo package la nostra attenzione si è rivolta particolarmente alle seguenti:
org.bouncycastle.asn1.DERInputStream: rappresenta una classe che estende la classe della Sun java.io.FilterInputStream, il cui utilizzo è sconsigliato dal provider stesso. Noi ad esempio lo abbiamo utilizzato solo ed esclusivamente come anello di congiunzione tra la classe java.io.ByteArrayInputStream e la classe del provider org.bouncycatle org.bouncycastle.asn1.ASN1Sequence, che andremo a descrive immediatamente;
org.bouncycastle.asn1.ASN1Sequence: rappresenta un'estensione della classe org.bouncycastle.asn1.DERObject, ed è una classe astratta. Questa classe ASN1Sequence ci è tornata utile, ad esempio, perchè permette di prendere un oggetto e di ottenere una sequenza di dati in formato ASN1;
org.bouncycastle.asn1.x509.X509Name: rappresenta un supporto molto utile per la creazione di quelle informazioni presenti in un certificato in formato X.509, che in Figura 2‑ , sono indicati con il nome di Issuer Name e Subject Name. Questi campi sono formati da una serie di sottocampi che rappresentano le informazioni rispettivamente di colui che ha rilasciato il certificato e del proprietario dello stesso. Queste informazioni possono essere un numero variabile, nel senso che non tutte le informazioni sono necessarie, ma quelle fondamentali sono indicate con i seguenti simboli:
Simboli |
Significato dei Simboli |
CN |
Rappresenta il nome comune del proprietario o di chi ha rilasciato il certificato |
O |
Rappresenta il nome dell'organizzazione a cui appartiene CN |
OU |
Rappresenta il nome dell'unità organizzativa all'interno di O a cui appartiene CN |
C |
Rappresenta il nome dello stato incui si trova l'ente che ha rilasciato o possiede il certificato |
L |
Rappresenta il nome della località in cui si trova il possessore o chi ha rilasciato il certificato |
Tabella 2‑ : elenco dei simboli costituenti il distinguished name del certificato
Sono comunque disponibili altri simboli relativi ad atrettanti paramatri che è possibile settare, come ad esempio l'e-mail ed altri, per la cui spiegazione si rimanda il lettore alle pagine javadoc del provider [8].
Infine le ultime due classi, di cui vogliamo dare una breve spiegazione sono le seguenti:
org.bouncycastle.asn1.x509.X509CertificateStructure: rappresenta una classe per la gestione di un certificato in formato strutturale. Infatti questa classe permette il recupero di tutte le informazioni presenti all'interno di un certificato in formato X.509 tramite una serie di metodi, tutti con il prefisso get
org.bouncycastle.jce.X509V3CertificateGenerator: rappresenta una classe importantissima per la creazione ex-novo di un certificato in formato X.509. Come si può intuire dal nome della classe, questa classe fornisce gli strumenti per costruire un certificato X509 nel formato della versione 3. Sono presenti numerosi metodi per il settaggio dei parametri interni al certificato, inoltre è presente un metodo, ridefinito in più forme a seconda dei parametri accettati, generateX509Certificate(), il quale permette la creazione di un certificato sulla base delle impostazioni settate con gli altri metodi della classe sull'oggetto stesso. In tutte le sue ridefinizioni, questo metodo accetta in ingresso una chiave privata necessaria per la firma del certificato stesso.
Appunti su: |
|
Appunti internet | |
Tesine c | |
Lezioni database | |