Professional Documents
Culture Documents
Bilal Siddiqui , Ch t ch H QT
08 01 2010
Trong Ph n 1 c a lo t bài này, tôi ã gi i thi u v Mã hóa XML, cú pháp c b n c a nó và quá trình x lý. Tôi ã
ki m tra các th khác nhau và cách dùng c a chúng trong Mã hóa XML v i m t ví d n gi n v cách trao i an
toàn d li u c u trúc a ra m t Java API cho Mã hóa XML d a trên DOM, và a ra m t b n t ng quan ng n g n v
mã hóa trong Java (JCA/JCE).
Tôi b t u bài th o lu n c a mình ph n này v i m t tình hu ng trao i thông tin, minh h a cho vi c s d ng mã
hóa XML.
B o m t d a trên tài li u
T i th%i i m này, s! h u ích ta suy ngh& m t chút v khái ni m b o m t d a trên tài li u. V i ki n trúc b o m t
này, b n có th tb om t m c tài li u. Ng c nh c a m t phiên b o m t c b o v m t cách hi u qu bên
trong tài li u b o m t. T t c các thông tin mà m t bên có th#m quy n có th c n gi m mã tài li u u có s'n trong
tài li u ó. M t phiên b o m t mang tính logic c t o ra, nó linh ho t, t(n t i m t cách lâu dài và cho phép nhi u
bên cùng tham gia vào m t phiên giao d ch b o m t. M t giao th c s p t i cho các d ch v Web, Giao th c Giao d ch
Th ng m i (BTP -- xem Tài nguyên), d a trên cùng m t khái ni m v duy trì ng c nh c a m t phiên bên trong tài
li u giao d ch; i u này giúp cho giao d ch c lâu dài và m b o c tính linh ho t.
ng d ng dùng th
hoàn t t các yêu c u c a tình hu ng trao i d li u b o m t gi a nhà xu t b n và nhà bán sách phía trên, tôi ã
t o ra m t l p ng d ng dùng th c g i là demoXmlEncApp (xem Ví d 1). L p này s d ng l p th c thi m)u Mã
hóa XML XmlEncryption (xem Ví d 2).
Khám phá XML Encryption (mã hóa XML), Ph n 2 Page 2 of 7
ng d ng dùng th làm c nh ng gì
Ph ng th c main c a l p demoXmlEncApp ban u th c hi n vi c x lý bên phía nhà bán sách b$ng cách g i
ph ng th c simulateBookSellersEnd, ph ng th c này c t p XML yêu c u mua, Order.xml (xem Ví d 3), và
mã hóa thông tin nh y c m trong ó thông qua m t trong ba ph ng th c mã hóa ( ó là mã hóa t p XML tr n v*n, mã
hóa ph n t , hay mã hóa n i dung ph n t ) c ch" nh trong Mã hóa XML. Sau ó nó l u t p XML ã c mã hóa
vào &a, c+ng nh là khóa c s d ng mã hóa.
Ví d 3. Order.xml
! " # $
% # &
&
' () * ## +% ,' ()
- ./ 012 34102 ,-
5% $ 1 ,5% $
,&
6 $
7 ) 41 . /418 /.32 . ,7 )
7 $ 9-*: ,7 $
9 + . . 4 ,9 +
,6 $
, % # &
B i vì các giao th c trao i t p và trao i khóa không ph i là tr ng tâm ây, vì th tôi gi thi t r$ng chúng c
t o ra s'n cho nhà xu t b n thông qua b t c ph ng th c thích h p nào ó (Ví d , t p XML ã c mã hóa và khóa
bí m t c trao i thông qua HTTP và m t s thu t toán mã hóa khóa công khai t ng ng). Ph ng th c main sau
ó l y vai trò c a nhà xu t b n b$ng cách g i ph ng th c simulatePublishersEnd, ph ng th c này s! l y ra các
thông tin phòng bán hàng c n, và sau ó hi n th t p XML trên b ng i u khi n. Ti p n, nó gi i mã thông tin thanh
toán cho phòng k toán và hi n th nó b ng i u khi n.
N u nhà bán sách quy t nh mã hóa toàn b t p Order.xml , hàm simulateBookSellersEnd trong l p
demoXmlEncApp t o ra m t l nh g i t i ph ng th c công khai encryptCompleteXmlFile c a l p
XmlEncryption.
N u nhà bán sách ch" mu n gi u s th tín d ng, n i dung v,n b n c a ph n t CardNo trong Order.xml c mã hóa.
Ph ng th c simulateBookSellersEnd g i ph ng th c công khai encryptElementContentOfXmlFile, khác
v i ph ng th c encryptElementOfXmlFile ch" ch nó ho t ng trên n i dung c a ph n t ch không ph i là trên
chính ph n t ó.
getDecryptedData gi i mã.
Chú ý: Chi ti t Mã hóa XML không yêu c u r$ng t t c thông tin này ph i có trong các th Mã hóa XML. Các thu c
tính này có hay không c+ng tùy. /ng d ng có th cung c p thông tin này thông qua m t s ph ng ti n khác, nh ng
ng d ng dùng th và th c thi Mã hóa XML m)u gi thi t r$ng t t c các thông tin có trong các th Mã hóa XML.
Ph ng th c getDecryptedData bây gi% t o ra m t khóa gi i mã t- nh ng tên thu t toán và khóa. Sau ó nó chuy n
giá tr mã hóa mã hóa c s 64, khóa gi i mã, và tên thu t toán t i m t ph ng th c có tên Decrypt ( c ki m tra
trong Mã hóa).
Theo ch" s Mã hóa XML, b n c+ng có th mã hóa d li u b t k0 (ví d , m t hình nh .jpg hay trên th c t là b t c
th gì trên Web). i u này g n nh gi ng v i vi c mã hóa m t t p XML hoàn ch"nh; i m khác bi t duy nh t là giá tr
c a lo i thu c tính cho ph n t EncryptedData (xem Tài nguyên).
kh i mã hóa yêu c u các byte d li u không mã hóa thành các kh i 8 byte, vì th tôi thêm kh i ch a hoàn
ch"nh cu i cùng v i m t s ký t . Th c thi m)u s d ng m t d u cách (" ") làm ký t thêm.
Ti p n tôi t o m t i t ng l p Cipher và tri n khai nó trong ch mã hóa. Sau ó tôi trích xu t vector
kh i ng (IV) vào m t chu i byte, mã hóa kh i d li u không mã hóa, và g n ti n t các byte IV vào các byte
d li u ã mã hóa. Khi tôi s d ng ph ng th c getBase64Encoded c a l p XmlEncryption, thì chu i byte
nh n c sau ó s! c chuy n thành m t chu i mã hóa c s 64 và sau ó c tr l i.
Decrypt: ph ng th c này c b n i l p v i ph ng th c getEncryptedData. Nó ch p nh n chu i byte mã
hóa c s 64, và gi i mã nó tr l i chu i d li u không mã hóa. IV sau ó c tách ra kh1i chu i byte mã
hóa th c. M t i t ng l p Cipher c t o ra và tri n khai trong ch gi i mã. Chu i byte mã hóa sau ó
c mã hóa, và chu i byte gi i mã c tr l i là m t chu i v,n b n.
Tôi ã cung c p h tr cho thu t toán kh i cypher TripleDES ch" là minh h a. V i m t vài i u ch"nh, b n c+ng có
th s d ng các thu t toán khác nh là AES.
Th c thi n gi n này minh h a cho cách Mã hóa XML có th làm m t mô hình b o m t kh thi cho các ng d ng
doanh nghi p ph c t p h n và l n h n.
Chính SOAP là XML, nó cho phép b n t do gi i quy t các v n mã hóa theo b t c cách nào h p lý s d ng Mã
hóa XML. Ví d , b n có th quy t nh mã hóa toàn b thân SOAP hay m t ph n c a thân. Tuy nhiên, XML-SEC là
m t n l c W3C nh$m tiêu chu#n hóa các cách th c th c thi b o m t trong các d ch v Web d a trên SOAP. Hi n t i,
nó không bao g(m Mã hóa XML; tôi ngh& là Mã hóa XML hay m t ph ng th c mã hóa t ng t làm m t ph n c a
nó trong t ng lai.
K t lu n
Trong ph n 1, tôi ã gi i thi u Mã hóa XML và bàn v cách s d ng c a nó có c trao i d li u an toàn. Tôi
ã nói chi ti t v cách s d ng c a các th Mã hóa XML khác nhau và x lý m t Java API cho Mã hóa XML d a trên
DOM.
T iv
Tên Kích th c Ph ng th c t i
x-encrypt2/x-encrypt2_src.zip HTTP
Khám phá XML Encryption (mã hóa XML), Ph n 2 Page 6 of 7
Thông tin v ph ng th c t i
Tài nguyên
Hãy c "Khám phá Mã hóa XML, Ph n 1" trong lo t bài h ng d)n g(m 2 ph n v Mã hóa XML c a Bilal
Siddiqui (developerworks, Tháng 3, 2002).
T i mã trình làm vi c hoàn ch"nh cho minh h a này. Mã trình sau tham kh o trong bài h ng d)n này c bao
g(m:
Readme.txt ch" cho b n cách thi t l p môi tr %ng và ch y b n dùng th
demoXmlEncApp.java (ví d 1)
XmlEncryption.java (Ví d 2)
Order.xml (Ví d 3)
AlgoNames.java
CipherData.java
EncryptedData.java
EncryptionMethod.java
GenericKeyInfo.java
Transforms.java
Tìm hi u W3C XML Encryption Specification Candidate Recommendation, ây là th mà tôi ã tuân theo
trong bài h ng d)n này.
Khám phá Business Transaction Protocol (BTP), m t ki n trúc linh ho t giao d ch th ng m i v)n ang
trong quá trình phát tri n.
Tìm hi u Ch" s SOAP xác nh m t giao th c trao i d li u trong m t môi tr %ng phân b .
Tìm ki m thêm các ngu(n XML trên developerWorks XML technology zone.
L y IBM WebSphere Studio Application Developer, m t môi tr %ng phát tri n tích h p d. s d ng xây
d ng, ki m tra và s d ng các ng d ng J2EE, bao g(m t o ra các tài li u XML t- DTDs và các l c (.
Tìm hi u cách b n có th tr thành m t nhà phát tri n có trình trong l&nh v c XML và các công ngh liên
quan.
ôi nét v tác gi
T v n viên XML: Bilal Siddiqui ã nh n c b$ng K2 s i n t c a tr %ng i h c K2 s và Công ngh , Lahore,
Pakistan n,m 1995. Sau ó ông b t u thi t k các gi i pháp ph n m m cho các h th ng qu n lý công nghi p. Và r(i
ông l i chuy n sang XML và s d ng kinh nghi m l p trình C++ c a mình xây d ng các công c x lý XML d a
vào Web và WAP, các gi i pháp phân tích bên c nh máy ch , và các ng d ng d ch v . B n có th liên h v i ông
theo a ch" wap_monster@yahoo.com.
Khám phá XML Encryption (mã hóa XML), Ph n 2 Page 7 of 7