Académique Documents
Professionnel Documents
Culture Documents
Jce
Jce
Didier DONSEZ
Universit Joseph Fourier
IMA IMAG/LSR/ADELE
'LGLHU'RQVH]#LPDJIU
Motivation
Fournit une API standard
pour lusage de fonctions cryptographique
Chiffrage, signature,
'LGLHU'RQVH]-&(
Principes
Indpendance
Introprabilit
Extensibilit
Nouveaux algorithmes (AES par exemple)
Architecture
Providers & Key Management
'LGLHU'RQVH]-&(
Concepts
Slection dimplmentations chez les Providers
fabriques pour lobtention des instances
XXX.getInstance(algo)
// le premier qui offre l implantation dans la liste des providers
XXX.getInstance(algo,provider)
Architecture du JCE
$SS
Cipher.getInstance("DES");
Cipher.getInstance("DES","ABA");
Cipher.getInstance("Cesar");
$SS
$SS
$3,
'LGLHU'RQVH]-&(
63,
-&(&LSKHU6HFXUH5DQGRP
.H\$JUHHPHQW.H\*HQHUDWRU.H\)DFWRU\
0HVVDJH'LJHVW0$&6LJQDWXUH
&63
6XQ-&(
&63
$%$
&63
&U\SWL[
56$
56$
56$
'(6
'(6
5LQGMDHO
,'($
2.
2.
.2
Architecture du JCE
$SS
Cipher.getInstance("DES");
Cipher.getInstance("DES","ABA");
Cipher.getInstance("Cesar");
$SS
$SS
$3,
'LGLHU'RQVH]-&(
63,
-&(&LSKHU6HFXUH5DQGRP
.H\$JUHHPHQW.H\*HQHUDWRU.H\)DFWRU\
0HVVDJH'LJHVW0$&6LJQDWXUH
&63
6XQ-&(
&63
$%$
&63
&U\SWL[
56$
56$
56$
'(6
'(6
,'($
5LQGMDHO
&63
0RQ-&(
&HVDU
2.
2.
2.
Installation
Chargez et dcompressez le JCE de Sun
et dautres providers (ABA, )
Ajoutez les JAR
'LGLHU'RQVH]-&(
Installation
Enregistrez les providers (selon leurs priorits)
Statiquement
Fichier -$9$B+20(MUHOLEVHFXULW\MDYDVHFXULW\
security.provider.1=com.sun.crypto.provider.SunJCE
security.provider.2=au.net.aba.crypto.provider.ABAProvider
security.provider.3=cryptix.jce.provider.CryptixCrypto
security.provider.4=
'LGLHU'RQVH]-&(
A lexcution
MDYDVHFXULW\6HFXULW\DGG3URYLGHUQHZFRPVXQFU\SWRSURYLGHU6XQ-&(
MDYDVHFXULW\6HFXULW\DGG3URYLGHUQHZDXQHWDEDFU\SWRSURYLGHU$%$3URYLGHU
java.security
java.security.cert
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
Provider
Security
Cipher
SecureRandom
Key
KeyPair
KeyPairGenerator MessageDigest
MAC
Signature
KeyStore
Certificate (java.security.cert.Certificate)
CipherSpi
'LGLHU'RQVH]-&(
SecureRandom
Gnrateur de nombres alatoires
Motivation
'LGLHU'RQVH]-&(
HWQXP%LWV ELWVGHSRLGVIRUWj
YRLGQH[W%\WHVE\WH>@E\WHV
Motivation
la gnration de cls
Ala de session
Risque
Importance de la graine
'LGLHU'RQVH]-&(
Voir
KWWSZZZUVDVHFXULW\FRPVROXWLRQVGHYHORSHUVZKLWHSDSHUV$UWLFOH351*SGI
IWSIWSUVDVHFXULW\FRPSXESGIVEXOOSGI
10
11
java.security.KeyFactory
Convertit (et verifie) une (ou des) cls partir d un objet existant ()
Exemple
'LGLHU'RQVH]-&(
X509EncodedKeySpec bobPubKeySpec
= new X509EncodedKeySpec(bobEncodedPubKey);
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);
Signature sig = Signature.getInstance("DSA");
sig.initVerify(bobPubKey); sig.update(data); sig.verify(signature);
Secrte
javax.crypto.SecretKeyFactory
Convertit (et verifie) une (ou des) cls partir d un objet existant ()
Commun
javax.crypto.KeyGenerator
12
PrivateKey, PublicKey
DSAPrivateKey, DSAPublicKey,RSAPrivateCrtKey, RSAPrivateKey, RSAPublicKey
Mthodes : String getAlgorithm(), byte[] getEncoded(), String getFormat()
Obtenir/counstruire une instance dun gnrateur .H\3DLU*HQHUDWRU
Initialiser le gnrateur
'LGLHU'RQVH]-&(
YRLGLQLWLDOL]H$OJRULWKP3DUDPHWHU6SHFSDUDPV
YRLGLQLWLDOL]H$OJRULWKP3DUDPHWHU6SHFSDUDPV 6HFXUH5DQGRPUDQGRP
YRLGLQLWLDOL]HLQWNH\VL]H
YRLGLQLWLDOL]HLQWNH\VL]H 6HFXUH5DQGRPUDQGRP
.H\3DLUJHQ.H\3DLU
3ULYDWH.H\JHW3ULYDWH
3XEOLF.H\JHW3XEOLF
'LGLHU'RQVH]-&(
'LJLWDO6LJQDWXUH$OJRULWKP
.H\3DLU*HQHUDWRU NH\*HQ .H\3DLU*HQHUDWRUJHW,QVWDQFH'6$681
LQWELWVL]H
NH\*HQLQLWLDOL]HELWVL]HUDQGRP
.H\SDLU
.H\3DLU SDLU NH\*HQJHQHUDWH.H\3DLU
3ULYDWH.H\SULY SDLUJHW3ULYDWH
3XEOLF.H\ SXE SDLUJHW3XEOLF
13
'LGLHU'RQVH]-&(
IDEULTXHU ODFOpSULYpH
$VFLL(QFRGHG.H\6SHFSULY.H\6SHF QHZ$VFLL(QFRGHG.H\6SHFDUJV>@
3ULY.H\NH\3ULY IDFWJHQHUDWH3ULYDWHSULY.H\6SHF
FKLIIUHU DYHFODFOpSULYpH
&LSKHUHQF &LSKHUJHW,QVWDQFH56$(&%3.&63DGGLQJ$%$
HQFLQLW&LSKHU(1&5<37B02'(NH\3ULYUDQG
IDEULTXHU ODFOpSXEOLTXH
$VFLL(QFRGHG.H\6SHFSXE.H\6SHF QHZ$VFLL(QFRGHG.H\6SHFDUJV>@
3XEOLF.H\NH\3XE IDFWJHQHUDWH3XEOLFSXE.H\6SHF
GpFKLIIUHU DYHFODFOpSXEOLTXH
&LSKHUGHF &LSKHUJHW,QVWDQFH56$(&%3.&63DGGLQJ$%$
GHFLQLW&LSKHU'(&5<37B02'(NH\3XE
14
15
Cipher (1/2)
Fonction
'LGLHU'RQVH]-&(
YRLGLQLWLQWRSPRGH.H\NH\
YRLGLQLWLQWRSPRGH.H\NH\$OJRULWKP3DUDPHWHUVSDUDPV
YRLGLQLWLQWRSPRGH.H\NH\$OJRULWKP3DUDPHWHU6SHFSDUDPV
YRLGLQLWLQWRSPRGH.H\NH\$OJRULWKP3DUDPHWHU6SHFSDUDPV 6HFXUH5DQGRPUDQGRP
YRLGLQLWLQWRSPRGH.H\NH\$OJRULWKP3DUDPHWHUVSDUDPV6HFXUH5DQGRPUDQGRP
YRLGLQLWLQWRSPRGH.H\NH\6HFXUH5DQGRPUDQGRP
16
Cipher (2/2)
Chiffrer/dchiffer lentre
E\WH>@XSGDWHE\WH>@LQSXW
E\WH>@XSGDWHE\WH>@LQSXW LQWLQSXW2IIVHW LQWLQSXW/HQ
LQWXSGDWHE\WH>@LQSXW LQWLQSXW2IIVHW LQWLQSXW/HQE\WH>@RXWSXW
LQWXSGDWHE\WH>@LQSXW LQWLQSXW2IIVHW LQWLQSXW/HQE\WH>@RXWSXW LQWRXWSXW2IIVHW
Finaliser
'LGLHU'RQVH]-&(
(car il reste des donnes qui n ont pas t chiffres dans l instance)
E\WH>@ GR)LQDO
E\WH>@ GR)LQDOE\WH>@LQSXW
LQWGR)LQDOE\WH>@RXWSXW LQWRXWSXW2IIVHW
E\WH>@ GR)LQDOE\WH>@LQSXW LQWLQSXW2IIVHW LQWLQSXW/HQ
LQWGR)LQDOE\WH>@LQSXW LQWLQSXW2IIVHW LQWLQSXW/HQE\WH>@RXWSXW
LQWGR)LQDOE\WH>@LQSXW LQWLQSXW2IIVHW LQWLQSXW/HQE\WH>@RXWSXW LQWRXWSXW2IIVHW
Extra
javax.crypto.CipherInputStream
javax.crypto.CipherOutputStream
Motivation
Appliquer une fonction de chiffrage/dchiffrage
sur un InputStreamou un OutputStream
tendent java.io.FilterInputStream et java.io.FilterOutputStream
Constructeur
CipherInputStream(java.io.InputStream is, Cipher ciph)
CipherOutputStream(java.io.OutputStream is, Cipher ciph)
'LGLHU'RQVH]-&(
17
18
Exemples
SecretKey
Data
Cipher
(ENCRYPT_MODE)
Encrypted
Data
Cipher
Data
(DECRYPT_MODE)
'LGLHU'RQVH]-&(
19
Ide
Appliquer une fonction de hachage scuris (MD5,SHA1, ) sur le mot de
passe pour fabriquer une cl secrte
Standard
Password
PBEWithMD5AndDES (PKCS#5)
MessageDigest
PBEWithSHA1And128BitRC4 (PKCS#12)
'LGLHU'RQVH]-&(
SecretKey
Data
Cipher
(ENCRYPT_MODE)
Encrypted
Data
Cipher
(DECRYPT_MODE)
Data
'LGLHU'RQVH]-&(
6WULQJPRGH DUJY>@
6WULQJSDVVZRUG DUJY>@
E\WH>@VDOW ^
E\WH[FE\WH[E\WH[E\WH[F
E\WH[HE\WH[FE\WH[HHE\WH[
`
LQW FRXQW
3%(3DUDPHWHU6SHFSDUDP6SHF QHZ3%(3DUDPHWHU6SHFVDOWFRXQW
3%(.H\6SHFNH\6SHF QHZ3%(.H\6SHFSDVVZRUGWR&KDU$UUD\
6HFUHW.H\)DFWRU\NI 6HFUHW.H\)DFWRU\JHW,QVWDQFH3%(:LWK0'$QG'(6
6HFUHW.H\SDVVZRUG.H\ NIJHQHUDWH6HFUHWNH\6SHF
&LSKHUF &LSKHUJHW,QVWDQFH3%(:LWK0'$QG'(6
LIPRGHHTXDOVHQFU\SW^
FLQLW&LSKHU(1&5<37B02'(SDVVZRUG.H\SDUDP6SHF
`HOVHLIPRGHHTXDOVGHFU\SW^
FLQLW&LSKHU'(&5<37B02'(SDVVZRUG.H\SDUDP6SHF
`HOVH^
20
21
Alimenter le calcul
'LGLHU'RQVH]-&(
Produire le rsum
public byte[] digest()
public byte[] digest(byte[] input)
Voir aussi
java.security.DigestInputStream, java.security.DigestOutputStream
Hachage scuris
des donnes dun fichier
2EWDLQDPHVVDJHGLJHVWREMHFW
0HVVDJH'LJHVWPG 0HVVDJH'LJHVWJHW,QVWDQFH0'
'LGLHU'RQVH]-&(
&DOFXODWHWKHGLJHVWIRUWKHJLYHQILOH
)LOH,QSXW6WUHDPILV QHZ)LOH,QSXW6WUHDPDUJV>@
%XIIHUHG,QSXW6WUHDPEXILQ QHZ%XIIHUHG,QSXW6WUHDPILV
E\WH>@EXIIHU QHZE\WH>@
LQW OHQJWK
ZKLOHOHQJWK EXILQUHDGEXIIHU ^
PGXSGDWHEXIIHUOHQJWK
`
EXILQFORVH
E\WH>@UDZ PGGLJHVW
22
Fonction
algorithm=DESMac,
'LGLHU'RQVH]-&(
Alimenter
YRLGXSGDWHE\WHLQSXW
YRLGXSGDWHE\WH>@LQSXW
YRLGXSGDWHE\WH>@LQSXW LQW RIIVHW LQWOHQ
YRLG UHVHW UHPLVHj]pURGXFDOFXOHWGHODFOpRQGRLWUpLQLWLDOLVHUDYHFXQHFOp
Gnrer le MAC
E\WH>@ GR)LQDO
YRLGGR)LQDOE\WH>@RXWSXW LQWRXW2IIVHW
E\WH>@ GR)LQDOE\WH>@LQSXW
23
24
Signature
Fonction
YRLGLQLW6LJQ3ULYDWH.H\SULYDWH.H\
YRLGLQLW9HULI\3XEOLF.H\SXEOLF.H\
'LGLHU'RQVH]-&(
YRLGXSGDWHE\WHLQSXW
YRLGXSGDWHE\WH>@LQSXW
YRLGXSGDWHE\WH>@LQSXW LQW RIIVHW LQWOHQ
YRLG UHVHW UHPLVHj]pURGXFDOFXO
E\WH>@ VLJQ
ERROHDQYHULI\E\WH>@VLJQDWXUH7R9HULI\
'LGLHU'RQVH]-&(
25
'LGLHU'RQVH]-&(
26
27
Certificat
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
Notions
'LGLHU'RQVH]-&(
9RLUFRXUV3.,
Classes
java.security.cert.CertificateFactory
java.security.cert.Certificat, java.security.cert.X509Certificat
java.security.cert.CRL, java.security.cert.X509CRL
28
CertificatFactory
Rcuprer une instance
static CertificateFactory getInstance(String type)
static CertificateFactory getInstance(String type, String provider)
type=X509
'LGLHU'RQVH]-&(
29
Certificate et X509Certificate
Consulter un Certificat
'LGLHU'RQVH]-&(
Principal getSubjectDN()
void checkValidity()
void checkValidity(Date date) // pour la priode donne.
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()
Vrifier un Certificate
30
CRL et X509CRLEntry
Motivation
Liste de rvocation des certificats
Cl corrompue, employ licenci,
31
Consultation/Modification
classe java.security.KeyStore
Outil keytool du JDK
Concepts
'LGLHU'RQVH]-&(
32
KeyStore
Protection
Le keystore est protg par un mot de passe
Chaque entre peut tre protge par un deuxime niveau de mot de passe
VWDWLF.H\6WRUHJHW,QVWDQFH6WULQJW\SH
VWDWLF.H\6WRUHJHW,QVWDQFH6WULQJW\SH6WULQJ SURYLGHU
type=jks, PKCS12 (prsent dans JSSE)
VWDWLF6WULQJJHW'HIDXOW7\SH
'LGLHU'RQVH]-&(
6WULQJJHW7\SH
Charger/Stocker le KeyStore
FKDUJHOHVHQWUpHVSURWpJpHVSDUXQPRWGHSDVVH
VDXYHJDUGHOHVHQWUpHVHQSURWpJHDQWDYHFOHPRWGHSDVVH
33
KeyStore
Parcourir le KeyStore
'LGLHU'RQVH]-&(
YRLGGHOHWH(QWU\6WULQJDOLDV
YRLGVHW&HUWLILFDWH(QWU\6WULQJDOLDV &HUWLILFDWHFHUW
YRLGVHW.H\(QWU\6WULQJDOLDVE\WH>@ NH\ &HUWLILFDWH>@ FKDLQ
YRLGVHW.H\(QWU\6WULQJDOLDV.H\ NH\FKDU>@ SDVVZRUG &HUWLILFDWH>@ FKDLQ
OHQWUpHHVWSURWpJpHSDUXQDXWUHPRWGHSDVVH
34
KeyStore et formats
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)
'LGLHU'RQVH]-&(
format d change (import,export) pour les Navigateurs et les Mailers (IE, NS,
)
Fournis et utilis par JSSE (Provider JCE de JSSE)
Formats de Certificat
DER X509 (.cer)
PKCS#7 (.p7b) : contient une chane de certificats
35
'LGLHU'RQVH]-&(
36
KeyTool
Commande pour la gestion de fichiers keystore
Options
Commandes
LGHQWLW\GE
'LGLHU'RQVH]-&(
Visualisation
OLVW
SULQWFHUW
Gestion
GHOHWH
NH\SDVVZG
VWRUHSDVVZG
'LGLHU'RQVH]-&(
38
39
/LVWHOH.6
SDUGpIDXW
!NH\WRRO JHQNH\ GQDPH FQ 'LGLHU 'RQVH]RX ,0$*R 8-)O *UHQREOHF )5 ?
&UpHXQHHQWUpHDYHF
DOLDV GLGLHU NH\SDVVWRWRWRWR NH\VWRUHPRQNVMNV VWRUHSDVVWXWXWXWX YDOLGLW\ XQHSDLUHGHFOp
!NH\WRRO OLVW DOLDV GLGLHU NH\VWRUHPRQNVMNV VWRUHSDVVWXWXWXWX
GLGLHU7XH 1RY &(7 NH\(QWU\
&HUWLILFDWHILQJHUSULQW 0''''($$)'))$
/LVWHODOLDVGDQVOH.6
&UpHXQHDXWUHHQWUpH
'LGLHU'RQVH]-&(
/LVWHOHVHQWUpHV
GX.6
40
'LGLHU'RQVH]-&(
([SRUWXQHQWUpH
VRXVODIRUPH
GXQFHUWLILFDW'(5;
$IILFKHFHFHUWLILFDW
*pQqUHXQHGHPDQGH
GHFHUWLILFDWLRQ
$IILFKHOHFRQWHQXGX.6
H[SRUWpGH16
XQGHVSURYLGHUVGRLW
VXSSRUWHU3.&6
41
'LGLHU'RQVH]-&(
,PSRUWHXQHHQWUpHjSDUWLU
GXQFHUWLILFDW3.&6
FRQVLGpUpGHFRQILDQFH
6L>QR@OHFHUWLILFDWQHVW
SDVDMRXWpDX.6
/LVWHOHVHQWUpHVGX.6
6XSSULPHXQHHQWUpH
42
'LGLHU'RQVH]-&(
43
Signature de code
Commande jarsigner
Ajoute 2 entres l archive pour chaque signataire (alias)
Aliasname.SF (Signature File)
Contient les noms des fichiers, le nom de l algo 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
Fonctions
Signature d une archive Java
'LGLHU'RQVH]-&(
Voir
-$9$B+20(docs/tooldocs/win32/jarsigner.html
'LGLHU'RQVH]-&(
-$9$B+20(GRFVWRROGRFVWRROVKWPOVHFXULW\
44
JarSigner Exemple
'LGLHU'RQVH]-&(
45
Echange scuris de cl
(KAP Key Agreement Protocol)
Motivation
change une cl secrte entre deux parties
Application : cl de session symtrique
Protocoles
Diffie-Hellman (PKCS#3),
'LGLHU'RQVH]-&(
8QGHU&RQVWUXFWLRQ
(Q&RQVWUXFWLRQ
46
Echange scuris de cl
Diffie-Hellman
,QLWLDOLVDWLRQ
2.
1.
Message
1.
3URWRFROH
'LGLHU'RQVH]-&(
47
$FWLRQV
50
Providers
La liste
http://java.sun.com/products/jce/jce12_providers.html
Quelques providers
Baltimore KeyTools http://www.baltimore.com
RSA Security http://www.rsasecurity.com
eSec (ex-ABA) http://www.openjce.org/jce.html
'LGLHU'RQVH]-&(
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/
Entrust(R) Technologies http://www.entrust.com/toolkit/java/index.htm
DSTC http://security.dstc.edu.au/projects/java/release3.html
IAIK http://jcewww.iaik.at/
52
Message digests
SHA-0, SHA-1, and MD5.
MAC
'LGLHU'RQVH]-&(
Keystore.
Key and Key pair generation
Signing
MD5withRSA.
53
Blowfish, CAST5, DES, IDEA, MARS, RC2, RC4, RC6, 5LMQGDHO, Serpent, SKIPJACK, Square,
TripleDES, Twofish
none
KeyAgreements
Diffie-Hellman
Modes
Hashes
'LGLHU'RQVH]-&(
MACs
Signatures
Assymetric ciphers
RSA/PKCS#1, ElGamal/PKCS#1
SecureRandom SPIs
/dev/urandom on systems that support it (FreeBSD, Linux, OpenBSD and possibly other UNIXen)
54
Voir
'LGLHU'RQVH]-&(
%JAVA-HOME%\docs\guide\security\HowToImplAProvider.html
Exercice
Le faire pour l algorithme de CESAR !
55
'LGLHU'RQVH]-&(
SDFNDJH PRQMFHMFHSURYLGHU
SXEOLFILQDOFODVV0RQ-&(3URYLGHUH[WHQGV MDYDVHFXULW\3URYLGHU ^
SULYDWHVWDWLF ILQDO6WULQJ1$0( 0RQ-&(
,1)2 0RQ-&( -&( :HDN &U\SWR 3URYLGHU
SULYDWHVWDWLF ILQDOGRXEOH9(56,21
SXEOLF 0RQ-&(3URYLGHU^
VXSHU1$0(9(56,21,1)2
&(6$5
SXW&LSKHU&(6$5PRQMFHMFHSURYLGHUFLSKHU&(6$5
SXW$OJ$OLDV&\SKHU&$(6$5&(6$5
SXW.H\*HQHUDWRU&(6$5PRQMFHMFHSURYLGHUNH\&(6$5.H\*HQHUDWRU
SXW6HFUHW.H\)DFWRU\'(6PRQMFHMFHSURYLGHUNH\IDFWRU\&(6$5.H\)DFWRU\
Extra JCE
'LGLHU'RQVH]-&(
Voir http://www.rsa.com/rsalabs/pkcs/
57
58
CA
Public
Verign, Thawte, Entrust,
'LGLHU'RQVH]-&(
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), IDX-PKI (idx-pki.idealx.org)
59
JSSE et JAAS
Java 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,
'LGLHU'RQVH]-&(
60
XML et Scurit
Evolution 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
'LGLHU'RQVH]-&(
API Java
JSR 104 XML Trust Service APIs
JSR 105 XML Digital Signature APIs (javax.security.xml.dsig)
JSR 106 XML Digital Encryption APIs
61
'LGLHU'RQVH]-&(
JavaCard
Packages javacard.security.* javacardx.crypto.*
pour les applets utilisant de la cryptographie
OCF
CardService
65
JCE et J2ME
8QGHU&RQVWUXFWLRQ
(Q&RQVWUXFWLRQ
Motivation
Faible mmoire, KVM, Processeur cryptographique
'LGLHU'RQVH]-&(
66
Bibliographie
Livre
Jonathan B. Knudsen , Java Cryptography, Oreilly, 1st Edition, May 1998, 156592-402-9
Scott Oaks, Java Security, Oreilly, 2nd Edition, May 2001, 0-596-00157-6
Jamie Jaworski & Paul J. Perrone, Java Security , Ed CampusPress, 24/9/2001,
570 pages, ISBN 2-7440-1230-0, (en Franais) http://www.campuspress.net
Guide
%JAVA_HOME%\docs\guide\security\CryptoSpec.html
%JAVA_HOME%\docs\guide\security\HowToImplAProvider.html
Tutorial
http://java.sun.com/docs/books/tutorial/security1.2/index.html
'LGLHU'RQVH]-&(
Prsentation JavaOne
http://servlet.java.sun.com/javaone/javaone99/pdfs/e611.pdf
http://java.sun.com/products/jsse/JavaOne00_JSSE.pdf
http://jsp.java.sun.com/javaone/javaone2000/pdfs/TS-1175.pdf
Articles
http://www.onjava.com/onjava/security/