Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

An toàn HTTT

Định danh và Xác thực


Khái niệm
 Định danh: cung cấp danh tính – vd user name/login name

 Xác thực: gắn kết (binding) của danh tính (chủ thể bên ngoài) với
chủ thể bên trong (subject)
 Thực thể bên ngoài: cung cấp thông tin để HT có thể xác minh
đúng danh tính
 Thông tin có thể là
• Điều gì mà thực thể biết
• Cái gì mà thực thể sở hữu
• Một yếu tố nằm ngay tại bản thể của thực thể
• Vị trí (hiện thời) của thực thể
Định nghĩa
 Hệ xác thực là bộ <A,C,F,L,S>
• A: tập hợp các thông tin xác thực có dạng xác định mà các thực thể sẽ sử
dụng để chứng minh danh tính
• C: tập hợp các thông tin đối chứng mà hệ thống lưu trữ sử dụng trong việc
xác minh thông tin danh tính mà thực thể cung cấp.
• F: tập hợp các hàm xác minh được sử dụng để biến đổi thông tin xác
thực(thuộc tập A) mà thực thể cung cấp về cùng dạng với thông tin đối
chứng (thuộc tập C): F={f:A  C }
• L: tập hợp các hàm logic thực hiện xác thực danh tính, tức là các hàm lL, l:
 A×C{true, false}.
• S: tập hợp một số thủ tục cho phép các thực thể tạo ra hoặc thay đổi các
thông tin xác thực (thuộc tập A) hay thông tin đối chứng (thuộc tập C).
 Ví dụ:
Hệ thống lưu mật khẩu dạng tường:
• A: tập mật khẩu người dùng chọn
• C: tập mật khẩu lưu trong hệ thống C=A
• F: chứa hàm đồng nhất
• L: chứa hàm bằng eq
• S: thủ tục quản lý thiết lập thay đổi mật khẩu
Phương pháp định danh
2 hướng
 1: Người dùng nhập thông tin định danh
• Là phương án phổ biến, vd nhập login name, số tài khoản, email
• Kẻ tấn công đàu tiên cần thu thập thông tin định danh hợp lệ
 2: Sử dụng định danh số
• Sinh trắc học
• Vân tay
• Mắt
• Định danh máy
• IP
• MAC..
Phương pháp định danh
2 hướng
 2: Sử dụng định danh số hóa
• Định danh máy
• IP
• MAC..
• Định danh số
• Chứng thư số
• Smart card
Mật khẩu
 Là Phương thức xác thực dựa trên điều người dùng biết
 Không gian mật khẩu: tập tất cả các mật khẩu có thể
• Vd: nếu quy định mật khẩu là dãy 6 chữ số (0-9)
 Để an toàn, HT không lưu mật khẩu dưới dạng tường minh vì ?
 HT xây dựng tập A (tập mật khẩu) và C (tập thông tin đối chiếu lưu
phía server) khác nhau.
 Hàm f: f(a) = c
 Một biện pháp hay dùng là hàm băm
Tấn công mật khẩu
 Mục đích của kẻ tấn công:
• Tìm giá trị a  A : với hàm f nào đó có f(a) = c  C là thành phần đối chiếu
với thực thể bị tấn công
• Đoán mật khẩu của người dùng u: xác định mật khẩu a có gắn liền với u
không: thông qua việc thực hiện f(a) hoặc l(a)
 => Có 2 tiếp cận chống tấn công có thể sử dụng đồng thời
• Che dấu để 1 trong các thành phần a, c, f không thể tìm thấy
• Chống truy cập đến hàm xác thực trong L
Tấn công từ điển
 Tấn công vét cạn tập mật khẩu khả nghi: qua các thông tin về đối
tượng bị tấn công
 Có 2 Phương thức
• Tấn công ngoại tuyến: kẻ tấn công truy cập được tập C và các hàm f, từ đó
thử xem f(a) có rơi vào C hay không
• Tấn công trực tuyến: kẻ tấn công gọi được các hàm L để kiểm tra l(a) = true
Chống tấn công từ điển
 Kéo dài tối đa thời gian cần thử 1 mật khẩu
 Công thức Anderson xác định cơ hội có thể thực hiện được 1 tấn
công từ điển

• G: số lượng mật khẩu có thể kiểm tra đúng/sao trong 1 đơn vị thời gian
• T: khoảng thời gian kẻ tấn công đầu tư cho việc thử đoán
• N: số mật khẩu cần thử (kích cỡ từ điển)
 Ví dụ:
• hệ thống có mật khẩu lập từ bảng 96 chữ
• Kẻ tấn công có thể thử 10^4 mật khẩu/giây
• Mong muốn không để quá 50% thành công với thời gian tấn công 1 năm
• Hỏi: độ dài mật khẩu tối thiểu ?

Độ dài s thỏa:

s >= 6
Phòng vệ tấn công mật khẩu
 Mật khẩu khó đoán.
• Lý tưởng: mật khẩu ngẫu nhiên >< khó nhớ => chọn mật khẩu yếu:
• Liên quan cá nhân
• Ngắn, ..
• Chính sách mật khẩu mạnh
• Kiểm tra mật khẩu đủ an toàn
• Chính sách thay đổi mật khẩu
 Làm chậm tấn công từ điển
• Salting: chuỗi ngẫu nhiên được thêm vào cùng mật khẩu, trước khi thực hiện
băm, kiểm tra
• Không gian mật khẩu được mở rộng (k bit => 2^k)
Phòng vệ tấn công mật khẩu
 Làm chậm tấn công trực tuyến
• Kẻ tấn công có thể gọi các hàm l

 Có thể tăng thời gian trễ giữa các lần xác thực sai theo hàm mũ
 Đặt ngưỡng số lần xác thực lỗi => khóa tài khoản
Giao thức xác thực
Xác thực mật khẩu đơn giản
 Mật khẩu dạng tường => Oracle quan sát được

Alice Bob Oracle Bob


Oracle

1: tôi là Alice 1: tôi là Alice

2: chứng minh - mật khẩu ? 2: chứng minh - mật khẩu ?

3: mật khẩu là abc 3: mật khẩu là abc


Xác thực mật khẩu đơn giản với hash
 Mật khẩu được băm h(p) => ?

Alice Bob Oracle Lặp lại Bob

1: tôi là Alice 1: tôi là Alice

2: chứng minh - mật khẩu ?


2: chứng minh - mật khẩu ?

3: h(abc)
3: h(abc)
Thách thức-đáp ứng (Challenge - response)
 Nhược điểm của xác thực mật khẩu cũ: phát lại – replay
 Giải pháp: Challenge – response
Mô tả
 Giữa U (user) và S (server) thống nhất hàm f bí mật
 Quy trình đăng nhập gồm 3 bước:
• U  S: yêu cầu đăng nhập
• S  U: giá trị ngẫu nhiên r
• U  S: f(r)
Hệ thống có thể kiểm tra vì tự tính được f(r)
 Mỗi lần xác thực: giá trị r khác nhau => chống phát lại
 Hàm f: vd mã hóa f(x) = DESK(x)
Alice Lặp lại Bob

1: tôi là Alice

2: số ngẫu nhiên r

3: f(r,P)
Giao thức xác thực với khóa đối xứng
 M: plaintext
 C: ciphertext Alice Bob

 KA: khóa của Alice


 C = {M}k 1: tôi là Alice

 KAB: Khoá chung giữa Alice và Bob 2: số ngẫu nhiên r

3: {r}Kab
Giao thức xác thực lẫn nhau với khóa đối xứng

Alice Bob

1: tôi là Alice, Na

2: Nb, {Na}Kab

3: {Nb}Kab
Tấn công Giao thức xác thực lẫn nhau với khóa đối
xứng

Oracle Bob

1: tôi là Alice, Na

2: Nb, {Na}Kab

1.1: tôi là Alice, Nb

2.1: Nc, {Nb}Kab

3: {Nb}Kab
Giao thức xác thực bằng khóa công khai
 Ka: cặp khóa của Alice
 {M}Ka: mã hóa bằng khóa công khai của Alice
 [M]Ka: ký số bằng khóa bí mật của Alice

Alice Bob

1: tôi là Alice

2: {Na}Ka

3: Na
Xác thực sinh trắc học
 Các đặc trưng sinh trắc học trên cơ thể con người có thể được sử
dụng để xác định duy nhất từng cá thể.
 Vân tay
 Giọng nói
 Mắt
 Khuôn mặt
 Mẫu gõ phím
Xác thực qua địa điểm
 Sử dụng thông tin địa điểm của đối tượng
• Địa chỉ IP
• GPS
 Kết hợp các biện pháp khác
Kết hợp nhiều phương thức
 Multi factor authentication
• What you know + what you have
Giao thức xác thực KERBEROS
 KERBEROS
• Thiết kế với hệ thống nhỏ như mạng LAN
• Thành phần thứ 3 tin cậy KDC (Key distribution center)
• Mã hóa đối xứng
 Trung tâm phân phối khóa KDC
• KDC có một siêu khóa KKDC , chỉ KDC biết khóa này
• KDC cấp Ticket-Granting Ticket (TGT) cho người dùng xác thực
• TGT chứa khóa phiên, user ID và thời hạn
• TGT được mã hóa bằng KKDC ,
• Chỉ có KDC mới đọc được TGT
 Ka: khóa chung giữa KDC và Alice
Quá trình đăng nhập
Alice KDC

1: tôi là Alice, password

{Sa, TGTa}Ka

• Ka : khóa chung giữa Alice và KDC, Ka = hash(password)


• Sa : khóa phiên
• Ticket: TGTa = {Alice, Sa}KKDC
Quá trình xác thực tin cậy giữa Alice và Bob

Ticket-to-Bob = {Alice, Kab}Kb

• Alice gửi KDC: Alice, Bob, TGTa, {timestamp}Sa


• KDC gửi Alice: {Bob, Kab, ticket-to-Bob}Sa
Ticket-to-Bob chứa: {Alice, Kab}Kb
• Alice gửi Bob: ticket-to-Bob, {timestamp}Kab
• Bob gửi Alice: {timestamp + 1}Kab

You might also like