Bài giảng An toàn an ninh thông tin - Chương 4: Giao thức mật mã - Bùi Trọng Tùng

BÀI 4.  
GIAO THỨC MẬT MÃ  
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
1
Nội dung  
• Tổng quan về giao thức mật mã  
• Các giao thức trao đổi khóa  
• Các giao thức chữ ký điện tử  
2
2
1
1. TỔNG QUAN VỀ GIAO THỨC MẬT MÃ  
3
3
Giao thức mật mã là gì?  
• Chúng ta đã biết về “mật mã” và các ứng dụng của nó:  
Bảo mật  
Xác thực  
• Nhưng chúng ta cần biết “Sử dụng mật mã như thế nào?”  
Hệ mật mã an toàn chưa đủ để làm cho quá trình trao đổi thông tin  
an toàn  
Cần phải tính đến các yếu tố, cá nhân tham gia không trung thực  
• Giao thức là một chuỗi các bước thực hiện mà các bên  
phải thực hiện để hoàn thành một tác vụ nào đó.  
Bao gồm cả quy cách biểu diễn thông tin trao đổi  
• Giao thức mật mã: giao thức sử dụng các hệ mật mã để  
đạt được các mục tiêu an toàn bảo mật  
4
4
2
Các thuộc tính của giao thức mật mã  
• Các bên tham gia phải hiểu về các bước thực hiện giao  
thức  
• Các bên phải đồng ý tuân thủ chặt chẽ các bước thực  
hiện  
• Giao thức phải rõ ràng, không nhập nhằng  
• Giao thức phải đầy đủ, xem xét mọi tình huống có thể  
• Với giao thức mật mã: Giao thức phải được thiết kế  
để khi thực hiện không bên nào thu được nhiều lợi  
ích hơn so với thiết kế ban đầu.  
5
5
Yêu cầu Perfect Forward Secrecy  
• Một giao thức cần đảm bảo an toàn cho khóa phiên  
ngắn(short-term key) trong các phiên làm việc trước là an  
toàn khi khóa phiên dài (long-term key) không còn an  
toàn  
6
6
3
Tấn công khóa đã biết (known-key)  
• Sử dụng sự mất an toàn của khóa phiên trong các phiên  
làm việc trước để tấn công các phiên làm việc tới.  
7
7
Giao thức có trọng tài(Trusted arbitrator)  
• Trọng tài là bên thứ 3 thỏa mãn:  
Không có quyền lợi riêng trong giao thức  
Không thiên vị  
• Các bên cần tin tưởng vào trọng tài  
Mọi thông tin từ trọng tài là đúng và tin cậy  
Trọng tài luôn hoàn thành đầy đủ nhiệm vụ trong giao thức  
• Ví dụ: Alice cần bán một chiếc máy tính cho Bob, người  
sẽ trả bằng séc  
Alice muốn nhận tờ séc trước để kiểm tra  
Bob muốn nhận máy tính trước khi giao séc  
8
8
4
Giao thức có trọng tài – Ví dụ  
• Alice và Bob tin tưởng vào Trent-Bên thứ 3 mà cả 2 cùng  
tin tưởng  
Trent  
(1)  
(2)  
(3)  
(4)  
(7)  
(6)  
OK  
Bob  
(5)  
OK  
Alice  
9
9
Giao thức có trọng tài – Ví dụ  
• Alice tin tưởng vào ngân hàng mà Bob ủy nhiệm  
(1)  
(2)  
(3)  
Bob  
(3)  
Alice  
10  
10  
5
Giao thức sử dụng trọng tài  
• Khi 2 bên đã không tin tưởng nhau, có thể đặt niềm tin  
vào bên thứ 3 không?  
• Tăng chi phí  
• Tăng trễ  
• Trọng tài trở thành “cổ chai” trong hệ thống  
• Trọng tài bị tấn công  
11  
11  
Giao thức có người phân xử(Adjudicated  
Protocols)  
• Chia giao thức có trọng tài thành 2 giao thức:  
Giao thức không cần đến trọng tài, có thể thực hiện bất kỳ khi nào  
2 bên muốn  
Giao thức cần người phân xử: chỉ sử dụng khi có tranh chấp  
• Hãy xem xét lại giao dịch trong ví dụ trên với giải pháp  
mới này!  
12  
12  
6
Giao thức tự phân xử(Self-Enforcing  
Protocols)  
• Không cần đến bên thứ 3  
• Giao thức có cơ chế để một bên có thể phát hiện sự gian  
lận của bên còn lại  
• Không phải tình huống nào cũng có thể tìm ra giao thức  
như vậy  
13  
13  
Các dạng tấn công vào giao thức mật mã  
• Có thể lợi dụng các điểm yếu trong:  
Hệ mật mã  
Các bước thực hiện  
• Tấn công thụ động: nghe trộm  
• Tấn công chủ động: can thiệp vào giao thức  
Chèn thông điệp  
Thay thế thông điệp  
Sử dụng lại thông điệp  
Giả mạo một trong các bên  
14  
14  
7
2. CÁC GIAO THỨC PHÂN PHỐI KHÓABÍ MẬT  
15  
15  
Hãy xem lại sơ đồ bảo mật sử dụng mật  
mã khóa đối xứng  
?
KS  
KS  
M
M
Mã hóa  
Giải mã  
Alice  
Bob  
C
C
Kênh truyền  
Thám mã  
Làm thế nào để Alice  
chuyển khóa một cách an  
toàn cho Bob!  
*
M
Kẻ tấn  
công  
KS*  
16  
16  
8
Giao thức phân phối khóa không tập  
trung  
• Khóa chính: KM đã được A và B chia sẻ an toàn  
Làm thế nào vì đây chính là bài toán đang cần giải quyết  
Khóa chính được sử dụng để trao đổi khóa phiên KS  
• Khóa phiên KS: sử dụng để mã hóa dữ liệu trao đổi  
• Giao thức 1.1  
(1) A B: IDA  
(2) B A: E(KM, IDB||KS)  
• Giao thức này đã đủ an toàn chưa?  
Tấn công nghe lén  
Tấn công thay thế  
Tấn công giả mạo  
Tấn công phát lại  
17  
17  
Giao thức phân phối khóa không tập  
trung – Giao thức 1.2  
• Sử dụng các yếu tố chống tấn công phát lại  
(replay attack)  
(1) A B: IDA || N1  
(2) B A: E(KM, IDB || KS || N1 || N2)  
(3) A B: A kiểm tra N1 và gửi E(KS, N2)  
(4) B kiểm tra N2  
• Hạn chế của phân phối khóa không tập trung?  
18  
18  
9
Sơ đồ trao đổi khóa Diffie-Hellman  
• Alice và Bob cùng chia sẻ một khóa nhóm (q, a). Trong đó  
q là một số nguyên tố  
1< a < q thỏa mãn: (ai mod q) ≠ aj mod q ∀ 1 < i ≠ j < q  
A
B
XA < q  
XB < q  
YA = aXA mod q  
YB = aXB mod q  
YA  
YB  
X
X
KS = YA B mod q  
KS = YB A mod q  
19  
19  
Ví dụ  
• Khóa chung của nhóm q = 71, a = 7  
Hãy tự kiểm tra điều kiện thỏa mãn của a  
• A chọn XA = 5, tính YA = 75 mod 71 = 51  
B
A
XA = 5  
YA = 75 mod 71 = 51  
XB = 12  
YB = 712 mod 71 = 4  
YA  
KS = 5112 mod 71 =  
30  
YB  
KS = 45 mod 71 = 30  
• Vấn đề an toàn của sơ đồ này sẽ được xem xét đến sau.  
Rút ra được điều gì từ sơ đồ này?  
20  
20  
10  
Tấn công sơ đồ trao đổi khóa Diffie-  
Hellman  
• Nhắc lại sơ đồ:  
B
A
XA < q  
YA = aXA mod q  
XB < q  
YB = aXB mod q  
YA  
YB  
X
KS = YA B mod q  
X
KS = YB A mod q  
• Kịch bản tấn công man-in-the-middle  
C sinh 2 cặp khóa (X’A ,Y’A) và (X’B ,Y’B)  
Tráo khóa YA bằng Y’A, YB bằng Y’B  
Hãy suy luận xem tại sao C có thể biết được mọi thông tin A và B  
trao đổi với nhau  
21  
21  
Giao thức phân phối khóa tập trung  
• Sử dụng bên thứ 3 được tin cậy – KDC (Key Distribution  
Centre):  
Sinh khóa bí mật KS  
Phân phối KS tới A và B  
• A và KDC đã chia sẻ một khóa bí mật KA, B và KDC đã  
chia sẻ một khóa bí mật KB  
Làm thế nào?  
22  
22  
11  
Giao thức phân phối khóa tập trung-  
Giao thức 2.1  
(1) A KDC: IDA || IDB  
(2) KDC A: E(KA, KS || IDA || IDB || E(KB, IDA || KS))  
(3) A giải mã, thu được KS  
(4) A B: E(KB, IDA || KS)  
(5) A ↔ B: E(KS, Data)  
• Hãy xem xét tính an toàn của giao thức này?  
Tấn công nghe lén  
Tấn công thay thế  
Tấn công giả mạo  
Tấn công phát lại  
23  
23  
Giao thức phân phối khóa tập trung-  
Giao thức 2.2 (Needham-Schroeder)  
(1) A KDC: IDA || IDB || N1  
(2) KDC A: E(KA, KS || IDA || IDB || N1 || E(KB, IDA || KS))  
(3) A giải mã, kiểm tra N1 thu được KS  
(4) A B: E(KB, IDA || KS) B giải mã, thu được KS  
(5) B A: E(KS, N2)  
(6) A B: E(KS, f(N2)) B giải mã kiểm tra f(N2)  
(7) A ↔ B: E(KS, Data)  
N1, N2: giá trị ngẫu nhiên dùng 1 lần (nonce)  
f(x): hàm biến đổi dữ liệu bất kỳ  
• Hãy xem xét lại tính an toàn của giao thức này!  
24  
24  
12  
Giao thức 2.2 (Needham-Schroeder)  
25  
25  
Giao thức phân phối khóa tập trung-  
Giao thức 2.3 (Denning)  
(1) A KDC: IDA || IDB  
(2) KDC A: E(KA, KS || IDA || IDB || T || E(KB, IDA || KS || T))  
(3) A giải mã, kiểm tra T, thu được KS  
(4) A B: E(KB, IDA || KS || T) B giải mã, kiểm tra T  
(5) B A: E(KS, N1)  
(6) A B: E(KS, f(N1)) B giải mã, kiểm tra N1  
(7) A ↔ B: E(KS, Data)  
T: nhãn thời gian (time stamp)  
• Kiểm tra tính an toàn của sơ đồ này:  
Mất đồng bộ đồng hồ của các bên  
26  
26  
13  
Giao thức 2.3 (Denning)  
27  
27  
Giao thức phân phối khóa tập trung-  
Giao thức 2.4 (Kehne)  
(1) A B: IDA || NA  
(2) B KDC: IDB || NB || E(KB, IDA || NA || TB)  
(3) KDC A: E(KA, IDB || NA || KS) || E(KB, IDA || KS || TB) || NB  
(4) A B: E(KB, IDA || KS || TB) || E(KS, NB)  
• Vì sao việc sử dụng nhãn thời gian TB của B tốt hơn nhãn  
thời gian T của KDC trong giao thức 2.3  
• Hãy xem thêm các giao thức khác trong Section 3.1,  
Chapter 3, “Applied Cryptography: Protocols, Algorthms,  
and Source Code in C”, 2nd Edition, Bruce Schneier  
28  
28  
14  
Giao thức 2.4 (Kehne)  
29  
29  
3. CÁC GIAO THỨC PHÂN PHỐI KHÓACÔNG KHAI  
30  
30  
15  
Hãy xem lại sơ đồ bảo mật sử dụng mật  
mã khóa công khai  
KUB  
KRB  
?
M
M
Mã hóa  
Giải mã  
Alice  
Bob  
C
C
Kênh truyền  
*
Alice có thể chắc  
M
Kẻ tấn  
công  
chắn rằng khóa KUB  
đúng là khóa công  
khai của Bob?  
Thám mã  
*
K
RB  
31  
31  
Giao thức phân phối khóa không tập  
trung  
• Hãy xem xét giao thức sau(Giao thức 3.1):  
(1) A B: IDA || KUA || N1  
(2) B A: IDB || KUB || N2 || E(KUA, f(N1))  
(3) A kiểm tra f(N1)  
A B: E(KUB, g(N2))  
(4) B kiểm tra g(N2)  
(5) B A: E(KUA, DataA)  
(6) A B: E(KUB, DataB)  
• Nhận xét: Nếu f(x) và g(x) được giữ bí mật hoàn toàn thì  
C không thể giả mạo A hoặc B?  
32  
32  
16  
Giao thức 3.1 – Tấn công man-in-the-middle  
• C tự sinh cặp khóa (K’UA, K’RA) và (K’UB, K’RB)  
A
C
B
(1) A B: IDA || KUA || N1  
(1’) C B: IDA || K’UA || N1  
(2)BA: IDB || KUB || E(K’UA, f(N1) || N2)  
(2’)CA: IDB || K’UB || E(KUA, f(N1) || N2)  
(3) A B: E(K’UB, g(N2))  
(3’) C B: E(KUB, g(N2))  
(4)BA: E(K’UA, DataB)  
(4’)BA: E(KUA, DataA)  
(5) A B: E(K’UB,DataA)  
(5) A B: E(KUB,DataA)  
33  
33  
Giao thức 3.2  
• Hãy xem xét giao thức sau(Giao thức 3.2):  
(1) A B: IDA || KUA || N1  
B chỉ gửi một phần  
của mẩu tin này cho A  
(2) B A: IDB || KUB || N2 ||
A chỉ gửi một phần mẩu tin này cho B  
(3) A B:
(4) B gửi phần còn lại bản tin 
(4’) A giải mã với KRA nhận được f(N1) và kiểm tra  
A gửi phần còn lại của bản tin cho B  
(4’’) B giải mã với KRB nhận được g(N2) và kiểm tra.  
(5) B A: E(KUA, DataA)  
(6) A B: E(KUB, DataB)  
34  
34  
17  
Giao thức phân phối khóa tập trung-  
Giao thức 4.1  
• Sử dụng bên thứ 3 tin cậy – PKA (Public Key Authority)  
Có cặp khóa (KUPKA, KRPKA  
)
Nhận các khóa công khai KUA của A và KUB của B một cách an  
toàn. Làm thế nào vì đây chính là bài toán đang cần giải quyết   
• A và B đều có khóa công khai KUPKA của PKA  
• Giao thức 4.1  
(1) A PKA: IDA || IDB  
(2) PKA A: E(KRPKA, IDB || KUB)  
(3) A B: E(KUB, N1)  
(4) B PKA: IDB || IDA  
(5) PKA B: E(KRPKA, IDA || KUA)  
(6) B A: E(KUA, N1)  
- Kiểm tra tính an toàn  
của giao thức này?  
- Có thể tấn công vào  
giao thức này như  
thế nào?  
35  
35  
Giao thức 4.1  
36  
36  
18  
Giao thức phân phối khóa tập trung-  
Giao thức 4.2  
(1) A PKA: IDA || IDB || T1  
(2) PKA A: E(KRPKA, IDB || KUB || T1)  
(3) A B: E(KUB, N1)  
(4) B PKA: IDB || IDA || T2  
(5) PKA B: E(KRPKA, IDA || KUA || T2)  
(6) B A: E(KUA, N1)  
T1, T2: nhãn thời gian chống tấn công phát lại  
• Giao thức này có hạn chế gì?  
37  
37  
Giao thức 4.2  
38  
38  
19  
Giao thức phân phối khóa tập trung-  
Giao thức 4.3  
• Bên thứ 3 được tin cậy – CA(Certificate Authority)  
Có cặp khóa (KUCA, KRCA  
)
Phát hành chứng thư số cho khóa công khai của các  
bên có dạng  
Cert = E(KRCA, ID || KU || Time)  
ID: định danh của thực thể  
KU: khóa công khai của thực thể đã được đăng ký tại CA  
Time: Thời hạn sử dụng khóa công khai. Thông thường  
có thời điểm bắt đầu có hiệu lực và thời điểm hết hiệu  
lực.  
39  
39  
Giao thức phân phối khóa tập trung-  
Giao thức 4.3 (tiếp)  
(1) A CA: IDA || KUA || TimeA  
(2) CA A: CertA= E(KRCA, IDA || KUA || TimeA)  
(3) B CA: IDB || KUB || TimeB  
(4) CA B: CertB= E(KRCA, IDB || KUB || TimeB)  
(5) A B: CertA  
(6) B A: CertB  
• Làm thế nào để A và B có thể yên tâm sử dụng khóa công  
khai của nhau?  
• Hãy cải tiến lại các giao thức trong các khâu cần đến xác  
thực thông điệp (sử dụng MAC hoặc hàm băm)  
• Đọc thêm về PKI và chứng thư số theo chuẩn X.509  
40  
40  
20  
Tải về để xem bản đầy đủ
pdf 23 trang baolam 20000 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An toàn an ninh thông tin - Chương 4: Giao thức mật mã - 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_toan_an_ninh_thong_tin_chuong_4_giao_thuc_mat_m.pdf