Khóa luận Nghiên cứu bảo mật web services

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn ThThanh Thy  
NGHIÊN CU BO MT WEB SERVICES  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
NI - 2010  
[1]  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn ThThanh Thy  
NGHIÊN CU BO MT WEB SERVICES  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bộ hưng dn: Tiến Sỹ Trương Ninh Thun  
Lời cám ơn  
Trước tiên, em xin gi li cảm ơn và biết ơn sâu sắc đến TS. Trương Ninh Thuận –  
Ging viên bmôn CNPM – khoa CNTT – ĐH Công Nghệ - ĐHQGHN, người đã tn  
tình hướng dn, chbảo, giúp đỡ em trong sut thi gian em nghiên cu khóa lun. Và  
cũng là người đưa ra những ý tưởng, kim tra sphù hp ca luận văn.  
Em cũng xin gửi li cảm ơn đến toàn thcác thầy cô trường ĐH Công Nghệ - DHQGHN  
đã ging dy, và tạo điều kin cho em trong quá trình hc tp và nghiên cu tại trường.  
Nhng kiến thc mà chúng em nhận được slà hành trang giúp chúng em vững bước  
trong tương lai.  
Cui cùng, em xin cảm ơn gia đình, bạn bè, người thân đã luôn ở bên để động viên và là  
ngun cvũ lớn lao, là động lc giúp em hoàn thành luận văn này.  
Mặc dù đã cgng hoàn thành luận văn trong phạm vi và khả năng có thể. Tuy nhiên sẽ  
không tránh khi nhng thiếu sót. Em rt mong nhận được scm thông và tn tình chỉ  
bo ca quí thy cô và toàn thcác bn.  
Hà Nội, tháng 5 năm 2010  
Sinh viên  
Nguyn ThThanh Thu ỷ  
Tóm tắt nội dung  
Ngày nay công nghệ thông tin đang là nền công nghmũi nhọn trong chiến lược phát trin kinh  
tế, xây dựng đất nước ca hu hết các quc gia. Các sn phm công nghệ thông tin đã và đang  
[3]  
được ng dng rng rãi trong mi lĩnh vực của đời sng kinh tế, xã hi và hu hết đều đem đến  
nhng giá trthiết thực. Đối tượng phc vchyếu ca ngành công nghthông tin hin nay  
chính là các tchức, câc cơ sở doanh nghip…  
Bo mt luôn luôn là mt vấn đề hàng đầu cho tt ccác loi ng dụng, đc bit là các ng dng  
web. Tnhững ngày đầu của Internet người ta đã quan tâm đến tính an toàn trong trao đổi thông  
tin. Tuy không có san toàn tuyệt đối nhưng những phát trin trong lĩnh vực này thì rt nhanh và  
mang li nhiu thành quđây là vấn đề cp bách ca nhiu doanh nghip. Không có mt mc  
an toàn thích hp, sự khai thác thương mại ca Internet thì không hoàn toàn an toàn. Do đó  
nhng gii thuật để kim chng, smã hóa khóa thông tin, và chký shóa có thlà nhng gii  
pháp cung cp mt mức đủ an toàn.  
Chính vì thế san toàn ca web service trên mng cũng không thể nm ngoài vấn đề này. Có thể  
nói ngày nay ngoài vic nghiên cứu làm sao để to ra mt web services tt mang li nhiu li ích  
thì vic nghiên cứu để làm sao mang li san toàn cho web services cũng là mt trong nhng  
vấn đề quan trng nht. Thật khó tin tưởng để sdng một business service như- mua chng  
khoán hay chuyn tin trc tuyến mà li không có mt san toàn cn thiết.  
Luận văn tập trung đi sâu vào nghiên cứu, tìm hiu vcông nghweb services và các vấn đề bo  
mt liên quan và sdụng chúng để gii quyết bài toán “Kết ni ngân hàng vi công ty chng  
khoán” mt cách an toàn, hiu qu, nhm tạo điều kin thun li cho vic giao dch chng khoán  
và giúp cho các thông tin được minh bch.  
Danh mục ký hiệu, từ viết tắt  
Tên viết tt  
Mô tả  
HTTP  
Hypertext Transfer Protocol  
[4]  
HTML  
SOAP  
UDDI  
WSDL  
WS  
HyperText Markup Language  
Simple Object Access Protocol  
Universal Description, Discovery, and Integration  
Web Service Description Language  
Web services  
WSS  
Web Service Security  
XML  
SOA  
eXtensible Markup Language  
Service Oriented Architecture  
Security Sockets Layer  
SSL  
TCP/IP  
FTP  
Transmission Control Protocol/ Internet Protocol  
File Transfer Protocol  
W3C  
World Wide Web Consortium  
Danh mục bảng và hình vẽ  
Tên Hình  
Mô tả  
Trang  
Hình 2.1  
Sơ đồ cng tác SOA  
17  
[5]  
Hình 3.1  
Hình 3.2  
Hình 3.3  
Hình 3.4  
Hình 3.5  
Hình 3.6  
Hình 3.7  
Hình 3.8  
Hình 3.9  
Hình 3.10  
Hình3.11  
Hình 3.12  
Hình 4.1  
Hình 4.5  
Hình 4.3  
Hình 4.4  
Hình 4. 5  
Hình 4.6  
Hình 5.1  
Bng 4.1  
Mô hình Web Service  
23  
24  
25  
26  
27  
28  
31  
33  
34  
35  
35  
40  
40  
56  
56  
61  
62  
63  
63  
43  
Kiến trúc ca Web Serice  
Web service protocol stack  
Tương tác giữa các thành phn web service  
Các thành phn web service  
Cu trúc WSDL  
Trao đổi thông điệp SOAP  
Cu trúc của thông điệp SOAP  
Mô hình tương tác giữa các thành phn  
Sơ đồ sdng web service  
Cu trúc ca mt tài liệu đưc mô tbi XML  
Cu trúc và hoạt động ca một web service đơn giản  
Cu trúc ca giao thc bo mt SSL  
Các bước SSL Record Protocol  
Xác nhn smột thông điệp  
Mã hóa một thông điệp  
Điều phối thông điệp SOAP  
Cơ chế dùng blc ca wse  
Biểu đồ hoạt động ca hthng  
Các scổng đưc gán cho các giao thc ng dng chy trên  
TLS/SSL  
[6]  
Bng 4.2  
Bng 4.3  
Các thành phn thông tin trng thái Session SSL  
Các thành phn thông tin trng thái ni kết SSL  
44  
44  
Mục lục  
Lời cám ơn..................................................................................................................................3  
Tóm tt ni dung.........................................................................................................................3  
Danh mc ký hiu, tviết tt.......................................................................................................4  
Danh mc bng và hình v..........................................................................................................5  
Mc lc.......................................................................................................................................7  
[7]  
CHƯƠNG 1: Mở đầu................................................................................................................11  
1.1. Đặt vấn đề...................................................................................................................11  
1.2. Ni dung bài toán........................................................................................................12  
1.3. Kết quả đạt được.........................................................................................................13  
1.4. Cu trúc khóa lun ......................................................................................................13  
CHƯƠNG 2 :Kiến trúc dch vụ hướng đối tượng SOA..............................................................14  
1. Định nghĩa kiến trúc hướng dch vSOA...........................................................................15  
2. Tính cht ca mt hthng sdng SOA ..........................................................................17  
2.2. Tính sdng li dch v..............................................................................................17  
2.3. Sdng dch vbất đồng b.......................................................................................17  
2.4. Qun lý các chính sách................................................................................................18  
2.5. Khả năng cộng tác.......................................................................................................18  
2.6. Tự động dò tìm và ràng buộc động..............................................................................18  
2.7. Tphc hi.................................................................................................................18  
3. Li ích khi sdng SOA....................................................................................................18  
4. Kết lun .............................................................................................................................19  
CHƯƠNG 3 : Web Service .......................................................................................................20  
3.1. Service ...........................................................................................................................20  
3.1.1. Định nghĩa...............................................................................................................20  
3.1.2. Đặc điểm service .....................................................................................................21  
3.2. Web service....................................................................................................................22  
[8]  
3.2.1. Định nghĩa...............................................................................................................22  
3.2.2. Cu trúc web service ...............................................................................................24  
3.2.3. Các đặc điểm ca web service .................................................................................25  
3.2.4. Các thành phn ca web service ..............................................................................26  
3.2.4.1.  
3.2.4.2.  
3.2.4.3.  
3.2.4.4.  
WSDL (Web Services Description Language) ..................................................26  
UDDI (Universal Description, Discovery and Integration)................................29  
SOAP (Simple Object Access Protocol) ...........................................................29  
XML (eXtensible Markup language) ................................................................33  
3.2.5. Hoạt động ca Web services....................................................................................34  
3.3. SOA và dch vweb.......................................................................................................35  
CHƯƠNG 4 : Các kthuật đảm bo an ninh dch vweb .........................................................37  
4.1. Các vấn đề bo mt cn quan tâm...................................................................................37  
4.1.1. Nhng hn chế của tường la ..................................................................................37  
4.1.2. Cơ chế bo mật chưa được định nghĩa một các đầy đ.............................................37  
4.1.4. Bo mt trong qui trình phi hp hoạt động ca các WS..........................................38  
4.2. Giao thc bo mt SSL...................................................................................................38  
4.2.1. Cu trúc giao thc bo mt SSL...............................................................................38  
4.2.2. SSL Record Protocol...............................................................................................45  
4.2.3. SSL Handshake Protocol.........................................................................................47  
4.3. Khai thác tính năng bảo mt ca bộ thư viện Web Service Enhancement (WSE) ............53  
4.3.1. Những tính năng bảo mt web service ca wse ........................................................54  
[9]  
4.3.2. Thư viện WSE...........................................................Error! Bookmark not defined.  
a. UsernameToken Authentication: ...................................Error! Bookmark not defined.  
b. Chng nhn X.509........................................................Error! Bookmark not defined.  
4.3.3. Hô trpolicy................................................................................................................55  
4.3.4. Kiến trúc ca wse ......................................................Error! Bookmark not defined.  
CHƯƠNG 5 : Xây dựng chương trình và đánh giá kết qu.......................................................56  
5.1. Mô ththng cn xây dng..........................................................................................57  
5.2. Trin khai hthng.........................................................................................................57  
5.2.1. La chn ngôn nglp trình....................................................................................57  
5.2.2. Hoạt động ca hthng...........................................................................................58  
5.2.2.2.  
5.2.2.3.  
5.2.3.4.  
Đăng nhập............................................................................................................58  
Đăng ký tài khon mi.........................................................................................59  
Thc hin giao dch .............................................................................................60  
5.3. Tích hp các thbo mật cho chương trình vi công cWSE.........................................61  
5.3.1. Sdng công cWSE tbên trong Visual Studio 2005Error! Bookmark not defined.  
5.3.2. Sdng công cWSE tmenu start .............................Error! Bookmark not defined.  
CHƯƠNG 6 : Kết lun..............................................................................................................77  
Tài liu tham kho.....................................................................................................................80  
[10]  
CHƯƠNG 1  
Mở Đầu  
1.1. Đặt vấn đề  
Kinh doanh chng khoán là mt hoạt động din ra khá phbiến hin nay, trong mt bphn xã  
hi không nhỏ, nhưng công việc giao dch hin nay vn chyếu bng tin mặt. Người mua  
chng khoán vn phi trc tiếp đến các công ty chng khoán giao dch và công ty chng khoán  
[11]  
vn gitoàn bstin của nhà đầu tư. Công việc này làm mt nhiu thi gian công sc, không  
đảm bo sự an toàn cho nhà đầu tư và không mang tính chuyên nghiệp.  
Các doanh nghiệp đang hướng ti mt hoạt động kinh doanh chứng khoán mà trong đó tt ccác  
hoạt động của nhà đầu tư, doanh nghiệp, ngân hàng đều được thc hin thông qua Internet. Và  
cũng hiện nay cũng đã có mt shthng phn mm kinh doanh chng khoán. Tuy hoạt động  
chưa hiệu quvà vn còn gp phi nhiều khó khăn nhưng điều đó cũng nói nên mt nn tài chính  
không tin mt. Những người sdng có thtiết kim thi gian, công sc mà vẫn đảm bo li  
ích vlãi sut, khả năng thanh toán…  
Tuy nhiên hthng thông tin ca các công ty chng khoán và ngân hàng còn quá nhiu khác bit  
và chưa kết nối được vi nhau. Vấn đề này gây ra nhiều khó khăn và có thể dẫn đến blỡ cơ hội  
của nhà đầu tư. Mặt khác công ty chng khoán phải đảm bo kết ni vi nhiu ngân hàng cùng  
mt lúc vì mỗi nhà đầu tư chọn cho mình một ngân hàng khác nhau. Tương tự ngân hàng cũng  
mun kết ni vi nhiu công ty chứng khoán để mrng mạng lưới ca mình.  
Khi đưa mọi hoạt động giao dch lên mng internet, một điều lo ngại đi với nhà đầu tư, công ty  
chng khoán hay ngân hàng là các thông tin cá nhân ca họ có được bo mt mt cách cht chẽ  
và có chc chn rng chúng skhông btn công bởi cách hacker… Khi nhà đầu tư mở mt tài  
khon chng khoán hoc tài khon ngân hàng hsẽ được cung cp username/password hay mã  
chng khoán, mã ngân hàng. Vấn đề bài toán đặt ra là làm thế nào để nhứng thông tin đó được  
trao đổi gia 2 bên mt cách an toàn mà không btn công.  
Bài toán đặt ra là đưa ra một gii pháp kết ni giữa nhà đầu tư – công ty chng khoán – ngân  
hàng. Các giao dịch được thc hin trc tiếp trên mng mà vẫn đảm bo an toàn cho các bên?  
1.2. Nội dung bài toán  
Để làm giảm độ phc tp do những khó khăn trên bài toán được gii quyết, tôi chn mt hệ  
thống đơn giản chcung cp nhng thông tin đơn giản như thông tin cổ phiếu, thông tin tài  
khon của nhà đầu tư, số dư trong tài khoản ngân hàng…  
Khi một nhà đầu tư mở tài khon chng khoán có thể được cung cp luôn tài khon ngân hàng.  
Dch vca công ty chng khoán scung cp thông tin vtài khon của nhà đầu tư. Sau khi  
submit để hoàn thành việc đăng ký, username và password của nhà đầu tư sẽ được gửi đến email  
đăng ký. Thông tin về tài khon ngân hàng của nhà đầu tư số dư trong tài khoản cũng được hin  
th.  
[12]  
Khi khách hàng mun thc hin mt giao dịch, trước tiên cần đăng nhập vào hthng. Khách  
hàng snhập username/password và submit để gửi đến hthng ca công ty chng khoán. Sau  
khi đăng nhập khách hàng có ththc hin giao dch mua/bán bng tài khon chng khoán và tài  
khon ngân hàng ca mình, các thông điệp gia khách hàng – công ty chứng khoán và nhà đầu  
tư được trao đổi qua li. Nếu không có phương pháp bảo mật an toàn, các thông điệp này có thể  
ddàng bị đánh cắp bi những phương pháp tấn công và dẫn đến thit hi cho các bên giao dch.  
Để đáp ứng được các yêu cu của bài toán đặt ra, đc bit là toàn bcác giao dịch đều được đảm  
bo chính xác, an toàn cho các bên tham gia skhông thkhông sdng ti các kiến thc trong  
lĩnh vực Công nghthông tin. Có rt nhiu công cbo mt cho web service như công nghệ bo  
mt SSL và các thành phn ca nó, giao thc HTTP, các chng chs… Trong luận văn này, tôi  
tập trung đi sâu vào nghiên cứu bo mt web service theo công nghSSL, giao thc HTTP và  
đặc bit là sdng bộ thư viện Web Service Enhencement (WSE) ca .NET Framework  
Microsoft. Web services giao tiếp thông qua các message SOAP. WSE cung cp nhng mrng  
ca giao thức SOAP và cho phép người dùng tự định nghĩa bảo mt, truyền message đáng tin  
cy, chính sách... Các nhà phát trin có ththêm vào nhng kthut này trong quá trình xây  
dng (dùng code) hoc trong quá trình trin khai (policy file).  
1.3. Kết quả đạt được  
-
Nghiên cu vcác vấn đề: công nghweb services, kiến trúc hướng dch vSOA, các kỹ  
thuật đảm bo an ninh web services đặc bit là cu trúc giao thc SSL, HTTP, bộ thư viện  
WSE và các đặc điểm ca nó.  
-
Phát triển chương trình “giao dch chng khoán thông qua tài khon ngân hàng”. Trin khai  
hthng và tích hp các kthuật đảm bo an toàn cho hthng.  
1.4. Cấu trúc khóa luận  
Ni dung luận văn bao gồm các chương sau:  
Chương 1: Gii thiu  
tchung về bài toán, hướng gii quyết và các kết quả đạt được sau mt thi gian nghiên cu.  
Chương 2: Kiến trúc hướng dch vSOA  
Gii thiu vkiến trúc SOA một phương pháp tiếp cn công nghthông tin khá phbiến. Trong  
chương này tôi đưa ra nhng kiến thức cơ bản vmô hình kiến trúc hướng dch v. Các định  
[13]  
nghĩa, cấu trúc ca kiến trúc hướng dch v, những đặc điểm và li ích ca nó trong vic xây  
dng mt web service và kết hp chúng theo chun.  
Chương 3: Web services  
Chương này sẽ đi sâu vào tìm hiu chi tiết vweb service, các đặc điểm cũng như đặc tcác  
thành phn của nó như WSDL, SOAP, XML, UDDI … và phn cuối chương là mối quan hệ  
gia kiến trúc hướng dch vSOA và Web service.  
Chương 4: Các kthuật đảm bo an ninh Web Service.  
Trong chương này đưa ra tình trng an ninh ca web service hin nay. Tiếp theo cũng trình bày  
vcác kthuật đảm bảo an ninh như công nghệ bo mật SSL và đặc bit là khai thác tính năng  
ca bộ thư viện Web Service Enhancement (WSE) ca .NET Framework.  
Chương 5: Xây dng, trin khai hthống và đánh giá kết quả  
Chạy demo chương trình chng khoán gii quyết vấn đề “kết ni chng khoán vi ngân hàng”.  
Phn trọng tâm trong chương này là kết hp các thsecurity ca bộ thư viện WSE vào Web  
Service.  
Chương 6: Kết lun và hướng phát triển trong tương lai.  
CHƯƠNG 2  
Kiến trúc hưng dch vSOA  
(Service-Oriented-Architecture)  
Phn mềm ngày nay đang trở lên phc tạp và dường như vượt khi tm kim soát ca các mô  
hình phát trin phn mm hin có. Nhiu phn mm lại được xây dng vi hthng quá phc  
tp, chi phí phát trin cao mà li khó bo trì. Nhiều năm qua, nhiều kiến trúc phn mm dã được  
[14]  
xây dng và trin khai nhm gii quyết vấn đề này. Tuy nhiên độ phc tp vn tiếp tục tăng và  
càng khó khăn hơn khi vấn đề lp trình dư thừa và không thtái sdng. Tích hp các phn  
mm li vi nhau là nhu cu thiết yếu cho tình trng phát trin phn mm hin nay, và làm thế  
nào để tạo ra được mt phn mm vi chi phí thp, chất lượng tt, dsdng và dbo trì là  
mt vấn đề mà nhiu nhà phát triển đã và đang hướng ti.  
Các kiến trúc hiện đang được áp dng vào phát trin phn mm vn còn nhiều khó khăn như  
không linh hot, không bn vng, phc tp…vì vy các doanh nghip cn có một phương pháp  
tiếp cn mvi kiến trúc hướng dch vvà nhng công nghmới như SOAP, HTTP, và XML sẽ  
gii quyết được những khó khăn mà hiện các doanh nghiệp đang vấp phải. Trong chương này tôi  
sgii thiu mt cách tiếp cn khá toàn diện đó là kiến trúc hướng dch vSOA. Gii pháp này  
bước đầu đã được ng dng trong mt sdự án và đều đem lại nhng kết qukhquan. Và  
người ta tin rng SOA có thslà “xu thế trong tương lai”. Và sau đây chúng ta sẽ đi vào nghiên  
cu chi tiết.  
1. Định nghĩa kiến trúc hướng dịch vụ SOA  
SOA viết tt ca cm tService Oriented Architecture là cấu trúc hướng dch v.  
Theo định nghĩa của IBM: “SOA is an architectural style for creating an Enterprise IT  
Architecture that exploits the principle of server orientation to achieve a tiglter relationship  
between the business and the information systems that support the business…”[1].  
Theo đó SOA là phong cách kiến trúc để to ra mt công trình kiến trúc IT, kiến trúc đó khai  
thác các nguyên tc của hướng dch vụ để đạt được các mi quan hcht chgia doanh nghip  
và hthng thông tin nhm htrcho các doanh nghip.  
Theo một định nghĩa khác: “SOA is an approach to IT that builds business processes from  
reusable component modules or “services” that are independent of applications and the  
computing platforms on which they run.”[2].  
SOA là phương pháp tiếp cn công nghthông tin nhm xây dng các tiến trình nghip vtừ  
nhng thành phn mô hình có sn hoc các dch vụ mà đối lp vi các ng dng và các thành  
phn nn của máy tính như phần cứng hay môi trường lp trình mà nó chy.  
[15]  
Mt hthống được xây dng theo mô hình SOA bao gm các service tha mãn các tính cht ca  
service. Mi service trong hthng có thể được sửa đổi một cách độc lp vi các service khác  
nhm mục đích đáp ng mt yêu cu mi tthc tế.  
SOA có 3 đối tưng chính  
- Service Provider: Cung cp thông tin vdch vcho mt nhu cầu nào đó. Người sdng  
không cần quan tâm đến vtrí thc smà service hcn sdụng đang hoạt động. Nhà cung cp  
dch vụ ở đây là một dch vchp nhn và xlý nhng yêu cu từ người sdng dch v. Nó có  
thlà mt hthng mainframe. Mt thành phn hoc các dng phn mm khác xlý yêu cu  
dch v. Nhà cung cp gi hợp đồng lên service registry để những người sdng dch vcó thể  
truy cập đến nó.  
- Service Consumer: Người sdng service được cung cp bi Service Provider. Có thlà mt  
ng dng, mt dch vhoc là các module phn mm khác yêu cu sdng dch vụ. Đây là thực  
ththc thi quá trình dch vthông qua service registry, liên kết vi dch vvà thc thi các chc  
năng của dch vụ. Người sdng dch vthc thi chức năng dịch vbng cách gi mt yêu cu  
đúng định dng mô ttrong hợp đồng.  
- Service Regiestry: Nơi lưu trữ thông tin vcác service ca các service Provider khác nhau.  
Service registry chp nhận và lưu trữ các hp đồng không gửi đến tnhà cung cp dch vvà  
cung cp hợp đồng tùy theo yêu cu của người sdng. Service Consumer da trên nhng thông  
tin này để tìm kiếm và la chn Service Provider phù hp.  
[16]  
Hình 2.1: Sơ đồ cng tác SOA  
Service Provider sẽ đăng ký thông tin vservice mà mình có thcung cp (các chức năng có thể  
cung cp, khả năng của hthống như resource, performance, giá cả dch v…) vào Service  
Registry. Service Consumer khi có nhu cu vmột service nào đó sẽ tìm kiếm thông tin trên  
service registry. Ngoài chức năng htrtìm kiếm, Service Registry còn có thxếp hng các  
Service Provider da trên các tiêu chí vchất lượng dch v, bu chn từ các khách hàng đã sử  
dng service, … Nhng thông tin này shtrthêm cho quá trình tìm kiếm ca Service  
Consumer. Khi đã xác định được Service Provider mong mun, Service Consumer thiết lp kênh  
giao tiếp trc tiếp vi Service Provider nhm sdng service hoc tiến hành thương lượng thêm  
(vmt giá c, resource sdng…).  
2. Tính chất của một hệ thống sử dụng SOA  
2.1. Tính loose coupling1  
SOA htrtính loose coupling thông qua vic sdng hợp đồng và liên kết. Một người dùng  
truy vẫn đến nơi lưu trữ và cung cp thông tin dch vụ để ly thông tin vloi dch vcn sử  
dng. Registry strvtt cnhng dch vtheo tiêu chun tìm kiếm. Theo đó, người sdng  
chvic chn dch vmà mình cn, và thực thi phương thức trên đó theo mô tả dch vnhn  
được tregistry. Bên sdng dch vkhông cn phthuc trc tiếp vào cài đặt ca dch vmà  
chda trên hợp đồng mà dch vụ đó hỗ tr.  
2.2. Tính sử dụng lại dịch vụ  
Vì các dch vụ được cung cp lên trên mạng và được đăng ký ở một nơi nhất định nên chúng dễ  
dàng được tìm thy và tái sdng. Nếu mt dch vkhông có khả năng tái sử dng, nó cũng  
không cần đến interface mô t. Các dch vcó thể được tái sdng li bng cách kết hp li vi  
nhau theo nhiu mục đích khác nhau. Tái sử dng li các dch vcòn giúp loi bnhng thành  
phn trùng lặp và tăng độ vng chắc trong cài đặt, nó còn giúp đơn giản hóa vic qun tr. Thc  
ra tái sdng dch vli dễ dàng hơn tái sử dng thành thay lp. Nhng dch vdùng chung  
bi tt ccác ng dng ca mt hthng SOA gi là nhng share infrastructure service.  
2.3. Sử dụng dịch vụ bất đồng bộ  
Trên lý thuyết mt hthng SOA có thhtrgi và nhn cả thông điệp đồng bvà bất đồng  
b.  
[17]  
2.4. Quản lý các chính sách  
Khi sdng các dch vchia strên mng, tùy theo mi ng dng scó mt lut kết hp riêng  
gi là các policy. Các policy cần được qun lý các áp dng cho mi dch vckhi thiết kế ln  
khi trong thi gian thc thi.  
2.5. Khả năng cộng tác  
Kiến trúc hướng dch vnhn mạnh đến khả năng cộng tác, khả năng mà hệ thng có thgiao  
tiếp vi nhau trên nhiu nn tng và ngôn ngkhác nhau. Mi dch vcung cp mt interface có  
thể được triu gi thông qua mt dng kết ni. Mt kết nối được gi là mt interoperable cha  
bên trong nó mt giao thc và một định dng dliu mà mi client kết nối đến nó đều hiu.  
2.6. Tự động dò tìm và ràng buộc động  
Vi tính cht này khi sdng kiến trúc SOA một người sdng cần đến mt dch vụ nào đó có  
thtìm kiếm dch vda trên mt stiêu chun khi cần. Người sdng chcn hi mt registry  
vdch vnào tha mãn yêu cu tìm kiếm.  
2.7. Tự phục hồi  
Mt hthng tphc hi là hthng có khả năng tự phc hi sau khi bli mà không cn scan  
thip của con người. Trong kiến trúc hướng dch v, các dch vluôn có thhoạt động hay  
ngng bt klúc nào, nhất là đối vi nhng ng dng tng hp tnhiu dch vca nhiu tổ  
chức khác nhau. Độ tin cy ca hthng phthuc vào khả năng phục hi ca phn cng sau khi  
bli.  
3. Lợi ích khi sử dụng SOA  
Nói đến SOA là nói đến “tiết kim” – ctiết kim chi phí lẫn thu được giá trnhiều hơn từ các hệ  
thng có sn. Sdng mô hình SOA trong vic thiết kế hthng mang li li ích vmt kinh tế  
cũng như kỹ thut.  
- Li ích tvic tái sdng.  
Mt trong nhng li ích rõ ràng nht của SOA là nó giúp các công ty thu được giá trbng vic  
tái sdng li nhng tài nguyên có sn. Thông qua vic tái sdng này có thtiết kim chi phí  
cho phn kiến trúc và tích hp, không nhng thế nó còn gim chi phí mua phn mm mi. Thi  
gian viết chương trình ly dliu tmáy chcũng giảm rt nhiều.Thông thường nhng nhóm  
[18]  
phn mềm được phát trin trên nhiu nn tng khác nhau, sdng nhiu ngôn nglp trình khác  
nhau và thường có nhiều tính năng lặp li gia chúng. Sdng hthng SOA cho phép các công  
ty tránh khi tình trng lặp dư thừa, to ra những đơn thể dch vchia sgia các ng dng.  
Trong mt hthng SOA, chcn thay đi duy nht mt phiên bn ca dch vcần được thay  
đổi và chcn kim thmt ln, sdng nhng kỹ năng tương ứng vi những ký năng đã dùng  
để phát trin dch v-> gim chi phí bo trì phn mm. Ngoài ra còn giúp doanh nghip chu  
trách nhim nhiu hơn với những thay đổi vmt nghip vvà cho phép doanh nghip cp nht  
những tính năng của nó nhanh hơn.  
Ngoài ra sdng nhng thành phn có sẵn trước đó mỗi khi có ththì mi khi có li xy ra ta có  
thgii hn vào khu vc có nhng thành phần đang được phát trin. Nhờ đó rủi ro vli phn  
mm giảm đi và tăng chất lượng dch v.  
- Li ích kinh tế:  
Doanh nghiệp có điều kin tp trung thời gian để tìm kiếm các gii pháp cho các bài toán liên  
quan đến kinh tế.  
Thúc đy sphát trin ca hthng hin có cũng như cung cấp khả năng mở rng hthng trong  
tương lai.  
- Li ích kthut:  
Hthng xây dng theo mô hình SOA đảm bo các service trong hthống có tính độc lp cao  
(độ kết dính thp).  
Trên phương diện người sdng, vtrí các service có tính trong sut (transparency), vic di di  
các service đến mt máy tính khác không ảnh hưởng khả năng phục vyêu cu khách hàng.  
Hoạt động của các service có tính động, hành vi ca các service tùy thời điểm, tùy yêu cu cn  
xlý mà có skhác nhau.  
Thích ng vi những thay đổi trong tương lai. Ngoài ra kiến trúc hướng dch vcòn htrợ đa  
thiết bị như pager, điện thoại di động và htrợ đa nền tng.  
4. Kết lun  
[19]  
Chương này trình cơ sở lý thuyết ca mô hình SOA, bao gm: khái nim, cấu trúc, các tính năng  
và li ích ca nó trong vic xây dng mt web service và kết hp theo chun. ng dng khi xây  
dng kiến trúc bo mật hướng dch vụ. Thông qua đây chúng ta cũng biết được kiên trúc hướng  
dch vtht sự đem lại nhng li ích to ln. Và cung cp nhng kiến thức cơ bản về SOA để  
phc vcho phn sau SOA và Web Service gii quyết vấn đề tích hợp như thế nào.  
CHƯƠNG 3  
Web Service  
3.1. Service  
3.1.1. Định nghĩa  
Theo định nghĩa IBM  
“service is a repeatable task within a business process…”[3].  
Service là mt ng dng vi user, mt thao tác được thc hin mt hoc nhiu ln trong mt tiến  
trình nghip vụ được thc hin bi một người hoc một nhóm ngưi.  
Service là mt hthng có khả năng nhận mt hay nhiu yêu cu xlý và sau đó đáp ứng li  
bng cách trvmt hay nhiu kết qu. Quá trình nhn yêu cu và trkết quả được thc hin  
[20]  
thông qua các interface đã được định nghĩa trước đó. Thông thường, vic giao tiếp này đưc thc  
hiện trên các interface đã được chun hóa và sdng rng rãi.  
Mt tiến trình gm nhiu services và nhiu tiến trình hp li thành mt service hay cũng có thể  
nói mt service có thbao gm nhiu services khác. Ví dụ: Thư điện tlà mt service.  
Có nhiu loi dch vkhác nhau, có nhng dch vchmang tính cht công cộng cho phép người  
xa truy nhp thông tin qua mng, cũng có loại dch vmang tính cht local và gii hạn người  
sdng.  
Ví dụ đơn giản vmt service chính là hoạt động ca mt nhà hàng. Khi khách hàng vào nhà  
hàng và gi thức ăn, khách hàng đang tiền hành gi các yêu cu ca khách hàng, nếu món ăn  
khách hàng yêu cu nhà hàng không có hoặc đã hết, nhân viên nhà hàng stchi hoặc đề nghị  
khách hàng gi món khác. Nếu nhà hàng có thể đáp ứng được yêu cu của khách, món ăn sẽ  
được chế biến và mang ra cho khách hàng muốn thưởng thc, còn kết qutrvca service  
phc vnhà hàng chính là tchối hay là món ăn mà khách hàng không cần [4].  
3.1.2. Đặc điểm service  
Có ranh gii rõ ràng: Mỗi service được xây dng da trên các interface chun hòa đã được  
sdng rng rãi. Chi tiết thc hin ca mi service skhông được thhin ra bên ngoài. Mi  
service chcông bmt scác interface ca nó cho user có thể dùng để gi các yêu cu và  
nhn kết qutrv.  
Tính ttr(autonomous): Mỗi service có tính độc lp cao, có thể được xây dựng và đưa vào  
sdng mà không phthuc vào các service khác.  
Vmặt trao đổi dliu, các service không truyền các class và type. Thay vào đó, các class và  
type sẽ được đặc thình thc  
Sự tương thích giữa các service được căn cứ vào các policy. Tương thích về mt cu trúc da  
trên các đặc thình thc bao gm contract da trên WSDL hoc Businesss Process  
Execution Language for Web Services.  
[21]  
3.2. Web service  
3.2.1. Định nghĩa  
Là mt hthng phn mềm được thiết kế nhm htrkhả năng tương tác gia các máy tính  
hoc vi các thiết bkhác thông qua mng. Một WS được xác định bằng địa chURL(Uniform  
Resource Locator) thc hin các chức năng và đưa ra thông tin người dùng yêu cu. Nó có thể  
cung cp các chức năng khác nhau từ cơ bản nhất đến nhng nghip vphc tp hay nhng qui  
trình khoa hc...  
Hình 3.1: Mô hình Web Service  
WS sdng nn tng là ngôn ngXML(extensible makup language) cho việc trao đổi dliu.  
Các hthống tương tác với WS theo một phương pháp qui định bng cách sdng các thông  
điệp SOAP(Simple Object Acess Protocol) sdng giao thc HTTP. Và mô hình đặc thù ca  
WS là mô hình client-server. WS được đặc tsdng các chun WSDL, UDDI, SOAP, W3C...  
[22]  
Giao din của nó được mô ttrong mt khuân mu khả năng xử lý máy (tiêu biu là WSDL).  
Giao diện này được gi là giao din “dch v”. Nó giúp WS có thể được gi bi bt kì mt ng  
dng nào hay bi 1 WS nào khác.  
Hình 3.2: Kiến trúc ca Web Serice  
[23]  
3.2.2. Cấu trúc web service  
Hình 3.3: Web service protocol stack  
Hình 3.3 mô tcác layer hình thành nên Web Service. Trong đó:  
Service Provider: Dùng WSDL để mô tdch vmà mình có thcung cp cho Service Broker  
(tương tự Service Registry trong SOA)  
Service Broker: Lưu trữ thông tin về các service được cung cp bi các Service Provider. Cung  
cp chức năng tìm kiếm htrService Requester (Service Consumer trong SOA) trong vic xác  
định Service Provider phù hp. Thành phn chính ca Service Broker là UDDI.  
Service Requester: Dùng WSDL để đặc tnhu cu sdng(loi service, thi gian sdng,  
resource cn thiết, mc giá…) và gi cho Service Broker. Bng vic sdng UDDI và chc  
năng tìm kiếm ca Service Broker, Service Requester có thtìm thy Service Provider thích hp.  
Ngay sau đó, giữa Service Requester và Service Provider thiết lp kênh giao tiếp sdng SOAP  
để thương lượng giá cvà các yếu tkhác trong vic sdng service.  
[24]  
Hình 3.4: Tương tác giữa các thành phn web service  
3.2.3. Các đặc điểm của web service  
Web services được truy xut thông qua Web bằng cách dùng địa chURL  
Web services liên lc vi thế gii bên ngoài dùng thông điệp XML được gi trc tiếp qua  
Web protocols. Giao tiếp với ngưi dung bng những phương thức m.  
Web services được đăng kí tại nơi chung và được đặc ttt ccác chức năng  
Có độ an toàn riêng tư  
Web Service cho phép client tương tác với server ngay ctrong những môi trường khác  
nhau. Và nó cũng đóng vai trò như là một thiết bcó th“giao tiếp” vi các Web service  
khác mà không cần quan tâm đến các yêu cu bên trong. Ví dụ, đặt web server trên mt máy  
chchy hệ điều hành Linux trong khi người sdụng để máy tính chy hệ điều hành  
windows, ng dng vn có thchy và xlý bình thường mà không cn thêm yêu cầu đặc  
biệt để tương thích giữa hai hệ điu hành.  
Phn lớn các web services được xây dng da trên mã ngun mở và được phát trin tcác  
chuẩn đưc công nhn, ví dụ như XML.  
[25]  
Mt WS bao gm nhiu module và có thcông btrên mng Internet  
3.2.4. Các thành phần của web service  
Web service là mt tp các chuẩn đặc tmrng khả năng của các chun có sẵn như XML,  
URL, HTTP, nhm cung cp chun truyn thông gia các hthng vi nhau. Web services là  
nhng thành phn thc thi mt sxlý nghip vthông qua nhng dch vvà cung cp nhng  
dch vqua mng, nhng dch vnày có thể được triu gi bi các dch vclient bng cách sử  
dng giao thc SOAP trên HTTP. Web service độc lp vngôn ngữ và độc lp vnn tng bi  
vì nó tách biệt đặc tra khỏi cài đặt; nó còn htrtích hp loose coupling gia các ng dng vi  
nhau qua trao đổi các thông điệp đồng bvà bất đồng bthông. Web services da trên kiến trúc  
phân tán trong đó không có bất kì dch vxlý trung tâm nào và tt cdng truyền thông đều sử  
dng các giao thc chun. Các giao thức không đưc có bt ký nghĩa ngầm định nào bên trong  
mà phải được mô trõ ràng.  
Hình 3.5: Các thành phn web service  
3.2.4.1. WSDL (Web Services Description Language)  
Ngôn ngữ đặc tdch Web Service, . Ngôn ngữ này cơ bản dựa trên XML, khi tương tác các dịch  
vvới nhau ta tương tác file WSDL của chúng. Mt client có thể đọc WSDL để xác định nhng  
chức năng có sẵn trên server, sau đó client có thể sdụng SOAP để ly ra nhng chức năng  
chính xác có trong WSDL.  
Cu trúc chính ca mt tài liệu WSDL như sau:  
[26]  
Hình 3.6: Cu trúc WSDL  
-
-
Service: Cha các method có thể được sdng thông qua các web protocol.  
Ports: Địa chỉ dùng để kết nối đến WS. Thông thường, ports được mô tbng mt HTTP  
URL.  
-
<type>: xác định kiu dliệu mà được sdụng đc tWS  
<types>  
<xsd:schema .... />*  
</types>  
-
<message>: mô tả thông điệp truyền đi giữa client và server. Mi một thông điệp có mt tên  
duy nhất và tương ứng vi mt operation và cha các thông tin cn thiết để thc thi operation  
đó. Mỗi message có thbao gm mt hoc nhiu phn. Mi phn có thể được so sánh vi  
thông sca mt chức năng gọi trong ngôn nglp trình truyn thng. Các thc thi và nhng  
message được mô hình riêng rẽ để htrtính linh hoạt và đơn giản hóa vic tái sdng li.  
Chng hn, hai thao tác vi cùng tham scó thchia smột định nghĩa message.  
<message name="nmtoken"> *  
<part name="nmtoken" element="qname"? type="qname"?/> *  
[27]  
</message>  
-
<portType>: Định nghĩa một web service, các tác vmà service cung cấp và định dng các  
thông điệp được sdụng để khởi động các tác vnày.  
<Wsdl:portType name="nmtoken">  
<Wsdl:operation name="nmtoken" .... /> *  
</Wsdl:portType>  
-
-
Operations: Mi operation có thể được xem như một method hay mt li gi hàm trong các  
ngôn nglp trình cổ điển.  
Binding: Chỉ định port type, các operation và cha các thông tin cn thiết để thc thi  
operation đó. Mỗi message có mt tên duy nht và mt hay nhiu thành phần được phân bit  
vi nhau qua tên và có thể lưu trữ các tham scn cho operation.  
-
-
Element: Được định nghĩa trong Types. Mỗi element có mt tên duy nht và kiu dliu.  
Element được dùng để đặc tdliu dùng trong message. Element có thể đặc tcác dliu  
đơn giản như string, integer hay phức tạp hơn như array, truct…  
XSD file: Các element thường được định nghĩa trong các XML Schema Definition. XSD file  
có thể ở trong cùng file WSDL hoc file riêng bit.  
Mô tcách nhn và gi thông điệp, là mt phn tquan trng trong WSDL. Phn tcó thể  
được so sánh như chức năng thư viện(hay mt module, class) trong các ngôn nglp trình.  
WSDL định nghĩa 4 kiểu thao tác mà mt cng có thhtr:  
- One-way: cng nhn một message, message đó là message nhp  
- Request – response: cng nhn mt message và gi mt message phn hi  
- Solicit-response: Cng gi mt message và gi vmt message  
- Notification: Cng gi một message, message đó là message xuất.  
Mi kiu thao tác có cú pháp biến đổi tùy theo thtca các message nhp, xut và li.  
[28]  
3.2.4.2. UDDI (Universal Description, Discovery and Integration)  
Làm thế nào để mt client sdụng được mt web service?  
Để có thsdụng được các dch vụ, trước tiên client phi tìm dch v, ghi nhn thông tin về  
cách sdng và biết được đối tượng nào cung cp dch vụ. UDDI định nghĩa một sthành phn  
cho biết các thông tin này, cho phép các client truy tìm và nhn những thông tin được yêu cu  
khi sdng Web Service. Nhim vchính ca nó chính là tìm đúng dịch vụ đang cần và định  
nghĩa các kích hoạt dch v. Các client stìm kiếm, ghi nhn thông tin thông qua vic truy cp  
đến UDDI.  
UDDI giao tiếp thông qua SOAP và được xây dng trên nn Microsoft.NET  
UDDI sdng W3C (World Wide Web Consortium) và IETF (Internet Engineering Task Force)  
sdng các chuẩn Internet như XML, HTTP, và phương thức DNS. UDDI sdụng WSDL để  
mô tgiao diện đến web services.  
Trước UDDI chưa có chuẩn Internet nào cho các nhà doanh nghip tiếp cn khách hàng ca họ  
vi các thông tin vsn phm và dch vca hvà cũng chưa có phương thức nào tích hp các  
hthng khác nhau vào. UDDI gii quyết mt svấn đề như: Tìm kiếm ra hàng triệu người hin  
đang online (có thể giúp mt doanh nghip phát trin tốt), xác định hướng phát trin khi mt tính  
năng thương mại được phát hin, tiếp cn khách hàng mới và tăng lượng khách hàng hin ti.  
Mrng thị trường.  
3.2.4.3. SOAP (Simple Object Access Protocol)  
Là giao thc triu gọi các đối tượng da trên nn giao thc HTTP và ngôn ngữ XML. Các đối  
tượng được cài đặt và chy trên một web service nào đó trên Internet. Chúng ta lập trình và gi  
phương thức, thuc tính của nó trên chương trình và máy tính ca chúng ta. Có khả năng tích  
hợp các chương trình trên Internet. SOAP định nghĩa cơ chế giao tiếp giữa các đối tượng thông  
qua 2 bước: SOAP request và SOAP response.  
SOAP = XML + Mt giao thc có thhoạt động trên Internet (HTTP, FTP, SMTP) trong đó  
HTTP phbiến hơn cả.  
[29]  
Hình 3.7: Trao đổi thông điệp SOAP  
Thông điệp theo định dng XML bình thường gm các phn như hình sau:  
SOAP envelope – Phn tgc  
header  
Body  
fault  
Hình 3.8: Cu trúc của thông điệp SOAP  
- SOAP envelope: Phn tgc bao trùm nội dung thông điệp, khai báo văn bản XML như một  
thông điệp SOAP.  
<?xml version="1.0"?>  
<soap:Envelope  
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"  
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">  
...  
Message information goes here  
...  
</soap:Envelope>  
[30]  

Tải về để xem bản đầy đủ

pdf 70 trang yennguyen 28/05/2025 190
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu bảo mật web services", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nghien_cuu_bao_mat_web_services.pdf