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

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

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.

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 1

Trang 1

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 2

Trang 2

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 3

Trang 3

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 4

Trang 4

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 5

Trang 5

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 6

Trang 6

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 7

Trang 7

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 8

Trang 8

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 9

Trang 9

Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 24 trang duykhanh 7300
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng An toàn an ninh mạng - Bài 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

Tóm tắt nội dung tài liệu: Bài giảng An toàn an ninh mạng - Bài 4: Giao thức mật mã - Bùi Trọng Tùng

Bài giảng An toàn an ninh mạng - Bài 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
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
 1
 1. TỔNG QUAN VỀ GIAO THỨC MẬT MÃ
 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
 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
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
 6
 3
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)
 (6) (7)
 OK
 (5) Alice Bob
 OK
 7
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
 Alice (3)
 8
 4
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
 9
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!
 10
 5
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
 11
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
 12
 6
Một ví dụ khác-Shamir 3-pass protocol
1. Bob Alice: E(K1,M)
2. Alice Bob: E(K2, E(K1,M))
3. Bob Alice: D(K1, E(K2, E(K1,M)))
4. Alice: D(K2, D(K1, E(K2, E(K1,M))))
 13
 2. CÁC GIAO THỨC PHÂN PHỐI KHÓA BÍ MẬT
 14
 7
 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
Làm thế nào để Alice M*
chuyển khóa một cách an Kẻ tấn 
toàn cho Bob! Thám mã công
 KS*
 15
 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
 16
 8
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?
 17
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?
 18
 9
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
 19
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!
 20
 10
Giao thức 2.2 (Needham-Schroeder) 
 21
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
 22
 11
 Giao thức 2.3 (Denning)
 23
 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
 24
 12
Giao thức 2.4 (Kehne)
 25
 3. CÁC GIAO THỨC PHÂN PHỐI KHÓA CÔNG KHAI
 26
 13
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 
chắn rằng khóa KUB Thám mã
đúng là khóa công công
 *
khai của Bob? K RB
 27
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?
 28
 14
 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)B A: IDB || KUB || E(K’UA, f(N1) || N2)
 (2’)C A: IDB || K’UB || E(KUA, f(N1) || N2)
 (3) A B: E(K’UB, g(N2))
 (3’) C B: E(KUB, g(N2))
 (4)B A: E(K’UA, DataB) 
 (4’)B A: E(KUA, DataA) 
 (5) A B: E(K’UB,DataA)
 (5) A B: E(KUB,DataA)
 29
 Giao thức 3.2
 • Hãy xem xét giao thức sau(Giao thức 3.2):
 B chỉ gửi một phần 
 (1) A B: IDA || KUA || N1 của mẩu tin này cho A
 (2) B A: IDB || KUB || N2 || E(KUA, f(N1))
 (3) A B: E(KUB, g(N2)) A chỉ gửi một phần mẩu tin này cho B
 (4) B gửi phần còn lại bản tin E(KUA, f(N1))
 (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 E(KUB, g(N2)) 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)
 30
 15
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 - Kiểm tra tính an toàn 
(2) PKA A: E(KRPKA, IDB || KUB) của giao thức này?
 - Có thể tấn công vào 
(3) A B: E(KUB, N1)
 giao thức này như 
(4) B PKA: IDB || IDA
 thế nào?
(5) PKA B: E(KRPKA, IDA || KUA)
(6) B A: E(KUA, N1)
 31
Giao thức 4.1
 32
 16
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ì?
 33
Giao thức 4.2
 34
 17
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.
 35
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
 36
 18
Giao thức 4.3 (tiếp)
 37
Phân phối khóa bí mật của hệ mật mã 
khóa đối xứng
• Hạn chế chung của các giao thức phân phối khóa bí mật 
 trong hệ mật mã khóa đối xứng
 Giao thức không tập trung: Số lượng khóa sử dụng lớn
 Giao thức tập trung: PKA phải đáp ứng yêu cầu với tần suất rất lớn
 Không có cơ chế xác thực rõ ràng
 Sử dụng mật mã khóa công khai trong các giao thức phân phối 
 khóa bí mật
 (1) A B: E(KUB, E(KRA, KS))
 (2) B giải mã với KRB, sau đó kiểm tra để chắc chắn thông điệp xuất 
 phát từ A. Khóa KS thu được là khóa phiên.
 (3) A ↔ B: E(KS, Data)
• Tất nhiên giao thức trên không chống được tấn công phát 
 lại. Việc cải tiến giao thức trên như là một bài tập.
 38
 19
Kết luận
• Hệ thống có nguy cơ mất an toàn ngay cả khi chúng ta sử
 dụng hệ mật mã tốt nếu không có một giao thức quản lý
 và phân phối khóa an toàn
• Mật mã phải gắn liền với xác thực
• Thực tế các giao thức phân phối khóa đã trình bày đều
 xác thực dựa trên các sơ đồ mã hóa của hệ mật mã.
 Chúng ta biết rằng, giải pháp này chưa thực sự an toàn
 (hãy xem lại những phân tích trong bài §3. Xác thực
 thông điệp).
 Bài tập: Hãy sử dụng MAC, hàm băm, chữ ký điện tử để tăng
 cường an toàn cho các sơ đồ trên.
 39
 4. CÁC GIAO THỨC CHỮ KÝ ĐIỆN TỬ
 40
 20
 Sơ đồ chung
• Phía gửi : hàm ký
 1. Băm bản tin gốc, thu được giá
 trị băm H
 2. Mã hóa giá trị băm bằng khóa
 riêng chữ kí số S
 3. Gắn chữ kí số lên bản tin gốc
 (M || S)
• Phía nhận : hàm xác thực
 1. Tách chữ kí số S khỏi bản tin.
 2. Băm bản tin M, thu được giá
 trị băm H
 3. Giải mã S với khóa công khai
 của người gửi, thu được H’
 4. So sánh : H và H’. Kết luận.
 41
 Tăng cường an toàn cho chữ ký điện tử
 • Bảo vệ khóa cá nhân
  Sử dụng thẻ thông minh (smart card)
  Kết hợp sinh trắc học
 • Chứng thực khóa công khai: PKI
 • Chống phát lại (replay attack)
 42
 21
Chữ ký điện tử có trọng tài
• Trọng tài (Trent – T) có nhiệm vụ:
 Áp dụng một số lần kiểm tra lên bản tin, kiểm tra tính toàn vẹn của nội 
 dung và nguồn gốc
 Kiểm tra nhãn thời gian (timestamp) của bản tin
(1) A T: IDA || E(KUB,M) || SignA(E(KUB,M)) || TA || SignA(MAT)
(2) T A: IDA || E(KUB,M) || SignA(E(KUB,M)) || TA || SignT(MTB)
(3) A gửi cho B bản tin 2
SignA(E(KUB,M)) = E(KRA, H(E(KUB,M)))
Sign(MAT) = E(KRA, H(MAT))
MAT = IDA || E(KUB,M) || SignA(E(KUB,M)) || TA
Sign(MTB) = E(KRT, H(MTB))
MTB = IDA || E(KUB,M) || SignA(E(KUB,M)) || TA
 43
 Chữ ký mù (Blind Signature)
 • Một số giao dịch điện tử yêu cầu cần che giấu thông tin 
 cá nhân của các bên tham gia:
 Thương mại điện tử
 Bầu cử điện tử
 • Chữ ký mù: người ký không biết nội dung của văn bản
 Người kiểm tra tính hợp lệ của phiếu bầu không được phép biết 
 nội dung của phiếu (tên cử tri, người được cử tri bầu...)
 Sau khi xác minh và chấp nhận cho khách hàng rút tiền, ngân hàng 
 không thể kiểm tra lại trên tờ tiền điện tử lưu thông có tên người rút 
 là gì.
 44
 22
Chữ ký mù RSA cho Phiếu bầu điện tử
• Cơ quan bầu cử sử dụng cặp khóa KU = (e,n), KR = (d,n)
• Sau khi đã thực hiện xác thực với cơ quan bầu cử, Alice 
 điền thông tin trên phiếu bầu. Thông tin này được ghi lên 
 bản tin X:
 Chọn 1 giá trị ngẫu nhiên r Chữ ký 
 e điện tử 
 Làm mù nội dung lá phiếu: M’ = (H(X).r ) mod n của cơ 
 Đưa cho cơ quan bầu cử ký quan BC 
• Cơ quan BC thực hiện ký mù lên X
 S’ = (M’)d mod n = ((H(X))d.r) mod n
• Alice xóa mù chữ ký: S = S’.r−1 mod n = (H(X))d mod n
Lưu ý 1 < r−1 < n là giá trị sao cho r.r−1 mod n = 1
• Phiếu điện tử của Alice (X, S)
• Làm thế nào để cơ quan kiểm phiếu tin tưởng đây là 
 phiếu bầu do cơ quan bầu cử phát hành?
 45
Chữ ký mù một phần
• Ngăn chặn người gửi gian lận nội dung
• Giao thức:
(1) Alice gửi cho trọng tài n bản tin (đã được làm mù bởi n 
 giá trị ngẫu nhiên khác nhau), trong đó có chứa 1 bản 
 tin cần trọng tài ký
(2) Trọng tài yêu cầu Alice gửi k giá trị làm mù bất kỳ
(3) Trọng tài kiểm tra tính hợp lệ trong nội dung của k bản 
 tin
(4) Nếu k bản tin trên là hợp lệ, trọng tài ký vào “siêu bản 
 tin” được ghép từ (n-k) bản tin còn lại
 46
 23
Chữ ký nhóm
• Yêu cầu: Chỉ xác thực được chữ ký và nhóm nào ký, 
 không xác định được chính xác người ký
• Giao thức:
(1) Người quản trị tạo ra n*m cặp khóa
(2) Người quản trị phân phối cho mỗi thành viên của nhóm 
 m cặp khóa
(3) Người quản trị công bố danh sách khóa công khai (thứ 
 tự đã xáo trộn)
(4) Khi cần ký, mỗi người lựa chọn 1 khóa cá nhân ngẫu 
 nhiên để ký
(5) Người xác thực tìm khóa công khai trong danh sách (3) 
 để xác thực chữ ký
 47
 24

File đính kèm:

  • pdfbai_giang_an_toan_an_ninh_mang_bai_4_giao_thuc_mat_ma_bui_tr.pdf