......................................................................................................................................
Livre Blanc de sécurité SOA. Sécurité des données. XML Signature, XML Encryption. v.1.0 Project Documentation
...................................................................................................................................... OpenCap - Ahmed ALAMI
09 December 2005
TABLE OF CONTENTS
i
Table of Contents ......................................................................................................................................
1
Introduction
1.1 Avant Propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2
La Mise en Oeuvre
2.1 Sécurité Niveau Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 XML Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.2 XML Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Les Solutions Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3
Annexes
3.1 Où trouver les spécifications? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
TABLE OF CONTENTS
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
ii
1.1 AVANT PROPOS
1.1
1
Avant Propos ......................................................................................................................................
! " # $ % &"' % ( ( ) *+
! " # $
! % & '( ) * La sécurité niveau Transport ) + ' # ( ,-. ', - .#/(
+ 0 * La sécurité niveau Message ) 1 2
3
! * Sécurité niveau application ) 456
! * Sécurité niveau Données ) "0 / ! * Sécurité niveau Environnement ) 7 3 8
9 ! # ! : #
! 4 # ! #
' ( ) * % 03 +;+ * %
* " 6 * 4+6 * " * - 03 * < 9 0 03
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
1.1 AVANT PROPOS
2
# ) *
* * * * + 4 03 0 # ! # 8 ;
! 1 ! = 2 8 ; ! 1 + 8 ' > (! #
) % ? ':7@( 03 A !
!
/ ! = # ! B 2
WS-Security
SAML ;
! % ;
; Kerberos XKMS XACML ; / !
+;+ !
!
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.1 SéCURITé NIVEAU DONNéES
2.1
3
Sécurité Niveau Données ......................................................................................................................................
C7 8 ! = ; C7 0 +6 ! "
! " 0 C7
! - 3 ) :
; ! ; 0 ; ! ; ) ! = ! ; !
; # ! "
C7 8 ! - ? 0 :
3 ? !
7 C"7 CD7 ! "
E 8 ! % C7 8 - 8
3
! + 0 C7 40 - - :
C7! 1 2 0 C7 C7 F
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.1.1 XML SIGNATURE
2.1.1
4
XML Signature ......................................................................................................................................
C7
! C7
3
; C7! " 8 ; 8 ! C7 0 B=7 ' @%-( C7 !!! C7 2 2 ! C7 ; ) * 1 1<% * 8 * 4 8 ' 3( * 4 2 ' (! C7 0 ! :G ;
C7 ; G C7
! C7 H
? I
0 03 ! G
? C7 ! G 03 J C7J 0 0 3! = 0 3 0 K G 8
? ; C7!
Les composants de XML Signature Balise
Description
Reference
Chaque ressource à signer est associée à sa propre référence identifiée via l’attribut URI.
Transforms
Cet élément spécifie la liste des étapes appliquées au contenu de la ressource référencée avant de subir un digest.
DigestValue
Cet élément comporte la valeur du digest correspondant à la ressource référencée.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.1.1 XML SIGNATURE
SignatureValue
Cet élément spécifie la valeur du digest crypté de l’élément Signedinfo
KEyInfo
Cet élément indique la clef à utiliser pour valider la signature. Cette information peut renseigner aussi bien des certificats, des noms de clefs, des algorithmes d’arrangement (agreement keys)
5
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Comment utiliser XML Signature ? " + ; C7 ) L! : ; ; ; 1<% 0 ) * )>>###!
!> +! ' ; B=7( * )>>###!
!> +!2 ' ; ( * )>>###!
!> +! ' +!( * )>>###!
!> +!M ' ; +!( N! : ; ! " ; O< P O: , P
UrXLDLBIta6skoV5/A8Q38GEw44=
O: 7P
! Q! " O< P 4 O %P )
<SignedInfo Id="id">
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
UrXLDLBIta6skoV5/A8Q38GEw44=
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.1.1 XML SIGNATURE
O"
? 7P
O %P! O 7P ! R! " O %P
<SignatureValue>VVVVVVVV=
S! 2 %
)
<X509Data> <X509SubjectName>CN=AALAMI,O=OpenCap.,ST=BDX,C=FR <X509Certificate>MIID5lVN
T! " C7 )
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo Id="id">
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" />
UrXLDLBIta6skoV5/A8Q38GEw44= <SignatureValue>VVVVVVVV=
<X509Data> <X509SubjectName>CN=AALAMI,O=OpenCap.,ST=BDX,C=FR <X509Certificate>MIID5lVN
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
6
2.1.1 XML SIGNATURE
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
7
2.1.2 XML ENCRYPTION
2.1.2
8
XML Encryption ......................................................................................................................................
= ++ 0 ! - 2 #/# 03 0
++
;! 1
0
0 E ! C7 4 0 ; C7 ! C7 4 0 3 8 $
$
! C7 4 0 0 8 ) * : * 1 C7 * C7! 0 C7 4 0: ' ( 0 C7! 0 '0 C7 ( 4 0: C7 C7
! O4 0: P + 0 ' ; (! C7 4 0 ;
0 ! " + 4 0: )
<EncryptedData Id? Type?> <EncryptionMethod/>?
<EncryptedKey>? ? ?
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.1.2 XML ENCRYPTION
9
? ? ?
? ? <EncryptionProperties>?
Exemple , C7 ;
! = !
<PaymentInfo xmlns='http://example.org/paymentv2'>
John Smith 4019 2445 0277 5567 Bank of the Internet <Expiration>04/02
3 ; 0 + !
<EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.isi.edu/in-notes/iana/assignments/mediatypes/text/xml'> A23B45C56
C7 4 0 + 0 + ! 1 C7
? 4 0: ! 4 0: 8 4 0: ! " 0 8 0 4 0: 4 0D0
<pay:InfoPaiement xmlns:pay='http://exemple.org/paiementv2'> <EncryptedData Id='ED1' xmlns='http://www.w3.org/2001/04/xmlenc#'
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.1.2 XML ENCRYPTION
10
Type='http://www.w3.org/2001/04/xmlenc#Element'> EncryptedDataOriginal
4 C7 4 0 0 ;
! " + 0 =0 O4 0: P 0 ; C7!
<PaymentInfo xmlns='http://example.org/paymentv2'> John Smith <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element' xmlns='http://www.w3.org/2001/04/xmlenc#'> A23B45C56
3 ; 0
! " + =0 O4 0: P 0 ; C7!
<PaymentInfo xmlns='http://example.org/paymentv2'> John Smith <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.w3.org/2001/04/xmlenc#Content'> A23B45C56 Bank of the Internet <Expiration>04/02
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
2.2 LES SOLUTIONS OPEN SOURCE
2.2
11
Les Solutions Open Source ......................................................................................................................................
% 2
; ! 2 5 "UU! " + 2 ) * C7 0 ) " 2 ; C7! " C7+ C7 - ! 2
C7 D0 7 'CD7( * 7 3 5 "UU
7 L!V L!L! * : 0 -2 ) " 2 ) * 1 #/
) C * 1 <W" D * " -# 3 ! * , + 0 / ) + 0
! * "0 -% 6 0 " ) * 1 -% 3 0 5 ! * 1 5"4 5"! * 1 5"4 L!N!L! * 1 3 2 .!L! * : X L Q
C!SVY -D"LN! * : X N
G C!SVY! * : X >- >7%74 "7 '-D"Z(! * : X >- "- '<W" NSTV(! * : X >- =- '<W" QLTL(! * : X >- -X- '<W" NRRV(! * 1 2 5:D L!R>L!S 5"4 !
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED
3.1 Où TROUVER LES SPéCIFICATIONS?
3.1
12
Où trouver les spécifications? ......................................................................................................................................
SAML
http://www.oasis-open.org/committees/security/
XML-Signature
http://www.w3c.org/Signature/
...................................................................................................................................... Security Services TC http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss ...................................................................................................................................... WS-Federation http://www-106.ibm.com/developerworks/webservices/library/ws-fedworld/ ...................................................................................................................................... WS-Security http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss ...................................................................................................................................... WS-SecureConversation http://www-106.ibm.com/developerworks/webservices/library/ws-secon/ ...................................................................................................................................... WS-SecurityPolicy http://www-106.ibm.com/developerworks/webservices/library/ws-secpol/ ...................................................................................................................................... WS-Trust http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-trust.asp ...................................................................................................................................... XML-Encryption http://www.w3c.org/Encryption/2001/ ......................................................................................................................................
©2005 OPENCAP - AHMED ALAMI • ALL RIGHTS RESERVED