Tải bản đầy đủ (.pdf) (83 trang)

Nghiên cứu, thử nghiệm các phương pháp đảm bảo an toàn an ninh cho web

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.01 MB, 83 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

Lê Hà Chi

NGHIÊN CỨU, THỬ NGHIỆM CÁC PHƯƠNG PHÁP ĐẢM
BẢO AN TOÀN AN NINH CHO WEB SERVICE

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Nguyễn Linh Giang

Hà Nội – Năm 2015


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

LỜI CAM ĐOAN
Tôi Lê Hà Chi cam kết luận văn thạc sĩ là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của PGS.TS Nguyễn Linh Giang.
Các kết quả nêu trong luận văn thạc sĩ là trung thực, không phải là sao chép toàn
văn của bất kỳ công trình nào khác.

Hà Nội, ngày

tháng năm

Tác giả



Lê Hà Chi

Lê Hà Chi_13BCNTT.KH

Trang 1


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

MỤC LỤC
Danh mục chữ viết tắt ....................................................................................... 4
Danh mục các bảng ........................................................................................... 5
Danh mục hình vẽ ............................................................................................. 5
LỜI NÓI ĐẦU .................................................................................................. 7
CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT WEB SERVICE ...................... 9
1.1. WEB SERVICE .......................................................................................................................9
1.1.1. Khái niệm Web service .....................................................................................................9
1.1.2. Đặc điểm của Web service ..............................................................................................10
1.1.3. Kiến trúc của Web service ..............................................................................................12
1.1.4. Các thành phần của Web service.....................................................................................15
1.2. BẢO ĐẢM AN TOÀN CHO WEB SERVICE .....................................................................18
1.2.1. Tổng quan về bảo đảm an toàn cho Web service ............................................................18
1.2.2. Các kỹ thuật bảo mật Web service .................................................................................18
1.3. THỰC TRẠNG BẢO MẬT...................................................................................................19

CHƯƠNG 2 - CƠ CHẾ ĐĂNG NHẬP MỘT LẦN ( SINGLE SIGN ON)... 21
2.1. TỔNG QUAN VỀ CƠ CHẾ ĐĂNG NHẬP MỘT LẦN (SINGLE SIGN ON) ....................21
2.1.1. Khái niệm cơ chế đăng nhập một lần ..............................................................................21
2.1.2. Ưu khuyết điểm của cơ chế đăng nhập một lần ..............................................................22

2.1.3. Danh sách các giải pháp của SSO ...................................................................................23
2.2. GIẢI PHÁP OPENID ............................................................................................................31
2.2.1. Hoạt động của OpenID....................................................................................................31
2.2.2. Ưu, nhược điểm của OpenID ..........................................................................................44
2.3. GIẢI PHÁP KEBEROS .........................................................................................................45
2.3.1. Hoạt động của Kerberos ..................................................................................................45
2.3.2. Ứng dụng của Kerberos...................................................................................................50
2.3.3. Mô tả giao thức ...............................................................................................................51
2.3.4. Ưu điểm và nhược điểm của Keberos .............................................................................51

CHƯƠNG 3 - GIẢI PHÁP SHIBBOLETH ................................................... 53
3.1. HOẠT ĐỘNG CỦA SHIBBOLETH .....................................................................................53
Lê Hà Chi_13BCNTT.KH

Trang 2


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

3.1.1. Khái niệm về Shibboleth .................................................................................................53
3.1.2. Hoạt động của Shibboleth ...............................................................................................54
3.2.SẢN PHẨM CỦA SHIBBOLETH .........................................................................................56
3.2.1. Centralized Discovery Service ........................................................................................56
3.2.2. Embedded Discovery Service .........................................................................................57
3.2.3. Identity Provider..............................................................................................................57
3.2.4. Metadata Aggregator .......................................................................................................58
3.2.5. Service Provider ..............................................................................................................59

CHƯƠNG 4 - THỬ NGHIỆM VÀ ĐÁNH GIÁ SHIBBOLETH .................. 61
4.1. ĐẶT VẤN ĐỀ CHO BÀI TOÁN ..........................................................................................61

4.2. MÔ HÌNH BÀI TOÁN ..........................................................................................................62
4.3. CÀI ĐẶT HỆ THỐNG ..........................................................................................................63

KẾT LUẬN ..................................................................................................... 81
TÀI LIỆU THAM KHẢO ............................................................................... 82

Lê Hà Chi_13BCNTT.KH

Trang 3


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Danh mục chữ viết tắt
SSO

Đăng nhập một lần

B2B

Doanh nghiệp tới doanh nghiệp

B2C

Doanh nghiệp tới người dùng

W3C

World Wide Web Consortium


SOAP

Simple Object Access protocol

WSDL

Web Service Description Language

UDDI

XACML

Universal Description, Discovery, and
Integration
eXtensible Access Control Markup
Language

SAML

Security Assertion Markup Language

WS-Policy

Web Services Policy Framework

XrML

eXentisble Rights Markup Language

SSL


Secure Socket Layer

TCP/IP

Bộ giao thức liên mạng

HTTP

Giao thức truyền tải siêu văn bản

SMTP

Giao thức truyền tải thư tín đơn giản

API

Application Programming Interface

UDDI

Universal Description Discovery and
Intergration

FTP

Giao thức truyền tệp tin

JSM


Joint Statistical Meeting

IdP

Identity Provider

SP

Service Provider

IS

Identity Selector

LDAP

Lightweight Directory Acess Protocol

IMAP

Internet Message Access Protocol

Lê Hà Chi_13BCNTT.KH

Trang 4


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

XMPP

RFC
SASL

Extensible Messaging and Presemce
Prococol
Đề nghị duyệt thảo và bình luận
Simple Authentication and Security
Layer

KDC

Key Distribution Center

AS

Authentication Server

TGS

Ticket Granting Server

SS

Service Server

SLO

Single Log Out

Danh mục các bảng

Bảng 1 Danh sách các ứng dụng của SSO ................................................................ 31

Danh mục hình vẽ
Hình 1 SOAP cơ bản của Web service............................................................................................. 10
Hình 2 Chồng giao thức Web service ............................................................................................. 13
Hình 3 Tầng giao thức tương tác dịch vụ ......................................................................................... 14
Hình 4 Trước và sau khi sử dụng Single Sign On ............................................................................ 21
Hình 5 Quy trình của hệ thống quản lý định danh ........................................................................... 36
Hình 6 Cơ chế hoạt động của OpenID ............................................................................................. 38
Hình 7 Giải pháp Kerberos .............................................................................................................. 45
Hình 8 Hoạt động của giao thức Kerberos ....................................................................................... 48
Hình 9 Quy trình làm việc của Shibboleth ....................................................................................... 55
Hình 10 Mô hình làm việc của Shibboleth ....................................................................................... 62
Hình 11 Cài đặt OpenDS 1............................................................................................................... 64
Hình 12 Cài đặt OpenDS 2............................................................................................................... 65
Hình 13 Cài đặt OpenDS 3............................................................................................................... 66

Lê Hà Chi_13BCNTT.KH

Trang 5


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Hình 14 Cài đặt OpenDS 4............................................................................................................... 66
Hình 15 Cài đặt OpenDS 5............................................................................................................... 67
Hình 16 Cài đặt OpenDS 6............................................................................................................... 68
Hình 17 Kiểm tra cài đặt Tomcat ..................................................................................................... 70
Hình 18 Deploy file idp.war............................................................................................................. 71
Hình 19 Khởi tạo certificate 1 .......................................................................................................... 71

Hình 20 Khởi tạo certificate 2 .......................................................................................................... 72
Hình 21 Khởi tạo certificate 3 .......................................................................................................... 72
Hình 22 Đăng nhập IdP .................................................................................................................... 80

Lê Hà Chi_13BCNTT.KH

Trang 6


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

LỜI NÓI ĐẦU
Năm 2014 khép lại, những từ mà giới công nghệ thông tin nghe nhiều nhất năm qua
chính là “ hacker”, “ mất cắp dữ liệu”, “ an ninh mạng”. Có thể nói rằng năm 2014
là năm bùng nổ của những cuộc tấn công vào hệ thống mạng máy tính.
Điểm nhấn đầu tiên của năm 2014 đó chính là các vụ tấn công đánh cắp hoặc phá
hủy dữ liệu xảy ra dồn dập. Hầu hết các vụ đình đám đều được nhắc với những dấu
ấn “ lớn nhất” hoặc “ lần đầu tiên trong lịch sử”. Ví dụ như eBay, hãng thương mại
điện tử hàng đầu thế giới bị đánh cắp 145 triệu thông tin tài khoản người sử dụng
hồi tháng 5. Hay như vụ tấn công tồi tệ nhất trong lịch sử cấc ngân hàng khiến hơn
80 triệu dữ liệu tài khoản khách hàng của JPMorgan bị lộ. Rồi các hãng bán lẻ như
Home Depot bị mất 53 triệu thông tin thẻ tín dụng của khách hàng hay hơn 70 triệu
thông tin của Target rơi vào tay kẻ xấu.
Chưa hết, vụ tấn công lấy cắp dữ liệu của Sony vào cuối năm 2014 có thể nói là một
trong những vụ tấn công “ khủng khiếp” xảy ra đối với các doanh nghiệp. Cuộc tấn
công ngay lập tức khiến cổ phiếu của Sony lao xuống thẳng đứng và còn khiến cho
bộ phim Interview trở thành bộ phim lần đầu tiên trong lịch sử bị hoãn chiếu với lý
do bị hack. Tại Việt Nam, vụ tấn công vào VC Corp cũng có thể nói là vụ tấn công
nhằm vào dữ liệu lớn nhất từ trước đến nay gây ảnh hưởng tới hoạt động của nhiều
dịch vụ và được ước tính thiệt hại lên tới hàng chục tỷ đồng.

Những vụ tấn công này đã gióng lên hồi chuông cảnh báo cho người dùng công
nghệ nói riêng và toàn thế giới nói chung cần chú trọng hơn nữa vào công tác đảm
bảo an toàn an ninh mạng.
Mục tiêu của đồ án là nghiên cứu, thử nghiệm một số phương pháp đảm bảo an toàn
an ninh cho dịch vụ web. Tập trung vào các cơ chế xác thực và đăng nhập một lần
(SSO).
Nội dung của đồ án được chia làm bốn phần

Lê Hà Chi_13BCNTT.KH

Trang 7


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

CHƯƠNG 1 TỔNG QUAN VỀ BẢO MẬT WEB SERVICE
CHƯƠNG 2 CƠ CHẾ ĐĂNG NHẬP MỘT LẦN ( SINGLE SIGN ON)
CHƯƠNG 3 GIẢI PHÁP SHIBBOLETH
CHƯƠNG 4 THỬ NGHIỆM VÀ ĐÁNH GIÁ SHIBBOLETH
Tuy đã cố gắng nhưng do kiến thức còn hạn chế đồ án này không thể tránh khỏi
được những thiếu sót, tôi rất mong nhận được sự đóng góp ý kiến từ các thầy cô
giáo và các bạn
Tôi xin được bày tỏ sự biết ơn sâu sắc đến PGS.TS Nguyễn Linh Giang, Bộ môn
Truyền thông và mạng máy tính, viện Công nghệ thông tin và truyền thông, Trường
Đại học Bách Khoa Hà Nội, người đã nhiệt tình giúp đỡ, hướng dẫn tôi hoàn thành
đồ án tốt nghiệp này.

Lê Hà Chi_13BCNTT.KH

Trang 8



Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT WEB SERVICE
1.1. WEB SERVICE
1.1.1. Khái niệm Web service
Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc cách mạng
trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C
(Business to Customer). Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các
phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống
kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy
trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu
thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính. Tuy
nhiên, công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ
mới, nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI…
Với sự phát triển và lớn mạnh của Internet, dịch vụ Web thật sự là một công nghệ
đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ
thống.
Theo định nghĩa của W3C (World Wide Web Consortium), Web service là một hệ
thống phần mềm được thiết kế với khả năng hỗ trợ tương tác giữa các ứng dụng trên
các máy tính khác nhau thôn qua mạng Internet. Giao diện chung và sự gắn kết của
nó được mô tả bằng XML. Web service là tài nguyên phần mềm có thể xác định
bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu
cầu. Một Web service được tạo nên bằng cách lấy các chức năng và đóng gói chúng
sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ
mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ Web service khác. Nó bao
gồm các mô đun độc lập cho hoạt động của khách hàng và doanh nghiệp và bản
thân nó được thực thi trên server.
Theo IBM , nói tới Web service như việc trao đổi các thông điệp SOAP giữa các hệ

thống. Các thông điệp này được cấu tạo từ XML( là một tiêu chuẩn mở dựa trên văn

Lê Hà Chi_13BCNTT.KH

Trang 9


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

bản) có thể truy cập bởi bất kỳ ai, từ bất kỳ ứng dụng nào (ứng dụng được thiết kế
để chấp nhận nó). Điều này mở rộng thế giới cho ứng dụng của bạn để bất cứ ai
cũng có thể dùng nó trên mạng của bạn.
Một SOAP cơ bản của Web service liên quan đến việc gửi một thông điệp XML
như thể hiện trong hình

Hình 1 SOAP cơ bản của Web service

Các thông điệp này di chuyển từ một hệ thống, thường là thông qua HTTP. Hệ
thống tiếp nhận diễn giải thông điệp ( những gì nó phải làm) và gửi lại phản hồi
bằng một trong các hình thức của thông điệp SOAP.
1.1.2. Đặc điểm của Web service
Web service cho phép client và server tương tác được với nhau ngay cả trong những
môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy
hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành
Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu
cầu đặc biệt để tương thích giữa hai hệ điều hành này.
Phần lớn kĩ thuật của Web service được xây dựng dựa trên mã nguồn mở và được
phát triển từ các chuẩn đã được công nhận, ví dụ như XML.
Một Web service bao gồm có nhiều mô đun và có thể công bố lên mạng Internet.


Lê Hà Chi_13BCNTT.KH

Trang 10


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ
thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng,
những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet.
Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có
thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle
Application server hay Microsoft.Net…
Ngày nay Web service đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp
dụng và tích hợp Web service là khá rộng lớn như dịch vụ chọn lọc và phân loại tin
tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần
thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…),
các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu
giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé
máy bay, thông tin thuê xe…
Các ứng dụng có tích hợp Web service đã không còn là xa lạ, đặc biệt trong điều
kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn
mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với
Web service, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày
nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc phát
triển và tích hợp các ứng dụng với Web service đang được quan tâm phát triển là
điều hoàn toàn dễ hiểu.
Ưu điểm:



Web service cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần

mềm khác nhau chạy trên những nền tảng khác nhau.


Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên

văn bản, giúp các lập trình viên dễ dàng hiểu được.


Nâng cao khả năng tái sử dụng.

Lê Hà Chi_13BCNTT.KH

Trang 11


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service



Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các

tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service.


Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong

hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.



Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành

hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các
doanh nghiệp khác.
Nhược điểm:


Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web service,

giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu
các giao thức cho việc vận hành.


Có quá nhiều chuẩn cho Web service khiến người dùng khó nắm bắt.



Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

1.1.3. Kiến trúc của Web service
Web service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol),
WSDL (Web Service Description Language) và UDDI (Universal Description,
Discovery, and Integration). Hình 2 mô tả chồng giao thức của Web service, trong
đó UDDI được sử dụng để đăng ký và khám phá Web service đã được miêu tả cụ
thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server,
sau đó các ứng dụng SOAP yêu cầu một Web service. Các thông điệp SOAP được
gửi đi chính xác bởi HTTP và TCP/IP.

Lê Hà Chi_13BCNTT.KH


Trang 12


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Hình 2 Chồng giao thức Web service

Chồng giao thức Web service là tập hợp các giao thức mạng máy tính được sử dụng
để định nghĩa, xác định vị trí, thi hành và tạo nên Web service tương tác với những
ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính:
Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các
ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây
nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange ProtocolBEEP).
Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có
thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức
thực hiện nhiệm vụ này là XML-RPC, SOAP và REST.

Lê Hà Chi_13BCNTT.KH

Trang 13


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một Web service
cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả
giao tiếp và thực thi dựa trên XML. Web service sẽ sử dụng ngôn ngữ này để truyền
tham số và các loại dữ liệu cho các thao tác và chức năng mà Web service cung cấp.
Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp

một Web service có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng,
tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một Web service
cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp. Hiện
tại, UDDI API thường được sử dụng để thực hiện công việc này.

Hình 3 Tầng giao thức tương tác dịch vụ
Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với
công nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng
mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông
qua một thông điệp XML. Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn và bảo

Lê Hà Chi_13BCNTT.KH

Trang 14


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

mật thông tin, trong kiến trúc Web service, chúng ta có thêm các tầng Policy,
Security, Transaction, Management.
1.1.4. Các thành phần của Web service
a) XML – eXtensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để
định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B. Về
hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng
HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa
những thành phần đó chứa cái gì. Với XML, các thẻ có thể được lập trình viên tự
tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi tính phổ
biến và hiệu quả mã nguồn mở.
Do Web service là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các

tính năng và đặc trưng của các thành phần đó để giao tiếp. XML là công cụ chính để
giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một Web service,
tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML. Khi đó, các thông tin mã
hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC
và có thể tương tác với nhau trong một thể thống nhất.
b) WSDL – Web Service Description Language
WSDL là một tiêu chuẩn W3C, nó là một ngôn ngữ dựa trên nền XML dùng để
định vị và mô tả Web service, bao gồm các thông tin:


Tên service



Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của Web service



Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của

Web service cộng với tên cho giao diện này).
Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thức
kết nối) và phần thi hành mô tả thông tin truy xuất CSDL. Cả hai phần này sẽ được

Lê Hà Chi_13BCNTT.KH

Trang 15


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service


lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành
dịch vụ. Giao diện của một Web service đưa ra cách thức làm thế nào để giao tiếp
qua Web service. Tên, giao thức liên kết và định dạng thông điệp yêu cầu để tương
tác với Web service được đưa vào thư mục của WSDL.
WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp Web
service qua Internet. Một client khi kết nối tới Web service có thể đọc WSDL để
xác định những chức năng sẵn có trên server. Sau đó, client có thể sử dụng SOAP
để lấy ra chức năng chính xác có trong WSDL.
c) Universal Description, Discovery, and Integration (UDDI)
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin
về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI là một thư
mục dịch vụ, nơi mà chúng ta có thể đăng ký và tìm kiếm các web service. UDDI
định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy
tìm và nhận những thông tin được yêu cầu khi sử dụng Web service. UDDI là một
thư mục các giao diện dịch vụ web được mô tả bởi WSDL, nó giao tiếp thông qua
SOAP.
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin
về cách sử dụng dịch vụ và biết được đối tượng cung cấp dịch vụ. UDDI định nghĩa
một số thành phần cho biết trước các thông tin này để cho phép các client truy tìm
và nhận lại những thông tin yêu cầu sử dụng web services.
Cấu trúc UDDI gồm các thành phần:


Trang trắng – White pages: chứa thông tin liên hệ và các định dạng chính

yếu của Web service, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng…
Những thông tin này cho phép các đối tượng khác xác định được dịch vụ.

Lê Hà Chi_13BCNTT.KH


Trang 16


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service



Trang vàng – Yellow pages: chứa thông tin mô tả Web service theo những

loại khác nhau. Những thông tin này cho phép các đối tượng thấy được Web service
theo từng loại với nó.


Trang xanh – Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các

chức năng của Web service.


Loại dịch vụ – tModel: chứa các thông tin về loại dịch vụ được sử dụng.

Những thông tin về Web service được sử dụng và công bố lên mạng sử dụng giao
thức này. Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của Web service khác
nhằm xác định xem dịch vụ nào sẽ cần đến nó.UDDI được xây dựng để góp phần
vào nền tảng Microsoft .NET.
d) SOAP – Simple Object Access Protocol
SOAP là một giao thức giao tiếp có cấu trúc như XML. Nó được xem là cấu trúc
xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ
điều hành khác nhau. SOAP là một giao thức dựa trên nền XML cho phép ứng dụng
trao đổi các thông tin thông thường sử dụng giao thức HTTP. Cụ thể hơn thì SOAP

là một giao thức dùng để truy cập các web service. SOAP rất đơn giản và có thể mở
rộng. Vì dựa trên XML nên SOAP là một giao thức không phụ thuộc platform cũng
như bất kì ngôn ngữ lập trình nào. SOAP cho phép chúng ta vượt qua bức tường lửa
(firewall).
Một thông điệp SOAP được chia thành hai phần là header và body. Phần header chỉ
ra địa chỉ web service, host, Content-Type, Content-Length tương tự như một thông
điệp HTTP.
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi những
thông điệp trả lời tới client. Cả SMTP và HTTP đều là những giao thức ở lớp ứng

Lê Hà Chi_13BCNTT.KH

Trang 17


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay
nó có thể làm việc rất tốt với cơ sở hạ tầng Internet.
1.2. BẢO ĐẢM AN TOÀN CHO WEB SERVICE
1.2.1. Tổng quan về bảo đảm an toàn cho Web service
Một Web service được coi là bảo mật khi đáp ứng được đầy đủ các yếu tố:


Identification: định danh được những ai truy cập tài nguyên hệ thống.



Authentication: chứng thực tư cách truy cập tài nguyên của người muốn sử


dụng.


Authorization: cho phép giao dịch khi đã xác nhận định danh người truy cập.



Integrity: toàn vẹn thông tin trên đường truyền.



Confidentiality: độ an toàn, không ai có thể đọc thông tin trên đường đi.



Auditing: kiểm tra, tất cả các giao dịch đều được lưu lại để kiểm tra.



Non-repudiation: độ mềm dẻo, cho phép chứng thực tính hợp pháp hóa của

thông tin đến từ một phía thứ ba ngoài 2 phía là người gửi và người nhận.
1.2.2. Các kỹ thuật bảo mật Web service
eXtensible Access Control Markup Language (XACML) : Các đối tượng của
XACML được dùng để tạo ra một tiêu chuẩn cho việc miêu tả các thực thể điều
khiển truy cập và các thuộc tính của chúng. Chúng đề nghị nhiều các điểu khiển
truy cập hơn việc từ chối và cấp quyền truy cập
Security Assertion Markup Language (SAML) : SAML là sự kết hợp giữa S2ML và
AuthML, được phát triển thông qua OASIS. SAML là một tiêu chuẩn dựa trên
XML, được hình thành như một khuôn khổ cho việc trao đổi thông tin liên quan đến

an ninh, thể hiện dưới các xác nhận và sự tin tưởng giữa các bên tham gia trao đổi,
nhằm xác thực giao tiếp người dùng, quyền lợi và các thuộc tính thông tin.
XML Key Management Specification (XKMS) : XKMS là một giao thức được phát
triển bởi W3C để mô tả sự phân phối và đăng ký khóa công cộng, nó làm giảm các
ứng dụng phức tạp cú pháp của nền tảng được sử dụng để thiết lập các mối quan hệ
tin tưởng.
Lê Hà Chi_13BCNTT.KH

Trang 18


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Web Services Policy Framework (WS-Policy) : WS-Policy định nghĩa các điều kiện
theo một yêu cầu có thể đáp ứng, tương ứng, khẳng định chính sách của các web
servuce đó, giải pháp thay thế chính sách và cuối cùng là toàn bộ các chính sách:
Một sự khẳng định chính sách được hỗ trợ bằng cách yêu cầu khi và chỉ khi người
yêu cầu đáp ứng được các yêu cầu tương ứng để khẳng định. fMột chính sách được
hỗ trợ bằng cách yêu cầu khi và chỉ khi có yêu cầu hỗ trợ ít nhất là một trong những
lựa chọn thay thế trong chính sách
eXentisble Rights Markup Language (XrML) : XrML là một ngôn ngữ XML mà
xác định làm thế nào để mô tả các quyền, lệ phí và điều kiện để sử dụng nội dung
kỹ thuật số, với tính toàn vẹn thông điệp và tổ chức chứng thực.
Secure Socket Layer (SSL) : SSL là một sự xuất hiện bổ sung của VPN (Virtual
Private Networks).Nó được thiết kế cho giải pháp truy cập từ xa và không cung cấp
những kết nối site-to-site. SSL VPNs cung cấp vấn đề bảo mật truy cập đầu tiên
những ứng dụng web. SSL được coi là giao thức bảo mật trong lớp vận chuyển
(Layer Transport) có tầm quan trọng cao nhất đối với sự bảo mật của các trình ứng
dụng trên Web. Và đó là một giao thức đa mục đích được thiết kế để tạo ra các giao
tiếp giữa hai chương trình ứng dụng trên một cổng định trước (thông thường là

socket 433) nhằm mã hóa toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng
rãi cho giao dịch điện tử như truyền số hiệu thẻ tin dụng, mật khẩu, số bí mật cá
nhân (PIN) trên Internet.
1.3. THỰC TRẠNG BẢO MẬT
Năm 2014 có thể coi là một năm bùng nổ của các vụ tấn công đánh cắp dữ liệu, với
hàng loạt sự kiện liên quan đến bảo mật khiến thế giới cần có cái nhìn mới về bảo
mật.
Tháng 10/2014, ngân hàng lớn nhất nước Mỹ, JPMorgan Chase đã bị tin tặc xâm
nhập vào hơn 90 máy chủ, đánh cắp được thông tin cá nhân của 83 triệu khách hàng
là hộ gia đình và doanh nghiệp. Trước đó, tháng 5/2014, eBay thông báo họ bị tấn
công nghiêm trọng và 145 triệu tài khoản của người dùng đã bị đánh cắp. Ngoài con

Lê Hà Chi_13BCNTT.KH

Trang 19


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

số thiệt hại 145 triệu tài khoản được chú ý, còn có thế thấy một yếu tố quan trọng
nữa mà ít người để ý hơn. Đó là: eBay biết họ bị tấn công sau bao nhiêu lâu? Một
thực tế khá buồn đó là cuộc tấn công vào eBay diễn ra từ cuối tháng 2/2014, vậy mà
tới tháng 5.2014 họ mới phát hiện ra. Nhưng eBay không phải trường hợp cá biệt vì
hầu hết trong các cuộc tấn công nạn nhân không hề biết mình đã bị xâm nhập, đánh
cắp dữ liệu trong một khoảng thời gian dài.
Ngay tại Việt Nam, vụ tấn công vào VCCorp trong tháng 10/2014, nhằm phá hủy
dữ liệu của công ty này, cũng được đánh giá là một cuộc tấn công tinh vi và gây
thiệt hại đến vài chục tỉ đồng.Theo thống kê của SecurityDaily từ các diễn đàn an
ninh mạng, diễn đàn hacker… trong nửa đầu tháng 9/2014, đã có tổng cộng 1.039
website của Việt Nam bị tấn công, đây là con số cao nhất trong năm 2014. Còn

trong 9 tháng đầu năm nay, đã có 4.767 websites của Việt Nam bị tấn công, tăng
gấp đôi so với các năm từ 2011-2013. Trung bình mỗi ngày có hơn 18 website của
Việt Nam bị chiếm quyền điều khiển. Năm 2014 thực sự là một năm rất nóng về
tình hình tấn công ứng dụng web tại Việt Nam.

Lê Hà Chi_13BCNTT.KH

Trang 20


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

CHƯƠNG 2 - CƠ CHẾ ĐĂNG NHẬP MỘT LẦN ( SINGLE SIGN ON)
2.1. TỔNG QUAN VỀ CƠ CHẾ ĐĂNG NHẬP MỘT LẦN (SINGLE SIGN
ON)
2.1.1. Khái niệm cơ chế đăng nhập một lần
Trong quá trình phát triển của các hệ thống phân tán, chúng ta có thể nhận thấy ban
đầu chúng chỉ là những thành phần hoạt động như những hệ thống độc lập và đòi
hỏi những chế độ bảo mật độc lập tương đương. Những thành phần này bao gồm
những nền tảng riêng rẽ liên kết với từng ứng dụng và hệ điều hành khác nhau. Điều
này dẫn tới việc những người dùng cuối phải đăng ký và xác thực một cách độc lập
với từng dịch vụ nếu họ muốn truy nhập đến các dữ liệu được bảo mật. Tuy nhiên
trên thực tế người dùng phải đăng nhập vào rất nhiều các máy chủ dịch vụ khác
nhau, từ đó dẫn đến mỗi người phải đăng ký và ghi nhớ rất nhiều các thông tin định
danh người dùng.

Hình 4 Trước và sau khi sử dụng Single Sign On

Lê Hà Chi_13BCNTT.KH


Trang 21


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

Những người quản trị hệ thống cũng phải đối mặt với việc quản lý những người
dùng trong các hệ thống liên kết muốn truy nhập đến các tài nguyên trong hệ thống
của mình mà không xảy ra xung đột cũng như đảm bảo được các quy tắc bảo mật.
Cơ chế đăng nhập một lần là cơ chế giúp cho người dùng hợp pháp có thể truy nhập
vào rất nhiều những dịch vụ khác nhau trên hệ thống mạng phân tán nhưng chỉ phải
sử dụng một định danh duy nhất. Người sử dụng chỉ cần đăng ký và đăng nhập duy
nhất một lần vào hệ thống, khi đó trong phiên làm việc của mình họ có thể truy cập
ngay lập tức vào các dịch vụ liên kết của hệ thống phân tán mà không phải đăng ký
thêm định danh và thông qua quá trình đăng nhập lần nữa.
2.1.2. Ưu khuyết điểm của cơ chế đăng nhập một lần
a. Ưu điểm


Tiết kiệm thời gian cho người sử dụng trong việc đăng nhập vào nhiều dịch

vụ được cung cấp trên các nền tảng khác nhau của hệ thống phân tán.


Tăng cường khả năng bảo mật thông qua việc giúp người sử dụng không cần

nhớ nhiều thông tin đăng nhập (định danh và mật khẩu).


Giúp cho người quản trị hệ thống tiết kiệm thời gian trong việc tạo lập hay


loại bỏ người dùng trên hệ thống, cũng như thay đổi quyền của một hay một nhóm
người dùng nào đó.


Tiết kiệm thời gian khi tái lập lại mật khẩu cho người dùng.



Bảo mật các cấp độ của việc thoát hay truy xuất hệ thống.



Người phát triển ứng dụng không cần thiết phải hiểu và thực hiện nhận dạng

bảo mật trong ứng dụng của họ, điều họ cần làm là liên kết đến một máy chủ định
danh đã được bảo đảm, việc này giúp những người dùng của họ có thể truy cập vào
các dịch vụ khác cũng liên kết đến máy chủ đó như họ.
b. Khuyết điểm


Đòi hỏi cơ sở hạ tầng của toàn bộ hệ thống phải bảo đảm

Lê Hà Chi_13BCNTT.KH

Trang 22


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service




Do nhiều domain cùng sử dụng chung cơ sở dữ liệu người dùng nên việc xác

thực khi người dùng đăng ký với hệ thống phải chặt chẽ, nếu không sẽ rất dễ vi
phạm việc đảm bảo an ninh cho hệ thống.


Cần có cơ chế xác thực đảm bảo khi truyền các thông tin định danh người

dùng giữa người sử dụng với các máy chủ dịch vụ khác nhau.
2.1.3. Danh sách các giải pháp của SSO
TÊN

SẢN DỰ ÁN/ NHÀ LOẠI

PHẨM

PHÁT TRIỂN

HÌNH

Accounts & SSO

Nokia, Intel,…

Miễn phí

Nền tảng
quản


lý MIÊU TẢ

định danh
Thực hiện bên phía
client

với

plugin

cho các dịch vụ/
giao thức khác nhau
Active Directory Microsoft

Bản

Hệ thống nền tảng

Federation

quyền

claims và ứng dụng

Services

Athens
and

liên kết


access Eduserv UK
identity

Bản



quyền

management
Auth0

Auth0

Bản
quyền



Cơ sở hạ tầng cho
phát

triển

nhận

dạng. Một dịch vụ
đám mây hoặc onprem mà tóm tắt
giao diện cho bất kỳ

tập các nhà cung

Lê Hà Chi_13BCNTT.KH

Trang 23


Nghiên cứu thử nghiêm các phương pháp đảm bảo an toàn an ninh cho web service

định

cấp

danh(doanh nghiệp,
xã hội, hoặc ứng
dụng cụ thể) để
giảm bớt việc thực
hiện và duy trì các
nỗ lực để bảo mật
xác

thực



ủy

quyền cho người sử
dụng các ứng dụng
hoặc các API.

Authen2cate

Authen2cate,

Bản

LLC

quyền



Lớp enterprise fullservice đăng nhập
một lần cho bất kỳ
nền tảng đám mây
hoặc trên cơ sở ứng
dụng, cùng với tích
hợp thư mục và các
tùy chọn xác thực
đa nhân tố

AuthAnvil

Kaseya

Single Sign On

Bản
quyền




Yếu tố SSO của
Authentication
Suite được thiết kế
cho MSP và doanh
nghiệp sử dụng

Barebones SSO

CubicleSoft

Mã nguồn

Thực hiện Protocol

mở



SSO

server/

client trong PHP
Bitium

Bitium

Lê Hà Chi_13BCNTT.KH


Bản

Trang 24

Xác thực nền tảng


×