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

Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng

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 (9 MB, 98 trang )

Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
----------------------------------------------------------------------------------------------------------------------..

MỤC LỤC
Trang phụ bìa
Lời cam đoan ............................................................................................................. 3
Danh mục các ký hiệu, các chữ viết tắt ..................................................................... 4
Danh mục các hình vẽ, đồ thị .................................................................................... 5
PHẦN MỞ ĐẦU ....................................................................................................... 7
CHƯƠNG 1 – TỔNG QUAN VỀ XÁC THỰC VÀ GIẢI PHÁP ĐĂNG NHẬP
MỘT LẦN (SINGLE SIGN-ON) .............................................................................. 9
1.1. Xác thực trong an tồn thơng tin ...................................................................9
1.2. Xác thực người dùng....................................................................................10
1.2.1. Các nhân tố xác thực .............................................................................11
1.2.2. Xác thực đa yếu tố .................................................................................11
1.2.3. Một số giải pháp xác thực phổ biến.......................................................12
1.2.4. Các giao thức xác thực ..........................................................................19
1.3. Giải pháp đăng nhập một lần (Single sign-on) ............................................23
1.3.1. Đăng nhập một lần là gì ? .....................................................................23
1.3.2. Phân loại đăng nhập một lần .................................................................25
1.3.3. Đặc điểm của SSO dựa trên web...........................................................31
1.3.4. Nguyên lý hoạt động của SSO dựa trên web ........................................32
1.3.5. Các vấn đề an toàn với đăng nhập một lần dựa trên web......................33
1.3.6. Tăng cường an toàn khi sử dụng SSO dựa trên web .............................37
1.4. Kết luận chương ..........................................................................................38
CHƯƠNG 2 – TỔNG QUAN VỀ OPENID ........................................................... 39
2.1. OpenID là gì.................................................................................................39
2.2. Lịch sử phát triển .........................................................................................40
2.3. Ứng dụng .....................................................................................................41
2.4. Hệ thống quản lý định danh .........................................................................41
2.4.1. Các thành phần của một hệ thống quản lý định danh ...........................41


2.4.2. Quy trình hoạt động chính của hệ thống quản lý định danh .................43
2.5. Phương thức hoạt động của OpenID............................................................44
2.5.1. Giao tiếp giữa các thành phần trong hệ thống OpenID .........................44
2.5.2. Cơ chế hoạt động ..................................................................................45
2.5.3. Cơ chế xác thực của OpenID ................................................................50
2.5.4. Sơ đồ quy trình giao tiếp giữa Client-Server ........................................52
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
1
Cơng nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

2.5.5. Quy trình xử lý các bước giao tiếp ........................................................52
2.6. Những vấn đề phát sinh với OpenID ...........................................................53
2.6.1. Tính nặc danh và độ an tồn thơng tin ..................................................53
2.6.2. Khả năng phịng tránh lỗi và tương thích với các chức năng vốn có của
hệ thống ..............................................................................................................55
2.7. OpenID kết hợp với OAuth .........................................................................56
2.8. Kết luận chương ...........................................................................................59
CHƯƠNG 3 – ĐỀ XUẤT MƠ HÌNH ĐĂNG NHẬP MỘT LẦN TRONG HỆ
THỐNG QUẢN LÝ THÔNG TIN Y TẾ TRÊN CƠ SỞ ĐÁM MÂY VÀ THỬ
NGHIỆM MÔ ĐUN ĐĂNG NHẬP MỘT LẦN SỬ DỤNG OPENID .................. 60
3.1. Giới thiệu mơ hình .......................................................................................60
3.1.1. Hệ thống y tế trên cơ sở đám mây. .......................................................60
3.1.2. Vấn đề chia sẻ thông tin giữa các bệnh viện trên cơ sở đám mây ........62
3.1.3. Phân tích yêu cầu ..................................................................................64
3.2. Giải pháp thực thi ........................................................................................66
3.2.1. Mục tiêu ................................................................................................66

3.2.2. Cách tiếp cận .........................................................................................66
3.3. Phân tích và thiết kế hệ thống thông tin.......................................................70
3.4. Môi trường thử nghiệm ...............................................................................76
3.5. Hoạt động của mô đun .................................................................................77
3.6. Đánh giá hoạt động của mô đun ..................................................................83
3.7. Kết luận chương ..........................................................................................84
KẾT LUẬN.............................................................................................................. 86
TÀI LIỆU THAM KHẢO ....................................................................................... 87
PHỤ LỤC A: CÁC THÔNG ĐIỆP CỦA OPENID ................................................ 89
PHỤ LỤC B: DANH SÁCH CÁC HỆ THỐNG HỖ TRỢ OPENID ..................... 98

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
2
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Lời cam đoan

 

Tôi là Võ Huy Hưng - tác giả của luận văn “Nghiên cứu thử nghiệm các cơ
chế xác thực sử dụng OpenID và ứng dụng”. Tơi xin cam đoan mình đã thực hiện
luận văn một các nghiêm túc, toàn bộ nội dung luận văn cũng như kết quả nghiên
cứu là do tôi thực hiện. Đồng thời, việc tham khảo các tài liệu trong quá trình thực
hiện luận văn tuân thủ theo đúng yêu cầu và không sao chép của bất kỳ một luận
văn nào trước đó.



 

 

 

 

 

 

 

 

 

 

 

 

 

 

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng

3
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Danh mục các ký hiệu, các chữ viết tắt

 

PIN

Personal Identification Number

2FA

Two-Factor Authentication

3FA

Three-Factor Authentication

OTP

One-Time Password

SSO

Single sign-on


OpenSSO

Open Single sign-on

ESSO

Enterprise Single sign-on

JOSSO

Java Open Single Sign-On

CAS

Central Authentication Service

RP

Relying Party

IdP

Identity Provider

OP

OpenID Provider

IS


Identity Selector

SASL

Single Authentication and Security Layer

IDaaS

Identity As A Service

SP

OAuth Service Provider

SSL

Secure Socket Layer

TSL

Transport Layer Security

DNS

Domain Name System

URI

Uniform Resource Identifier


URL

Uniform Resource Locator

API

Application Programming Interface

APP

Application

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
4
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Danh mục các hình vẽ, đồ thị

 

Hình 1.1. Giao thức thử thách và trả lời .................................................................. 20
Hình 1.2. Thiết bị OTP của RSA. ............................................................................ 21
Hình 1.3. Thẻ ma trận xác thực của ACB. ............................................................... 22
Hình 1.4. SMS OTP của VTC Pay. ......................................................................... 22
Hình 1.5. Mơ hình trước và sau khi áp dụng đăng nhập một lần ............................. 24

Hình 1.6. Mơ hình Single Domain SSO. ................................................................. 26
Hình 1.7. Mơ hình Multi domain SSO..................................................................... 28
Hình 1.8. Mơ hình OpenID. ..................................................................................... 30
Hình 1.9. Mơ hình OpenSSO. .................................................................................. 31
Hình 1.10. Ví dụ về session hijacking. .................................................................... 35
Hình 1.11. Mơ hình tấn cơng Man in the middle. .................................................... 36
Hình 1.12. Giả mạo DNS. ........................................................................................ 37
Hình 2.1. Logo đặc trưng của OpenID .................................................................... 39
Hình 2.2. Các thành phần chính của hệ thống định danh ........................................ 42
Hình 2.3. Ví dụ về thành phần Relying Party .......................................................... 42
Hình 2.4. Quy trình hoạt động chính của hệ thống quản lý định danh .................... 43
Hình 2.5. URI là địa chỉ của Identity Provider. ....................................................... 45
Hình 2.6. URI không phải là địa chỉ của Identity Provider. .................................... 45
Hình 2.7. Quy trình xác định thành phần Identity Provider .................................... 46
Hình 2.8. Sử dụng Yadis để xác định địa chỉ của Identity Provider ........................ 47
Hình 2.9. Quy trình gởi thuộc tính định danh .......................................................... 47
Hình 2.10. Quy trình kiểm tra thuộc tính định danh ................................................ 49
Hình 2.11. Quy trình kiểm tra thuộc tính định danh ở chế độ Dumb mode ............ 50
Hình 2.12. Cơ chế xác thực của OpenID ................................................................. 50
Hình 2.13. Xác thực SASL ...................................................................................... 51
Hình 2.14. Sơ đồ giao tiếp giữa Client - Server ....................................................... 52
Hình 2.15. Cấu trúc giao thức bắt tay ...................................................................... 53
Hình 2.16. Ví dụ về giá trị ngẫu nhiên nonce trong thơng điệp của OpenID. ......... 54
Hình 2.17. Luồng lai OpenID/OAuth2 với Spark API. ........................................... 57
Hình 2.18. Luồng đăng nhập với OpenID/OAuth dành cho Google Apps .............. 57
Hình 2.19. OpenID Connect protocol ...................................................................... 59
Hình 3.1. Điện tốn đám mây với hệ thống y tế ...................................................... 60
Hình 3.2. Mơ hình nhiều bệnh viện cùng tham gia đám mây. ................................. 62
Hình 3.3. Cở sở dữ liệu riêng của bệnh viện lưu trữ hồ sơ bệnh án ........................ 63
Hình 3.4. Quá trình xác thực và truy cập giữa hai bệnh viện .................................. 66

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
5
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Hình 3.5. Điện tốn đám mây cơng cộng ................................................................ 67
Hình 3.6. IDaaS ....................................................................................................... 68
Hình 3.7. IDaaS SSO ............................................................................................... 69
Hình 3.8. Mơ hình khái qt hệ thống ..................................................................... 70
Hình 3.9. Biểu đồ luồng logic đăng nhập một lần ................................................... 71
Hình 3.10. Hoạt động của SSO ................................................................................ 72
Hình 3.11. Đăng ký người dùng .............................................................................. 73
Hình 3.12. Xác thực người dùng.............................................................................. 74
Hình 3.13. Biểu đồ tuần tự OpenID ......................................................................... 75
Hình 3.14. Kịch bản thử nghiệm. ............................................................................. 77
Hình 3.15. Kiến trúc 3 tầng của ứng dụng web ....................................................... 78
Hình 3.16. Single sign-on với OpenID .................................................................... 79
Hình 3.17. Giao diện web khi chưa đăng nhập ........................................................ 80
Hình 3.18. Google hỏi người dùng có đồng ý cho miền phụ truy cập thơng tin ..... 81
Hình 3.19. Giao diện web khi đăng nhập ................................................................ 82
Hình 3.20. Thơng tin phiên được lưu ở cookie trình duyệt ..................................... 83
Hình 3.21. Thơng tin phiên được lưu trên server..................................................... 84

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
6
Công nghệ thông tin 2011B



Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

PHẦN MỞ ĐẦU
Ngày nay, các thông tin quan trọng được lưu trữ trên mạng càng nhiều và
thường xuyên được truy nhập từ các máy tính khác trong mạng. Chính những điều
này đã và đang mang lại những lợi ích to lớn cho việc chia sẻ tài nguyên, kết nối
trong các tổ chức doanh nghiệp. Tuy nhiên, do đặc điểm nhiều người sử dụng và
phân tán về mặt địa lý nên việc xác thực và kiểm soát truy cập trong môi trường
mạng phức tạp hơn nhiều so với một máy tính đơn lẻ, một người sử dụng. Chính vì
thế việc tìm hiểu và nghiên cứu các cơ chế xác thực cho các hệ thống thông tin đang
ngày càng trở nên cấp thiết.
Xác thực người dùng là một yếu tố quan trọng trong quản lý định danh của
một hệ thống thông tin. Trong một hệ thống, khi mà nhiều dịch vụ khác nhau đều
cần xác thực thì giải pháp đăng nhập một lần tỏ ra hiệu quả. Chỉ cần xác thực tại
một dịch vụ, ta có thể truy cập các thông tin của dịch vụ khác trong hệ thống, đây là
mục tiêu chính mà OpenID hướng tới và cũng là lý do tác giả luận văn lựa chọn để
nghiên cứu.
OpenID khơng phải là một chuẩn mở mới, nó đã được phát triển và sử dụng
rộng rãi từ lâu. Thực tế đã cho thấy tính hiệu quả với mơ hình đăng nhập một lần sử
dụng OpenID. Mục đích nghiên cứu của luận văn là tìm hiểu, thử nghiệm và đánh
giá các cơ chế xác thực sử dụng OpenID và ứng dụng vào một hệ thống thông tin
trên cơ sở đám mây, nơi mà các thực thể thường được xác thực riêng lẻ, tác giả luận
văn đã đề xuất áp dụng giải pháp đăng nhập một lần giúp hệ thống có thể dễ dàng
xác thực và uỷ quyền giữa các thực thể tham gia.
Đối tượng nghiên cứu của luận văn bao gồm các phương pháp xác thực
người dùng, các cơ chế đăng nhập một lần phổ biến và tập trung đi sâu vào một mơ
hình đăng nhập một lần dựa trên web là OpenID.
Để thực hiện được mục đích nghiên cứu nêu trên, phương pháp nghiên cứu

sử dụng trong luận văn là phân tích lý thuyết và kết hợp với triển khai thử nghiệm.

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
7
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Để có thể làm được thì tác giả phải thu thập tài liệu từ nhiều nguồn thông tin khác
nhau bao gồm Internet, sách báo và những người có kinh nghiệm.
Tồn bộ nội dung của luận văn được trình bày trong 3 chương với nội dung
tóm tắt như sau:
Chương 1 – Tổng quan về xác thực và giải pháp đăng nhập một lần:
Chương này trình bày bức tranh tổng quan về xác thực trong an tồn thơng tin nói
chung, cũng như xác thực người dùng nói riêng. Nội dung của chương giới thiệu
những nhân tố, giải pháp và giao thức phổ biến trong xác thực người dùng. Qua đó
tập trung phân tích và tìm hiểu cơ chế xác thực với giải pháp đăng nhập một lần. Từ
định nghĩa và phân loại cho đến đi sâu vào phân tích đặc điểm, nguyên ý hoạt động
và các vấn đề an toàn đối với giải pháp đăng nhập một lần dựa trên web.
Chương 2 – Tổng quan về OpenID: Chương này tập trung nghiên cứu và tìm
hiểu về mơ hình hoạt động của một giải pháp đăng nhập một lần dựa trên web phổ
biến, đó là OpenID.
Chương 3 – Đề xuất mơ hình đăng nhập một lần trong hệ thống thông tin y tế
trên cơ sở đám mây và thử nghiệm mô đun đăng nhập một lần sử dụng OpenID:
Chương này trình bày vấn đề về xác thực và kiểm sốt truy cập với một hệ thống
thơng tin trên cơ sở đám mây, qua đó đề xuất mơ hình và giải pháp thực thi cũng
như phân tích thiết kế hệ thống thơng tin của mơ hình đề xuất. Từ đó sẽ đưa ra
những thử nghiệm và đánh giá mô đun đăng nhập một lần sử dụng OpenID.

Từ kết quả nghiên cứu và thực hiện luận văn, tác giả đã có đóng góp mới
trong việc nghiên cứu và đề xuất mơ hình đăng nhập một lần cho hệ thống thơng tin
trên cơ sở đám mây, triển khai thử nghiệm một mô đun đồng thời đưa ra đánh giá
về kết quả thực hiện mô đun này.

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
8
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

CHƯƠNG 1 – TỔNG QUAN VỀ XÁC THỰC VÀ GIẢI PHÁP
ĐĂNG NHẬP MỘT LẦN (SINGLE SIGN-ON)
Chương này trình bày khái niệm về xác thực trong an tồn thơng tin nói
chung và xác thực người dùng nói riêng qua việc tìm hiểu các nhân tố, giải pháp và
giao thức xác thực người dùng phổ biến hiện nay. Từ đó tập trung đi sâu nghiên cứu
về một giải pháp xác thực đang rất phổ biến về tính tiện dụng đó là đăng nhập một
lần (Single sign-on). Chi tiết đặc điểm hoạt động và những đánh giá về độ an tồn
của giải pháp này sẽ được phân tích ở cuối chương.

1.1. Xác thực trong an tồn thơng tin
Xác thực (Authentication) là một hành động nhằm thiết lập hoặc chứng thực
một cái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là những lời khai báo
do người đó đưa ra hoặc về vật đó là sự thật.
Xác thực một đối tượng cịn có nghĩa là cơng nhận nguồn gốc của đối tượng,
trong khi xác thực một người thường bao gồm việc thẩm tra nhận dạng của họ. Việc
xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xác thực (authentication
factors) để minh chứng cụ thể.

Trong an tồn thơng tin máy tính nói chung, xác thực là một quy trình nhằm
xác minh nhận dạng số (digital identity) của bên gửi thông tin (sender) trong liên lạc
trao đổi xử lý thông tin. Ngược lại sự tin cậy mù qng hồn tồn khơng thiết lập sự
địi hỏi nhận dạng, song chỉ thiết lập giới hạn quyền của người dùng hoặc của
chương trình ứng dụng mà thơi.
Trong một mạng lưới tín nhiệm, việc xác thực là một cách để đảm bảo rằng
người dùng chính là người mà họ nói họ là, và người dùng hiện đang thi hành
những chức năng trong một hệ thống, trên thực tế, chính là người đã được ủy quyền
để làm những việc đó. Việc xác thực thường phụ thuộc vào một hoặc nhiều yếu tố
xác thực (authentication factor) để minh chứng cụ thể.

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
9
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Xác thực có thể được phân loại theo:
a. Xác thực thực thể (Entity Authentication): Xác thực thực thể là xác thực định
danh của một đối tượng tham gia giao thức truyền tin. Thực thể hay đối tượng có
thể là người dùng, thiết bị đầu cuối. Tức là một thực thể được xác thực bằng định
danh của nó đối với thực thể thứ hai trong một giao thức, và bên thứ hai đã thực sự
tham gia vào giao thức.
b. Xác thực dữ liệu (Data Authentication): Xác thực dữ liệu là một kiểu xác thực
đảm bảo một thực thể được chứng thực là nguồn gốc thực sự tạo ra dữ liệu này ở
một thời điểm nào đó, đảm bảo tính tồn vẹn dữ liệu.

1.2. Xác thực người dùng

Khi người sử dụng muốn truy nhập vào một hệ thống máy tính, thơng
thường, người sử dụng cần cung cấp các thơng tin nhận dạng cho máy tính. Khi
nhận được các thơng tin ấy, máy tính kiểm tra xem người sử dụng có quyền truy
nhập vào hệ thống khơng. Đây cũng là một nguyên tắc cơ bản được áp dụng cho
một người khi muốn trao đổi thông tin với người khác: Trước tiên cần phải xác định
người tham gia trao đổi thơng tin có đúng là người muốn trao đổi khơng. Do đó cần
phải có một phương thức để cung cấp đặc điểm nhận dạng nhằm đảm bảo người
trao đổi thông tin là hợp lệ. Quá trình này được gọi là xác thực người sử dụng.
Trên thế giới cũng như ở Việt Nam, vấn đề xác thực người dùng đang được
quan tâm và đã có nhiều giải pháp được sử dụng và nghiên cứu. Có rất nhiều cách
để xác thực: người sử dụng có thể cung cấp các thơng tin mà chỉ có người đó mới
biết: ví dụ mật khẩu, mã số cá nhân,… hoặc người đó có thể cung cấp các thông tin
riêng khác như số chứng minh thư, thẻ từ, thẻ thơng minh… Trong đó, mỗi giải
pháp lại có những ưu điểm và nhược điểm riêng khác nhau.
Xác thực người dùng là một q trình qua đó hệ thống có thể xác minh rằng
một ai đó thực sự là họ. Quá trình xác thực sẽ xác định xem một người có phải là
người được sử dụng hệ thống khơng. Nó thường đi kèm với q trình xác định
quyền hạn của người đó trong hệ thống.
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
10
Cơng nghệ thơng tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

1.2.1. Các nhân tố xác thực
Những nhân tố xác thực (authentication factors) dành cho con người (người
sử dụng) nói chung có thể được phân loại như sau:
a. Những cái mà người sử dụng sở hữu bẩm sinh (Something the user is):

Chẳng hạn như dấu vân tay hoặc mẫu dạng võng mạc mắt, chuỗi DNA, mẫu dạng
giọng nói, chữ ký, tín hiệu sinh điện đặc thù do cơ thể sống tạo sinh (unique
bioelectric signals), hoặc những định danh sinh trắc học (biometric identifier)...
b. Những cái gì người sử dụng có (Something the user possesses): Chẳng hạn
như chứng minh thư (ID card), chứng chỉ an ninh (security token), chứng chỉ phần
mềm (software token) hoặc điện thoại di động (cell phone)...
c. Những gì người sử dụng biết (Something the user knows): Chẳng hạn như mật
khẩu, mật ngữ (pass phrase) hoặc mã số định danh cá nhân (personal identification
number - PIN)...

1.2.2. Xác thực đa yếu tố
Trong thực tế, nhiều khi một tổ hợp của những yếu tố trên được sử dụng, lúc
đó người ta nói đến xác thực đa yếu tố (Multi-factor authentication).
- Chẳng hạn trong giao dịch ATM, thẻ ngân hàng và mã số định danh cá nhân (PIN)
được sử dụng - trong trường hợp này đó là một trong các dạng xác thực 2 yếu tố
(two-factor authentication – 2FA).
- Cũng trong ví dụ trên nếu sử dụng thêm một yếu tố nữa như dấu vân tay chẳng
hạn thì ta sẽ có xác thực ba yếu tố (three-factor authentication- 3FA).
- Tương tự như vậy cho xác thực n yếu tố (n ≥ 2): n-factor authentication- nFA
Với xác thực đa yếu tố ta có thể tăng mức độ an tồn bảo mật lên rất cao nhờ
việc kiểm chứng nhiều yếu tố xác thực. Hiển nhiên là mức độ an toàn bảo mật sẽ
càng cao khi số yếu tố xác thực càng nhiều. Tuy nhiên, khi số yếu tố xác thực lớn
thì hệ thống càng phức tạp kéo theo chi phí đầu tư và duy trì vận hành tốn kém,
đồng thời lại bất tiện cho người sử dụng. Do vậy, trên thực tế để cân bằng giữa an
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
11
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng

-----------------------------------------------------------------------------------------------------------------------

tồn bảo mật và tính tiện dụng người ta thường áp dụng xác thực hai yếu tố và xác
thực ba yếu tố. Nên lưu ý rằng xác thực đa yếu tố dù có mang lại mức độ an toàn
bảo mật cao hơn, nhưng về lý thuyết cũng khơng thể là tuyệt đối an tồn nên chúng
ta không bao giờ được chủ quan trong lĩnh vực an tồn thơng tin.
• Một ví dụ về xác thực đa yếu tố liên quan đến giao dịch ngân hàng điện tử là
xác thực chủ thẻ trong giao dịch ATM (Yếu tố xác thực đầu tiên của bạn là
thẻ ATM (cái bạn có), sau khi đưa thẻ vào máy đọc bạn sẽ phải đưa tiếp yếu
tố xác thực thứ hai là PIN (cái bạn biết).
• Một ví dụ khác là xác thực người sử dụng dịch vụ giao dịch Internet
Banking: Bạn đăng nhập với username + password sau đó cịn phải đưa tiếp
OTP (mật khẩu dùng một lần) được sinh ra trên token của riêng bạn.

1.2.3. Một số giải pháp xác thực phổ biến
a. Giải pháp dựa trên User Name (định danh người sử dụng) và Password (mật
khẩu)
Đây là phương pháp truyền thống hay được sử dụng nhất, là phương pháp sử
dụng tài khoản của hệ thống. Mỗi tài khoản bao gồm tên truy nhập (username) và
mật khẩu (password). Tên truy nhập dùng để phân biệt những người sử dụng khác
nhau (thường là duy nhất trong hệ thống), còn mật khẩu để xác thực lại người sử
dụng tên đó có đúng là người dùng thật sự không. Mật khẩu thường do người sở
hữu tên truy nhập tương ứng đặt và được giữ bí mật chỉ có người đó biết. Khi người
dùng muốn đăng nhập và sử dụng tài nguyên hệ thống thì phải đăng nhập bằng cách
nhập tên và mật khẩu của mình. Trước hết, hệ thống sẽ đối chiếu tên truy nhập của
người dùng đưa vào với cơ sở dữ liệu tên người dùng, nếu tồn tại tên người dùng
như vậy thì hệ thống tiếp tục đối chiếu mật khẩu được đưa vào tương ứng với tên
truy nhập trong cơ sở dữ liệu. Qua 2 lần đối chiếu nếu thỏa mãn thì người đăng
nhập là người dùng hợp lệ của hệ thống.
! Ưu điểm


----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
12
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Thiết kế và sử dụng đơn giản, tốn ít tài nguyên. Hệ thống chỉ gồm một cơ sở
dữ liệu người dùng với hai thông tin chủ yếu là tên truy nhập và mật khẩu. Tương
ứng với mỗi tên truy nhập là quyền sử dụng của người đó trong hệ thống. Do đó các
thơng tin này khơng chiếm nhiều tài nguyên. Người dùng dễ hiểu và dễ sử dụng.
Chi phí để thực hiện giải pháp này là rẻ so với các giải pháp khác. Nó khơng phụ
thuộc vào các thiết bị phần cứng mà chỉ dựa trên phần mềm. Giải pháp này có khả
năng làm việc trên mọi hệ điều hành. Do đó, việc thực hiện giải pháp này khá dễ
dàng và không tốn kém.
! Nhược điểm
Giải pháp này có nhược điểm lớn nhất là khơng có được sự bảo mật cao. Vì
người dùng thường có tên đăng nhập mà nhiều người dùng có. Mặt khác, người
dùng thường chọn mật khẩu dễ nhớ hoặc không cẩn thận khi gõ mật khẩu, do vậy
dễ bị tấn công. Kẻ tấn cơng có nhiều phương pháp để đạt được mật khẩu như thâm
nhập vào hệ thống đọc file mật khẩu, dự đoán mật khẩu, vét cạn các từ trong từ điển
để tìm mật khẩu, hoặc có thể lừa người dùng để lộ mật khẩu.
Một số biện pháp để tăng thêm tính bảo mật cho giải pháp này:
• Đặt mật khẩu phức tạp: mật khẩu phải chứa tối thiểu 6 ký tự, không trùng với
tên đăng nhập, chứa các loại ký tự là chữ cái, chữ số, ký tự đặc biệt. Nếu đặt
như vậy thì kẻ muốn tấn cơng cũng sẽ rất khó đốn được mật khẩu.
• Thay đổi mật khẩu: quy định sau một thời gian nhất định mật khẩu sẽ khơng
cịn tác dụng đối với hệ thống và người dùng phải đặt lại mật khẩu khác. Mật

khẩu sẽ được thay đổi nên khả năng kiểm sốt tình trạng an tồn của mật
khẩu cao hơn.
• Mã hóa thơng tin: Trong môi trường làm việc mạng, những nhà thiết kế
thường dùng biện pháp mã hóa thơng tin đăng nhập từ một máy khách nào
đó trước khi chúng được gửi đi tới máy chủ của hệ thống. Do đó, khả năng bị
mất cắp mật khẩu sẽ giảm đi rất nhiều khi kẻ xấu bắt gói tin đăng nhập trên
đường truyền.

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
13
Cơng nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Hiện nay, giải pháp mật khẩu sử dụng một lần (one-time password) được sử dụng
rất nhiều trong các ứng dụng. Các mật khẩu trong danh sách chỉ có thể sử dụng một
lần duy nhất mà khơng thể sử dụng lại trong những lần đăng nhập sau. Có 2 cách để
hệ thống mật khẩu sử dụng một lần có thể làm việc là:
• Danh sách các mật khẩu được tạo ra một cách ngẫu nhiên bởi hệ thống và
được sao làm hai bản, một bản cho người dùng và một bản cho hệ thống.
• Danh sách mật khẩu được tạo ra theo yêu cầu của người sử dụng và được hệ
thống cơng nhận.
Q trình thực hiện: Sử dụng thuật toán MD4 (hiện nay là MD5) từ một giá trị cho
trước (do người dùng hoặc do máy ngẫu nhiên tạo ra) để tạo ra khóa đầu tiên, tiếp
tục áp dụng thuật tốn MD4 cho khóa đầu tiên để được khóa thứ hai …và cứ áp
dụng liên tục thuật tốn MD4 để sinh ra các khóa nối tiếp nhau. Khi xác thực người
dùng, hệ thống phải biết một trong các khóa (khóa thứ n) , nó sẽ hỏi người dùng
khóa trước đó (khóa thứ n-1). Nếu người dùng nhập đúng khóa n-1 thì hệ thống sẽ

cho người dùng đăng nhập và ghi lại khóa n-1 vào bộ nhớ. Đến lần đăng nhập sau,
hệ thống sẽ hỏi người dùng khóa thứ n-2 …
Khi dùng thuật toán MD4 để sinh ra kết quả thì từ kết quả hầu như khơng thể suy
ngược lại giá trị đầu vào nên hệ thống không thể tìm ra được khóa thứ n-1 là gì, mặc
dù khi biết cả khóa thứ n. Tuy nhiên, theo cách này kẻ xấu vẫn có thể tấn cơng. Nếu
người dùng tự thiết lập giá trị đầu vào để xây dựng hệ thống khóa thì rất có thể nó
sẽ được đốn ra theo các cách giống như khi đoán các mật khẩu thơng thường. Đối
với những từ đốn được, kẻ tấn cơng sẽ áp dụng thuật tốn MD4 để sinh ra các khóa
và sẽ thử hết các khóa này cho đến khi tìm được khóa người dùng đang sử dụng.
Cịn trong trường hợp hệ thống sẽ tự sinh ra giá trị ban đầu và một lượng mật khẩu
đủ dùng trong một thời gian nào đó, người dùng sẽ có một danh sách các mật khẩu
được đánh thứ tự. Về phía người dùng, họ sẽ khơng thích phải dùng nhiều mật
khẩu. Điều này gây phiền toái cho người dùng và khả năng bị mất cắp danh sách
khóa là rất cao. Ngồi ra, kẻ tấn cơng cịn có thể dùng phương pháp bắt gói tin đăng
nhập của người dùng để lấy mật khẩu.
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
14
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

! Ứng dụng
Giải pháp này đã và đang được sử dụng rất nhiều. Nó được ứng dụng trên
máy tính và đặc biệt được ứng dụng cả trên mạng. Kể cả các cơ quan, tổ chức
khơng có điều kiện kinh tế để có thể trang bị cho mình một hệ thống mạng với các
đường truyền tốc độ cao thì vẫn có thể sử dụng giải pháp này. Bởi vì, thơng tin
truyền và lưu trữ chỉ bao gồm tên đăng nhập và mật khẩu. Dung lượng truyền đi
trên đường truyền nhỏ nên chỉ cần một đường truyền có băng thơng khơng lớn thì

thơng tin này cũng được truyền đi trong một khoảng thời gian chấp nhận được. Các
ứng dụng tiêu biểu hiện nay đang sử dụng giải pháp xác thực bằng mật khẩu như:
Hệ điều hành (Windows, Unix…), các dịch vụ thư điện tử, thương mại điện tử…
b. Giải pháp thẻ thông minh
Thẻ thông minh (smart cart) là một thẻ plastic có kích cỡ như thẻ tín dụng
được trang bị một vi mạch dùng để chứa bộ nhớ và một mạch xử lý với hệ điều
hành để kiểm sốt bộ nhớ. Nó có thể lưu trữ dữ liệu về thông tin cá nhân, tiền hoặc
một số thông tin khác mà sự thay đổi của chúng cần được kiểm sốt chặt chẽ. Ngồi
ra, nó có thể lưu trữ các khóa mã hóa để người dùng có thể nhận dạng qua mạng,
chữ ký điện tử … Đặc biệt, hiện nay thẻ thơng minh có hỗ trợ chứng nhận số. Nó
mã hóa dữ liệu và kiểm tra tính hợp lệ của các giao dịch qua mạng. Đây là một giải
pháp rất hiệu quả và linh động cho các vấn đề về xác thực người dùng.
Hiện nay, các cơ quan tổ chức dùng thẻ rầt nhiều. Đầu tiên, những thông tin
cần thiết cho việc nhận dạng các nhân viên trong cơ quan, tổ chức sẽ được lưu vào
bộ nhớ của thẻ. Sau đó, nó được cung cấp cho các nhân viên tương ứng với các
thơng tin đó. Mỗi cơ quan, tổ chức khác nhau sẽ có các u cầu về thơng tin xác
thực khác nhau nhưng thường là các thông tin như tên truy nhập, mật khẩu và một
số thông tin cá nhân khác.
Trong hệ thống thơng tin địi hỏi phải có xác thực người dùng, nhân viên
trong tổ chức chỉ cần đưa thẻ vào thiết bị đọc thẻ và nhập vào một mã số bí mật nào
đó để xác nhận với hệ thống là chính họ là người sở hữu chiếc thẻ đó. Khi đã nhập

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
15
Cơng nghệ thơng tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------


đúng mã này, thiết bị đọc thẻ sẽ đọc các thông tin nhận dạng được ghi trong thẻ và
chuyển các thông tin này đến hệ thống, sau đó hệ thống sẽ kiểm tra chúng với cơ sở
dữ liệu người dùng.
! Ưu điểm
Nhờ vào kiến trúc vật lý và logic của thẻ mà đã giảm được rất nhiều các
nguy cơ gây mất an tồn thơng tin. Mọi hoạt động của thẻ đều được kiểm soát bởi
hệ điều hành nên các thơng tin cần giữ bí mật sẽ không thể lấy ra được từ thẻ. Các
thông tin bên trong thẻ không thể bị kẻ xấu lấy cắp như các thông tin được lưu trữ
trong các phần mềm hệ quản trị cơ sở dữ liệu thơng thường. Các khóa bí mật dùng
cho chữ ký điện tử và nhận dạng đều được lưu trữ bên trong thẻ. Nhà sản xuất thẻ
cũng như người sở hữu thẻ đều không thể biết được các khóa này. Vì vậy, chúng
khơng thể bị lấy cắp hay bị sao chép. Mỗi chiếc thẻ đều có số nhận dạng PIN để
tránh việc đánh cắp và bị kẻ xấu sử dụng. Trước khi sử dụng thẻ, người dùng phải
nhập vào số PIN của thẻ. Cơ chế quản lý số PIN của thẻ cũng rất an toàn bởi vì số
PIN gần như khơng thể đốn ra được. Mặt khác, thẻ quy định số lần nhập tối đa,
nếu số lần nhập khơng chính xác liên tục đến con số quy định thì thẻ sẽ tự động
khóa. Muốn mở khóa thì người dùng phải nhập vào một số dùng để mở khóa của
thẻ. Tương tự, nếu nhập khơng chính xác liên tiếp đến một số nào đó thẻ sẽ bị khóa
vĩnh viễn và khơng thể sử dụng lại nữa. Như vậy, việc sử dụng thẻ là rất an toàn và
thuận tiện. Giờ đây người dùng thay vì phải nhớ nhiều số thì chỉ phải nhớ một số,
cịn các thơng tin nhận dạng đều ở trong thẻ. Trong trường hợp thẻ bị mất cắp, kẻ
lấy cắp cũng không thể sử dụng được thẻ vì khơng có số PIN.
! Nhược điểm
Tuy giải pháp này đã hạn chế được sự mất cắp thẻ bằng cách kết hợp thẻ với
một số PIN nhưng vẫn có thể bị đánh cắp cả thẻ và số PIN. Thêm nữa việc xác thực
cần người dùng phải nhớ số PIN và sở hữu một chiếc thẻ còn các cơ quan quản lý
phải trang bị thêm các thiết bị như thiết bị đọc thẻ, thiết bị ghi, các phần mềm hỗ trợ
…Số lượng và giá thành của các thiết bị này khơng phải là nhỏ, do đó khá là tốn
kém.
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng

16
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Các dịch vụ hỗ trợ phổ biến cho việc xác thực bằng thẻ là chưa đầy đủ. Các dịch vụ
thư điện tử, các dịch vụ thương mại …cần đến xác thực trên Internet đều chưa hỗ
trợ xác thực bằng thẻ. Hiện nay, hầu như các nhà cung cấp giải pháp xác thực bằng
thẻ đều phát triển các dịch vụ theo mơ hình riêng của mình, sử dụng các thiết bị
riêng chưa thống nhất, do đó khả năng liên hệ giữa các hệ thống hầu như không có.
! Ứng dụng
Đây được coi là giải pháp tương đối hồn chỉnh và được nhận định là có tiềm
năng lớn. Hiện nay, trên thế giới có rất nhiều cơng ty lớn đang phát triển những giải
pháp xác thực hoàn thiện hơn về cả mức độ an toàn và khả năng linh động trong
việc sử dụng thẻ. Có rất nhiều quốc gia đã sử dụng công nghệ này để làm chứng
minh thư, thẻ rút tiền ngân hàng… Giải pháp này ngày càng được sử dụng nhiều
hơn do sự phát triển về khoa học công nghệ, giá thành của thẻ cũng như của các
thiết bị có liên quan giảm đi rất nhiều trong thời gian vừa qua. Tổ chức chuẩn hóa
quốc tế ISO đã và đang đưa ra những tiêu chuẩn thống nhất trong việc xây dựng và
phát triển thẻ.
c. Giải pháp xác thực sử dụng nhận dạng sinh trắc học (Biometrics)
Tuy giải pháp xác thực sử dụng thẻ thông minh khá an toàn và linh hoạt
nhưng trong những lĩnh vực quan trọng cần sự an toàn chặt chẽ như ngân hàng,
quân sự … địi hỏi phải có giải pháp khác an toàn hơn. Và các nhà nghiên cứu đã
đưa ra giải pháp xác thực sử dụng các kỹ thuật sinh trắc học để giải quyết những
vấn đề đó. Đây là giải pháp xác thực có tính bảo mật cao dựa trên đặc điểm sinh học
của từng cá nhân, trong đó sử dụng các thủ tục như quét dấu vân tay (fingerprint
scanner), quét võng mạc mắt (retinal scanner), nhận dạng giọng nói (voicerecognition), nhận dạng khuôn mặt (face-recognition) v.v.

Đây là những đặc điểm đặc trưng mà khơng của người nào hồn tồn giống
của người nào. Để xác thực trong máy tính, chúng ta phải số hóa và lưu trữ các đặc
điểm này vào một cơ sở dữ liệu. Ngồi ra cịn phải có các thiết bị để ghi nhận các
thơng tin và chuyển về để đối chiếu với cơ sở dữ liệu đã có trong hệ thống.

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
17
Cơng nghệ thơng tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Ở phía máy khách, người dùng sử dụng một thiết bị đầu cuối có hỗ trợ biểu mẫu
dùng cho việc đăng nhập vào hệ thống hoặc trong mơi trường Internet thì sử dụng
trình duyệt để mở trang đăng nhập. Người dùng sẽ phải điền vào biểu mẫu mật khẩu
hay một thông tin nhận dạng tương tự và cung cấp mẫu sinh trắc học như dấu vân
tay, hình dạng lịng bàn tay, mắt, giọng nói, chữ ký …thơng qua các thiết bị nhận
dạng được tích hợp trong đó. Sau đó, các thơng tin này sẽ được chuyển về trung tâm
xác thực của hệ thống để kiểm tra. Trung tâm sẽ phân tích mẫu thu được và đối
chiếu xem mẫu tương ứng với mật khẩu được lưu trong cơ sở dữ liệu có trùng hay
khơng, nếu trùng thì người dùng đăng nhập là hợp lệ. Và hệ thống sẽ đưa ra các
quyền hạn, tài nguyên phù hợp cho người sử dụng.
! Ưu điểm
Người dùng hầu như không thể thay đổi được đặc điểm các bộ phận như dấu
vân tay, mắt … được dùng trong xác thực. Người dùng cũng không thể đưa những
đặc điểm này cho người khác sử dụng như thẻ hay mật khẩu được. Các đặc điểm
sinh trắc học này không thể bị mất cắp. Ngày nay với trình độ khoa học cơng nghệ
phát triển, việc nhận biết các thơng tin sinh trắc học đã có thể phân biệt được thông
tin sinh trắc học của người sống và của người chết.

! Nhược điểm
Khi mà các dữ liệu sinh trắc học khó có sự thay đổi như dấu vân tay, mắt
được sử dụng trong các ứng dụng khác nhau thì rất dễ bị đánh cắp. Trên thế giới
vẫn chưa có một chuẩn chung nào cho việc số hóa các mẫu sinh trắc học. Mặt khác,
các nhà sản xuất khác nhau cung cấp các thiết bị xác thực mẫu sinh trắc học theo
các chuẩn khác nhau khơng có sự thống nhất. Do đó, việc trang bị hệ thống xác thực
này khơng có tính linh động cao. Có một số thơng tin có thể bị thay đổi vì nhiều lý
do. Ví dụ: Dấu vân tay bị thay đối do bị chấn thương, giọng nói bị méo do bị viêm
họng …Do đó, việc xác thực đúng các thơng tin này thường rất thấp.
Ở nhiều nơi việc đưa giải pháp này vào các ứng dụng trên Internet là không thực tế.
Các thông tin xác thực sinh trắc học thường khá lớn trong khi băng thông đường
truyền không phải ở đâu cũng đủ rộng. Dẫn đến kết quả phản hồi lại rất chậm.
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
18
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

! Ứng dụng
Đây là một giải pháp có mức độ an tồn cao nhất và được đánh giá là có khả
năng phát triển rộng rãi. Khoa học công nghệ ngày càng phát triển hiện đại sẽ làm
tăng thêm sự an tồn, tính tiện lợi và giảm giá thành của các thiết bị liên quan. Một
số hãng phần mềm lớn đã hỗ trợ giải pháp xác thực bằng sinh trắc học như hãng
Microsoft với các phiên bản hệ điều hành Windows NT, Windows 2000… Nước
Anh cũng đã bắt đầu nghiên cứu và đưa vào triển khai kế hoạch sử dụng các thông
tin sinh trắc học trong công việc quản lý các thẻ dịch vụ, chứng minh thư …
1.2.4. Các giao thức xác thực
Dịch vụ xác thực đặc biệt quan trọng trong việc đảm bảo cho một hệ thống

hoạt động an toàn. Một hệ thống thường phải xác thực một thực thể trước khi tiến
hành truyền thông với thực thể đó. Nhận dạng của thực thể sau đó được sử dụng để
xác định quyền truy cập hay để thực hiện chống chối bỏ. Trong giao thức xác thực,
hai bên thường đồng ý chia sẻ một bí mật để đảm bảo tính tồn vẹn và tính bí mật.
Các kỹ thuật xác thực thường dựa trên ba mơ hình: bạn-có-cái-gì-đó, bạnbiết-cái-gì-đó và bạn-là-cái-gì-đó. Trong mơ hình xác thực bạn-biết-cái-gì-đó, người
sử dụng đưa ra tri thức về một cái gì đó ví dụ như mật khẩu hoặc một số định danh
cá nhân. Trong hướng tiếp cận bạn-có-cái-gì-đó, người sử dụng chứng minh sự
chiếm hữu một vật gì đó ví dụ như một khóa vật lý, một dấu hiệu, một thẻ tự nhận
dạng hoặc một khóa bí mật được lưu trữ trên thẻ thơng minh. Mơ hình bạn-là-cáigì-đấy dựa trên một đặc điểm không thể thay đổi của người sử dụng như giọng nói,
dấu vân tay hay võng mạc.Vì các kỹ thuật này không cung cấp đủ sự đảm bảo về
nhận dạng nếu được sử dụng đơn lẻ, nên các hệ thống kết hợp cả ba mơ hình có thể
được sử dụng. Các hệ thống này yêu cầu người sử dụng đưa ra hơn một loại bằng
chứng để chứng minh nhận dạng của mình. Ví dụ như một máy ATM
(Asynchronous Transfer Mode) yêu cầu một người chứng minh cả tri thức về số
nhận dạng cá nhân và sự sở hữu một thẻ để truy cập được đến tài khoản của mình.
Hệ thống xác thực có thể thực hiện các giao thức xác thực phức tạp với các thiết bị
kiểm tra nhận dạng của người sử dụng. Các giao thức này có thể sử dụng các thao
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
19
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

tác mã hóa phức tạp và sử dụng các khóa mã hóa dài để ngăn cản nhiều loại tấn
công truyền thống. Sau đây là một số giao thức xác thực phổ biến:
a. Giao thức thử thách và trả lời
Giao thức thử thách và trả lời cho phép người truy nhập tự xác thực mình với
hệ thống bằng cách chứng minh hiểu biết của mình về giá trị mật mã bí mật mà

khơng u cầu người truy nhập tiết lộ bí mật. Hệ thống xác thực đưa ra cho người
truy nhập một số được tạo ra một cách ngẫu nhiên được gọi là thử thách. Người truy
nhập nhập số thử thách và giá trị mật để hàm mật mã tính ra câu trả lời. Hệ thống
xác thực nét nhận dạng của người truy nhập nếu câu trả lời là giá trị mong đợi. Bởi
vì thử thách là một số ngẫu nhiên, giao thức thử thách – trả lời cung cấp một lá chắn
có hiệu quả chống lại sự tấn cơng lặp lại.

Hình 1.1. Giao thức thử thách và trả lời
b. Giao thức xác thực không tiết lộ bí mật
Cho phép người sử dụng tự xác thực với một hệ thống bằng cách chứng minh
tri thức về một giá trị bí mật mà khơng u cầu người sử dụng tiết lộ bí mật. Hệ
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
20
Cơng nghệ thơng tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

thống xác thực gửi cho người sử dụng một số bất kỳ. Người sử dụng sẽ sử dụng giá
trị bất kỳ đó và giá trị bí mật để tính tốn một giá trị trả lời. Hệ thống xác nhận nhận
dạng của người sử dụng nếu giá trị trả lời là đúng.
c. Giao thức biến đổi mật khẩu
Một người sử dụng xử lý mật khẩu của mình thông qua một hàm băm và gửi
kết quả cho hệ thống xác thực. Hệ thống so sánh giá trị băm với giá trị băm đúng
mà nó lưu trữ, người sử dụng sẽ được xác thực nếu hai giá trị này giống nhau. Nếu
hệ thống lưu trữ mật khẩu thay vì lưu trữ các giá trị băm của nó, nó phải tính tốn
giá trị băm trước khi thực hiện so sánh. Các giao thức này ngăn chặn việc ăn cắp
mật khẩu trên đường truyền nhưng lại dễ bị đánh lừa bởi các cuộc tấn công lặp lại.
d. Giao thức sử dụng mật khẩu một lần

Là cải tiến của phương pháp biến đổi mật khẩu để chống lại các cuộc tấn
công lặp lại. Giao thức này yêu cầu người sử dụng và hệ thống xác thực chia sẻ một
số bí mật nhỏ n. Người sử dụng băm mật khẩu của mình n lần để tạo ra mật khẩu sử
dụng một lần và gửi nó tới hệ thống, trong khi đó hệ thống cũng thực hiện băm giá
trị mật khẩu của người sử dụng mà nó lưu trữ n lần và sẽ xác thực người sử dụng
nếu hai giá trị này trùng nhau. Các cuộc tấn công lặp lại không thể thực hiện được
bởi mật khẩu lần sau không xác định được từ mật khẩu của lần truy nhập trước.
One-time password (OTP): mật khẩu dùng một lần, chỉ có hiệu lực tại phiên
hiện tại. Ví dụ như các thiết bị sau:

Hình 1.2. Thiết bị OTP của RSA.
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
21
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

Thiết bị OTP của RSA, khi giao dịch người dùng sẽ nhập mã số hiện tại có trên
thiết bị. Mã số sẽ thay đổi liên tục theo thời gian

Hình 1.3. Thẻ ma trận xác thực của ACB.
Đơn giản hơn như là thẻ ma trận xác thực của ACB, khi giao dịch người dùng sẽ
nhập mã số tại một số ơ mà hệ thống u cầu

Hình 1.4. SMS OTP của VTC Pay.
Hay như SMS OTP của VTC Pay, khi giao dịch mã số sẽ được gửi về điện thoại của
khách hàng
e. Giao thức sử dụng chứng chỉ số

Là một dạng khác của giao thức xác thực không tiết lộ bí mật trong đó giá trị
mã hóa bí mật là một khóa riêng và hệ thống xác thực sử dụng khóa cơng khai
tương ứng để kiểm tra trả lời.
Khác với chứng thư (certificate) và khố cơng khai (public key) được cơng
khai, khố bí mật (private key) của người dùng thường được chứa trong một thiết bị

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
22
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

đặc biệt, có thể là usb token hoặc thẻ thơng minh có chứa chip xử lý. Khố bí mật
khơng được trích rút ra khỏi thiết bị này mà thiết bị chỉ cung cấp ra ngoài các giao
diện lập trình ứng dụng (API) để thực hiện ký/mã hóa dữ liệu. Dữ liệu khi ký hoặc
mã hóa sẽ được thực hiện ngay trong thiết bị này.
Quá trình xác thực sử dụng chứng thư số diễn ra như sau:
• Thông tin đăng nhập bao gồm tên đăng nhập/mật khẩu được người dùng
nhập vào.
• Người dùng sử dụng khố bí mật của mình để ký lên thơng tin đăng nhập
này.
• Thông tin đăng nhập kèm theo chữ ký được gửi lên máy chủ. Máy chủ sử
dụng khố cơng khai của người dùng để kiểm tra tính hợp lệ của chữ ký, nếu
chữ ký hợp lệ mới tiếp tục kiểm tra mật khẩu được nhập vào.

1.3. Giải pháp đăng nhập một lần (Single sign-on)
1.3.1.


Đăng nhập một lần là gì ?
Ngày nay, một người sử dụng có thể sở hữu hay truy cập rất nhiều tài nguyên

thông tin khác nhau. Vấn đề phức tạp nảy sinh khi mỗi hệ thống quản lý tài nguyên
lại cung cấp một cơ chế xác thực người dùng riêng. Việc đăng nhập để truy xuất vào
tài nguyên của người dùng có thể phát sinh các vấn đề như quên thông tin xác thực
do sử dụng nhiều tài khoản và mật khẩu trên các ứng dụng khác nhau hay việc dùng
một tài khoản và mật khẩu cho nhiều hệ thống dẫn đến nguy cơ mất an toàn. Đăng
nhập một lần chính giải pháp để giải quyết các vấn đề trên.
Đăng nhập một lần có thể được định nghĩa như là một trài nghiệm người
dùng khi chỉ cần đăng nhập một lần và có thể điều hướng truy xuất nhiều ứng dụng
liên tục mà không cần phải nhập thông tin cho từng ứng dụng. Điều này thực sự cần
thiết với những tổ chức có nhiều ứng dụng đang hoạt động trên các nền dịch vụ
khác nhau. Đăng nhập một lần giúp người sử dụng dễ dàng trong việc đăng nhập

----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
23
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

một ứng dụng và truy xuất tất cả các ứng dụng khác, làm giảm nhu cầu người sử
dụng phải nhớ rất nhiều thông tin đăng nhập và mật khẩu.

Hình 1.5. Mơ hình trước và sau khi áp dụng đăng nhập một lần
Ví dụ: Người dùng sử dụng nhiều dịch vụ: Email, forum, web…khi chưa có đăng
nhập một lần thì với mỗi dịch vụ ta phải nhập thông tin để xác thực. Khi một tổ
chức đã thống nhất sử dụng đăng nhập một lần cho hệ thống của họ thì người dùng

chỉ phải đăng nhập một lần vào bất kì ứng dụng nào trong hệ thống thì khi dùng các
ứng dụng khác người dùng không phải đăng nhập lại.
Với hệ thống có nhiều website và ứng dụng thì việc sử dụng đăng nhập một
lần là khá cần thiết nhằm đem lại nhiều thuận tiện cho người dùng và tăng tính năng
bảo mật. Đăng nhập một lần giúp xác thực tập trung trên một máy chủ duy nhất
thông qua giao thức đã được mã hóa. Trình duyệt sử dụng HTTP chuyển hướng
trình duyệt của người dùng giữa các ứng dụng mà không cần đăng nhập tài khoản
và mật khẩu.
Đăng nhập một lần chỉ được triển khai sau khi đã xây dựng được hệ thống
xác thực và phân quyền. Đăng nhập một lần có nhiệm vụ cung cấp cho người dùng
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
24
Công nghệ thông tin 2011B


Nghiên cứu thử nghiệm các cơ chế xác thực sử dụng OpenID và ứng dụng
-----------------------------------------------------------------------------------------------------------------------

quyền truy cập nhiều tài nguyên Web, các ứng dụng trong phạm vi cho phép chỉ với
một lần đăng nhập (xác thực). Về phân quyền (Access Control), có 2 luật (rules)
chính:
- Authentication (xác thực): Là q trình để định danh một người dùng có
hợp lệ hay không. (Thường thể hiện qua một khung đăng nhập)
- Authorization (uỷ quyền): Là quá trình kiểm chứng một người dùng đã
được xác thực có đủ quyền truy cập vào tài nguyên (mà người dùng) yêu cầu hay
không. Tài nguyên yêu cầu có thể phụ thuộc vào Policy domain (cấp quyền theo
domain) hoặc một policy đặc biệt nào đó (ví dụ cấp quyền theo cấp).

1.3.2.


Phân loại đăng nhập một lần
Hầu hết các sản phẩm đăng nhập một lần có sẵn trên thị trường có thể được

phân thành hai loại dựa trên kiến trúc:
- Dựa trên web (còn gọi là Enterprise SSO hay ESSO).
- Không dựa trên web.
Trong khuôn khổ của luận văn, học viên chỉ tập trung vào tìm hiểu và phân tích
đăng nhập một lần dựa trên web. Một SSO dựa trên web được phân loại tiếp theo:
• Đơn miền (Single Domain): ví dụ Khi xác thực thành cơng vào tên miền:
domain.com, người dùng đồng thời được xác thực vào các miền phụ : subdomain.domain.com tồn tại.
• Đa miền (Multi Domain): ví dụ Khi xác thực thành cơng vào facebook.com,
người dùng đồng thời được xác thực vào example.com
• Các ứng dụng và sản phẩm của bên thứ ba (Applications vs Third-Party
Products): ví dụ SSO giữa Oracle Access Manager và IBM WebSphere
Application Server
Ở 2 dạng đầu tiên, SSO thường sử dụng Cookie để nhận diện, máy chủ web
(webserver hay webgate) gửi cookie đã được mã hóa cho trình duyệt đã xác thực
----------------------------------------------------------------------------------------------------------------------Võ Huy Hưng
25
Công nghệ thông tin 2011B


×