- Free Documents

publicité
Java Cryptography Extension
Didier DONSEZ
Universit Joseph Fourier
IMA IMAG/LSR/ADELE
Didier.Donsezimag.fr
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Motivation
IFournit une API standard
pour lusage de fonctions cryptographique
Chiffrage, signature,
IPlusieurs Cryptography Service Providers CSP
cohabitent priorit du choix
SPI Interface pour implanter un provider
SUN fournit un Provider de rfrence
Conu pour tre export en dehors des USA
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Principes
I Indpendance
I Introprabilit
I Extensibilit
Nouveaux algorithmes AES par exemple
I Architecture
Providers amp Key Management
I Concepts
Slection dimplmentations chez les Providers
fabriques pour lobtention des instances
XXX.getInstancealgo
// le premier qui offre limplantation dans la liste des providers
XXX.getInstancealgo,provider
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Architecture du JCE
JCE Cipher, SecureRandom
KeyAgreement, KeyGenerator,KeyFactory
MessageDigest, MAC, Signature
App App App
CSP
quotSunJCEquot
CSP
quotABAquot
CSP
quotCryptixquot
API
SPI
DES
RSA
DES
RSA
IDEA
Rindjael
Cipher.getInstancequotDESquot K
Cipher.getInstancequotDESquot,quotABAquot K
Cipher.getInstancequotCesarquot K
Priorit
RSA
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Architecture du JCE
JCE Cipher, SecureRandom
KeyAgreement, KeyGenerator,KeyFactory
MessageDigest, MAC, Signature
App App App
CSP
quotSunJCEquot
CSP
quotABAquot
CSP
quotCryptixquot
API
SPI
DES
RSA
DES
RSA
IDEA
Rindjael
CSP
quotMonJCEquot
Cesar
Cipher.getInstancequotDESquot K
Cipher.getInstancequotDESquot,quotABAquot K
Cipher.getInstancequotCesarquot K
RSA
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Installation
I Chargez et dcompressez le JCE de Sun
et dautres providers ABA,
I Ajoutez les JAR
comme des extensions du JDK
ou au CLASSPATH
I Positionnez les permissions pour le JCE
/oo o ltjrehomegtlibsecurityjava.policy ne oouno
grant codeBasequotfile/work/sunjceprovider.jarquot
permission java.io.FilePermission
quot/jdk../jre/lib/ext/jce.jarquot, quotreadquot
permission java.lang.RuntimePermission
quotgetProtectionDomainquot
permission java.security.SecurityPermission
quotputProviderProperty.SunJCEquot
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Installation
I Enregistrez les providers selon leurs priorits
I Statiquement
Fichier JAJAHOME/ire/lib/securitv/iava.securitv
security.provider.com.sun.crypto.provider.SunJCE
security.provider.au.net.aba.crypto.provider.ABAProvider
security.provider.cryptix.jce.provider.CryptixCrypto
security.provider.
I A lexcution
ava.seoury.eoury.aooProvoerneu oom.sun.oryoo.orovoer.unJE
ava.seoury.eoury.aooProvoerneu au.ne.aoa.oryoo.orovoer.//Provoer
.
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Les classes et interfaces de lAPI
I Les packages
java.security
java.security.cert
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
I Les classes et interfaces
Provider
Security
Cipher
SecureRandom
Key
KeyPair
KeyPairGenerator MessageDigest
MAC
Signature
KeyStore
Certificate java.security.cert.Certificate
CipherSpi
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
SecureRandom
Gnrateur de nombres alatoires
I Motivation
strong pseudorandom number generator PRNG
pour la gnration de cls, dans les challenges,
I Obtenir/construire une instance dun gnrateur
statc ecureRandom getnstancetrng agorthm
statc ecureRandom getnstancetrng agorthm, trng provder
algorithm SHAPRNG,
I Gnrer la graine seed
byte generateeednt numytes nombre doctets de a grane
I Initialiser et rinitialiser la graine du gnrateur
byte generateeednt numytes nombre doctets de a grane
statc byte geteednt numytes
vod seteedbyte seed avec seed.sze octets de seed
vod seteedong seed avec es octets du ong
I Gnrer un nombre pseudoalatoire
nt nextnt numts gnr numts bts de pods fabe aatore
et numts bts de pods fort e
vod nextytesbyte bytes
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Remarque sur la gnration des
nombres alatoires PRNG
I Motivation
la gnration de cls
Ala de session
I Risque
attaque brute de la recherche du nombre gnr partir dhypothse sur la
graine
I Importance de la graine
Horloge de la machine nest pas suffisante
Doit tre complte par
Memory Statistics, Process Statistics,
Mouse Movement, Keystroke Timing,
I Voir
httpwww.rsasecurty.comsoutonsdeveoperswhtepapersArtcePRN.pdf
ftpftp.rsasecurty.compubpdfsbu.pdf
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Gnration des cls
I Publique/prive
java.security.KeyPairGenerator
Cre une ou des cls partir dun objet existant
java.security.KeyFactory
Convertit et verifie une ou des cls partir dun objet existant
Exemple
XEncodedKeySpec bobPubKeySpec
new XEncodedKeySpecbobEncodedPubKey
KeyFactory keyFactoryKeyFactory.getInstancequotDSAquot
PublicKey bobPubKeykeyFactory.generatePublicbobPubKeySpec
Signaturesig Signature.getInstancequotDSAquot
sig.initVerifybobPubKey sig.updatedata sig.verifysignature
I Secrte
javax.crypto.SecretKeyFactory
Convertit et verifie une ou des cls partir dun objet existant
I Commun
javax.crypto.KeyGenerator
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Gnrateur de cls prives/publiques
I Interface java.security.Key
PrivateKey, PublicKey
DSAPrivateKey, DSAPublicKey,RSAPrivateCrtKey, RSAPrivateKey, RSAPublicKey
Mthodes String getAlgorithm, byte getEncoded, StringgetFormat
I Obtenir/counstruire une instance dun gnrateur KeyParenerator
statc KeyParenerator getnstancetrng agorthm
statc KeyParenerator getnstancetrng agorthm, trng provder
algorithm,
I Initialiser le gnrateur
vod ntazeAgorthmParameterpec params
vod ntazeAgorthmParameterpec params, ecureRandom random
vod ntazent keysze
vod ntazent keysze, ecureRandom random
ntazes the key par generator for a certan keysze
wth the gven source of randomness and a defaut parameter set.
I Gnrer une paire de cls KeyPar
KeyPar genKeyPar
I Rcuprer les cls de KeyPar
PrvateKey getPrvate
PubcKey getPubc
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Gnration des cls prives/publiques
// Rendom number
ecureRandom random ecureRandom.getnstancequothAPRNquot, quotUNquot
// igitel igneture Algorithm
KeyParenerator keyen KeyParenerator.getnstancequotAquot, quotUNquot
nt btsze
keyen.ntazebtsze, random
// Key peir
KeyPar par keyen.generateKeyPar
PrvateKey prv par.getPrvate
PubcKey pub par.getPubc
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Convertion des cls prives/publiques
KeyFactory fact KeyFactory.getnstancequotRAquot, quotAAquot
fabrquer a c prve
AscEncodedKeypec prvKeypec new AscEncodedKeypecargs
PrvKey keyPrv fact.generatePrvateprvKeypec
chffrer avec a c prve
pher enc pher.getnstancequotRAEPKPaddngquot, quotAAquot
enc.ntpher.ENRYPTHE, keyPrv, rand
fabrquer a c pubque
AscEncodedKeypec pubKeypec new AscEncodedKeypecargs
PubcKey keyPub fact.generatePubcpubKeypec
dchffrer avec a c pubque
pher dec pher.getnstancequotRAEPKPaddngquot, quotAAquot
dec.ntpher.ERYPTHE, keyPub
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Cipher /
I Fonction
De chiffrage/dchiffrage cl symtrique SKC ou asymtrique DSK
I Obtenir une instance
statc pher getnstancetrng agorthm
statc pher getnstancetrng agorthm, trng provder
algorithmspcifie lalgorithme / le mode / le padding compltion
Ex quotDES/CBC/PKCSPaddingquot, quotDES/CFB/NoPaddingquot,
quotDES/OFB/PKCSPaddingquot,
quotRSA/ECB/PKCSPaddingquot
I Initialiser avec lopration ENCRYPTMODE DECRYPTMODE et la cl
vod ntnt opmode, Key key
vod ntnt opmode, Key key, AgorthmParameters params
vod ntnt opmode, Key key, AgorthmParameterpec params
vod ntnt opmode, Key key, AgorthmParameterpec params, ecureRandom random
vod ntnt opmode, Key key, AgorthmParameters params, ecureRandom random
vod ntnt opmode, Key key, ecureRandom random
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Cipher /
I Chiffrer/dchiffer lentre
byte updatebyte nput
byte updatebyte nput, nt nputffset, nt nputLen
nt updatebyte nput, nt nputffset, nt nputLen, byte output
nt updatebyte nput, nt nputffset, nt nputLen, byte output, nt outputffset
I Finaliser
car il reste des donnes qui nont pas t chiffres dans linstance
byte doFna
byte doFnabyte nput
nt doFnabyte output, nt outputffset
byte doFnabyte nput, nt nputffset, nt nputLen
nt doFnabyte nput, nt nputffset, nt nputLen, byte output
nt doFnabyte nput, nt nputffset, nt nputLen, byte output, nt outputffset
I Extra
trng getAgorthm Provder getProvder AgorthmParameters getParameters
nt getockze Returns the bock sze n bytes.
nt getutputzent nputLen
Returns the ength n bytes that an output buffer woud need to be n order
to hod the resut of the next update or doFna operaton, gven the nput ength nputLen n bytes.
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
javax.crypto.CipherInputStream
javax.crypto.CipherOutputStream
IMotivation
Appliquer une fonction de chiffrage/dchiffrage
sur un InputStreamou un OutputStream
tendent java.io.FilterInputStreamet java.io.FilterOutputStream
IConstructeur
CipherInputStreamjava.io.InputStream is, Cipher ciph
CipherOutputStreamjava.io.OutputStream is, Cipher ciph
ciph doit tre compltement initialis
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Exemples
ouoo voo enoryolnouream s.
Duouream os.rno aoo. eorerey seorey
nrous Exoeoon
oner oooner.oelnsanoeaoo
o.noner.EhPYPTVDE. seorey
onerlnouream os
neu onerlnoureams. o
n une os.reao gt
os.ure
Cipher
ENCRYPTMODE
SecretKey
Data
Encrypted
Data
Cipher
DECRYPTMODE
Data
ouoo voo oeoryolnouream s.
Duouream os.rno aoo. eorerey seorey
nrous Exoeoon
oner oooner.oelnsanoeaoo
o.noner.EPYPTVDE. seorey
onerlnouream os
neu onerlnouream s. o
n une os.reao gt
os.ure
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Password Based Encryption PBE
I Chiffrage/Dchiffrer partir dun mot de passe
Les mots de passe ne sont pas des cls sures
I Ide
Appliquer une fonction de hachage scuris MD,SHA, sur le mot de
passe pour fabriquer une cl secrte
I Standard
PBEWithMDAndDES PKCS
PBEWithSHAAndBitRC PKCS
Cipher
ENCRYPTMODE
SecretKey
Data
Encrypted
Data
Cipher
DECRYPTMODE
Data
MessageDigest
Password
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
PBE Cration du chiffreur/Dchiffreur
trng modeargv
trng passwordargv
byte sat bytexc, bytex, bytex, bytexc,
bytexe, bytexc, bytexee, bytex
nt count
PEParameterpec parampec new PEParameterpec sat, count
PEKeypec keypec new PEKeypecpassword.toharArray
ecretKeyFactory kf ecretKeyFactory.getnstancequotPEwthHAndEquot
ecretKey passwordKey kf.generateecret keypec
pher c pher.getnstancequotPEwthHAndEquot
f mode.equasquotencryptquot
c.ntpher.ENRYPTHE, passwordKey, parampec
...
ese f mode.equasquotdecryptquot
c.ntpher.ERYPTHE, passwordKey, parampec
...
ese ...
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
MessageDigest Hachage Scuris
I Fonction
produire un rsum avec une fonction de hachage scuris
I Obtenir une instance
static MessageDigest getInstanceStringalgorithm
static MessageDigest getInstanceStringalgorithm, Stringprovider
algorithmSHA, SHA, MD,
I Alimenter le calcul
void updatebyte input
void updatebyte input
void updatebyte input, int offset, int len
voidreset // remise zro du calcul
I Produire le rsum
public byte digest
public byte digestbyte input
I Voir aussi
java.security.DigestInputStream, java.security.DigestOutputStream
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Hachage scuris
des donnes dun fichier
btan a message dgest object.
Hessagegest md Hessagegest.getnstancequotHquot
acuate the dgest for the gven fe.
Fenputtream fs new Fenputtreamargs
ufferednputtream bufn new ufferednputtreamfs
byte buffer new byte
nt ength
whe ength bufn.readbuffer
md.updatebuffer, , ength
bufn.cose
byte raw md.dgest
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
MAC Message Authentication Code
I Fonction
produire un rsum avec une fonction de hachage scuris avec une cl
I Obtenir une instance
statc HA getnstancetrng agorthm
statc HA getnstancetrng agorthm, trng provder
algorithmDESMac,
I Initialiser avec une cl
vod ntKey key
vod ntKey key, AgorthmParameterpec params
I Alimenter
vod updatebyte nput
vod updatebyte nput
vod updatebyte nput, nt offset, nt en
vod reset remse e zro du cacu et de a c on dot rntaser avec une c
I Gnrer le MAC
byte doFna
vod doFnabyte output, nt outffset
byte doFnabyte nput
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Signature
I Fonction
Produire vrifier une signature partir dune cl prive publique
I Obtenir une instance
statc gnature getnstancetrng agorthm
statc gnature getnstancetrng agorthm, trng provder
algorithm SHAwithDSA, MDwithRSA, MDwithRSA, SHAwithRSA, .
I Initialiser avec une cl prive pour la signature
vod ntgnPrvateKey prvateKey
I Initialiser avec une cl publique pour la vrification
vod ntverfyPubcKey pubcKey
I Alimenter pour la signature et la vrification
vod updatebyte nput
vod updatebyte nput
vod updatebyte nput, nt offset, nt en
vod reset remse e zro du cacu
I Gnrer la signature si initSignpriv
byte sgn
I Vrifier la signature si initVerifypub
booean verfybyte sgnatureToverfy
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Signature Signer des donnes
et the prvate key
PrvateKey prv par.getPrvate
et ready to sgn
gnature dsa gnature.getnstancequothAwthAquot, quotUNquot
gve t your prvate key
dsa.ntgnprv
gve the ag the data
ufferednputtream bufn new ufferednputtreamnew Fenputtreamargs
byte buffer new byte
nt en
whe bufn.avaabe
en bufn.readbuffer
dsa.updatebuffer, , en
bufn.cose
generate the sgnature
byte reag dsa.sgn
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Signature Vrifier des donnes
et the sgnature to verfy
byte toeverfyg .
et the pubc key
PubcKey pub par.getPubc
et ready to sgn
gnature dsa gnature.getnstancequothAwthAquot, quotUNquot
gve t your pubc key
dsa.ntverfypub
gve the ag the data
ufferednputtream bufn new ufferednputtream
new Fenputtreamargs
byte buffer new byte nt en
whe bufn.avaabe
en bufn.readbuffer
dsa.updatebuffer, , en
bufn.cose
verfy the sgnature
fdsa.verfytoeverfygtrue ystem.out.prntnquotgnature s correctquot
ese ystem.out.prntnquotgnature s NT correctquot
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Certificat
I Motivation
Associer une identit subject avec sa cl publique
et certifier le tout par une autorit de certification CA
Support de stockage et du diffusion de la cl publique
I Notions
PKI Public Key Infrastructure
Joir cours PKI
Identity Unix UID, X. Distinguished Name.
Entity person, organization, program, computer, business, bank,
Issuer celui qui a mis le certificat ie le CA
CRL Certificate Revocation List
I Classes
java.security.cert.CertificateFactory
java.security.cert.Certificat, java.security.cert.XCertificat
java.security.cert.CRL, java.security.cert.XCRL
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
CertificatFactory
IRcuprer une instance
static CertificateFactory getInstanceString type
static CertificateFactory getInstanceString type, Stringprovider
typeX
IGnrer le ou les Certificates
prsents dans le inStream
Certificate generateCertificateInputStream inStream
CollectiongenerateCertificatesInputStream inStream
IGnrer le ou les CRL
prsents dans le inStream
CRL generateCRLInputStream inStream
Collection generateCRLsInputStream inStream
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Certificate et XCertificate
I Consulter un Certificat
PublicKey getPublicKey // rcupre la cl public pour vrifier une signature
byte getEncoded // retourne lencodage ASN. DER
I Consulter un Certificat X
Principal getSubjectDN
void checkValidity
void checkValidityDate date // pour la priode donne.
DategetNotAfter // date de fin la priode de validit
DategetNotBefore // date de fin la priode de validit
Principal getIssuerDN // DN de lmtteur CA
BigInteger getSerialNumber
String getSigAlgName // algorithme de signature
byte getSigAlgParams // paramtre de lalgorithme
byte getSignature
I Vrifier un Certificate
Lve une exception CertificateException, SignatureException,
void verifyPublicKey key throws CertificateException, SignatureException,
void verifyPublicKey key, StringsigProvider throws CertificateException,
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
CRL et XCRLEntry
I Motivation
Liste de rvocation des certificats
Cl corrompue, employ licenci,
I Tester la rvocation dun Certificate dans une CRL
boolean isRevokedCertificate cert
I Parcourir les entres dune CRL
XCRLEntry getRevokedCertificateBigInteger serialNumber .
Set getRevokedCertificates
I Dtail dune XCRLEntry
byte getEncoded // retourne lencodage ASN. DER.
DategetRevocationDate
BigInteger getSerialNumber
boolean hasExtensions
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Stockage des paires de cls
I Motivation
Stockage scuris de cls publiques, prives et certificats
dans un fichier keystore
Laccs au fichier est protg par une cl storepass
I Consultation/Modification
classe java.security.KeyStore
Outil keytool du JDK
I Concepts
Reprsente la structure de stockage des entres cls et certificats
Key Entry
secret key, private key rfrence vers le certificat.
Trusted Certificate Entry
Certificat appartenant une entity dans laquelle le keystore fait confiance
Chaque entre est dsigne par un alias
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyStore
I Protection
Le keystore est protg par un mot de passe
Chaque entre peut tre protge par un deuxime niveau de mot de passe
I Obtenir une instance
statc Keytore getnstancetrng type
statc Keytore getnstancetrng type, trng provder
typejks, PKCS prsent dans JSSE
statc trng getefautType
Retourne la proprit Javakeystore.type configure dans le fichier java.security
trng getType
Retourne le type du keystore
I Charger/Stocker le KeyStore
vod oadnputtream stream, char password
charge es entres protges par un mot de passe
vod storeutputtream stream, char password
sauvegarde es entres en protgeant avec e mot de passe
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyStore
I Parcourir le KeyStore
nt sze nombre dentres
Enumeraton aases
booean contansAastrng aas
ertfcate getertfcatetrng aas
ertfcate getertfcatehantrng aas
trng getertfcateAasertfcate cert
ate getreatonatetrng aas
Key getKeytrng aas, char password
booean sertfcateEntrytrng aas
booean sKeyEntrytrng aas
I Modifier une entre
vod deeteEntrytrng aas
vod setertfcateEntrytrng aas, ertfcate cert
vod setKeyEntrytrng aas, byte key, ertfcate chan
vod setKeyEntrytrng aas, Key key, char password, ertfcate chan
entre est protge par un autre mot de passe.
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyStore et formats
I Formats de KeyStore
Contient des paires de cls
Requiert une passphase pour protger laccs aux paires de cls PBE
JKS
format propritaire de SUN
fournis et utilis par dfaut par les outils Java Provider JCE
PKCS .pfx, .p
format dchange import,export pour les Navigateurs et les Mailers IE, NS,
Fournis et utilis par JSSE Provider JCE de JSSE
I Formats de Certificat
DER X .cer
PKCS .pb contient une chane de certificats
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Exemple avec KeyStore
Keytore ks Keytore.getnstancequotJKquot
ks.oadFenputtreamargv, quotHotePasseKeytorequot.toharArray printeliesks
ertfcateFactory cf ertfcateFactory.getnstancequotX.quot
nputtream s new Fenputtreamargv
ertfcate cert cf.generateertfcates
ks.setertfcateEntryquotmyfrstquot, cert printeliesks
KeyParenerator kpg KeyParenerator.getnstancequotRAquot
kpg.ntaze, new ecureRandom
KeyPar par kpg.generateKeyPar
PrvateKey pkey par.getPrvate
ertfcate certs cert
ks.setKeyEntryquotmysecondquot, pkey,
quotHotePasseKeyEntryquot.toharArray, certs printeliesks
ks.storeFeutputtreamargv, quotHotePasseKeytorequot.toharArray
ertfcate cert ks.getertfcatequotmyfrstquot
prvate statc vod prntaasKeytore store
ystem.out.prntnquotsze quot store.sze
ystem.out.prntnquotaases quot
for Enumeraton enum store.aases
enum.hasHoreEements
ystem.out.prntenum.nextEement.totrng quot quot
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyTool
I Commande pour la gestion de fichiers keystore
keytool command options
I Options
keystore keystorefile storepass storepass keypass keypass alias alias
I Commandes
Cration dun fichier keystore et de ses entres
genkey cre une entre avec une paire de cl dans un certificat autosign
import importe soit un certificat considr de confiance trusted certificate
ou un certificat sign par un CA il remplace le certificat autosign
identitydb importe des informations dune base didentit JDK .
Visualisation
list Liste les entres du keystore
printcert Affiche le contenu du certificat
Exportation dune entre
export Exporte la cl publique dans un certificat.
certreq Gnre une demande CSR Certificate Signing Request
pour envoi et signature une autorit de certification CA
Gestion
delete supprime une entre.
keypasswd assigne un mot de passe une entre.
storepasswd assigne un mot de passe un keystore.
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyTool Exemple /
le KS des CA
gtkeytoo st keystore JAvAhHEjrebsecurtycacerts storepass changet
Keystore type jks
Keystore provder UN
Your keystore contans entres
versgncassca, Hon Jun ET , trustedertEntry,
ertfcate fngerprnt H EFFF
versgnserverca, Hon Jun ET , trustedertEntry,
ertfcate fngerprnt H FEEFA
thawteserverca, Fr Feb ET , trustedertEntry,
ertfcate fngerprnt H AE
thawtepersonabascca, Fr Feb ET , trustedertEntry,
ertfcate fngerprnt H EAAEE
versgncassca, Hon Jun ET , trustedertEntry,
ertfcate fngerprnt H EEAFAFF
thawtepersonafreemaca, Fr Feb ET , trustedertEntry,
ertfcate fngerprnt H EEFEFAA
thawtepersonapremumca, Fr Feb ET , trustedertEntry,
ertfcate fngerprnt H AEAFEAE
thawtepremumserverca, Fr Feb ET , trustedertEntry,
ertfcate fngerprnt H FAFA
Liste les certificats
des CA
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyTool Exemple /
gtkeytoo st
keytoo error Keystore fe does not exst homedonsez.keystore
gtkeytoo genkey dname quotcnder onsez, ouHA, oUJF, renobe, cFRquot
aas dder keypass totototo keystore monks.jks storepass tutututu vadty
gtkeytoo st aas dder keystore monks.jks storepass tutututu
dder, Tue Nov ET , keyEntry,
ertfcate fngerprnt H EAAFFFA
gtkeytoo genkey aas syvan keypass tatatata keystore monks.jks storepass tutututu
gtkeytoo st keystore monks.jks storepass tutututu
Keystore type jks
Keystore provder UN
Your keystore contans entres
syvan, Tue Nov ET , keyEntry,
ertfcate fngerprnt H AAAAF
dder, Tue Nov ET , keyEntry,
ertfcate fngerprnt H EAAFFFA
Lste e K
par dfaut
re une entre avec
une pare de c
Lste aas dans e K
re une autre entre
avec une pare de c
Lste es entres
du K
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyTool Exemple /
gtkeytoo export aas dder fe dder.cer
keystore monks.jks storepass tutututu
ertfcate stored n fe ltdder.cergt
gtkeytoo prntcert fe dder.cer
wner Nder onsez, UHA, UJF, Lrenobe, FR
ssuer Nder onsez, UHA, UJF, Lrenobe, FR
era number cfd
vad from Tue Nov ET unt Fr Nov ET
ertfcate fngerprnts
H EAAFFFA
hA EEEAAF
gtkeytoo certreq aas dder fe dder.csr
keystore monks.jks storepass tutututu
keypass totototo
gtkeytoo st keystore donsez.p storetype PK
Export un entre
sous a forme
dun certfcat ER X
Affche ce certfcat
nere une demande
de certfcaton
Affche e contenu du K
export de N
un des provders dot
supporter PK
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyTool Exemple /
gtkeytoo mport aas nada fe nada.pb keystore monks.jks storepass tutututu
wner NNada ennan, UTv, Uvh, Lvaencennes, Nord, FR
ssuer NNada ennan, UTv, Uvh, Lvaencennes, Nord, FR
era number c
vad from Tue Nov ET unt un Hay ET
ertfcate fngerprnts
H AAAF
hA AEEFAEFF
Trust ths certfcate no yes
ertfcate was added to keystore
gtkeytoo st keystore monks.jks storepass tutututu
Keystore type jks
Keystore provder UN
Your keystore contans entres
nada, Tue Nov ET , trustedertEntry,
ertfcate fngerprnt H AAAF
syvan, Tue Nov ET , keyEntry,
ertfcate fngerprnt H AAAAF
dder, Tue Nov ET , keyEntry,
ertfcate fngerprnt H EAAFFFA
gtkeytoo deete aas syvan keystore monks.jks storepass tutututu
mporte une entre e partr
dun certfcat PK
consdr de confance
Lste es entres du K
upprme une entre
no, e certfcat nest
pas ajout au K
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
KeyTool Exemple /
gtkeytoo prntcert fe donsez.cer
wner EmaAddressdder.donsezmag.fr, Nder onsez,
Ugta ass Netscape,
UPersona Not vadated,
Uquotwww.versgn.comrepostoryRPA ncorp. by Ref.,LA.LTcquot,
Uvergn Trust Network,
quotvergn, nc.quot
ssuer Nvergn ass A ndvdua ubscrberPersona Not vadated,
Uquotwww.versgn.comrepostoryRPA ncorp. y Ref.,LA.LTcquot,
Uvergn Trust Network,
quotvergn, nc.quot
era number effbfbdfeabd
vad from Tue Nov ET unt un Jan ET
ertfcate fngerprnts
H FFFF
hA AAAAFAEFAE
Affchage dun certfcat
X ER sgn par un A
et export de Netscape
Export de Netscape ommuncator avec
utsgtpton nternetgtontenugtertfcatsgtPersonne
Export de E avec
ommuncatorgtutsgtnformatons sur a scurtgtvos ertfcats
lectionnez un certificet et exportez le
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Signature de code
I Commande jarsigner
Ajoute entres larchive pour chaque signataire alias
Aliasname.SF Signature File
Contient les noms des fichiers, le nom de lalgo de signature SHA,
et les valeurs des rsum
Aliasname.DSA
Contient la signature du fichier Aliasname.SF
Ajoute le Manifest
Contient les rsums des entres
I Fonctions
Signature dune archive Java
jarsigner options jarfile alias
Verification dune archive Java
jarsigner verify options jarfile
I Voir
SJ/v/lDVE/docs/tooldocs/win/jarsigner.html
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Outils Keytool et JarSigner
JAVAHOME/docs/tooldocs/tools.htmlsecurity
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
JarSigner Exemple
gtjar cf archve.jar .cass .java
gtjarsgner keystore dd.jks sgnedjar sarchve.jar archve.jar dder
gtjarsgner verfy verbose sarchve.jar
Tue Nov ET HETANFER.F
Tue Nov ET HETANFER.A
Tue Nov ET HETANF
sm Tue Feb ET trongent.cass
sm Tue Feb ET trongerver.cass
sm Tue Feb ET trongent.java
sm Tue Feb ET trongerver.java
s sgnature was verfed
m entry s sted n manfest
k at east one certfcate was found n keystore
at east one certfcate was found n dentty scope
jar verfed.
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Echange scuris de cl
KAP Key Agreement Protocol
IMotivation
change une cl secrte entre deux parties
Application cl de session symtrique
IProtocoles
DiffieHellman PKCS,
IJCE classe javax.crypto.KeyAgreement
staticKeyAgreementgetInstanceStringalgorithm
void initjava.security.Keykey
KeydoPhaseKeykey, boolean lastPhase
DH est fournit par JCE de Baltimore
Under onstructon
En onstructon
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Echange scuris de cl
DiffieHellman
. InitiaIisation
. choisir un couple appropri de nombres premiers p et a, tels
que ltaltp
. a et p sont publies publiquement
. ProtocoIe
. Message
sends a
x
p, for any lt x lt p
sends a
y
p, for any lt y lt p
. Actions
B receives a
x
and calculates Ka
x
y
B receives a
y
and calculates Ka
y
x
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Providers
ILa liste
http//java.sun.com/products/jce/jceproviders.html
IQuelques providers
Baltimore KeyTools http//www.baltimore.com
RSA Security http//www.rsasecurity.com
eSecexABA http//www.openjce.org/jce.html
http//www.wumpus.com.au/crypto/aba.html
http//www.bouncycastle.org/
Cryptix http//www.cryptix.org/products/jce/
Phaos Technology http//www.phaos.com/
EntrustR Technologies http//www.entrust.com/toolkit/java/index.htm
DSTC http//security.dstc.edu.au/projects/java/release.html
IAIK http//jcewww.iaik.at/
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
ABA JCE Provider
I JDK ., ., ., .
I Cipher
RSA, DES, DESede, IDEA, Twofish, Blowfish, and RC.
I Password Based Encryption PBE
MD with DES, SHA with RC bits
I Message digests
SHA, SHA, and MD.
I MAC
DES, DESede, IDEA, HMACwithSHA, and HMACwithMD.
I Keystore.
I Key and Key pair generation
I Signing
MDwithRSA.
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Cryptix JCE Provider
I URL http//www.cryptix.org
I JDKs ., . and .
I Ciphers
Blowfish, CAST, DES, IDEA, MARS, RC, RC, RC, Rijndael, Serpent, SKIPJACK, Square,
TripleDES, Twofish
I Password Based Encryption PBE
none
I KeyAgreements
DiffieHellman
I Modes
CBC, CFB, , , ..., blocksize, ECB, OFBblocksize, openpgpCFB
I Hashes
MD, MD, MD, RIPEMD, RIPEMD, SHA, SHA, SHA//, Tiger
I MACs
HMACMD, HMACMD, HMACMD, HMACRIPEMD, HMACRIPEMD, HMACSHA
, HMACSHA, HMACTiger
I Signatures
RawDSA, RSASSAPKCS, RSASSAPSS
I Assymetric ciphers
RSA/PKCS, ElGamal/PKCS
I SecureRandom SPIs
/dev/urandomon systems that support it FreeBSD, Linux, OpenBSD and possibly other
UNIXen
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Implmentation dun Provider JCE
IImplmenter
Une classe final Provider et des classes SPI
CipherSpi, MessageDigestSpi,
IVoir
JAVAHOMEdocsguidesecurityHowToImplAProvider.html
IExercice
Le faire pour lalgorithme de CESAR
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Implmentation dun Provider JCE
IExercice
Un Provider pour lalgorithme de CESAR
La classe Provider installer
package monjce.jce.provder
pubc fna cass HonJEProvder extends java.securty.Provder
prvate statc fna trng NAHE quotHonJEquot,
NF quotHonJE JE weak rypto Provderquot
prvate statc fna doube vERN .
pubc HonJEProvder
superNAHE, vERN, NF
EAR
putquotpher.EARquot,quotmonjce.jce.provder.cpher.EARquot
putquotAg.Aas.ypher.AEARquot,quotEARquot
putquotKeyenerator.EARquot,quotmonjce.jce.provder.key.EARKeyeneratorquot
putquotecretKeyFactory.Equot,quotmonjce.jce.provder.keyfactory.EARKeyFactoryquot
Extra JCE
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
PKCS PublicKey Cryptography Standards
I ensemble de standards pour la mise en place des IGC, coordonn par
RSA
I dfinissent les formats des lments de cryptographie
PKCS RSA Cryptography Standard
Inclut PKCS et PKCS
PKCS DiffieHellman Key Agreement Standard
PKCS PasswordBased Cryptography Standard
PKCS ExtendedCertificate Syntax
PKCS Cryptographic Message Syntax
PKCS PrivateKey Information Syntax
PKCS Selected Attribute Types Standard
PKCS Certification Request Syntax Standard
PKCS Cryptographic Token Interface Standard
PKCS Personal Information Exchange Syntax Standard
PKCS Elliptic Curve Cryptography Standard
PKCS Cryptographic Token Information Format Standard
I Voir http//www.rsa.com/rsalabs/pkcs/
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Cerificats X, PKI et CA
IPKI Private Key Infrastructure
http//www.verisign.com/resources/wp/index.html
http//www.thawte.com/
https//www.entrust.com/developer/java/faqs.htm
ICA
Public
Verign, Thawte, Entrust,
Priv
Motivation une socit est sa propre autorit de certification pour ses
employs et ses applications dans les changes intranet.
iPlanet Certificate Management Server developer.iplanet.com ,
OpenCA www.openca.org, IDXPKI idxpki.idealx.org
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
JSSE et JAAS
IJava Secure Socket Extension JSSE
Extension aux sockets pour scuriser les protocoles bass sur
TCP/IP HTTP, Telnet, NNTP, FTP, RMI
SSL Secure Sockets Layer et TLS Transport Layer Security
SecureSocket, SecureServerSocket, HttpsURLConnection,
Utilise le JCE et ajoute un provider
Intgr au JSE.
Remarque Avant il fallait bricoler avec les SocketFactory
IJava Authentication and Authorization Service
JAAS
Les PAM peuvent tre utiliss des moyens cryptographiques
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
XML et Scurit
IEvolution vers le gestion des cls en XML
et vers les documents XML signs et chiffrs
Spcifications
XKMS XML Key Management Specification
http//www.xmltrustcenter.org/xkms
XML Digital Signature http//www.w.org/TR/xmldsigcore/
XML Digital Encryption http//www.w.org/TR/xmlenccore/
API Java
JSR XML Trust Service APIs
JSR XML Digital Signature APIs javax.security.xml.dsig
JSR XML Digital Encryption APIs
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Cryptographie, JavaCard, Carte Crypto
I Cartes puce pourvue de fonctions cryptographiques
logicielles ou matrielles
Cartes PKI GemSafe, CryptoSafe,
I JavaCard
Packages javacard.security. javacardx.crypto.
pour les applets utilisant de la cryptographie
IOCF
CardService
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
JCE et JME
IMotivation
Faible mmoire, KVM, Processeur cryptographique
IPistes les API JavaCard
Packages javacard.crypto. javacardx.crypto.
Under onstructon
En onstructon
//
D
i
d
i
e
r
D
o
n
s
e
z
,
,
J
C
E
Bibliographie
I Livre
Jonathan B. Knudsen , Java Cryptography, Oreilly, st Edition, May ,
Scott Oaks, Java Security, Oreilly, nd Edition, May ,
Jamie Jaworski amp Paul J. Perrone, Java Security , Ed CampusPress, //,
pages, ISBN , en Franais http//www.campuspress.net
I Guide
JAVAHOMEdocsguidesecurityCryptoSpec.html
JAVAHOMEdocsguidesecurityHowToImplAProvider.html
I Tutorial
http//java.sun.com/docs/books/tutorial/security./index.html
I Prsentation JavaOne
http//servlet.java.sun.com/javaone/javaone/pdfs/e.pdf
http//java.sun.com/products/jsse/JavaOneJSSE.pdf
http//jsp.java.sun.com/javaone/javaone/pdfs/TS.pdf
I Articles
http//www.onjava.com/onjava/security/
Motivation
I Fournit une API standard pour lusage de fonctions cryptographique
Chiffrage, signature,
I Plusieurs Cryptography Service Providers CSP cohabitent priorit du choix
SPI Interface pour implanter un provider SUN fournit un Provider de rfrence Conu pour tre
export en dehors des USA
LGLHU RQVH amp
Principes
I Indpendance I Introprabilit I Extensibilit
Nouveaux algorithmes AES par exemple
I Architecture
Providers amp Key Management
I Concepts
LGLHU RQVH amp
Slection dimplmentations chez les Providers fabriques pour lobtention des instances
XXX.getInstancealgo
// le premier qui offre l implantation dans la liste des providers
XXX.getInstancealgo,provider
Architecture du JCE
SS
Cipher.getInstancequotDESquot Cipher.getInstancequotDESquot,quotABAquot
Cipher.getInstancequotCesarquot SS
...
SS
,
amp ampLSKHU HFXUHDQGRP .HJUHHPHQW .HHQHUDWRU.HDFWRU
HVVDJHLJHVW amp LJQDWXUH amp XQamp
,
LGLHU RQVH amp
amp
,
amp ampUSWL
LQGMDHO
Priorit
Architecture du JCE
SS
Cipher.getInstancequotDESquot Cipher.getInstancequotDESquot,quotABAquot
Cipher.getInstancequotCesarquot SS
...
SS
,
amp ampLSKHU HFXUHDQGRP .HJUHHPHQW .HHQHUDWRU.HDFWRU
HVVDJHLJHVW amp LJQDWXUH amp XQamp
,
LGLHU RQVH amp
amp
,
amp ampUSWL
LQGMDHO
amp RQamp
ampHVDU
I Ajoutez les JAR comme des extensions du JDK ou au CLASSPATH I Positionnez les
permissions pour le JCE GG WR ltjre homegtlibsecurityjava.RuntimePermission
quotgetProtectionDomainquot.policy WKH IROORZLQJ grant codeBase
quotfile/work/sunjceprovider.jarquot. . LGLHU RQVH amp . Installation I Chargez et
dcompressez le JCE de Sun et dautres providers ABA.lang.io. quotreadquot.FilePermission
quot/jdk..jarquot permission java. permission java.SecurityPermission
quotputProviderProperty./jre/lib/ext/jce.SunJCEquot. permission java.security.
Installation I Enregistrez les providers selon leurs priorits I Statiquement Fichier
BMUHOLEVHFXULWMDYDVHFXULW.
jce.net.provider.crypto.ABAProvider security.provider.cryptix.sun.provider.crypto. I A
lexcution LGLHU RQVH amp MDYDVHFXULWHFXULWDGGURYLGHUQHZ
FRPVXQFUSWRSURYLGHUXQamp.provider.aba.CryptixCrypto
security.provider.provider.au.SunJCE security.provider. security.com.
.
MDYDVHFXULWHFXULWDGGURYLGHUQHZ
DXQHWDEDFUSWRSURYLGHUURYLGHU.
.
.
Les classes et interfaces de lAPI I Les packages java.Certificate CipherSpi
.security.security.crypto javax.cert.cert javax.security java.interfaces javax.crypto.crypto.spec
I Les classes et interfaces LGLHU RQVH amp Provider Security Cipher SecureRandom Key
KeyPair KeyPairGenerator MessageDigest MAC Signature KeyStore Certificate java.
SecureRandom Gnrateur de nombres alatoires strong pseudorandom number generator
PRNG pour la gnration de cls. dans les challenges.QVWDQFHWULQJ DOJRULWKP. I
Motivation I Obtenir/construire une instance dun gnrateur VWDWLF HFXUHDQGRP JHW.
VWDWLF HFXUHDQGRP JHW.QVWDQFHWULQJ DOJRULWKP WULQJ SURYLGHU.
algorithm SHAPRNG. EWHgt JHQHUDWHHHGLQW QXPWHV.
QRPEUH GRFWHWV GH OD JUDLQH EWHgt JHQHUDWHHHGLQW QXPWHV.
QRPEUH GRFWHWV GH OD JUDLQH VWDWLF EWHgt JHWHHGLQW QXPWHV.
YRLG VHWHHGEWHgt VHHG.
DYHF VHHGVLH RFWHWV GH VHHG YRLG VHWHHGORQJ VHHG.
DYHF OHV RFWHWV GX ORQJ I Gnrer la graine seed I Initialiser et rinitialiser la graine du
gnrateur LGLHU RQVH amp I Gnrer un nombre pseudoalatoire LQW QHWLQW QXPLWV.
YRLG QHWWHVEWHgt EWHV.
JpQpUp QXPLWV ELWV GH SRLGV IDLEOH DOpDWRLUH HW QXPLWV ELWV GH
SRLGV IRUW j .
Remarque sur la gnration des nombres alatoires PRNG la gnration de cls Ala de session
attaque brute de la recherche du nombre gnr partir d hypothse sur la graine Horloge de la
machine n est pas suffisante Doit tre complte par Memory Statistics. Keystroke Timing. I
Motivation I Risque I Importance de la graine LGLHU RQVH amp I Voir
KWWSZZZUVDVHFXULWFRPVROXWLRQVGHYHORSHUVZKLWHSDSHUVUWLFOHSG
I IWSIWSUVDVHFXULWFRPSXESGIVEXOOSGI . Process Statistics. Mouse Movement.
sig.generatePublicbobPubKeySpec. sig. PublicKey bobPubKey
keyFactory.updatedata.KeyFactory Convertit et verifie une ou des cls partir d un objet
existant Exemple XEncodedKeySpec bobPubKeySpec new
XEncodedKeySpecbobEncodedPubKey.getInstancequotDSAquot. Gnration des cls I
Publique/prive java. LGLHU RQVH amp I Secrte javax.crypto.KeyGenerator
.KeyPairGenerator Cre une ou des cls partir d un objet existant
java.crypto.initVerifybobPubKey.security.SecretKeyFactory Convertit et verifie une ou des cls
partir d un objet existant I Commun javax. KeyFactory keyFactory KeyFactory.security.
Signature sig Signature. sig.verifysignature.getInstancequotDSAquot.
RSAPrivateCrtKey.HDLUHQHUDWRU VWDWLF .HDLUHQHUDWRU JHW.security.
DSAPublicKey. byte getEncoded.Key PrivateKey. RSAPrivateKey. Gnrateur de cls
prives/publiques I Interface java. String getFormat I Obtenir/counstruire une instance dun
gnrateur . PublicKey DSAPrivateKey. RSAPublicKey Mthodes String
getAlgorithm.QVWDQFHWULQJ DOJRULWKP.
HDLUHQHUDWRU JHW. VWDWLF .QVWDQFHWULQJ DOJRULWKP WULQJ
SURYLGHU.
algorithm. I Initialiser le gnrateur YRLG LQLWLDOLHOJRULWKPDUDPHWHUSHF
SDUDPV.
YRLG LQLWLDOLHOJRULWKPDUDPHWHUSHF SDUDPV HFXUHDQGRP UDQGRP.
YRLG LQLWLDOLHLQW NHVLH.
YRLG LQLWLDOLHLQW NHVLH HFXUHDQGRP UDQGRP.
.QLWLDOLHV WKH NH SDLU JHQHUDWRU IRU D FHUWDLQ NHVLH ZLWK WKH
JLYHQ VRXUFH RI UDQGRPQHVV DQG D GHIDXOW SDUDPHWHU VHW.
LGLHU RQVH amp I Gnrer une paire de cls .HDLU I Rcuprer les cls de .H
JHWULYDWH.HDLU ULYDWH.
H JHWXEOLF. XEOLF.
.HDLU JHQ.HDLU.
.
Gnration des cls prives/publiques DQGRP QXPEHU HFXUHDQGRP UDQGRP
HFXUHDQGRPJHW.QVWDQFH .
LJLWDO LJQDWXUH OJRULWKP .QVWDQFH .HDLUHQHUDWRU NHHQ
.HDLUHQHUDWRUJHW.
LQW ELWVLH NHHQLQLWLDOLHELWVLH UDQGRP.
.H SDLU .HDLU.HDLU SDLU NHHQJHQHUDWH.
ULYDWH.H SULY SDLUJHWULYDWH.
XEOLF.H SXE SDLUJHWXEOLF.
LGLHU RQVH amp .
HDFWRUJHW.HDFWRU IDFW .QVWDQFH . Convertion des cls prives/publiques .
HSHF QHZ VFLLQFRGHG.HSHFDUJVgt. IDEULTXHU OD FOp SULYpH
VFLLQFRGHG.HSHF SULY.
H NHULY IDFWJHQHUDWHULYDWHSULY. ULY.HSHF.
FKLIIUHU DYHF OD FOp SULYpH ampLSKHU HQF ampLSKHUJHW.QVWDQFH
amp.ampDGGLQJ .
HQFLQLWampLSKHUampltB NHULY UDQG.
IDEULTXHU OD FOp SXEOLTXH VFLLQFRGHG.HSHFDUJVgt.HSHF QHZ
VFLLQFRGHG.HSHF SXE.
H NHXE IDFWJHQHUDWHXEOLFSXE.HSHF. XEOLF.
QVWDQFH amp. GpFKLIIUHU DYHF OD FOp SXEOLTXH ampLSKHU GHF
ampLSKHUJHW.ampDGGLQJ .
GHFLQLWampLSKHUampltB NHXE.
LGLHU RQVH amp .
Cipher / I Fonction De chiffrage/dchiffrage cl symtrique SKC ou asymtrique DSK VWDWLF
ampLSKHU JHW.QVWDQFHWULQJ DOJRULWKP.
VWDWLF ampLSKHU JHW.QVWDQFHWULQJ DOJRULWKP WULQJ SURYLGHU.
H NH. quotDES/CFB/NoPaddingquot. quotRSA/ECB/PKCSPaddingquot YRLG LQLWLQW
RSPRGH . algorithmspcifie l algorithme / le mode / le padding compltion Ex
quotDES/CBC/PKCSPaddingquot. quotDES/OFB/PKCSPaddingquot.
H NH OJRULWKPDUDPHWHUV SDUDPV. YRLG LQLWLQW RSPRGH .
YRLG LQLWLQW RSPRGH .H NH OJRULWKPDUDPHWHUSHF SDUDPV.
H NH OJRULWKPDUDPHWHUSHF SDUDPV HFXUHDQGRP UDQGRP. YRLG
LQLWLQW RSPRGH .
YRLG LQLWLQW RSPRGH .H NH OJRULWKPDUDPHWHUV SDUDPV HFXUHDQGRP
UDQGRP.
H NH HFXUHDQGRP UDQGRP. YRLG LQLWLQW RSPRGH .
I Obtenir une instance I Initialiser avec lopration ENCRYPTMODE DECRYPTMODE et la cl
LGLHU RQVH amp .
Cipher / I Chiffrer/dchiffer lentre LGLHU RQVH amp I Finaliser EWHgt XSGDWHEWHgt
LQSXW.
EWHgt XSGDWHEWHgt LQSXW LQW LQSXWIIVHW LQW LQSXW/HQ.
LQW XSGDWHEWHgt LQSXW LQW LQSXWIIVHW LQW LQSXW/HQ EWHgt RXWSXW.
LQW XSGDWHEWHgt LQSXW LQW LQSXWIIVHW LQW LQSXW/HQ EWHgt RXWSXW
LQW RXWSXWIIVHW.
car il reste des donnes qui n ont pas t chiffres dans l instance EWHgt GRLQDO.
EWHgt GRLQDOEWHgt LQSXW.
LQW GRLQDOEWHgt RXWSXW LQW RXWSXWIIVHW.
EWHgt GRLQDOEWHgt LQSXW LQW LQSXWIIVHW LQW LQSXW/HQ.
LQW GRLQDOEWHgt LQSXW LQW LQSXWIIVHW LQW LQSXW/HQ EWHgt RXWSXW.
LQW GRLQDOEWHgt LQSXW LQW LQSXWIIVHW LQW LQSXW/HQ EWHgt RXWSXW
LQW RXWSXWIIVHW.
WULQJ JHWOJRULWKP.
URYLGHU JHWURYLGHU.
OJRULWKPDUDPHWHUV JHWDUDPHWHUV.
.QW JHWORFNLH.
HWXUQV WKH EORFN VLH LQ EWHV.
LQW JHWXWSXWLHLQW LQSXW/HQ.
I Extra HWXUQV WKH OHQJWK LQ EWHV WKDW DQ RXWSXW EXIIHU ZRXOG QHHG
WR EH LQ RUGHU WR KROG WKH UHVXOW RI WKH QHW XSGDWH RU GRLQDO
RSHUDWLRQ JLYHQ WKH LQSXW OHQJWK LQSXW/HQ LQ EWHV.
.
CipherInputStream javax. Cipher ciph ciph doit tre compltement initialis LGLHU RQVH amp
.io.io.InputStream is. Cipher ciph CipherOutputStreamjava.crypto.CipherOutputStream
Appliquer une fonction de chiffrage/dchiffrage sur un InputStreamou un OutputStream
tendent java.crypto.FilterOutputStream I Motivation I Constructeur CipherInputStreamjava.
javax.io.OutputStream is.FilterInputStream et java.io.
H VHF.QSXWWUHDP LV SXEOLF YRLG GHFUSW. Exemples SecretKey Data
ENCRYPTMODE Cipher Encrypted Data DECRYPTMODE Cipher Data SXEOLF YRLG
HQFUSW.H.QSXWWUHDP LV XWSXWWUHDP RVWULQJ DOJR HFUHW.
XWSXWWUHDP RVWULQJ DOJR HFUHW.H VHF.H.
WKURZV FHSWLRQ WKURZV FHSWLRQ ampLSKHU F FLSKHUJHW.QVWDQFHDOJR.
QVWDQFHDOJR. ampLSKHU F FLSKHUJHW.
H. FLQLWampLSKHUampltB VHF.
H. FLQLWampLSKHUampltB VHF.
QSXWWUHDP FLV ampLSKHU. ampLSKHU.QSXWWUHDPLV F .QSXWWUHDP FLV
QHZ ampLSKHU.
QSXWWUHDP LV F . QHZ ampLSKHU.
LQW L ZKLOH L FLVUHDG.
.
.
LQW L ZKLOH L FLVUHDG.
.
.
RVZULWHL.
RVZULWHL.
LGLHU RQVH amp .
Password Based Encryption PBE I Chiffrage/Dchiffrer partir dun mot de passe Les mots de
passe ne sont pas des cls sures I Ide Appliquer une fonction de hachage scuris MD.SHA. sur
le mot de passe pour fabriquer une cl secrte I Standard Password PBEWithMDAndDES
PKCS MessageDigest PBEWithSHAAndBitRC PKCS SecretKey LGLHU RQVH amp Data
ENCRYPTMODE Cipher Encrypted Data DECRYPTMODE Cipher Data .
PBE Cration du chiffreur/Dchiffreur WULQJ PRGH DUJYgt WULQJ SDVVZRUG DUJYgt
EWHgt VDOW EWH.
F EWH.
EWH.
EWH.
F EWH.
H EWH.
F EWH.
HH EWH.
LQW FRXQW DUDPHWHUSHF SDUDPSHF QHZ DUDPHWHUSHF VDOW FRXQW .
HSHF NHSHF QHZ . .HSHFSDVVZRUGWRampKDUUUD.
.
HDFWRU NI HFUHW.HDFWRUJHW. HFUHW.QVWDQFH LWKQG .
H SDVVZRUG.H NIJHQHUDWHHFUHW NHSHF . HFUHW.
QVWDQFH LWKQG . ampLSKHU F ampLSKHUJHW.
LI PRGHHTXDOV HQFUSW .
.
FLQLWampLSKHUampltB SDVVZRUG.H SDUDPSHF.
HOVH LI PRGHHTXDOV GHFUSW .
.
H SDUDPSHF. FLQLWampLSKHUampltB SDVVZRUG.
HOVH LGLHU RQVH amp .
int len void reset // remise zro du calcul I Produire le rsum public byte digest public byte
digestbyte input I Voir aussi java. int offset. SHA.security. I Alimenter le calcul LGLHU RQVH
amp void updatebyte input void updatebyte input void updatebyte input. MessageDigest
Hachage Scuris I Fonction produire un rsum avec une fonction de hachage scuris I Obtenir
une instance static MessageDigest getInstanceString algorithm static MessageDigest
getInstanceString algorithm.security.DigestInputStream. String provider
algorithmSHA.DigestOutputStream . MD. java.
QVWDQFH . Hachage scuris des donnes dun fichier EWDLQ D PHVVDJH GLJHVW
REMHFW HVVDJHLJHVW PG HVVDJHLJHVWJHW.
ampDOFXODWH WKH GLJHVW IRU WKH JLYHQ ILOH LOH.QSXWWUHDP ILV QHZ
LOH.QSXWWUHDPDUJVgt.
QSXWWUHDP EXILQ QHZ XIIHUHG. XIIHUHG.QSXWWUHDPILV.
EWHgt EXIIHU QHZ EWHgt LQW OHQJWK ZKLOH OHQJWK EXILQUHDGEXIIHU.
.
PGXSGDWHEXIIHU OHQJWK.
EXILQFORVH.
EWHgt UDZ PGGLJHVW.
.
LGLHU RQVH amp .
MAC HVVDJH XWKHQWLFDWLRQ ampRGH produire un rsum avec une fonction de
hachage scuris avec une cl VWDWLF amp JHW.QVWDQFHWULQJ DOJRULWKP.
QVWDQFHWULQJ DOJRULWKP WULQJ SURYLGHU. VWDWLF amp JHW.
algorithmDESMac.H NH. I Fonction I Obtenir une instance I Initialiser avec une cl I
Alimenter YRLG LQLW.
H NH OJRULWKPDUDPHWHUSHF SDUDPV. YRLG LQLW.
YRLG XSGDWHEWH LQSXW.
YRLG XSGDWHEWHgt LQSXW.
YRLG XSGDWHEWHgt LQSXW LQW RIIVHW LQW OHQ.
YRLG UHVHW.
UHPLVH j pUR GX FDOFXO HW GH OD FOp RQ GRLW UpLQLWLDOLVHU DYHF XQH
FOp.
EWHgt GRLQDO.
YRLG GRLQDOEWHgt RXWSXW LQW RXWIIVHW.
EWHgt GRLQDOEWHgt LQSXW.
LGLHU RQVH amp I Gnrer le MAC .
QVWDQFHWULQJ DOJRULWKP. Signature I Fonction Produire vrifier une signature partir
d une cl prive publique VWDWLF LJQDWXUH JHW.
QVWDQFHWULQJ DOJRULWKP WULQJ SURYLGHU. VWDWLF LJQDWXUH JHW.
. MDwithRSA. I Initialiser avec une cl prive pour la signature I Initialiser avec une cl publique
pour la vrification I Alimenter pour la signature et la vrification YRLG XSGDWHEWH
LQSXW. MDwithRSA. SHAwithRSA. I Obtenir une instance algorithm SHAwithDSA.
YRLG XSGDWHEWHgt LQSXW.
YRLG XSGDWHEWHgt LQSXW LQW RIIVHW LQW OHQ.
YRLG UHVHW.
UHPLVH j pUR GX FDOFXO EWHgt VLJQ.
H.H SXEOLF. YRLG LQLWHULIXEOLF.
H SULYDWH.H. YRLG LQLWLJQULYDWH.
LGLHU RQVH amp I Gnrer la signature VL LQLWLJQSULY.
.
I Vrifier la signature VL LQLWHULISXE.
.
ERROHDQ YHULIEWHgt VLJQDWXUHRHULI.
.
Signature Signer des donnes HW WKH SULYDWH NH ULYDWH.H SULY
SDLUJHWULYDWH.
HW UHDG WR VLJQ LJQDWXUH GVD LJQDWXUHJHW.QVWDQFH ZLWK .
JLYH LW RXU SULYDWH NH GVDLQLWLJQSULY.
JLYH WKH DOJ WKH GDWD XIIHUHG.QSXWWUHDPQHZ LOH.QSXWWUHDP EXILQ
QHZ XIIHUHG.QSXWWUHDPDUJVgt.
.
EWHgt EXIIHU QHZ EWHgt LQW OHQ ZKLOH EXILQDYDLODEOH.
.
OHQ EXILQUHDGEXIIHU.
GVDXSGDWHEXIIHU OHQ.
EXILQFORVH.
JHQHUDWH WKH VLJQDWXUH EWHgt UHDOLJ GVDVLJQ.
LGLHU RQVH amp .
Vrifier des donnes HW WKH VLJQDWXUH WR YHULI EWH WRHHULILJ HW WKH
SXEOLF NH XEOLF. Signature .H SXE SDLUJHWXEOLF.
QVWDQFH ZLWK . HW UHDG WR VLJQ LJQDWXUH GVD LJQDWXUHJHW.
JLYH LW RXU SXEOLF NH GVDLQLWHULISXE.
QSXWWUHDP QHZ LOH. JLYH WKH DOJ WKH GDWD XIIHUHG.QSXWWUHDP EXILQ
QHZ XIIHUHG.QSXWWUHDPDUJVgt.
.
EWHgt EXIIHU QHZ EWHgt LQW OHQ ZKLOH EXILQDYDLODEOH.
.
OHQ EXILQUHDGEXIIHU.
GVDXSGDWHEXIIHU OHQ.
EXILQFORVH.
YHULI WKH VLJQDWXUH LIGVDYHULIWRHHULILJ.
WUXH.
VWHPRXWSULQWOQ LJQDWXUH LV FRUUHFW .
HOVH VWHPRXWSULQWOQ LJQDWXUH LV FRUUHFW .
LGLHU RQVH amp .
Certificat I Motivation Associer une identit subject avec sa cl publique et certifier le tout par
une autorit de certification CA Support de stockage et du diffusion de la cl publique I Notions
PKI Public Key Infrastructure Identity Unix UID. java. business. program.security.
computer.security.XCRL .Certificat.CRL.security. X.cert.cert. LGLHU RQVH amp I Classes
java. Issuer celui qui a mis le certificat ie le CA CRL Certificate Revocation List RLU FRXUV
. bank.CertificateFactory java.security. organization. Distinguished Name.XCertificat
java.security.cert. java. Entity person.cert..cert.
CertificatFactory I Rcuprer une instance static CertificateFactory getInstanceString type
static CertificateFactory getInstanceString type. String provider typeX I Gnrer le ou les
Certificates prsents dans le inStream Certificate generateCertificateInputStream inStream
Collection generateCertificatesInputStream inStream LGLHU RQVH amp I Gnrer le ou les
CRL prsents dans le inStream CRL generateCRLInputStream inStream Collection
generateCRLsInputStream inStream .
void verifyPublicKey key throws CertificateException. String sigProvider throws
CertificateException. SignatureException. DER Principal getSubjectDN void checkValidity
void checkValidityDate date // pour la priode donne. I Consulter un Certificat X LGLHU
RQVH amp I Vrifier un Certificate . SignatureException. Certificate et XCertificate I Consulter
un Certificat PublicKey getPublicKey // rcupre la cl public pour vrifier une signature byte
getEncoded // retourne lencodage ASN. void verifyPublicKey key. Date getNotAfter // date de
fin la priode de validit Date getNotBefore // date de fin la priode de validit Principal
getIssuerDN // DN de lmtteur CA BigInteger getSerialNumber String getSigAlgName //
algorithme de signature byte getSigAlgParams // paramtre de lalgorithme byte getSignature
Lve une exception CertificateException.
Set getRevokedCertificates I Dtail dune XCRLEntry LGLHU RQVH amp byte getEncoded //
retourne lencodage ASN. CRL et XCRLEntry I Motivation Liste de rvocation des certificats Cl
corrompue. DER. I Tester la rvocation dun Certificate dans une CRL boolean
isRevokedCertificate cert I Parcourir les entres dune CRL XCRLEntry
getRevokedCertificateBigInteger serialNumber . Date getRevocationDate BigInteger
getSerialNumber boolean hasExtensions . employ licenci.
Trusted Certificate Entry Certificat appartenant une entity dans laquelle le keystore fait
confiance Chaque entre est dsigne par un alias .security. private key rfrence vers le certificat.
prives et certificats dans un fichier keystore L accs au fichier est protg par une cl storepass I
Consultation/Modification classe java.KeyStore Outil keytool du JDK I Concepts Reprsente la
structure de stockage des entres cls et certificats Key Entry LGLHU RQVH amp secret key.
Stockage des paires de cls I Motivation Stockage scuris de cls publiques.
QVWDQFHWULQJ WSH.HWRUH JHW. KeyStore I Protection Le keystore est protg par un
mot de passe Chaque entre peut tre protge par un deuxime niveau de mot de passe I
Obtenir une instance VWDWLF .
VWDWLF .HWRUH JHW.QVWDQFHWULQJ WSH WULQJ SURYLGHU.
VWDWLF WULQJ JHWHIDXOWSH.
WULQJ JHWSH.
PKCS prsent dans JSSE Retourne la proprit Java keystore.QSXWWUHDP VWUHDP
FKDUgt SDVVZRUG.type configure dans le fichier java.security LGLHU RQVH amp I
Charger/Stocker le KeyStore YRLG ORDG. Retourne le type du keystore typejks.
YRLG VWRUHXWSXWWUHDP VWUHDP FKDUgt SDVVZRUG.
FKDUJH OHV HQWUpHV SURWpJpHV SDU XQ PRW GH SDVVH VDXYHJDUGH OHV
HQWUpHV HQ SURWpJHDQW DYHF OH PRW GH SDVVH .
KeyStore I Parcourir le KeyStore LGLHU RQVH amp I Modifier une entre LQW VLH.
QRPEUH GHQWUpHV QXPHUDWLRQ DOLDVHV.
ERROHDQ FRQWDLQVOLDVWULQJ DOLDV.
ampHUWLILFDWH JHWampHUWLILFDWHWULQJ DOLDV.
ampHUWLILFDWHgt JHWampHUWLILFDWHampKDLQWULQJ DOLDV.
WULQJ JHWampHUWLILFDWHOLDVampHUWLILFDWH FHUW.
DWH JHWampUHDWLRQDWHWULQJ DOLDV.
H JHW.HWULQJ DOLDV FKDUgt SDVVZRUG. .
ERROHDQ LVampHUWLILFDWHQWUWULQJ DOLDV.
HQWUWULQJ DOLDV. ERROHDQ LV.
YRLG GHOHWHQWUWULQJ DOLDV.
YRLG VHWampHUWLILFDWHQWUWULQJ DOLDV ampHUWLILFDWH FHUW.
YRLG VHW.HQWUWULQJ DOLDV EWHgt NH ampHUWLILFDWHgt FKDLQ.
YRLG VHW.H NH FKDUgt SDVVZRUG ampHUWLILFDWHgt FKDLQ.HQWUWULQJ
DOLDV .
OHQWUpH HVW SURWpJpH SDU XQ DXWUH PRW GH SDVVH .
NS.cer PKCS .pb contient une chane de certificats .export pour les Navigateurs et les
Mailers IE. . KeyStore et formats I Formats de KeyStore Contient des paires de cls Requiert
une passphase pour protger l accs aux paires de cls PBE JKS format propritaire de SUN
fournis et utilis par dfaut par les outils Java Provider JCE PKCS . Fournis et utilis par JSSE
Provider JCE de JSSE LGLHU RQVH amp I Formats de Certificat DER X .pfx.p format d
change import.
QVWDQFH . .HWRUHJHW. Exemple avec KeyStore .HWRUH NV .
NVORDGLOH.QSXWWUHDPDUJYgt.
HWRUH WRampKDUUUD. RWHDVVH.
.
SULQWDOLDVNV.
ampHUWLILFDWHDFWRU FI ampHUWLILFDWHDFWRUJHW.QVWDQFH . .
QSXWWUHDP LV QHZ LOH.QSXWWUHDPDUJYgt. .
ampHUWLILFDWH FHUW FIJHQHUDWHampHUWLILFDWHLV.
NVVHWampHUWLILFDWHQWU PILUVW FHUW.
SULQWDOLDVNV.
HDLUHQHUDWRUJHW.HDLUHQHUDWRU NSJ . .QVWDQFH .
HWRUH VWRUH. SULYDWH VWDWLF YRLG SULQWDOLDV.
NSJLQLWLDOLH QHZ HFXUHDQGRP.
.
VWHPRXWSULQWOQ VLH VWRUHVLH.
.
.HDLU.HDLU SDLU NSJJHQHUDWH.
VWHPRXWSULQWOQ DOLDVHV .
ULYDWH.H SNH SDLUJHWULYDWH.
HQWU WRampKDUUUD. LGLHU RQVH amp ampHUWLILFDWHgt FHUWV FHUW
NVVHW.HQWU PVHFRQG SNH RWHDVVH.
FHUWV.
SULQWDOLDVNV.
IRU QXPHUDWLRQ HQXP VWRUHDOLDVHV.
HQXPKDVRUHOHPHQWV.
.
VWHPRXWSULQWHQXPQHWOHPHQW.
WRWULQJ.
.
NVVWRUHLOHXWSXWWUHDPDUJYgt.
RWHDVVH.HWRUH WRampKDUUUD.
.
ampHUWLILFDWH FHUW NVJHWampHUWLILFDWH PILUVW .
.
Gnre une demande CSR Certificate Signing Request pour envoi et signature une autorit de
certification CA supprime une entre. assigne un mot de passe une entre. assigne un mot de
passe un keystore. LGHQWLWGE LGLHU RQVH amp Visualisation OLVW SULQWFHUW
HSRUW FHUWUHT Exportation d une entre Gestion GHOHWH NHSDVVZG
VWRUHSDVVZG . Liste les entres du keystore Affiche le contenu du certificat Exporte la cl
publique dans un certificat. KeyTool I Commande pour la gestion de fichiers keystore keytool
command options NHVWRUH NHVWRUHILOH VWRUHSDVV VWRUHSDVV NHSDVV
NHSDVV DOLDV DOLDV I Options I Commandes Cration d un fichier keystore et de ses
entres JHQNH LPSRUW cre une entre avec une paire de cl dans un certificat autosign
importe soit un certificat considr de confiance trusted certificate ou un certificat sign par un
CA il remplace le certificat autosign importe des informations d une base d identit JDK .
KeyTool Exemple / le KS des CA NHWRRO OLVW NHVWRUH
BMUHOLEVHFXULWFDFHUWV VWRUHSDVV FKDQJHLW .HVWRUH WSH MNV
.HVWRUH SURYLGHU ltRXU NHVWRUH FRQWDLQV HQWULHV YHULVLJQFODVVFD
RQ XQ amp WUXVWHGampHUWQWU ampHUWLILFDWH ILQJHUSULQW .
ampampamp YHULVLJQVHUYHUFD RQ XQ amp WUXVWHGampHUWQWU
ampHUWLILFDWH ILQJHUSULQW .
amp WKDZWHVHUYHUFD UL HE amp WUXVWHGampHUWQWU ampHUWLILFDWH
ILQJHUSULQW .
ampampampampamp WKDZWHSHUVRQDOEDVLFFD UL HE amp
WUXVWHGampHUWQWU ampHUWLILFDWH ILQJHUSULQW .
ampamp YHULVLJQFODVVFD RQ XQ amp WUXVWHGampHUWQWU
ampHUWLILFDWH ILQJHUSULQW .
ampamp WKDZWHSHUVRQDOIUHHPDLOFD UL HE amp WUXVWHGampHUWQWU
ampHUWLILFDWH ILQJHUSULQW .
ampampampampampampamp WKDZWHSHUVRQDOSUHPLXPFD UL HE amp
WUXVWHGampHUWQWU ampHUWLILFDWH ILQJHUSULQW .
amp WKDZWHSUHPLXPVHUYHUFD UL HE amp WUXVWHGampHUWQWU
ampHUWLILFDWH ILQJHUSULQW .
ampampamp Liste les certificats des CA LGLHU RQVH amp .
KeyTool Exemple / NHWRRO OLVW NHWRRO HUURU .HVWRUH ILOH GRHV QRW
HLVW KRPHGRQVHNHVWRUH /LVWH OH . R O UHQREOH F ampUpH XQH HQWUpH
DYHF DOLDV GLGLHU NHSDVV WRWRWRWR NHVWRUH PRQNVMNV VWRUHSDVV
WXWXWXWX YDOLGLW XQH SDLUH GH FOp NHWRRO OLVW DOLDV GLGLHU
NHVWRUH PRQNVMNV VWRUHSDVV WXWXWXWX GLGLHU XH RY amp NHQWU
ampHUWLILFDWH ILQJHUSULQW . SDU GpIDXW NHWRRO JHQNH GQDPH FQ LGLHU
RQVH RX .
HVWRUH WSH MNV .HVWRUH SURYLGHU ltRXU NHVWRUH FRQWDLQV HQWULHV
VOYDLQ XH RY amp NHQWU ampHUWLILFDWH ILQJHUSULQW . ampUpH XQH
DXWUH HQWUpH NHWRRO JHQNH DOLDV VOYDLQ NHSDVV WDWDWDWD
NHVWRUH PRQNVMNV VWRUHSDVV WXWXWXWXDYHF XQH SDLUH GH FOp
NHWRRO OLVW NHVWRUH PRQNVMNV VWRUHSDVV WXWXWXWX . /LVWH
ODOLDV GDQV OH .
ampamp GLGLHU XH RY amp NHQWU ampHUWLILFDWH ILQJHUSULQW .
/LVWH OHV HQWUpHV GX . LGLHU RQVH amp .
/ UHQREOH amp HULDO QXPEHU FIG DOLG IURP XH RY amp XQWLO UL RY amp
ampHUWLILFDWH ILQJHUSULQWV ampamp LGLHU RQVH amp SRUW XQ HQWUpH
VRXV OD IRUPH GXQ FHUWLILFDW .. / UHQREOH amp .VVXHU amp LGLHU RQVH .
KeyTool Exemple / NHWRRO HSRUW DOLDV GLGLHU ILOH GLGLHUFHU NHVWRUH
PRQNVMNV VWRUHSDVV WXWXWXWX ampHUWLILFDWH VWRUHG LQ ILOH
GLGLHUFHU NHWRRO SULQWFHUW ILOH GLGLHUFHU ZQHU amp LGLHU RQVH .
amp pQqUH XQH GHPDQGH GH FHUWLILFDWLRQ IILFKH OH FRQWHQX GX .amp.
IILFKH FH FHUWLILFDW NHWRRO FHUWUHT DOLDV GLGLHU ILOH GLGLHUFVU
NHVWRUH PRQNVMNV VWRUHSDVV WXWXWXWX NHSDVV WRWRWRWR NHWRRO
OLVW NHVWRUH GRQVHS VWRUHWSH . HSRUWp GH XQ GHV SURYLGHUV GRLW
VXSSRUWHU .
.
HVWRUH SURYLGHU ltRXU NHVWRUH FRQWDLQV HQWULHV QDGLD XH RY amp
WUXVWHGampHUWQWU ampHUWLILFDWH ILQJHUSULQW .VVXHU amp DGLD
HQQDQL . amp / DOHQFLHQQHV RUG amp . amp / DOHQFLHQQHV RUG amp HULDO
QXPEHU F DOLG IURP XH RY amp XQWLO XQ D amp ampHUWLILFDWH
ILQJHUSULQWV ampamp amp UXVW WKLV FHUWLILFDWHquot gtQR HV
ampHUWLILFDWH ZDV DGGHG WR NHVWRUH NHWRRO OLVW NHVWRUH
PRQNVMNV VWRUHSDVV WXWXWXWX .HVWRUH WSH MNV . KeyTool Exemple /
NHWRRO LPSRUW DOLDV QDGLD ILOH QDGLDSE NHVWRUH PRQNVMNV
VWRUHSDVV WXWXWXWX ZQHU amp DGLD HQQDQL .
ampamp VOYDLQ XH RY amp NHQWU ampHUWLILFDWH ILQJHUSULQW .
ampamp GLGLHU XH RY amp NHQWU ampHUWLILFDWH ILQJHUSULQW .
amp .PSRUWH XQH HQWUpH j SDUWLU GXQ FHUWLILFDW . NHWRRO GHOHWH
DOLDV VOYDLQ NHVWRUH PRQNVMNV VWRUHSDVV WXWXWXWX .
LGLHU RQVH amp XSSULPH XQH HQWUpH . /LVWH OHV HQWUpHV GX .
FRQVLGpUp GH FRQILDQFH L gtQR OH FHUWLILFDW QHVW SDV DMRXWp DX .
/F.QIRUPDWLRQV VXU OD VpFXULWpRV ampHUWLILFDWV pOHFWLRQQH XQ
FHUWLILFDW HW HSRUWH OH LGLHU RQVH amp NHWRRO SULQWFHUW ILOH
GRQVHFHU IILFKDJH GXQ FHUWLILFDW ZQHU PDLOGGUHVV
GLGLHUGRQVHLPDJIU amp LGLHU RQVH . DYHF ampRPPXQLFDWRUXWLOV.
KeyTool Exemple / SRUW GH HWVFDSH ampRPPXQLFDWRU DYHF XWLOVSWLRQ .
ampODVV HWVFDSH HW HSRUWp GH HWVFDSH HUVRQD RW DOLGDWHG
ZZZYHULVLJQFRPUHSRVLWRU .QFRUS E HI/. VLJQp SDU XQ amp LJLWDO
.QWHUQHWampRQWHQXampHUWLILFDWVHUVRQQHO SRUW GH .
QGLYLGXDO XEVFULEHUHUVRQD RW DOLGDWHG ZZZYHULVLJQFRPUHSRVLWRU
.QFRUS HI/.QF ./F.VVXHU amp HULLJQ ampODVV amp . HULLJQ UXVW HWZRUN
HULLJQ .
HULLJQ UXVW HWZRUN HULLJQ .QF HULDO QXPEHU HIIEIEGIHDEG DOLG IURP XH
RY amp XQWLO XQ DQ amp ampHUWLILFDWH ILQJHUSULQWV ampampamp ampamp
.
et les valeurs des rsum Aliasname.SF Ajoute le Manifest Contient les rsums des entres I
Fonctions Signature d une archive Java jarsigner options jarfile alias LGLHU RQVH amp
Verification d une archive Java jarsigner verify options jarfile I Voir
Bdocs/tooldocs/win/jarsigner. le nom de l algo de signature SHA.DSA Contient la signature
du fichier Aliasname.SF Signature File Contient les noms des fichiers.html . Signature de
code I Commande jarsigner Ajoute entres l archive pour chaque signataire alias Aliasname.
Outils Keytool et JarSigner BGRFVWRROGRFVWRROVKWPO VHFXULW LGLHU RQVH
amp .
XH RY amp ..... XH RY amp . JarSigner Exemple MDU FI DUFKLYHMDU FODVV MDYD
MDUVLJQHU NHVWRUH GGMNV VLJQHGMDU VDUFKLYHMDU DUFKLYHMDU
GLGLHU MDUVLJQHU YHULI YHUERVH VDUFKLYHMDU XH RY amp . XH HE amp
WURQJampOLHQWFODVV XH HE amp WURQJHUYHUFODVV XH HE amp
WURQJampOLHQWMDYD XH HE amp WURQJHUYHUMDYD VLJQDWXUH ZDV
YHULILHG HQWU LV OLVWHG LQ PDQLIHVW DW OHDVW RQH FHUWLILFDWH ZDV
IRXQG LQ NHVWRUH DW OHDVW RQH FHUWLILFDWH ZDV IRXQG LQ LGHQWLW
VFRSH LGLHU RQVH amp VP VP VP VP V P N L MDU YHULILHG .
crypto.security.Key key Key doPhaseKey key.KeyAgreement LGLHU RQVH amp static
KeyAgreementgetInstanceString algorithm void initjava. Echange scuris de cl KAP Key
Agreement Protocol change une cl secrte entre deux parties Application cl de session
symtrique I Motivation I Protocoles DiffieHellman PKCS. boolean lastPhase DH est fournit
par JCE de Baltimore QGHU ampRQVWUXFWLRQ Q ampRQVWUXFWLRQ . I JCE classe
javax.
for any lt x lt S sends Dy S.QLWLDOLVDWLRQ URWRFROH Message choisir un couple
appropri de nombres premiers S HW D. for any lt y lt S receives Dx and calculates KDxy
receives Dy and calculates KDyx . Echange scuris de cl DiffieHellman . . . tels que ltDltS a et
p sont publies publiquement LGLHU RQVH amp FWLRQV sends Dx S. .
html http//www.entrust.htm DSTC http//security. Providers I La liste
http//java.wumpus.au/projects/java/release.com/ EntrustR Technologies
http//www.phaos.sun.edu.at/ .cryptix.org/ LGLHU RQVH amp Cryptix http//www.html IAIK
http//jcewww.baltimore.au/crypto/aba.dstc.org/jce.openjce.bouncycastle.com eSec exABA
http//www.com.com/toolkit/java/index.iaik.org/products/jce/ Phaos Technology
http//www.rsasecurity.com RSA Security http//www.html http//www.html I Quelques providers
Baltimore KeyTools http//www.com/products/jce/jceproviders.
. Blowfish. I Key and Key pair generation I Signing MDwithRSA. . . DES. and HMACwithMD..
. IDEA. I MAC DES. and RC. I Password Based Encryption PBE MD with DES. DESede.
LGLHU RQVH amp I Keystore. SHA with RC bits I Message digests SHA. IDEA. DESede.
ABA JCE Provider I JDK . SHA. HMACwithSHA. I Cipher RSA. Twofish. and MD.. .
. HMACSHA. HMACMD. Serpent. ElGamal/PKCS /dev/urandom on systems that support it
FreeBSD. Cryptix JCE Provider I URL http//www. MD.org I JDKs . MD. OpenBSD and
possibly other UNIXen I Signatures I Assymetric ciphers I SecureRandom SPIs . . ECB.
Linux. LMQGDHO..cryptix. RIPEMD. RC. RSASSAPSS RSA/PKCS. Twofish none
DiffieHellman CBC. openpgpCFB MD. OFBblocksize. Tiger I Password Based Encryption
PBE I KeyAgreements I Modes I Hashes I MACs LGLHU RQVH amp HMACMD. CAST.
HMACRIPEMD. I Ciphers Blowfish. and . HMACMD. RC. DES. . . SHA//. SHA. Square.
SKIPJACK. CFB. HMACRIPEMD.. RSASSAPKCS. HMACSHA. blocksize. RIPEMD. SHA.
TripleDES. MARS. HMACTiger RawDSA. RC. .. IDEA.
I Voir JAVAHOMEdocsguidesecurityHowToImplAProvider. MessageDigestSpi.html LGLHU
RQVH amp I Exercice Le faire pour l algorithme de CESAR . Implmentation dun Provider
JCE I Implmenter Une classe final Provider et des classes SPI CipherSpi.
Implmentation dun Provider JCE I Exercice Un Provider pour l algorithme de CESAR La
classe Provider installer SDFNDJH PRQMFHMFHSURYLGHU SXEOLF ILQDO FODVV
RQampURYLGHU HWHQGV MDYDVHFXULWURYLGHU SULYDWH VWDWLF ILQDO
WULQJ RQamp . SXEOLF RQampURYLGHU. RQamp amp HDN ampUSWR URYLGHU
SULYDWH VWDWLF ILQDO GRXEOH .
. . VXSHU .
amp SXW ampLSKHUamp PRQMFHMFHSURYLGHUFLSKHUamp .
SXW OJOLDVampSKHUamp amp .
SXW .HHQHUDWRU .HHQHUDWRUamp PRQMFHMFHSURYLGHUNHamp.
HDFWRU PRQMFHMFHSURYLGHUNHIDFWRUamp. SXW HFUHW.HDFWRU .
LGLHU RQVH amp .
Extra JCE .
com/rsalabs/pkcs/ . PKCS XEOLF. coordonn par RSA I dfinissent les formats des lments de
cryptographie PKCS RSA Cryptography Standard Inclut PKCS et PKCS LGLHU RQVH amp
PKCS DiffieHellman Key Agreement Standard PKCS PasswordBased Cryptography
Standard PKCS ExtendedCertificate Syntax PKCS Cryptographic Message Syntax PKCS
PrivateKey Information Syntax PKCS Selected Attribute Types Standard PKCS Certification
Request Syntax Standard PKCS Cryptographic Token Interface Standard PKCS Personal
Information Exchange Syntax Standard PKCS Elliptic Curve Cryptography Standard PKCS
Cryptographic Token Information Format Standard I Voir http//www.rsa.H ampUSWRJUDSK
WDQGDUGV I ensemble de standards pour la mise en place des IGC.
com/developer/java/faqs. Cerificats X. OpenCA www.com/ https//www.thawte. Priv LGLHU
RQVH amp Motivation une socit est sa propre autorit de certification pour ses employs et ses
applications dans les changes intranet.idealx. Entrust.verisign. iPlanet Certificate
Management Server developer.entrust.org.openca.com .org .com/resources/wp/index.htm I
CA Public Verign. IDXPKI idxpki.html http//www. Thawte.iplanet. PKI et CA I PKI Private Key
Infrastructure http//www.
HttpsURLConnection. Remarque Avant il fallait bricoler avec les SocketFactory LGLHU
RQVH amp I Java Authentication and Authorization Service JAAS Les PAM peuvent tre
utiliss des moyens cryptographiques . FTP. RMI SSL Secure Sockets Layer et TLS
Transport Layer Security SecureSocket. Telnet. Utilise le JCE et ajoute un provider Intgr au
JSE. SecureServerSocket. JSSE et JAAS I Java Secure Socket Extension JSSE Extension
aux sockets pour scuriser les protocoles bass sur TCP/IP HTTP. NNTP.
dsig JSR XML Digital Encryption APIs .w.org/TR/xmlenccore/ API Java LGLHU RQVH amp
JSR XML Trust Service APIs JSR XML Digital Signature APIs javax. XML et Scurit I
Evolution vers le gestion des cls en XML et vers les documents XML signs et chiffrs
Spcifications XKMS XML Key Management Specification http//www.org/TR/xmldsigcore/
XML Digital Encryption http//www.xml.xmltrustcenter.org/xkms XML Digital Signature
http//www.security.w.
CryptoSafe. I JavaCard Packages javacard. Carte Crypto I Cartes puce pourvue de
fonctions cryptographiques logicielles ou matrielles Cartes PKI GemSafe.
Cryptographie.security.crypto. JavaCard. javacardx. pour les applets utilisant de la
cryptographie LGLHU RQVH amp I OCF CardService .
LGLHU RQVH amp . KVM. JCE et JME I Motivation QGHU ampRQVWUXFWLRQ Q
ampRQVWUXFWLRQ Faible mmoire.crypto. Processeur cryptographique I Pistes les API
JavaCard Packages javacard.crypto. javacardx.
/index. en Franais http//www. nd Edition. Oreilly.pdf http//java. Bibliographie I Livre Jonathan
B.campuspress.java. Perrone.pdf http//jsp.html http//servlet. ISBN .sun.net
JAVAHOMEdocsguidesecurityCryptoSpec. Jamie Jaworski amp Paul J. May . Java Security
.pdf I Guide LGLHU RQVH amp I Tutorial I Prsentation JavaOne I Articles http//www.sun. Ed
CampusPress.html http//java. May .com/products/jsse/JavaOneJSSE.com/onjava/security/
.com/javaone/javaone/pdfs/e. pages. Java Security.com/docs/books/tutorial/security. Java
Cryptography. Knudsen .com/javaone/javaone/pdfs/TS.html
JAVAHOMEdocsguidesecurityHowToImplAProvider. //.java.onjava.sun. Oreilly. Scott Oaks.
st Edition.sun.
Téléchargement