Chương 13: Chữ ký điện tử và thủ tục xác nhận
I. Chữ ký điện tử (Digital Signatures)
Được xem như mẩu tin được xác thực
Cung cấp các khả năng để
Kiểm chứng tác giả, ngày và giờ ký
Xác thực nội dung mẩu tin
Được kiểm chứng bởi bên thứ 3 để chống từ chối
Vì vậy bao gồm hàm xác thực
và một số khả năng bổ sung
II. Các tính chất của chữ ký điện tử (Digital Signature Properties)
Cần phải phụ thuộc vào nội dung ký
Cần sử dụng thông tin đặc trưng duy nhất đối với người gửi
Để chống cả giả mạo và từ chối
Cần phải tương đối dễ dàng tạo ra
Dễ dàng đoán nhận và kiểm chứng
Không thể tính toán giả mạo được
Với bản tin mới và chữ ký đã có
Với chữ ký giả mạo cho 1 bản tin
Có thể lưu trữ cất chữ ký điện tử
25 trang |
Chia sẻ: khicon_1279 | Lượt xem: 2917 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Mã hóa và an ninh mạng ( Chapter 13), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 13: Chữ ký điện tử và thủ tục xác nhận Fourth Edition by William Stallings Lecture slides by Lawrie Brown Chữ ký điện tửDigital Signatures Được xem như mẩu tin được xác thực Cung cấp các khả năng để Kiểm chứng tác giả, ngày và giờ ký Xác thực nội dung mẩu tin Được kiểm chứng bởi bên thứ 3 để chống từ chối Vì vậy bao gồm hàm xác thực và một số khả năng bổ sung Các tính chất của chữ ký điện tửDigital Signature Properties Cần phải phụ thuộc vào nội dung ký Cần sử dụng thông tin đặc trưng duy nhất đối với người gửi Để chống cả giả mạo và từ chối Cần phải tương đối dễ dàng tạo ra Dễ dàng đoán nhận và kiểm chứng Không thể tính toán giả mạo được Với bản tin mới và chữ ký đã có Với chữ ký giả mạo cho 1 bản tin Có thể lưu trữ cất chữ ký điện tử Chữ ký điện tử trực tiếpDirect Digital Signatures Bao gồm chỉ người gửi và người nhận Người nhận được phép có khoá công khai của người gửi Chữ ký được người gửi ký trên toàn bộ mẩu tin hoặc Hash với khoá riêng Có thể mã bằng khoá công khai của người nhận Quan trọng là ký trước và sau đó mã hoá bản tin và chữ ký Tính an toàn phụ thuộc vào khoá riêng của người gửi Chữ ký điện tử có trọng tàiArbitrated Digital Signatures Bao gồm cả việc sử dụng trọng tài A Kiểm tra mọi mẩu tin được ký Sau đó điền ngày giờ và gửi cho người nhận Đòi hỏi mức độ tin cậy hợp lý đối với trọng tài Có thể cài đặt với thuật toán khoá riêng hoặc khoá công khai. Trọng tài có thể được xem hoặc không được xem mẩu tin Thủ tục xác thựcAuthentication Protocols Làm cho các bên tin tưởng vào danh tính của nhau để trao đổi khoá kỳ Có thể 1 chiều và đa trị Vấn đề chính là Bảo mật - để bảo vệ khoá kỳ Thời sự - chống tấn công trì hoãn Các thủ tục đã công bố bị phát hiện có lỗi và cần được điều chỉnh Tấn công trì hoãnReplay Attacks Bao gồm chỉ người gửi và người nhận Người nhận được phép có khoá công khai của người gửi Chữ ký được người gửi ký trên toàn bộ mẩu tin hoặc Hash với khoá riêng Có thể mã bằng khoá công khai của người nhận Quan trọng là ký trước và sau đó mã hoá bản tin và chữ ký Tính an toàn phụ thuộc vào khoá riêng của người gửi Sử dụng khoá đối xứng Using Symmetric Encryption Như đã thảo luận trước có thể sử dụng kiến trúc 2 tầng khoá Thông thường có Trung tâm phân phối khoá tin cậy Mỗi bên chia sẻ khoá chính của mình với KDC KDC sinh khoá kỳ được sử dụng trao đổi giữa các bên Khoá chính được dùng để phân phối khoá kỳ Needham-Schroeder Protocol Thủ tục phân phối khoá có bên thứ 3 tham gia Tạo khoá kỳ giữa A và B do KDC cung cấp Thủ tục cụ thể như sau: 1. A->KDC: IDA || IDB || N1 2. KDC -> A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ] 3. A -> B: EKb[Ks||IDA] 4. B -> A: EKs[N2] 5. A -> B: EKs[f(N2)] Needham-Schroeder Protocol Sử dụng phân phối khoá bộ phận mới để A và B trao đổi Có lỗ hổng là bị tấn công trì hoãn, nếu khoá bộ phận cũ vẫn còn thỏa thuận dùng Khi đó mẩu tin 3 có thể bị gửi lại khẳng định với B là đang trao đổi với A Muốn sửa lỗi trên cần phải Dùng Tem thời gian (Denning 81) Sử dụng thêm nhãn (Neuman 93) Sử dụng khoá công khaiUsing Public-Key Encryption Có nhiều ứng dụng dựa trên khoá công khai Cần phải tin tưởng rằng có khoá công khai đúng của các đối tác khác. Sử dụng máy chủ xác thực trung tâm AS (Authentication Server) Có nhiều thủ tục tồn tại sử dụng tem thời gian và nhãn Denning AS Protocol Denning 1981 đề xuất 1. A -> AS: IDA || IDB 2. AS -> A: EPRas[IDA||PUa||T] || EPRas[IDB||PUb||T] 3. A -> B: EPRas[IDA||PUa||T] || EPRas[IDB||PUb||T] || EPUb[EPRa[Ks||T]] Nhận thấy rằng khoá kỳ được chọn bởi A, do đó AS không cần được uỷ quyền bảo vệ nó Tem thời gian chống trì hoãn nhưng cần đồng hồ đồng bộ Xác thực một chiều One-Way Authentication Được dùng khi người nhận và người gửi không cùng ở trạng thái trao đổi Có đầu tin rõ ràng để có thể phân phối bởi hệ thống thư điện tử Có thể muốn nội dung tin được bảo vệ và xác thực bởi người gửi Sử dụng khoá đối xứng Using Symmetric Encryption Có thể làm tốt hơn ứng dụng của KDC nhưng không thể trao đổi nhãn cuối cùng: 1. A->KDC: IDA || IDB || N1 2. KDC -> A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ] 3. A -> B: EKb[Ks||IDA] || EKs[M] does not protect against replays Không bảo vệ chống trì hoãn được Có thể dựa trên tem thời gian trên mẳu tin, tuy nhiên trì hoãn email tạovẫn nên vấn đề đó Sử dụng khoá công khai Public-Key Approaches Chúng ta đã thấy một số cách tiếp cận khoá công khai Nếu bảo mật là chính, có thể dùng: A->B: EPUb[Ks] || EKs[M] Mã được khoá kỳ và bản tin mã Nếu xác thực cần chữ ký điện tử với xác nhận điện tử: A->B: M || EPRa[H(M)] || EPRas[T||IDA||PUa] với mẩu tin, chữ ký và xác nhận Chuẩn chữ ký điện tử (DSS) Digital Signature Standard Chính phủ Mỹ ủng hộ sơ đồ chữ ký điện tử FIPS 186 Sử dụng thuật toán hash SHA công bố 1991, sửa 1996, 2000 DSS là chuẩn và DSA là thuật toán Có phương án cải biên Elgamal và Schnorr Thuật toán chữ ký điện tử DSADigital Signature Algorithm (DSA) Tạo 320 bit chữ ký Với lựa chọn 512-1024 bit an toàn hơn Nhỏ và nhanh hơn RSA Chỉ có sơ đồ chữ ký điện tử An toàn phụ thuộc vào độ khó của tính logarit rời rạc Digital Signature Algorithm (DSA) Sinh khoá DSA DSA Key Generation Chia sẻ giá trị khoá công khai tổng thể (p,q,g): số nguyên tố lớn p = 2L ở đó L= 512 to 1024 bits và là bội của 64 chọn q là số nguyên tố 160 bit ước của p-1 chọn g = h(p-1)/q (mod p) ở đó h 1 Người sử dụng chọn khoá riêng và tính khoá công khai chọn x<q Tính y = gx (mod p) Tạo chữ ký DSA DSA Signature Creation Để ký mẩu tin M người gửi cần Sinh khoá chữ ký ngẫu nhiên k: k < p, k phải là số ngẫu nhiên, được xoá sau khi dùng và không bao giờ dùng lại Sau đó tính cặp chữ ký: r = (gk(mod p))(mod q) s = (k-1(H(M)+ x.r))(mod q) Gửi cặp chữ ký (r, s) cùng với bản tin M Kiểm chứng chữ ký DSA DSA Signature Verification Nhận được bản tin M cùng với chữ ký (r, s) Để kiểm chứng chữ ký người nhận cần tính: w = s-1(mod q) u1= (H(M).w)(mod q) u2= (r.w)(mod q) v = (gu1.yu2(mod p)) (mod q) Nếu v = r thì chữ ký đã được kiểm chứng Ví dụ Chọn p = 23, q = 11, h = 7 g = h2 mod 23 = 3 Chọn x = 5, y = 35 mod 23 = 13 k = 6, H(M) = 9 r = (gk(mod p))(mod q) r = (36 mod 23) mod 11 = (42) mod 11 = 5 s = (k-1(H(M)+ x.r))(mod q) s = (6-1.(9 + 5.5))mod 11 = 2 Chữ ký điện tử (5,2) Kiểm tra chữ ký w = s-1(mod q) u1= (H(M).w)(mod q) u2= (r.w)(mod q) v = (gu1.yu2(mod p)) (mod q) w = 2-1 mod 11 = 6 u1= (9.6) mod 11 = 10 u2 = (5.6) mod 11 = 8 v = (310.138 mod 23) mod 11 = (43.3.138 mod 23) mod 11 = (16) mod 11 = 5 v = 5 = r, chữ ký đúng Summary have discussed: digital signatures authentication protocols (mutual & one-way) digital signature algorithm and standard