Bài giảng An ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng

BÀI 5.  
XÁC THỰC CHỦ THỂ  
Bùi Trọng Tùng,  
Viện Công nghệ thông tin và Truyền thông,  
Đại học Bách khoa Hà Nội  
1
Nội dung  
• Khái niệm chung  
• Xác thực dựa trên mật khẩu  
• Các giao thức xác thực dựa trên mật khẩu  
• Giao thức zero-knowledge  
•
2
1
1. KHÁI NIỆM CHUNG  
3
Xác thực chủ thể là gì?  
• Xác thực chủ thể là tạo ra liên kết giữa định danh và đối  
tượng, thực thể: 2 bước  
Chủ thể cung cấp một định danh trong hệ thống  
Chủ thể cung cấp thông tin xác thực có thể chứng minh sự liên kết  
giữa định danh và chủ thể  
• Các phương pháp xác thực chính:  
Cái chủ thể có (What the entity has)  
Chủ thể là gì (What the entity is)  
Vị trí của chủ thể (Where the entity is)  
• Xác thực đa yếu tố: sử dụng >1 yếu tố xác thực  
4
2
Các thành phần của hệ xác thực  
• A: Tập các thông tin đặc trưng mà chủ thể sử dụng để  
chứng minh định danh của anh ta  
• C: Tập các thông tin mà hệ thống lưu trữ và sử dụng để  
xác minh sự đúng đắn của thông tin trong tập A  
• F: Tập các hàm sinh C từ A  
ꢀ ∈ ꢁ, ꢀ: ꢂ → ꢃ  
• L: Tập các hàm xác thực  
ꢄ ∈ ꢅ, ꢄ: ꢂ × ꢃ → {ꢆꢇꢈꢉ, ꢀꢊꢄꢋꢉ}  
• S: Tập các hàm lựa chọn cho phép các thực thể tạo hoặc  
thay thế các thông tin trong A và C  
5
Một ví dụ - Hệ xác thực bằng mật khẩu  
• Hệ xác thực mật khẩu, giả sử mật khẩu lưu dưới  
dạng rõ  
A: tập các chuỗi ký tự được chấp nhận là mật khẩu  
C = A  
L: hàm so sánh =  
S: hàm thiết lập, thay đổi mật khẩu  
6
3
2. HỆ XÁC THỰC BẰNG MẬT KHẨU  
7
2. Hệ xác thực bằng mật khẩu  
• Mật khẩu: một chuỗi ký tự hoặc một nhóm từ được sử  
dụng để xác thực chủ thể.  
Thực thể(Entity) cần xác thực (người dùng, thiết bị, ứng dụng...)  
Người thẩm tra(Verifier): kiểm tra tính hợp lệ của mật khẩu  
• Một số điểm yếu trên hệ thống xác thực bằng mật khẩu:  
Lưu trữ mật khẩu trong CSDL không an toàn  
Người dùng không cẩn trọng:  
Sử dụng mật khẩu yếu  
Ghi chép mật khẩu vào văn bản  
Chia sẻ mật khẩu cho người khác (vô tình hoặc cố ý)  
8
4
Lưu trữ mật khẩu  
• Lưu mật khẩu dưới dạng rõ:  
Nguy cơ mất an toàn cao nhất  
• Lưu mật khẩu dưới dạng bản mã:  
An toàn khi sử dụng hệ mật mã tốt, bảo vệ khóa giải mã an toàn  
Hạn chế: cần thao tác giải mã bất cứ khi nào cần xác thực  
• Lưu mật khẩu dưới dạng mã băm:  
Chi phí thấp hơn  
Hạn chế: nguy cơ bị tấn công dò đoán dựa trên từ điển. Có thể hạn  
chế bằng cách đưa thêm “salt” vào mật khẩu trước khi băm  
• Sử dụng máy chủ lưu trữ:  
Giải pháp 1: Người thẩm tra yêu cầu máy chủ chuyển mật khẩu để  
xác thực  
Giải pháp 2: Người thẩm tra đưa cho máy chủ thông tin người  
dùng. Máy chủ xác thực và thông báo lại kết quả  
9
Tấn công vào hệ xác thực bằng mật khẩu  
• Tấn công thụ động: nghe lén, quan sát quá trình nhập  
mật khẩu  
Nhìn trộm  
Sử dụng chương trình key logging  
Tấn công kênh bên  
•
Giải mạo chương trình cung cấp dịch vụ (server)  
Giả mạo chương trình khách (client)  
Tấn công man-in-the-middle  
Tấn công vào máy chủ vật lý cung cấp dịch vụ  
10  
5
Tấn công dạng off-line  
• Kẻ tấn công biết:  
Tập thông tin C hệ thống dùng để xác thực  
Tập các hàm biến đổi F  
• Mục tiêu: tìm các thông tin ꢊ ∈ ꢂ  
• Đặc điểm: không tương tác với hệ xác thực  
• Ví dụ: kẻ tấn công biết có cơ sở dữ liệu chứa mã băm  
của mật khẩu và hàm băm sử dụng  
• Nguy cơ: người dùng sử dụng các mật khẩu dễ đoán, kẻ  
tấn công có một bộ từ điển chưa mã băm tương ứng  
• Giảm thiểu nguy cơ: Hash(Password, Salt)  
11  
Tấn công dạng online  
• Kẻ tấn công biết tập hàm xác thực L  
• Mục đích: dò thử lần lượt các mật khẩu dựa trên kết quả  
xác thực hệ thống trả lại  
• Đặc điểm:  
Tương tác trực tiếp với hệ xác thực  
Có thể thử trên 1 hoặc đồng thời nhiều tài khoản  
•
G: Tốc độ kẻ tấn công dò thử  
T: Thời gian kẻ tấn công dò thử  
N: Số mật khẩu hệ thống có thể tạo ra  
Giảm thiểu:  
Tăng độ dài của mật khẩu  
Quy định số lần thử xác thực tối đa trong một khoảng thời gian  
12  
6
Khôi phục mật khẩu  
• Làm thế nào để người dùng có thể khôi phục mật khẩu  
khi họ quên?  
Gửi trực tiếp qua email  
Reset qua email  
Câu hỏi bí mật  
Sử dụng tin nhắn SMS  
...  
• Lưu ý: xây dựng giao thức an toàn  
13  
Một số chính sách sử dụng mật khẩu  
• Mục đích: tăng cường an toàn cho hệ xác thực dựa trên  
mật khẩu  
• Quy định độ dài tối thiểu  
• Quy định các ký tự bắt buộc phải sử dụng  
• Thay đổi mật khẩu định kỳ  
•
gian nhất định  
• Hạn chế số lần thử xác thực  
• Tăng thời gian chờ thử xác thực lại  
• Yêu cầu đổi mật khẩu sau lần đăng nhập đầu tiên  
• ...  
14  
7
3. MỘT SỐ GIAO THỨC XÁC THỰC  
15  
Giao thức PAP  
• Password Authentication Protcol  
• Được sử dụng trong giao thức mạng PPP trước đây  
• Nội dung:  
(1) U S: ID || Password  
(2
S U: ACK/NAK  
• Không an toàn  
16  
8
Xác thực 1 chiều dựa trên hệ mật mã KĐX  
• Giả sử 2 bên đã trao đổi một giá trị khóa bí mật KS  
(1) U S: Request  
(2) S U: Challenge  
(3) U S: f(KS, Challenge)  
Hàm f: có thể là các hàm mã hóa KĐX, hàm băm  
KS : khóa hoặc mật khẩu  
• Bài tập: Phân tích các điểm yếu của sơ đồ này  
17  
Xác thực 1 chiều dựa trên hệ mật mã KCK  
ISO/IEC 9798-3 / FIPS-196  
(1) A B: Request  
(2) B A: TokenID || NB  
(3) A B: TokenID || CertA || TokenAB  
To
TokenAB = NA || NB || E(KRA, NA || NB)  
18  
9
Giao thức CHAP  
• Challenge Handshake Authentication Protocol  
(1) U S: Request  
(2) S U: Challenge  
(3) U S: ID || Hash(ID || Hash(Password) || Challenge)  
(4) Server kiểm tra  
S U: ACK / NAK  
• Challenge: chuỗi ký tự ngẫu nhiên  
• Hash: MD5  
19  
Giao thức EAP  
• Extensible Authentication Protocol  
• Có khoảng 40 biến thể kết hợp thêm nhiều cơ chế khác  
nhau:  
EAP-MD5: tương tự CHAP  
EAP-TLS, EAP-TTLS, PEAP: kết hợp TLS  
EAP-PSK: kết hợp pre-shared key  
...  
20  
10  
Ví dụ: EAP-PEAP  
21  
Ví dụ: EAP-PEAP  
22  
11  
Xác thực 2 chiều sử dụng hệ mật mã KĐX  
• Giả sử A và B đã chia sẻ khóa KS  
(1) A B: IDA  
(2) B A: NB  
(3) A B: f(KS, NB) || NA  
(4) B A: f(KS, NA)  
Hàm f: có thể là các hàm mã hóa KĐX, hàm băm  
KS : khóa hoặc mật khẩu  
23  
Bài tập  
• Xem xét tính an toàn của giao thức xác thực sau:  
(1) A B: IDA || NA  
(2) B A: f(KS, NA) || NB  
(3) A B: f(KS, NB)  
• Nhận xét: người bắt đầu giao dịch phải là người chứng  
minh trước  
24  
12  
Xác thực 2 chiều sử dụng hệ mật mã KCK  
ISO/IEC 9798-3 / FIPS-196  
(1) A B: Request  
(2) B A: TokenID || NB  
(3) A B: TokenID || CertA || TokenAB  
(4) B A: TokenID || CertB || TokenBA  
TokenAB = NA || NB || E(KRA, NA || NB)  
TokenBA = NA || NB || E(KRB, NA || NB)  
25  
Giao thức dạng zero-knowledge (ZKP)  
Lối vào  
• Trong hang động có một  
căn phòng bí mật được  
khóa bởi 3 cửa D1, D2, D3  
• Peggy biết mật khẩu để  
mở các cánh cửa (VD.  
•
mua lại mật khẩu  
D2  
• Làm thế nào để Peggy  
chứng minh với Victor có  
thể vào căn phòng mà  
D1  
D3  
không làm lộ mật khẩu?  
Lối ra  
26  
13  
Giao thức ZKP  
• Là các giao thức cho phép một bên chứng minh được thông  
tin của mình mà không làm lộ nội dung thông tin đó cho các  
bên còn lại (bên thứ 2 hoặc kẻ tấn công)  
• Các bên tham gia giao thức:  
Peggy-Người chứng minh: Peggy nắm được một số thông tin nào đó  
và muốn chứng minh cho Victor nhưng không muốn để lộ thông tin  
này  
Victor-Người thẩm tra: Được quyền hỏi một số câu hỏi đến khi chắc  
chắn Peggy nắm thông tin. Victor không thể đoán thông tin từ câu trả  
lời của Peggy, hoặc do cố tình lừa Peggy tiết lộ thông tin  
Eve-Kẻ nghe lén: Giao thức cần chống lại việc Eve nghe lén thông tin  
Mallory: có nhiều quyền hơn Eve, có thể nghe lén, sửa đổi bản tin  
hoặc phát lại bản tin  
27  
Một ví dụ - Giao thức Feige–Fiat–Shamir  
• Khởi tạo: Peggy chọn p, q là 2 số nguyên tố:  
Tính ꢐ = ꢑ × ꢒ  
Chọn s sao cho UCLN(s, n) = 1, ꢓ sao cho ꢓ = ꢋꢔ ꢕꢖꢗ ꢐ  
Công bố (n,v). Peggy cần chứng minh cho Victor biết mình nắm  
giữ giá trị s  
• Giao thức:  
(1
(2) V chọn ngẫu nhiên ꢙ ∈ {0, 1}  
V P: b  
(3) P V: ꢚ = ꢇ × ꢋꢛ ꢕꢖꢗ ꢐ  
(4) V kiểm tra phương trình đồng dư ꢚꢔ ≡ ꢘ × ꢓꢛ (ꢕꢖꢗ ꢐ)  
Hoặc viết dưới dạng khác ꢚꢔ ꢕꢖꢗ ꢐ = ꢘ × ꢓꢛ ꢕꢖꢗ ꢐ  
28  
14  
Giả mạo  
• Mallory có thể giả mạo bằng 2 cách:  
(1) Bắt các cặp giá trị (x, y) và phát lại  
(2) Phán đoán giá trị của bit b mà Victor thử thách:  
Đoán b = 0, Mallory gửi ꢘ = ꢇꢔ ꢕꢖꢗ ꢐ và ꢚ = ꢇ ꢕꢖꢗ ꢐ  
Đoán b = 1, Mallory chọn y trước và tính x sao cho  
ꢚꢔ ≡ ꢘ × ꢓ (ꢕꢖꢗ ꢐ)  
• Xác suất thành công của Mallory là bao nhiêu?  
• Làm thế nào để giảm xác suất thành công của  
Mallory trong 1 vòng kiểm tra?  
29  
Nhận xét  
• Vì Peggy nắm được giá trị của s nên có thể qua được vô  
số vòng kiểm tra (Tính đầy đủ - Completeness)  
• Nếu Mallory không biết s, thì xác suất giả mạo thành công  
n
lớn nhất là 2 với n là số vòng kiểm tra (Tính vững chãi-  
Soundness)  
• Mallory không thể sử dụng lại bộ số (x,y) để lừa Victor  
•
là khó  
• Tương tự, Eve nghe trộm được mọi bộ số (x,y,b) cũng  
không thể đoán được s  
30  
15  
Các nguy cơ  
• Peggy không thay đổi r sau mỗi vòng kiểm tra  
• Chess Grandmaster Problem  
• Mafia Problem  
• Terrorist Problem  
31  
Giao thức ZKP dựa trên hệ mật mã RSA  
(Một ví dụ khác)  
• Peggy có khóa công khai KU = (e,n) cần chứng minh anh  
ta có bí mật m  
• Khởi tạo: Peggy tính c = me mod n  
• Giao thức:  
(1) P V: ꢘ = ꢇꢜ ꢕꢖꢗ ꢐ  
r: số ngẫu nhiên  
(2
V P: b  
(3) P V: ꢚ = ꢇ × ꢕꢛ ꢕꢖꢗ ꢐ  
(4) V kiểm tra phương trình đồng dư ꢚꢜ ≡ ꢘ × ꢝꢛ ꢕꢖꢗ ꢐ  
Tự kiểm tra tính đầy đủ và bền vững của giao thức.  
Hãy đọc thêm lý thuyết tổng quan về ZKP trong tài liệu.  
32  
16  
4. ONE TIME PASSWORD (OTP)  
33  
Xác thực đa yếu tố  
• Phương pháp xác thực sử dụng mật khẩu không đủ an  
toàn (Nguyên nhân chủ yếu từ người dùng!)  
• Sử dụng mật khẩu một cách an toàn:  
Đủ dài và khó đoán  
Không dùng chung cho nhiều tài khoản  
… hầu hết người dùng không thực hiện được  
cần thêm các yếu tố xác thực an toàn hơn, không phụ  
thuộc vào thói quen của người dùng  
• Xác thực đa yếu tố (thông thường là 2 yếu tố)  
Cái người dùng biết: mật khẩu  
Cái người dùng có: (thường) thiết bị phần cứng  
34  
17  
One Time Password  
• Mật khẩu chỉ dùng để xác thực cho 1 phiên hoặc 1 giao  
dịch  
• Phân loại:  
S/Key OTP  
Event-based OTP  
Hash-based OTP (HOTP)  
Time-based OTP (TOTP)  
• Cách thức phân phối:  
SMS  
Ứng dụng  
Email  
Token  
35  
S/Key OTP(RFC 1760)  
• Sử dụng trong một số hệ điều hành  
Unix  
• Pha sinh mật khẩu:  
(1) Server chọn một giá trị bí mật S  
(2Áp dụng hàm băm (hoặc HMAC
(3) Lưu Hn trong CSDL  
(4) Cung cấp cho client Hn, Hn-1,…, H
(5) Client hủy giá trị Hn  
36  
18  
S/Key OTP(tiếp)  
• Xác thực lần đầu  
(1) Client gửi Hn-1  
(2) Server so sánh HMAC(Hn-1) với Hn trong CSDL  
(3) Nếu bước 3 xác thực đúng, thay Hn bằng Hn-1. Gửi  
thông báo xác thực thành công  
(4) Client xóa Hn-1 nếu đăng nhập thành công  
• Xác thực các phiên kế tiếp: tương tự  
37  
HOTP (RFC 4226)  
• Bộ đếm: C (8 byte)  
• Giá trị bí mật: K đã chia sẻ trước với client  
• Hàm HOTP(K, C)  
(1)Tính HS = HMAC-SHA-1(K,C)  
(2
Sbits = DT(HS)  
(3) Chuyển Sbits sang dạng thập phân. Lấy giá trị HOTP  
với số chữ số k tùy ý.  
Snum = StToNum(Sbits)  
D = Snum mod 10k  
38  
19  
Hàm DT  
• Đầu vào: Chuỗi 20 byte S  
• Xử lý:  
Lấy OffsetBits = 4 bit thấp của S[19]  
Biến đổi sang dạng thập phân Offset = StToNum(OffsetBits)  
Trích xuất 4 byte trong chuỗi S bắt đầu từ vị trí Offset được chuỗi  
P
• Đầu ra: Xóa bit đầu tiên của P  
39  
Sử dụng HOTP trong giao thức xác thực  
• Yêu cầu: Chia sẻ khóa K và C một cách an toàn  
• Server: C C + 1. Tính HOTP(K, C) và lưu trong CSDL  
• Client: C C + 1. Tính HOTP(K, C) và người dùng gửi  
cho server  
• Server:  
trong CSDL  
Nếu OTP nhận được không hợp lệ, thực hiện đồng bộ lại với tham  
số đồng bộ s. Yêu cầu xác thực lại.  
Sau T lần xác thực lại không hợp lệ, khóa tài khoản  
40  
20  
Tải về để xem bản đầy đủ
pdf 30 trang baolam 19701 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_an_ninh_mang_bai_5_xac_thuc_chu_the_bui_trong_tung.pdf