Tải bản đầy đủ (.docx) (74 trang)

Đồ án tốt nghiệp nghiên cứu và thử nghiệm phương pháp xác thực kerberos

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 (1023.94 KB, 74 trang )

MỤC LỤC


2
2

BẢNG GIẢI THÍCH CÁC TỪ VIẾT TẮT
STT
1
2
3
4
5
6
7

Ký hiệu
Alice,Bob,..
{M}K
KXY
N, NA
TX
Lx
sigA(M)

8

εK

9
10


11
12
13
14
15
16
17
18
19
20
21
22
23

Nối bit
User
Host
Định danh
Mật khẩu của U
Hàm một chiều cực kỳ khó nghịch ảnh
Data Encryption Standard: Chuẩn Mã hóa Dữ liệu
Key Encryption Key
Key Distribution Center
Key derivation function
Khóa chia sẻ giữa A và B
Count: số đếm
Khóa phiên
Hash-based Message Authentication Code
Request


24

||
U
H
ID
PU
f
DES
KEK
KDC
KDF
KAB
cnt
KSES
HMAC
RQST
eK A

25

e−K1A

Giải mã sử dụng KA

26
27
28
29
30

31
32

y
MiTM
AS
TGS
TGT
SSO
SSH

Bản mã thông điệp
Man in The Middle: tấn công người đứng giữa
Authenticatiom Server
Ticket Granting Server
Ticket Granting Ticket
Single Sign On
Secure Shell

AB

Ý nghĩa
Tên thực thể
Bản mã lập từ M bằng khóa K
Khóa chia sẻ giữa X và Y
Nonce-Thời khắc
TX: Tem thời gian được tạo bởi thực thể X.
Thời hạn được tạo cho thực thể x
Chữ ký số trên M được tạo ra bởi A
Mã hóa bằng khóa KAB


Mã hóa sử dụng KA


3
3

DANH MỤC HÌNH VẼ

PHẦN MỞ ĐẦU
Tính cấp thiết, Tình hình nghiên cứu liên quan Đồ án
Ngày nay CNTT không ngừng phát triển, nó giúp thay đổi toàn bộ thế giới
1.

theo xu hướng số hóa và hiện đại hóa hơn. Trên thế giới trong tất cả các ngành
nghề hiện có đều tồn tại sự góp mặt của CNTT từ văn phòng đến thương mại, du
lịch, học tập…. Nó giúp các nước trên thế giới thu hẹp khoảng cách về địa lý và
mở ra cơ hội hội nhập và phát triển rộng rãi. Kéo theo sự phát triển của CNTT
luôn tồn tại hai mặt tốt và xấu, mặt xấu đó chính là sự an toàn bảo mật thông tin
và đánh cắp dữ liệu thông tin của các hacker đối với các tổ chức, cá nhân gây ra
những hiểm họa vô cùng nghiêm trọng. Hiện nay trên thế giới có rất nhiều biện
pháp và cách phòng tránh các nguy cơ trên, trong đó các hoạt động liên quan
đến xác thực người dùng cũng được quan tâm. Hiện có rất nhiều các phương
pháp xác thực người dùng được áp dụng phổ biến nhưng luôn còn tồn tại những
nhược điểm quan trọng như: username và password, chữ ký số, Tokens,
Kerberos….trong đó Kerberos là một giao thức với cơ chế bảo mật tốt, độ tin
cậy cao và là một giao thức xác thực mã nguồn mở được cung cấp miễn phí và
đem lại hiệu quả cao. Từ những lý do trên và sự hướng dẫn của Tiến sĩ Hoàng
Tuấn Hảo – Bộ môn An toàn thông tin – Khoa CNTT để tôi quyết định chọn đồ
án “Nghiên cứu và thử nghiệm phương pháp xác thực Kerberos” làm một

hướng nghiên cứu cho mình.
2. Mục đích và nhiệm vụ của Đồ án
- Mục đích: Nghiên cứu và thử nghiệm phương pháp xác thực Kerberos.


4
4

- Nhiệm vụ: dựa trên cơ sở mục đích nghiên cứu, tác giả xác định đồ án
gồm hai nhiệm vụ chính sau đây:
Thứ nhất, nghiên cứu phương pháp xác thực Kerberos.
Thứ hai, xây dựng một ứng dụng thử nghiệm phương pháp xác thực Kerberos.
Để hoàn thành được 2 nhiệm vụ đề ra, tác giả cẩn làm rõ được các nội dung
sau:
- Làm rõ cơ sở lý luận, thực tiễn liên quan đến phương pháp xác thực
Kerberos;
- Đề xuất phương án, mô hình thử nghiệm;
- Nêu kết luận, khuyến nghị.
3. Đối tượng và phạm vi nghiên cứu của Đồ án
- Đối tượng nghiên cứu:
Báo cáo xác định đối tượng nghiên cứu ở đây là Phương pháp xác thực
Kerberos và các ứng dụng của phương pháp đó.
- Phạm vi nghiên cứu: Do thời gian nghiên cứu còn hạn chế và một số
điều kiện khách quan, chủ quan khác, tác giả xác định hướng và xác định phạm
vi nghiên cứu là tìn hiểu tổng quan về các giao thức xác thực hiện tại và những
ưu nhược điểm của nó. Nội dung đồ án tập trung nghiên cứu và tìm hiểu cơ chế,
nguyên tắc hoạt động chung của giao thức Kerberos từ đó đánh giá được mục
tiêu, yêu cầu và ưu nhược điểm của Kerberos.
4. Phương pháp nghiên cứu của đồ án
Căn cứ vào mục đích, yêu cầu, nội dung đặt ra của đồ án, tác giả xác định

phương pháp nghiên cứu ở đây bao gồm:
- Xây dựng một sơ đồ nghiên cứu tổng quan mang lại cái nhìn chung nhất;
- Tiến hành thu thập thông tin, nghiên cứu tài liệu, dựa trên những tài liệu
tham khảo, xây dựng quy trình dự kiện; nêu rõ các cơ sở khoa học từ đó xác
định cần nghiên cứu toàn bộ hay một số công đoạn cụ thể.


5
5

- Xử lý các thông tin, số liệu thu thập được: Xử lý toán học đối với các
thông tin định lượng, thống kê, xác định quy luật của tập hợp số liệu. Xử lý
logic đối với các thông tin định tính. Đưa ra những phán đoán về quy luật biến
đổi, đồng thời thể hiện những liên hệ logic của sự biến đổi với các sự kiện được
xem xét. Các thông tin định lượng và định tính cần được xử lý để xây dựng các
luận cứ, khái quát hóa để làm bộc lộ các quy luật, phục vụ cho việc chứng minh
hoặc bác bỏ các giả thuyết khoa học.
5. Ý nghĩa lý luận và thực tiễn của Đồ án
Đồ án tập trung nghiêm cứu về giao thức xác thực Kerberos và mô hình
hoạt động của nó. Mang lại cho bạn đọc một cái nhìn sâu sắc hơn về các giao
thức xác thực nói chung và phương pháp xác thực Kerberos nói riêng. Tìm hiểu
về lịch sử hình thành phát triển của Kerberos, nêu rõ ra được mục tiêu, yêu cầu
và nguyên tắc hoạt động chung của hệ thống Kerberos qua đó đánh giá được
những ưu điểm và hạn chế của mô hình. Đi sâu tìm hiểu về kỹ thuật xác thực,
cách thức hoạt động của xác thực Kerberos và các cách tấn công trên các giao
thức này. Từ những tìm hiểu về Kerberos đã xây dựng mô hình thử nghiệm các
bước hoạt động của Kerberos bằng ngôn ngữ Java trên NetBeans IDE 8.0.
6. Kết cấu của Đồ án
Toàn bộ nội dung của báo cáo được tổ chức theo bố cục 4 phần như sau:
-


-

Phần mở đầu
Phần nội dung: gồm 3 chương:
Chương 1. Giới thiệu tổng quan các giao thức xác thực.
Chương 2. Tổng quan về giao thức kerberos.
Chương 3. Xây dựng chương trình mô phỏng giao thức Kerberos.
Phần kết luận
Phần danh mục tài liệu tham khảo


6
6

Chương 1
GIỚI THIỆU TỔNG QUAN CÁC GIAO THỨC XÁC THỰC
1.1. AN TOÀN THÔNG TIN LÀ GÌ ?
An toàn nghĩa là thông tin được bảo vệ, các hệ thống và những dịch vụ có
khả năng chống lại những tai hoạ, lỗi và sự tác động không mong đợi, các thay
đổi tác động đến độ an toàn của hệ thống là nhỏ nhất. Hệ thống có một trong các
đặc điểm sau là không an toàn: Các thông tin dữ liệu trong hệ thống bị người
không được quyền truy nhập tìm cách lấy và sử dụng (thông tin bị rò rỉ). Các
thông tin trong hệ thống bị thay thế hoặc sửa đổi làm sai lệch nội dung (thông
tin bị xáo trộn)...
Thông tin chỉ có giá trị cao khi đảm bảo tính chính xác và kịp thời, hệ
thống chỉ có thể cung cấp các thông tin có giá trị thực sự khi các chức năng của
hệ thống đảm bảo hoạt động đúng đắn. Mục tiêu của an toàn bảo mật trong công
nghệ thông tin là đưa ra một số tiêu chuẩn an toàn. Ứng dụng các tiêu chuẩn an
toàn này vào đâu để loại trừ hoặc giảm bớt các nguy hiểm. Do kỹ thuật truyền

nhận và xử lý thông tin ngày càng phát triển đáp ứng cácyêu cầu ngày càng cao
nên hệ thống chỉ có thể đạt tới độ an toàn nào đó. Quản lý an toàn và sự rủi ro
được gắn chặt với quản lý chất lượng. Khi đánh giá độ an toàn thông tin cần
phải dựa trên phân tích các rủi ro, tăng sự an toàn bằng cách giảm tối thiểu rủi
ro. Các đánh giá cần hài hoà với đặc tính, cấu trúc hệ thống và quá trình kiểm tra
chất lượng.
Hiện nay các biện pháp tấn công càng ngày càng tinh vi, sự đe doạ tới độ
an toàn thông tin có thể đến từ nhiều nơi theo nhiều cách chúng ta nên đưa ra
các chính sách và phương pháp đề phòng cần thiết.
Trên trường quốc tế tiêu chuẩn Anh BS 7799 "Hướng dẫn về quản lý an
toàn thông tin", được công bố lần đầu tiên vào năm 1995, đã được chấp nhận.
Xuất phát từ phần 1 của Tiêu chuẩn Anh BS 77999 là tiêu chuẩn ISO/IEC
17799:2000 mà hiện nay tồn tại dưới phiên bản được sửa đổi ISO/IEC
17799:2005.


7
7

Nội dung ISO/IEC 17799:2005 bao gồm 134 biện pháp cho an toàn thông
tin và được chia thành 11 nhóm:
• Chính sách an toàn thông tin (Information security policy): chỉ thị và hướng dẫn

về an toàn thông tin
• Tổ chức an toàn thông tin (Organization of information security): tổ chức biện

pháp an tòan và qui trình quản lý.
• Quản lý tài sản (Asset managemen): trách nhiệm và phân loại giá trị thông tin
• An ninh cá nhân (Human resource security)
• An toàn vật chất và môi trường (Physical and environmental security)

• Quản lý vận hành và trao đổi thông tin (Communications and operations

management)
• Kiểm tra truy cập (Access control)
• Thu nhận, phát triển và bảo quản các hệ thống thông tin (Information systems

acquisition, development and maintenance)
• Xử lý sự cố an toàn thông tin (Information security incident Mnagement)
• Phương án cho trường hợp khẩn cấp (Business continuity management)
• Theo đúng các quy định pháp luật (Compliance)

Tiêu chuẩn ISO/IEC 27001:2005 phát triển từ phần 2 của BS 7799. Tiêu
chuẩn này quy định các yêu cầu đối với một hệ thống quản lý an toàn thông tin và
tương tự như ISO 9001 là một tiêu chuẩn về quản lý có thể được cấp giấy chứng
nhận.
1.2. GIAO THỨC XÁC THỨC
1.2.1. Xác thực là gì?
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 (provenance) 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ể.


8
8

Trong an ninh máy tính xác thực là một quy trình nhằm cố gắng xác

minh nhận dạng số (digital identity) của phần truyền gửi thông tin (sender) trong
giao thông liên lạc chẳng hạn như một yêu cầu đăng nhập. Phần gửi cần phải xác
thực có thể là một người dùng sử dụng một máy tính, bản thân một máy
tính hoặc một chương trình ứng dụng máy tính (computer program). Ngược
lại Sự tin cậy mù quáng (blind credential) hoàn toàn không thiết lập sự đòi hỏi
nhận dạng, song chỉ thiết lập quyền hoặc địa vị hẹp hòi của người dùng hoặc của
chương trình ứng dụng mà thôi.
Để phân biệt từ "xác thực" (authentication) với một từ gần gũi với nó, "sự
ủy quyền" (hay sự cấp phép) (authorization).
Một ví dụ quen thuộc là ví dụ về quản lý truy cập. Một hệ thống máy tính
đáng ra chỉ nên được sử dụng bởi những người được ủy quyền sử dụng mà thôi
và nó phải nỗ lực phát hiện và loại trừ những người dùng không được ủy quyền.
Việc truy cập máy do đó thường được quản lý bằng cách đòi hỏi một thủ tục xác
thực nhận dạng của người dùng được tiến hành, với một mức độ đáng tin cậy
nào đó, rồi sau đó mới ban cho người dùng những đặc quyền mà chúng ta có thể
cấp cho chỉ danh của người dùng đó. Những ví dụ thông thường trong việc quản
lý truy cập mà trong đó việc xác thực là một việc không tránh khỏi, gồm có:
• Rút tiền mặt từ một Máy rút tiền tự động (Automated Teller Machine -

ATM).
• Quản lý một máy tính từ xa thông qua Internet.
• Sử dụng một hệ thống giao dịch ngân hàng trên mạng internet (Online Internet

banking).
 Đinh nghĩa toán học Một mã xác thực là một bộ 4 (S,R,K,C) thoả mãn các điều

kiện sau:
• S là tập hữu hạn các trạng thái nguồn có thể.
• A là tập hợp các nhãn xác thực có thể
• K là một tập hữu hạn các khoá có thể (không gian khoá). Với mỗi k∈K có một


quy tắc xác thực ek: S→R


9
9
• Tập bản tin được xác định bằng C=S→R

Chú ý một trạng thái nguồn tương đương với một bản rõ.Một bản tin gồm
một bản rõ với một nhãn xác thực kèm theo,một cách chính xác hơn có thể coi
đó là là một bản tin đã được xác nhận.Một quy tắc xác thực không nhất thiết
phải là hàm đơn ánh.
Để phát một thông báo (đã được kí).Alice và Bob phải tuân theo giao thức
sau.Trước tiên họ phải chộn một khoá ngẫu nhiên k ∈ K.Điều này được thực
hiện một cách bí mật như trong hệ mật khoá bi mật.Sau đó giả sử rằng Alice
muốn gửi một trạng thái nguồn s∈S cho Bob trong một kênh không an
toàn.Alice sẽ tính a=ek(s) và gửi bản tin (s,a)cho Bob.Khi nhận được (s,a) Bob
tính a’=eK(s).Nếu a=a’ thì Bob chấp nhận bản tin là xác thực,ngược lại Bob sẽ
loại bỏ nó.
Ta sẽ nghiên cứu hai kiểu tấn công khác nhau mà Oscar có thể tiến
hành.Trong cả hai loại này,Oscar sẽ là’’kẻ xâm nhập vào giưa cuộc’’.Các phép
tấn công này được mô tả như sau:
 Giả mạo

Oscar đưa ra một bản tin (s,a) vào kênh và hi vọng nó sẽ được Bob chấp nhận.

 Thay thế

Oscar quan sát một bản tin trong (s,a) kênh ,sau đó anh ta biến đổi nó
thành (s’,a’), trong đó s’=s và hi vọng được Bob chấp nhận như một bản tin xác

thực .Bởi vậy anh ta tin sẽ lái được Bob đi tới trạng thái nguồn mới này

Ứng với mỗi phương pháp này là một xác xuất lừa bịp, là xác suất để
Oscar thành công trong việc lừa Bob nếu anh ta (Oscar) tuân thủ một chiến lược
tối ưu. Các xác suất này được kí hiệu là Pd 0 (trường hợp giảmạo)và Pd1(trường
hợp thay thế) .Để tình Pd0 và Pd1 ta cần phải xác định các phân bố xác suất trên
S vàK.Các xác suất này được kí hiệu tương ứng là Ps và Pk.


10
10

Giả sử rằng Oscar đã biết mã xác thực và hai phân bố xác suất này.Chỉ có
một thông tin mà Alice và Bob có nhưng mà Oscar không được biết là giá trị của
khoá.
1.2.2. Những kỹ thuật xác thực cơ bản
Có nhiều kỹ thuật khác nhau dựa trên giao thức để hiện thực hoá xác thực và
thiết lập khoá có xác thực nhưng những kiến thiết giao thức cơ bản đặc biệt là
những kiến thiết tốt lại là thống nhất.
Những kỹ thuật xác thực cơ bản là:
1.2.2.1. Tính tươi của thông báo và tính sống của thực thể

Thông báo có tươi hay không là một phần cần thiết của xác thực nguồn gốc
dữ liệu và cả trong trường hợp xác thực thực thể khi thực thể quan tâm đến sự
tương ứng sống của bên liên lạc chủ ý. Bởi vậy những cơ chế thiết lập tính tươi
của thông báo và tính sống của thực thể là những thành phần cơ bản nhất trong
những giao thức xác thực.
Mô tả sau đây là những cơ chế chuẩn và cơ bản để đạt được những chức
năng này. Trong những mô tả này, Alice đứng trên vị trí của người yêu cầu theo
tính chất (Ví dụ là tính khoẻ của Alice ta hay tính tươi của thông báo) và Bob

đứng trên vị trí của người kiểm tra theo tính chất yêu cầu. Chúng ta giả thuyết
rằng Alice và Bob chia sẻ khoá bí mật KAB nếu cơ chế sử dụng những kỹ thuật
mật mã đối xứng hoặc Bob biết khoá công khai của Alice thông qua chứng chỉ
khoá công khai nếu cơ chế sử dụng những kỹ thuật mật mã phi đối xứng.
a. Cơ chế thách đố-giải đố (Challenge-Respone)

Dạng thông thường của đầu vào của Bob có thể là số ngẫu nhiên được gọi
là nonce được sinh ra bởi Bob và truyền sang cho Alice trước đó. Giả sử N B ký
hiệu nonce sinh ra bởi Bob. Cơ chế làm tươi thông báo này có khuôn dạng tương
tác sau đây:


11
11

Hình 1. Cơ chế thách đố giải đố

Thông báo được truyền trong bước một thường gọi là thách đố của Bob
đối với Alice và thông báo được truyền trong bước thứ hai gọi là giải đố của
Alice đối với Bob. Bob ở trong vị thế của người khởi xướng trong khi đó Alice ở
trong vị thế của người trả lời.
Kỹ thuật được sử dụng trong cơ chế này là kỹ thuật mật mã đối xứng. Bởi
vậy sau khi nhận được giải đố của Alice,Bob phải giải mã bản mã sử dụng khoá
chia sẻ KAB. Nếu sự giải mã lấy ra đúng nonce của anh ta thì Bob có thể kết luận
rằng Alice thực ra đã thực hiện biến đổi mật mã được yêu cầu sau hành động gửi
thách đố của anh ta: Nếu khoảng thời gian giữa thách đố và giải đố là nhỏ chấp
nhận được thì thông báo M được coi là tươi thực sự.
Bản chất của cơ chế làm tươi thông báo này là đảm bảo sự biến đổi mật
mã của Alice phải được thực hiện sau khi Alice nhận được nonce của Bob. Đó là
do nonce của Bob được lấy mẫu ngẫu nhiên từ một không gian đủ lớn và như

vậy không ai có thể đoán trước được giá trị của nó trước khi anh ta gửi nó đi.
Nếu thuật toán lập mã trong cơ chế xác thực trên không cung cấp dịch
vụ nguyên vẹn dữ liệu đúng đắn thì Bob không thể thiết lập được tính tươi
của thông báo M.
b. Chuẩn hóa cơ chế thách đố-giải đố .

ISO và IEC đã chuẩn hoá ba cơ chế thách đố-giải đố được đưa ra hiện nay
đối với những cơ chế xác thực thực thể đơn phương. Sự chuẩn hoá đối với cơ
chế đã nghiên cứu trên được gọi là “giao thức xác thực đơn phương hai bước”:


12
12

Hình 1. Chuẩn hóa cơ chế thách đố giải đố

Sau khi nhận được TokenAB Bob giải mã nó và
+ Chấp nhận nếu thấy RB là nonce mà Bob gửi cho Alice.
+ Từ chối trong trường hợp ngược lại.
Các ký hiệu của ISO/IEC để đặc tả giao thức bao gồm:Text1, Text2 là
những trường tuỳ chọn, dấu || ký hiệu nối xâu bít, còn RB là nonce được sinh ra
bởi Bob.
Chuẩn trên là cơ chế xác thực thực thể. Chính vì vậy mà nó đưa vào thông
báo B chính là định danh của Bob thay cho thông báo M là cực kỳ quan trọng.
Trong giao thức này Bob là chủ thể xác thực và do vậy mà có mục đích
thiết lập sự tương ứng sống của Bob.
c. Cơ chế tem thời gian(Time Stamp).

Trong cơ chế tem thời gian Alice thêm thời gian hiện tại vào thông báo của
mình. Giả sử TA là ký hiệu tem thời gian được tạo ra bởi Alice khi Alice tạo ra

thông báo của Alice. Cơ chế làm tươi thông báo này có khuôn dạng không tương
tác sau đây:

Hình 1. Cơ chế tem thời gian

Quá trình giải mã được thực hiện bởi Bob cũng cần được kiểm tra đối với sự
đúng đắn của tính nguyên vẹn dữ liệu. Sau khi giải mã Bob có thể so sánh T A
nhận được với thời gian của chính anh ta với giả thiết rằng những người tham
gia giao thức sử dụng thời gian chuẩn toàn cầu như GMT chẳng hạn. Nếu sự
khác nhau về thời gian đử nhỏ cho phép bởi ứng dụng trong suy nghĩ của Bob
thì thông báo M dường như là tươi.


13
13

Tem thời gian tránh được sự cần thiết phải tương tác và vì vậy thích hợp cho
những ứng dụng liên quan đến không tương tác ví dụ như trong những ứng dụng
thư điện tử. Sự bất tiện của cơ chế tem thời gian là việc đồng bộ hoá đồng hồ thời
gian cần được đòi hỏi và phải được duy trì an toàn,trên thực tế điều này rất khó
khăn.
Trong kiến thiết giao thức cơ bản nonce và tem thời gian là những thành
phần đặc biệt của thông báo. Chúng đóng vai trò nhận biết tính tươi của những
thông báo khác được tích hợp mật mã với chúng.
d. Sự chuẩn hóa cơ chế tem thời gian.

ISO/IEC cũng chuẩn hoá những cơ chế tem thời gian đối với những giao
thức xác thực. Sự chuẩn hoá ISO/IEC đối với cơ chế nêu trên được gọi là
“Giao thức xác thực đơn phương một bước ISO khoá đối xứng” và là như sau
đây:


Hình 1. Sự chuẩn hóa cơ chế tem thời gian
TA

Ở đây N A ký hiệu sự lựa chọn giữa sử dụng T A là tem thời gian và N A là số
tuần tự(sequence number) .
Cơ chế số tuần tự cũng có hai nhược điểm. Thứ nhất một tập thông tin
trạng thái cần phải được duy trì đối với mỗi bên liên lạc. Điều này là khó đối với
những ứng dụng trong môi trường mở trong khi mỗi thực thể có thể liên lạc với
nhiều thực thể khác. Bởi vậy cơ chế số tuần tự không thể phân tách công việc tốt
được. Thứ hai quản lý nơi lưu giữ số tuần tự có thể là rất rắc rối trong sự có mặt
của những sai sót liên lạc, hoặc ngẫu nhiên hoặc chủ ý như là tấn công từ chối
dịch vụ chẳng hạn.
Chúng ta nhớ lại rằng giao thức xác thực nên là phi trạng thái: Một giao
thức có trạng thái không thể vận hành đúng đắn trong môi trường “thù địch”.
Chính vì vậy mà cơ chế số tuần tự không được khuyên cáo sử dụng mặc dù
những cơ chế như vậy đã được chuẩn hoá theo chuẩn ISO/IEC.
e. Cơ chế phi chuẩn

Từ những cơ chế trên có thể dễ dàng xây dựng một biến thể,ví dụ như


14
14

Hình 1. Cơ chế phi chuẩn

Đây là loại cơ chế lập mã rồi lại giải mã của thực thể nhận biết tính tươi.
Thực hiện cơ chế này sẽ cung cấp phương cách để kiểm tra tính hợp lệ của
sự tương ứng sống của bên liên lạc có chủ định. Cơ chế này không phù hợp

để xây dựng những giao thức xác thực. Trong cơ chế này Alice có thể tình
cờ làm lộ thông tin cần giữ kín.
Malice có thể ghi lại bản mã từ cuộc trao đổi kín giữa Alice và Bob và
chèn nó vào trong giao thức sử dụng cơ chế lập mã rồi sau lại giải mã .
Do đó cơ chế lập mã rồi lại giải mã không được ISO/IEC xem xét trong
quá trình chuẩn hóa.
Tuy nhiên đã có nhiều giao thức xác thực được thiết kế để sử dụng cơ chế
lập mã rồi lại giải mã. Và việc sử dụng những cơ chế không chuẩn như vậy là
nguyên nhân chính của những khiếm khuyết an toàn trong những giao thức này.
1.2.2.2.Xác thực lẫn nhau

Những cơ chế cơ bản đối với tính tươi của thông báo và tính sống của
thực thể đã đưa ra hiện đạt được cái gọi là “xác thực đơn phương” có nghĩa là
chỉ có một trong hai thực thể tham gia vào giao thức là được xác thực. Trong xác
thực lẫn nhau cả hai thực thể liên lạc đều được xác thực nhau.
Người ta có thể coi xác thực lẫn nhau chỉ đơn giản là hai xác thực đơn
phương. Tức là xác thực lẫn nhau có thể đạt được bằng cách áp dụng một trong
những giao thức xác thực đơn phương cơ bản hai lần ở hai hướng ngược nhau
mà thôi. Nhưng trên thực tế quan niệm này là không chính xác.
Quan hệ tinh tế giữa xác thực lẫn nhau và xác thực một phía đã không
được hiểu rõ ràng từ trong giai đoạn sớm của quá trình chuẩn hoá ISO/IEC đối
với giao thức dưới đây.


15
15



Giao thức: Giao thức xác thực lẫn nhau ba bước sử dụng khoá công khai ISO.

Giả thiết: A có chứng chỉ khoá công khai CertA; B có chứng chỉ khoá công khai



CertB;
Mục đích: Họ đạt được sự xác thực lẫn nhau.

Hình 1. Giao thức xác thực lẫn nhau ba bước sử dụng khoá công khai ISO

Trong đó:



TokenAB = RA || RB || B || sigA(RA || RB || B);
TokenBA = RB || RA || A || sigB(RB || RA || A).

Tấn công của Wiener:
Tấn công này còn được gọi là tấn công Canada do được khám phá ra bởi
cơ quan thành viên Canada của ISO.


16
16

Hình 1. Tấn công Wiener

Các bước tấn công
1.

Malice giả mạo Bob gửi cho Alice RB.


2.

Alice nhận được thông điệp,gửi lại cho Malice: CertA, R A || RB || B ||
sigA(RA || RB || B ).

a) Malice tiến hành tách lấy RA và gửi nó cho Bob.
b) B nhận được RA tiến hành gửi lại cho Malice CertB, R’ B || RA || A || sigB(R’B || RA

|| A)
3.

Malice chuyển tiếp thông điệp của Bob cho Alice mà không thay đổi
thành phần nào trong thông điệp.
Kết quả là Alice nghĩ rằng Bob đã khởi tạo phiên liên lạc trong khi người
khởi tạo thật sự là Malice
Ta có thể thấy giá trị RB do Malice và Bob gửi là khác nhau.Do đó giao
thức trên có một cách khắc phục hiệu quả. Đó là A phải duy trì trạng thái phù
hợp với nonce RB của B đến khi phiên liên lạc hiện hành kết thúc.


17
17
1.2.2.3.Xác thực liên quan đến bên thứ ba tin cậy:

Trong quá trình xác thực,chúng ta đã giả thiết rằng hai bên tham gia giao
thức hoặc là đã chia sẻ kênh truyền an toàn trong trường hợp những kiến thiết sử
dụng những kỹ thuật mật mã đối xứng hoặc biết khoá công khai của bên kia trong
trường hợp những kiến thiết sử dụng những kỹ thuật mật mã phi đối xứng.Điều
này có mục đích làm tươi kênh an toàn giữa các bên bằng cách khẳng định lại sự

tương ứng sống giữa họ với nhau. Nếu hai thực thể không biết nhau muốn tiến
hành liên lạc an toàn thì đầu tiên phải thiết lập kênh an toàn. Kênh an toàn được
củng cố bởi khoá mật mã. Bởi vậy hai thực thể muốn thiết lập kênh an toàn với
nhau thì thực hiện giao được gọi là giao thức thiết lập khoá có xác thực. Sau khi
kết thúc phiên liên lạc an toàn hai thực thể sẽ nhanh chóng vứt bỏ kênh này. Tức
là họ quên đi khoá sử dụng trong kênh đó và không bao giờ sử dụng nó nữa.
Chính vì vậy mà kênh an toàn này gọi là kênh phiên và khoá củng cố nó gọi là
khoá phiên.
Kiến trúc chuẩn cho các thực thể thực hiện xác thực và những giao thức
thiết lập khoá trong hệ thống mở là sử dụng dịch vụ xác thực tập trung từ bên
thứ ba tin cậy. Dịch vụ như vậy có thể là trực tuyến hoặc ngoại tuyến.
Có hai chuẩn ISO/IEC đối với các giao thức xác thực bên thứ ba tin cậy.
Một cái có tên “giao thức xác thực bốn bước ISO” và một cái có tên “giao
thức xác thực năm bước ISO”. Hai giao thức này đạt được xác thực thực thể
hai phía và thiết lập khoá phiên có xác thực.
Giao thức Woo-Lam:
Mục đích của giao thức này là Alice xác thực mình đối với Bob thậm chí khi
hai thực thể ban đầu còn chưa biết nhau.


18
18

Hình 1. Giao thức Woo-Lam

Mô tả:
1.

Alice gửi cho Bob định danh của mình để yêu cầu xác thực với Bob.


2.

Bob sinh ra một nonce NB và gửi cho Alice.

3.

Alice mã hóa NB bằng khóa KAT chia sẻ với Trent: { N B } K AT .

4.

Bob gửi bản mã bao gồm định danh Alice và { N B } K AT Alice gửi cho ở
bước ba cho Trent.Thông điệp được mã hóa bằng khóa KBT chia sẻ với Trent.

5.

Trent dựa vào hai khóa KBT và KAT lần lượt giải mã hai lần bản mã để thu
được NB.Sau đó mã hóa NB bằng KBT và gửi lại cho Bob.

6.

Bob giải mã thông điệp từ Trent,so sánh N B có được từ thông điệp với N B
mình sinh ra và:
a) Chấp nhận Alice xác thực đúng nếu NB đúng là mình sinh ra.
b) Từ chối trong trường hợp ngược lại.
1.2.2.4.Xác thực dựa trên mật khẩu:

Xác thực dựa trên mật khẩu là hình thức xác thực phổ biến nhất trong
mô hình xác thực từ xa giữa user và host.ở dạng xác thực này user và host
chia sẻ mật khẩu.
Người sử dụng U muốn sử dụng dịch vụ của trạm H thì đầu tiên phải được

khởi hoạt bởi H và được cấp phát mật khẩu. H lưu trữ một kho mật khẩu của tất


19
19

cả người sử dụng. Mỗi mục của kho lưu trữ mật khẩu là một cặp (ID U,PU) với
IDU là định danh của U còn PU là mật khẩu tương ứng của U.

Hình 1. Xác thực dựa trên mật khẩu

Giao thức dựa trên mật khẩu được trình bày như sau:
1. Khi User U muốn đăng nhập vào Host H,U gửi cho H bản tin IDU..
2. H nhận được yêu cầu của U,gửi lại bản tin yêu cầu U cung cấp mật khẩu cho
định danh IDU.
3. U gửi cho H mật khẩu của mình (tương ứng với định danh IDU ).
4. H tìm cặp (IDU,PU) từ trong kho lưu trữ và:
Chấp nhận nếu thấy có cặp trùng với (IDU,PU) trong kho.
Từ chối trong trường hợp ngược lại.
a)

b)

Cần phải lưu ý rằng giao thức này thật ra không phải là xác thực thực thể
cũng không phải là xác thực một phía từ U đến H vì không có phần nào của giao
thức đả động đến nhận biết tính tươi đối với nhận biết tương ứng sống của U.
Giao thức này gặp phải hai vấn đề nghiêm trọng:
1.

Thứ nhất là khả năng tổn thương đối của tệp mật khẩu lưu giữ trong H.

Tệp này có thể bị đọc bởi Malice. Với tệp mật khẩu,Malice có thể đạt được tất
cả quyền của tất cả những người sử dụng. Anh ta có thể đóng giả bất kỳ người
sử dụng nào và dưới vỏ bọc tên người khác,nguy cơ bị phát hiện là rất thấp.

2.

Thứ hai là đối với giao thức truy cập từ xa dựa trên mật khẩu làm cho mật
khẩu đi từ U đến H dưới dạng bản rõ bởi vậy nó có thể bị Malice nghe trộm.
Đây là kiểu tấn công nghe trộm mật khẩu trực tuyến.

a. Giao thức mật khẩu Needham và việc triển khai trong hệ điều hành UNIX:

Needham có sáng kiến đưa ra phương pháp hiệu quả và đơn giản đáng
ngạc nhiên để khắc phục lưu trữ an toàn mật khẩu tại máy trạm. Trạm H nên sử


20
20

dụng hàm một chiều để lập mã mật khẩu tức là mục (ID U,PU) nên được thay
bằng (IDU, f(PU)) ở đó f là hàm một chiều cực kỳ khó nghịch đảo.

Hình 1. Giao thức xác thực sử dụng mật khẩu của Needham

Đây là sơ đồ xác thực sử dụng mật khẩu được cài đặt cho hệ điều hành
UNIX. Hàm f được cài đặt sử dụng thuật toán lập mã DES. Bằng cách này biến
đổi f(PU) sử dụng DES có thể được coi là hàm băm một chiều có khoá,khoá là PU
còn tham số là salt. Nhờ có salt mục mật khẩu lưu trữ trong tệp mật khẩu trong
H sẽ là (IDU,salt,f(PU,salt)).
Mặc dù tính bí mật của tệp mật khẩu đã được đảm bảo vì đã được lập mã

nhưng tính nguyên vẹn dữ liệu vẫn phải được duy trì. Tuy vậy mật khẩu vẫn có
thể bị nghe trộm trực tuyến vì vậy mà mật khẩu sử dụng một lần được đề xuất để
chống lại tấn công dạng này.
b. Sơ đồ mật khẩu sử dụng một lần:

Lamport đề xuất ý tưởng đơn giản để cản phá nghe trộm mật khẩu trực
tuyến. Kỹ thuật này có thể được coi là sơ đồ mật khẩu một lần. “Một lần” có
nghĩa là những mật khẩu được truyền từ U đến H không lặp lại tuy nhiên chúng
có quan hệ tính toán với nhau. Bây giờ thì một mật khẩu bị nghe trộm sẽ không
thể sử dụng lại và vấn đề nghe trộm mật khẩu đã được ngăn ngừa thành công.
Trong thời gian khởi hoạt của người sử dụng mục mật khẩu của U được
thiết lập là (IDU, fn(PU)) ở đó


21
21
def

f n (PU ) = f{
(...(f (PU ))...)
n

Với n là số nguyên lớn.
Người sử dụng U sẽ chỉ phải nhớ PU trong trường hợp giao thức xác thực
mật khẩu.

Khi U và H thực hiện xác thực mật khẩu lần đầu tiê, sau lời nhắc

“Mật khẩu”(tại bước thứ 2 trong mô hình 2.9),một thiết bị tính toán của U sẽ yêu
cầu U nhập khoá PU vào và sau đó tính f n-1(PU) bằng cách áp dụng lặp lại f đúng

n-1 lần. Điều này có thể hiệu quả khi n lớn chẳng hạn n = 1000. Kết quả sẽ được
gửi cho H như thông báo tại bước thứ ba trong mô hình 2.9
Khi nhận được fn-1(PU) thì H chỉ việc áp dụng f một lần nữa trên mật khẩu
nhận được để đạt được fn(PU) và thực hiện kiểm tra tính đúng đắn như trong
bước tư của mô hình 2.9. Ngoài ra H còn cập nhật mục mật khẩu của U bằng
cách thay thế fn(PU) bằng fn-1(PU). Giao thức này là có trạng thái với con đếm
giảm dần từ n đến 1. Khi con đếm đạt đến 1 thì U và H phải tái thiết lập mật
khẩu mới cho U. Do đó mà đồng bộ con đếm mật khẩu giữa U và H luôn phải
được duy trì.
c. Thêm Salt vào trong giao thức xác thực:

Đa số những hệ thống dựa trên mật khẩu khuyên người sử dụng chọn mật
khẩu của họ sao cho chúng nên có 8 ký tự . Mật khẩu có độ dài như vậy có thể
nhớ được bởi đa số người sử dụng mà không cần phải viết ra giấy. Vì các ký tự
ASCII được biểu diễn bằng một byte gồm 8 bít nên mật khẩu 8 ký tự sẽ tương
ứng với xâu 64 bít. Không gian của những xâu 64 bít có 264 khả năng và như vậy
là đủ lớn để chống lại được việc đoán mật khẩu hoặc thậm chí những tấn công
duyệt tự động.
Mặc dù vậy người sử dụng thường chọn mật khẩu cho dễ nhớ như là tên
người thân,người yêu,sinh nhật,những từ trong từ điển, tên người sử dụng tất cả
đều là chữ thường,hoặc có thể thêm vào cuối một hai chữ số. Do đó không gian
mật khẩu nhỏ hơn 264 rất nhiều và là đối tượng cho tấn công từ điển ngoại tuyến.
Malice sẽ sử dụng f(PU),dò tìm trong từ điển để tìm được mật khẩu trùng khớp
với PU. Thực hiện ngoại tuyến sẽ tự động và nhanh hơn so với trực tuyến. Sơ đồ
mật khẩu một lần của Lamport cũng không thể chống lại được tấn công từ điển


22
22


ngoại tuyến: Malice có thể nghe trộm giá trị trạng thái hiện hành i và f i(PU) và từ
đó có thể tiến hành duyệt tìm từ điển.
Bellovin và Merritt đề xuất một giao thức mới có tên là Trao đổi khoá
được lập mã (Encrypted Key Exchange- hay viết tắt là EKE ). Giao thức này bảo
vệ mật khẩu chống lại cả những tấn công nghe trộm trực tuyến và từ điển ngoại
tuyến. Kỹ thuật sử dụng là lập mã xác suất cơ bản.

Hình 1. Trao đổi khoá có lập mã EKE

Trong bước một bản mã PU(

εU ) là kết quả của việc lập mã một đoạn

εU sử dụng khoá P . Trong bước hai nội dung
ε
được lập mã hai lần trong bản mã P ( U (K)) với K là khóa phiên.
thông tin ngẫu nhiên và một lần

U

U

Tính ngẫu nhiên một lần của

εU đóng vai trò của mẹo “salt”. Nếu “khoá

công khai” không là một lần thì chức năng duy nhất của giao thức EKE sẽ thất bại


23

23

hoàn toàn: Thậm chí có thể dễ dàng cho Malice tìm kiếm mật khẩu P U sử dụng
yếu điểm của thuật toán mật mã khoá công khai chẳng hạn tấn công “gặp nhau ở
giữa”.
Nếu những nonce NU, NH được lập mã trong thông báo dòng 3,4,5 được
sinh ra ngẫu nhiên và có kích cỡ lớn phù hợp chẳng hạn lớn hơn so với khoá
phiên K thì chúng che giấu tiếp được khoá phiên K bằng cùng một cách như đối
với mật khẩu PU được che giấu trong hai thông báo đầu. Do đó mà PU vẫn còn là
độc lập thống kê đối với bất kỳ thông báo nào đi qua trong giao thức EKE.
Sự độc lập thống kê của mật khẩu PU đối với những thông báo đi qua
trong chuyến giao thức có nghĩa là mật khẩu được che giấu khỏi kẻ nghe trộm
theo nghĩa an toàn lý thuyết thông tin.
Về bản chất là “salt” thêm vào mật khẩu đã “khuyếch đại” kích cỡ của
không gian mật khẩu từ kích cỡ từ điển lên đến kích cỡ khoá phi đối xứng ngẫu
nhiên. Đó chính là mẹo đằng sau giao thức EKE.
1.2.3. Các phương pháp xác thực
a. Xác thực dựa trên user name và password

Sự kết hợp của một user name và password là cách xác thực cơ bản nhất.
Với kiểu xác thực này, chứng từ ủy nhiệm User được đối chiếu với chứng từ
được lưu trữ trên database hệ thống , nếu trùng khớp username và password, thì
user được xác thực và nếu không User bị cấm truy cập. Phương thức này không
bảo mật lắm vì chứng từ xác nhận User được gửi đi xác thực trong tình trạng
plain text, tức không được mã hóa và có thể bị tóm trên đường truyền.


24
24
b. Challenge handshake authentication protocol (CHAP)


Challenge Handshake Authentication Protocol (CHAP) cũng là mô hình
xác thực dựa trên user name/password. Khi user cố gắng log on, server đảm
nhiệm vai trò xác thực sẽ gửi một thông điệp thử thách (challenge message) trở
lại máy tính User. Lúc này máy tính User sẽ phản hồi lại user name và password
được mã hóa. Server xác thực sẽ so sánh phiên bản xác thực User được lưu giữ
với phiên bản mã hóa vừa nhận , nếu trùng khớp, user sẽ được authenticated.
Bản thân Password không bao giờ được gửi qua network.
Phương thức CHAP thường được sử dụng khi User logon vào các remote
servers của cty chẳng hạn như RAS server. Dữ liệu chứa password được mã hóa
gọi là password băm (hash password). Một gói băm là một loại mã hóa không có
phương cách giải mã.
c. Kerberos

Kerberos authentication dùng một Server trung tâm để kiểm tra việc xác
thực user và cấp phát thẻ thông hành (service tickets) để User có thể truy cập
vào tài nguyên. Kerberos là một phương thức rất an toàn trong authentication
bởi vì dùng cấp độ mã hóa rất mạnh. Kerberos cũng dựa trên độ chính xác của
thời gian xác thực giữa Server và Client Computer, do đó cần đảm bảo có một
time server hoặc authenticating servers được đồng bộ time từ các Internet time
server. Kerberos là nền tảng xác thực chính của nhiều OS như Unix, Windows
d. Tokens

Tokens là phương tiện vật lý như các thẻ thông minh (smart cards) hoặc thẻ
đeo của nhân viên (ID badges) chứa thông tin xác thực. Tokens có thể lưu trữ số
nhận dạng cá nhân-personal identification numbers (PINs), thông tin về user, hoặc
passwords. Các thông tin trên token chỉ có thể được đọc và xử lý bởi các thiết bị
đặc dụng, ví dụ như thẻ smart card được đọc bởi đầu đọc smart card gắn trên
Computer, sau đó thông tin này được gửi đến authenticating server. Tokens chứa
chuỗi text hoặc giá trị số duy nhất thông thương mỗi giá trị này chỉ sử dụng một

lần.


25
25

Ví dụ: Smart Cards là ví dụ điển hình về xác thực tokens- token-based
authentication. Một smart card là một thẻ nhựa có gắn một chip máy tính lưu trữ
các loại thông tin điện tử khác nhau. Nội dung thông tin của card được đọc với
một thiết bị đặc biệt.
e. Biometrics

Biometrics (phương pháp nhận dạng sinh trắc học) mô hình xác thực dựa
trên đặc điểm sinh học của từng cá nhân. 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(voice-recognition),
nhận dạng khuôn mặt(facerecognition).Vì nhận dạng sinh trắc học hiện rất tốn
kém chi phí khi triển khai nên không được chấp nhận rộng rãi như các phương
thức xác thực khác.
f. Multi-factor authentication

Multi-factor authentication, xác thực dựa trên nhiều nhân tố kết hợp, là
mô hình xác thực yêu cầu kiểm ít nhất 2 nhân tố xác thực .Có thể đó là sự kết
hợp của bất cứ nhân tố nào ví dụ như: bạn là ai, bạn có gì chứng minh và bạn
biết gì?
Ví dụ: Cần phải đưa thẽ nhận dạng vào đầu đọc và cho biết tiếp password là
gì?
g. Mutual authentication

Mutual authentication, xác thực lẫn nhau là kỹ thuật bảo mật mà mỗi
thành phần tham gia giao tiếp với nhau kiểm tra lẫn nhau. Trước hết Server chứa

tài nguyên kiểm tra “giấy phép truy cập” của client và sau đó client lại kiểm tra
“giấy phép cấp tài nguyên” của Server. Điều này giống như khi bạn giao dịch
với một Server của bank, bạn cần kiểm tra Server xem có đúng của bank không
hay là một cái bẫy của hacker giăng ra, và ngược lại Server bank sẽ kiểm tra
bạn…


×