Trong cuộc sống hàng ngày, ta cần dùng chữ ký để xác nhận các văn bản tài liệu nào đó và có thể dùng con dấu với giá trị pháp lý cao hơn đi kèm với chữ ký.
Cùng với sự phát triển nhanh chóng của công nghệ thông tin, các văn bản tài liệu được lưu dưới dạng số, dễ dàng được sao chép, sửa đổi. Nếu ta sử dụng hình thức chữ ký truyền thống như trên sẽ rất dễ dàng bị giả mạo chữ ký.
Vậy làm sao để có thể ký vào các văn bản, tài liệu số như vậy? Giải pháp được đưa ra đó là Chữ ký số.
Chữ ký số (Digital Signature) hay chữ ký điện tử (Electronic Signature) là thông tin đi kèm theo dữ liệu nhằm mục đích xác nhận người chủ của dữ liệu đó. Chữ ký số được phát triển dựa trên lý thuyết mã hóa, cụ thể là kỹ thuật mã hoá công khai.
Trong chương này chúng ta sẽ tìm hiểu chữ ký số là gì, các yêu cầu của chữ ký số. Chúng ta sẽ tìm hiểu kỹ hơn về hai loại của chữ ký số đó là: Chữ ký số trực tiếp và chữ ký số có trọng tài.
Chúng ta sẽ tìm hiểu về các giao thức chứng thực chữ ký số, làm thế nào để biết chữ ký số này của ai, làm sao đảm bảo được tính xác thực của chữ ký. Ở phần này chúng ta sẽ tìm hiểu về hai phương pháp chứng thực đó là: Chứng thực lẫn nhau và chứng thực một chiều.
Phần thứ 3 chúng ta sẽ tìm hiểu về chuẩn chữ ký số (Digital Signature Standard) và thuật toán chữ ký số (The Digital Signature Algorithm).
40 trang |
Chia sẻ: tuandn | Lượt xem: 2583 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Chữ ký số và giao thức chứng thực, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lời giới thiệu
Trong cuộc sống hàng ngày, ta cần dùng chữ ký để xác nhận các văn bản tài liệu nào đó và có thể dùng con dấu với giá trị pháp lý cao hơn đi kèm với chữ ký.Cùng với sự phát triển nhanh chóng của công nghệ thông tin, các văn bản tài liệu được lưu dưới dạng số, dễ dàng được sao chép, sửa đổi. Nếu ta sử dụng hình thức chữ ký truyền thống như trên sẽ rất dễ dàng bị giả mạo chữ ký.
Vậy làm sao để có thể ký vào các văn bản, tài liệu số như vậy? Giải pháp được đưa ra đó là Chữ ký số.
Chữ ký số (Digital Signature) hay chữ ký điện tử (Electronic Signature) là thông tin đi kèm theo dữ liệu nhằm mục đích xác nhận người chủ của dữ liệu đó. Chữ ký số được phát triển dựa trên lý thuyết mã hóa, cụ thể là kỹ thuật mã hoá công khai.
Trong chương này chúng ta sẽ tìm hiểu chữ ký số là gì, các yêu cầu của chữ ký số. Chúng ta sẽ tìm hiểu kỹ hơn về hai loại của chữ ký số đó là: Chữ ký số trực tiếp và chữ ký số có trọng tài.
Chúng ta sẽ tìm hiểu về các giao thức chứng thực chữ ký số, làm thế nào để biết chữ ký số này của ai, làm sao đảm bảo được tính xác thực của chữ ký. Ở phần này chúng ta sẽ tìm hiểu về hai phương pháp chứng thực đó là: Chứng thực lẫn nhau và chứng thực một chiều.
Phần thứ 3 chúng ta sẽ tìm hiểu về chuẩn chữ ký số (Digital Signature Standard) và thuật toán chữ ký số (The Digital Signature Algorithm).
Hai phần cuối cùng đó là một số trang web, tài liệu bạn có thể đọc để tìm hiểu thêm về dịch vụ này và phần thuật ngữ một số câu hỏi và một số vấn đề khác.
CHƯƠNG 13. CHỮ KÝ SỐ VÀ GIAO THỨC CHỨNG THỰC
13.1 CHỮ KÝ SỐ
Các yêu cầu
Chữ ký số trực tiếp
Chữ ký số có trọng tài
13.2 CÁC GIAO THỨC CHỨNG THỰC
Sự chứng thực lẫn nhau
Sự chứng thực một chiều
13.3 CHUẨN CHỮ KÝ SỐ
Các phương pháp tiếp cận chữ ký số
Thuật toán chữ ký số
13.4 KHUYẾN CÁO ĐỌC VÀ CÁC TRANG WEB KHUYẾN CÁO
13.5 THUẬT NGỮ CHÍNH, MỘT SỐ CÂU HỎI VÀ MỘT SỐ VẤN ĐỀ
Một số thuật ngữ chính
Một số câu hỏi
Những điểm chính:
● Một chữ ký số là một cơ chế xác thực cho phép các tác giả của một tin nhắn có thể gắn một mã hoạt động như chữ ký. Chữ ký này được hình thành bởi lấy giá trị băm của thông điệp và mã hóa các tin nhắn với khóa bí mật của tác giả. Chữ ký bảo đảm nguồn và tính toàn vẹn của thông điệp.
● Giao thức xác thực chung cho phép các bên giao tiếp để đáp ứng tự lẫn nhau về danh tính của nhau và trao đổi khóa phiên.
● Trong giao thức xác thực một chiều, người nhận muốn một số bảo đảm rằng một thông báo là từ người gửi bị cáo buộc.
● Các chữ ký số tiêu chuẩn ( DSS ) là một tiêu chuẩn NIST sử dụng thuật toán hàm băm bí mật (SHA).
Một số vấn đề
13.1 CHỮ KÝ SỐ
YÊU CẦU
Một thông điệp xác thực được trao đổi giữa hai bên và được bảo vệ bởi một bên thứ ba. Tuy nhiên, nó không bảo vệ hai bên với nhau. Một vài hình thức tranh chấp có thể xảy ra giữa hau bên.
Ví dụ, giả sử John gửi một thông điệp xác nhận cho Mary, sử dụng một trong những phương pháp ở Hình 11.4. Ta xem xét một số tranh chấp có thể phát sinh.
1. Mary có thể giả mạo một thông điệp khác và nói rằng nó đến từ John. Mary chỉ đơn giản tạo một thông điệp và thêm vào mã xác thực bằng cách sử dụng khóa (key) mà John đã chia sẻ cho Mary.
2. John có thể phủ nhận đã gửi thông điệp. Bởi vì nó có thể là thông điệp giả mạo từ Mary. Trong thực tế không có cách nào chứng minh rằng John đã gửi thông điệp đó.
Cả hai trường hợp trên là mối quan tâm chính đáng có thể xảy ra . Ở đây ta có một ví dụ về trường hợp thứ nhất: Một giao dịch (chuyển tiền) điện tử diễn ra, và người nhận tăng số tiền trong giao dịch đó và tuyên bố rằng số tiền lớn đó là đến từ người gởi. Một ví dụ về trường hợp thứ hai là một thư điện tử có chứa thông điệp hướng dẫn việc môi giới chứng khoán cho một giao dịch mà hóa ra nặng. Người gửi giả vờ rằng thông điệp không bao giờ được gửi đi.
Trong trường hợp không có đủ sự tin tưởng giữa người gửi và người nhận, cần thêm một vài xác thực. Giải pháp tối ưu cho vấn đề này chính là chữ ký số. Chữ ký số là một dạng tượng tự với chữ ký tay. Nó phải có các thuộc tính sau đây:
Nó phải xác minh được tác giả, ngày tháng và thời gian của chữ ký.
Nó phải xác thực được nội dung tại thời điểm của chứ ký.
Nó phải được kiểm chứng từ bên thứ ba, để giải quyết tranh chấp.
Vì vậy, chức năng của chữ ký số bao gồm chức năng xác thực.
Trên cơ sở các đặc tính này, chúng ta có thể xây dựng các yêu cầu sau cho một chữ ký số:
Chữ ký số phải là một mẫu bit và phụ thuộc vào thông điệp đã được ký kết.
Chữ ký số phải sử dụng một số thông tin duy nhất từ người gửi, để ngăn ngừa giả mạo và từ chối từ hai phía.
Phải có phương pháp tương đối dễ dàng để tạo ra chứ ký số.
Phải có phương pháp tương đối dễ dàng trong việc nhận biết và xác minh chứ ký số.
Nó phải được tính toán sao cho việc giả mạo chứ ký số là không khả thi hoặc là bằng việc xây dựng một thông điệp mới cho một chữ ký số đã tồn tại hoặc xây dựng một chữ ký số giả mạo cho một thông điệp được gửi đi là không thể.
Nó phải thực hiện giữ lại lại một bản sao trong kho lưu trữ.
Một hàm băm bí mật, được nhúng trong chương trình như ở Hình 11.5c hoặc d, đáp ứng được những yêu cầu ở trên.
Một loạt các phương pháp tiếp cận đã được đề xuất cho chức năng của chữ ký số. Các phương pháp tiếp cận đó đó rơi vào một trong hai loại: trực tiếp (direct) và trọng tài (arbitrated).
CHỮ KÝ SỐ TRỰC TIẾP
Chữ ký số trực tiếp chỉ có liên quan đến việc giao tiếp (người gửi, người nhận). Nó giả định người nhận biết khóa công khai của người gửi. Một chữ ký số có thể được hình thành bằng cách mã hóa toàn bộ thông điệp bằng khóa bí mật của người gửi (Hình 11.1c) hoặc thông điệp được “băm” ra rồi mã hóa bằng khoá bí mật (Hình 11.5c).
Tính bảo mật có thể được cung cấp thêm với điều kiện là mã hóa toàn bộ thông điệp cộng với chữ ký của một trong hai, khóa công khai của người nhận ( khóa công khai mã hóa) hoặc một khóa bí mật đã được chia sẻ ( mã hóa đối xứng); ví dụ, nhìn Hình 11.1d và 11.5d. Lưu ý rằng điều quan trọng là thực hiện chức năng chữ ký đầu tiên sau đó mới là chức năng bảo mật bên ngoài. Trong trường hợp tranh chấp, một vài bên thứ ba sẽ phải xem thông điệp đó và chữ ký của nó. Nếu chữ ký là một thông điệp được mã hóa cẩn thận, sau đó bên thứ ba cần xác định khóa giải mã để đọc văn bản chính thức. Tuy nhiên, nếu chữ ký hoạt động bên trong sau đó người nhận có thể lưu trữ các thông điệp thô đó và ký nó sau sử dụng tranh chấp phân giải.
Tất cả các phương pháp được chia sẻ cho đến nay có một điểm yếu chung. Đó là hiệu lực của phương pháp này phụ thuộc vào độ bảo mật khóa chính của người gửi. Nếu người gửi sau đó muốn phủ nhận việc gửi tin nhắn, người gửi có thể nói rằng khóa bí mật của họ bị mất hoặc bị đánh cắp và có ai đó đã giả mạo chữ ký của họ. Điều khiển quản lý liên quan đến độ bảo mật của khóa riêng có thể được sử dụng để ngăn chặn hoặc ít nhất làm suy yếu những âm mưu này, nhưng mối nguy hiểm vẫn còn tồn tại, ít nhất là ở một mức nào đó. Một ví dụ kiểu như là yêu cầu mọi thông điệp đều đã được ký cần chứa một mốc thời gian (ngày và thời gian)và yêu cầu thong báo kịp thời khi khóa bị xâm nhập tới một cơ quan trung ương.
Mối nguy hiểm khác là một vài khóa bí mật có thể thực sự bị đánh cắp từ X tại thời điểm T. Các đối thủ có thể gửi một thông điệp đã ký chữ ký của X và đóng dấu trước thời điểm hoặc trùng với thời điểm T.
CHỮ KÝ SỐ CÓ TRỌNG TÀI
Các vẫn đề liên quan đến chữ ký số trực tiếp có thể giải quyết bằng cách sử dụng một trọng tài.
Như với phương pháp chữ ký trực tiếp, có một loạt các đề án để phán xét chữ ký đó. Nói chung tất cả đều hoạt động như sau. Mọi thông điệp được ký từ người gửi X tới người nhận Y trước tiên sẽ đi qua một trọng tài A. Người mà đối tượng thong điệp và nó đóng dấu một số để kiểm tra nguồn gốc và nội dung của thông điệp. Các thông điệp sau đó được gửi cho Y với một dấu hiệu cho biết cho biết đã có sự xác minh và hài lòng của trọng tài. Sự hiện diện của A giải quyết vấn đề đối diện của phương pháp chữ ký trực tiếp: X chịu thừa nhận tin nhắn.
Trọng tài đóng một vai trò nhạy cảm và rất quan trọng trong phương pháp sắp xếp, và tất cả các bên phải có một niềm tin tuyệt đối vào vào cơ chế giải quyết của trọng tài là đúng đắn. Việc sử dụng một hệ thống đúng đắn, được đề cập ở Chương 20 có thể đáp ứng các nhu cầu này.
Bảng 13.1, dựa trên tình huống được mô tả ở [AKL83] và [MIT92], đưa ra một số ví dụ về việc phân xử chữ ký số. Ở lần đầu tiên, mã hóa đối xứng được sử dụng. Nó giả định người gửi X và trọng tài A chia sẻ khóa bí mật Kxa và A và Y chia sẻ khóa bí mật Kay,. X xây dựng một thông điệp M và tính giá trị hàm băm của nó H(M). Sau đó X gửi thông điệp cộng với một chữ ký cho A. Chữ ký bao gồm một định danh IDx của X cộng với giá trị băm, tất cả được mã hóa sử dụng khóa Kxa. Giải mã chứ ký và kiểm tra giá trị băm để xác nhận tin nhắn. Sau đó A gửi một thông điệp cho Y, mã hóa với khoá Kay. Thông điệp bao gồm IDx, thông điệp chính thức từ X, chữ ký và một mốc thời gian. Y có thể giả mã để phục hồi lại thông điệp và chữ ký. Con dấu thời gian thông báo với Y rằng đây là một thông điệp kịp thời và không phải là thông điệp gửi lại. Y có thể lưu trữ M và chữ ký. Trong trường hợp tranh chấp, Y người tuyên bố đã nhận thông điệp M từ X, gửi qua A:
[1] Các định dạng sau được sử dụng. A giao tiếp từng bước trong đó P gửi một thông điệp M cho Q ký hiệu P à Q: M.
E(Kay, [IDX||M||E(Kxa, [IDX||H(M)])])
Trọng tài sử dụng Kay để phục hồi IDx, M, và chữ ký, và sau đó sử dựng Kxa để giải mã chữ ký và xác định mã băm. Trong phương pháp này này, Y không thể trực tiếp kiểm tra chữ ký của X; chữ ký ở đây là duy nhất để giải quyết tranh chấp. Y xem xét thông điệp gửi từ X là đáng tin cậy bởi vì nó được thông qua A. Trong tình huống này, cả hai bên phải có sự tin tưởng cao với A:
X phải tin tưởng A không tiết lộ Kxa và không sử dụng để tạo ra chữ ký giả cho mẫu E (Kxa, [IDx||H(M)]).
Y phải tin tưởng A gửi mẫu E(Kay, [IDX||M||E(Kxa, [IDX||H(M)])||T]) chỉ khi giá trị hàm băm là chính xác và chữ ký được tạo ra từ X.
Cả hai bên phải tin tưởng A giải quyết vấn đề tranh chấp một cách công bằng.
Nếu tồn tại sự tin tưởng vào trọng tài, thì sau đó X yêm tâm rằng không có ai có thể giả mạo chữ ký của mình và Y cũng yên tâm rằng X sẽ không chối bỏ chữ ký của X.
Các tình huống trước đó cũng có nghĩa rằng A có thể đọc những thông điệp từ X gửi cho Y, sự thực là, bất kì kẻ trộm nào cũng có thể làm điều đó. Bảng 13.1b cho thấy một tình huống cung cấp các trọng tài như trước nhưng vẫn đảm bảo được tính bí mật. Trong tường hợp này người ta giả định rằng X và Y chia sẻ khoá bí mật Kxy. Bây giờ X gửi một định danh, một bản copy của thông điệp đã được mã hóa bởi khóa Kxy, và một chữ ký tới A. Chữ ký bao gồm định danh cộng với giá trị băm của thông điệp đã được mã hóa, tất cả việc mã hóa sử dụng Kxa, Như trước, A giải mã chữ ký và kiểm tra giá trị băm để xác nhận thong điệp. Trong tình huống này A chỉ làm việc với phiên bản thông điệp đã được mã hóa và bị ngăn cản việc đọc nó. A sau đó sẽ truyền mọi thứ nó nhận được từ X, cộng với con dấu thời gian, tất cả mã hóa với khóa Kay tới Y.
Mặc dù không thể đọc thông điệp, nhưng người trọng tài vẫn có một vị trí quan trọng trong việc chống gian lận một phần nào đó từ X hoặc từ Y. Một vấn đề nữa, trong tình huống chia sẻ đầu tiên (giữa Sender và A), là trọng tài có thể liên minh với người gửi để từ chối một thông điệp đã được ký, hoặc với người nhận để giả mạo chữ ký của người gửi.
Tất cả những vẫn đề đã thảo luận có thể được giải quyết bằng cách sử dụng ý tưởng khóa công khai, một phiên bản của nó trong Bảng 13.1c. Trong tình huống này, X mã hóa hai lần một thông điệp M đầu tiên bằng khóa bí mật của X, PRx và sau đó với khóa công khai của Y, PUy. Đây là một chữ ký bí mật, phiên bản bí mật của thông điệp. Thông điệp này đã ký, với định danh của X, là mã hóa trở lại bằng PRx và, cùng với IDx, sau đó gửi cho A. Xét bên trong, thông điệp được mã hóa hai lần thì đảm bảo bí mật với trọng tài (và mọi người khác trừ Y). Tuy nhiên, A có thể giải mã những mã hóa bên ngoài để đảm bảo thông điệp phải được gửi từ X (bởi vì chỉ X có PRx). A kiểm tra để chắc chắn rằng cặp khóa bí mật/ khóa công khai của X vẫn còn hiệu lực, nếu có, xác minh tin nhắn. Sau đó A chuyển một thông điệp tới Y, mã hóa với PRa. Thông điệp này chứa IDx, thông điệp mã hóa hai lần, và một con dấu thời gian.
Đề án này có một số ưu điểm so vơi hai đề án trước đó. Đầu tiên, không có thông tin nào được chia se giữa các bên trước khi truyền thông, tránh việc liên minh để lừa gạt. Thứ hai không có sự sai lệch ngày gửi thông điệp. Thậm chí nếu PRx có bị hư hại, thì PRa cũng không bị ảnh hưởng. Cuối cùng nội dung tin nhắn từ X tới Y là bí mật với A và với bất kì ai khác. Tuy nhiên, đề án cuối cùng này liên quan đến việc mã hóa thông điệp lần thứ hai với thuật toán khóa công khai. Chúng ta sẽ thảo luận chi tiết hơn sau đó.
13.2 GIAO THỨC CHỨNG THỰC
Các công cụ cơ bản được mô tả ở Chương 11 được sử dụng trong một loạt các ứng dụng, bao gồm chữ ký số được thảo luận trong Mục 13.1. Ngoài ra còn rất nhiều ứng dụng khác và ngày càng tăng hơn nữa. Trong phần này chung tôi tập trung chủ yếu vào hai phần ( chứng thực lẫn nhau và xác thực một chiều) và kiểm tra một vài ảnh hưởng của hai kỹ thuật chứng thực nói trên.
CHỨNG THỰC CHUNG
Một khoảng ứng dụng chứng thực quan trọng đó là giao thức chứng thực chung. Giao thức này cho phép các bên truyền thông tự thỏa thuận với nhau về danh tính của nhau và trao đổi những khóa phiên (session keys). Chủ đề này được khảo sát ở Mục 7.3 (kỹ thuật đối xứng) và Mục 10.1 (kỹ thuật khóa công khai). Ở đây, trọng tâm là sự phân phối khóa. Chúng ta sẽ trở lại chủ đề này ngay sau đây để xem xét tác động rộng hơn của chứng thực.
Trọng tâm cho vấn đề chứng thực trao đổi khóa là hai vấn đề sau: tính bảo mật và tính kịp thời. Để ngăn chặn sự giả mạo và sự thỏa thuận trong các phiên khóa, mã nhận biết và thông tin phiên khóa phải được truyền trong một mẫu mã hóa. Điều này đòi hỏi sự tồn trại trước của khóa bí mật hoặc khóa công khai để có thể sử dụng cho mục đích này. Vấn đề thứ hai, tính kịp thời, rất quan trọng bởi vì mối đe dọa của thông điệp phản hồi. Một vài phản hồi, tồi tệ nhất có thể cho đối thủ thỏa hiệp một khóa phiên hoặc thành công trong việc mạo danh một bên khác. Ít nhất, một phản hồi thành công có thể làm gián đoạn hoạt động của các bên khi hiển thị với thông điệp xuất hiện thật nhưng không.
[GON93] danh sách các cuộc tấn công phản hồi:
Phản hồi đơn giản (Simple replay): Một đối thủ đơn giản là sao chép một thông điệp và phản hồi nó sau này.
Phản hồi có lưu lại (Repetition that can be logged): Một đối thủ có thể phản hồi một thông điệp tăng dần trong thời gian hợp lệ của cửa sổ.
Phản hồi không thể phát hiện: Tình trạng này có thể xảy ra khi thông điệp ban đầu có thể bị chặn và do đó không thể đến được đích, chỉ có thông báo phản hồi là tới nơi.
Phát ngược lại mà không sửa đổi: Đây là thông điệp được phát ngược trở lại người gửi. Kiểu tấn công này hiệu quả nếu thuật toán mã hóa đối xứng được sử dụng v à người gửi không thể dễ dàng nhận ra sự khác biệt giữa thông điệp đã gửi và thông điệp nhận lại cơ bản về nội dung.
Một cách tiếp cận để đối phó với các cuộc tấn công phản hồi đó là đính kèm một số thứ tự cho mỗi thông điệp sử dụng trong chứng thực hoán chuyển. Một thông điệp mới chỉ được chấp nhận nếu số thự tự của nó phù hợp. Cái khó của phương pháp này là nó đòi hỏi mỗi bên phải theo dõi số thự tự cuối cùng cho mỗi lần khiếu nại đã được xử lí. Bởi vì phí tổn này nên đánh số thứ tự thường không được sử dụng cho chứng thức và trao đổi khóa. Thay vào đó một trong hai phương pháp sau có thể thường được sử dụng.
Dấu thời gian: Bên A chỉ cấp nhận một thông điệp như mới nếu thông điệp đó chứa một dấu thời gian, trong phán xét của A, là đủ gần cho kiến thức của A trong thời gian hiện hành. Cách tiếp cận này đòi hỏi phải có sự đồng bộ giữa các bên.
Thách thức và phản ứng: Bên A, chờ đợi một thông điệp mới từ bên B, lần đầu gửi B một nonce (thử thách) và yêu cầu thông điệp tiếp theo (phản ứng) nhận được từ B chứa đúng giá trị nonce.
Nó có thể được lập luận (e.g…[LAM92a] rằng cách đánh dấu thời gian không nên sử dụng cho ứng dụng kết nối tin cậy bởi vì những khó khăn vốn có của kỹ thuật này. Đầu tiên, một số loại giao thức sắp xếp là cần thiết để duy trì đồng bộ hóa giữa các xung xử lí khác nhau. Giao thức này phải được cả hai chấp nhận có lỗi sai, và an toàn để đối phó với các cuộc đấu tranh của địch thủ. Thứ hai, cơ hội cho một cuộc tấn công thành công sẽ xuất hiện nếu có một sự mất mát tạm thời của sự đồng bộ kết quả từ sự thiếu sót trong cơ chế xung nhịp của một trong các bên. Thành ra bất kì thủ tục nào dựa trên dấu thời gian cũng phải cho phép của sổ có thời gian đủ lớn để phù hợp với sự chậm trễ của mạng nhưng cũng phải đủ nhỏ để giảm tối thiểu các cơ hội tấn công.
Mặt khác, các tiếp cận thách thức - phản ứng là không phù hợp với loại phi kết nối của ứng dụng bởi nó có chi phi của bước bắt tay trước bất kì một truyền thông phi kết nối, phủ nhận kết quả đặc trưng chính của giao dịch phi kết nối. Đối với các ứng dụng như vậy sự phụ thuộc vào máy chủ thời gian an toàn và nỗ lực thống nhất của mỗi bên để giữ cho xung trong đồng bộ hóa là cách tiếp cận tốt nhất. (ví dụ., [LAM92b]).
Phương pháp tiếp cận mã hóa đối xứng.
Như đã thảo luận ở Phần 7.3, một hệ thống hai cấp độ của mã hóa đối xứng có thể thường cung cấp bảo mật trong môi trường phân phối. Nhìn chung, chiến lược này liên quan đến việc sử dụng một trung tâm phân phối khóa đáng tin cậy (KDC). Mỗi bên trong mạng chia sẻ một khóa bí mật, như một khóa chủ, với KDC. KDC chịu trách nhiệm tạo ra các khóa sử dụng trong một thời gian ngắn trên một kết nối giữa hai bên, được biết như một là khóa phiên, và phân phối nhiều khóa bằng cách sử dụng khóa chủ để bảo vệ cho sự phân phối. Cách tiếp cận này thì khá là phổ biến. Một ví dụ, chúng ta có thể tìm thấy hệ thống Kerberos tại Chương 14. Các cuộc thảo luận trong mục này liên quan đến sự hiểu biết về cơ chế Kerberos.
Hình 7.9 minh họa một đề xuất ban đầu được đưa ra bởi Needham và Schroeder [NEED78] cho việc phân phối khóa bí mật sử dụng KDC, như đã đề cập ở Chương 7, bao gồm tính năng chứng thực. Giao thức có thể được tóm lược như sau:
Những khóa bí mật Ka và Kb đã được chia sẻ giữa A và KDC và giữa B và KDC. Mục đích của giao thức là phân phối một cách an toàn một khóa phiên Ks cho A và B. Một cách an toàn thu nhận lại phiên khóa mới ở bước 2. Thông điệp trong bước 3 có thể được giải mã, và do đó hiểu được, chỉ có B. Bước 4 đảm bảo sự hiểu biết của B về Ks, và bước 5 đảm bảo với B về sự hiểu biết của A bới Ks và đảm bảo với B là một thông điệp mới bởi vì việc sử dụng của nonce N2. Nhớ lại cuộc thảo luận của chúng ta ở Chương 7 mục đích của bước 4 và 5 là ngăn chặn sự một loại tấn công phản hồi. Đặc biệt, nếu đối phương có thể bắt được thông điệp ở bước 3 và phản hồi nó lại, điều này có thể làm gián đoạn hoạt động tại B.
Mặc dù quá trình bắt tay của bước 4 và 5, giao thức này vẫn dễ dàng bị tấn công từ một trong các cuộc tấn công phản hồi. Giả sử một đối thủ, X, đã có một thỏa hiệp của khóa phiên cũ. Phải thừa nhận rằng, đây là một sự xuất hiện khó hơn so với đối thủ chi quan sát và ghi chép lại ở bước 3. Tuy nhiên, nó là một nguy cơ bảo mật tiềm năng. X có thể đóng vai trò của A và lừa B sử dụng khóa cũ bằng cách phát lại ở bước 2. Trừ khi B nhớ vô thời hạn tất cả các khóa phiên trước đó đã sử dụng với A, B sẽ không thể phát hiện đây là một phản hồi phát lại. Nếu X có thể đánh chặn thông điệp bắt tay, ở bước 4, sau đó có thể mạo nhận phản ứng của A, ở bước 5. Từ điểm này, X có thể gửi tin nhắn giả mạo tới B để B tưởng rằng nó đến từ A sử dụng một khóa phiên chứng thực.
Denning [DENN81, DENN82] đề xuất khắc phục điểm yếu này bằng cách sử đổi giao thức Needham/Schroeder bao gồm việc bổ sung dấu thời gian ở bước 2 và bước 3. Đề nghị giả sử có các khóa chủ, Ka và Kb an toàn, và nó bao gồm những bước sau đây.
T là một dấu thời gian để đảm bảo với A và B rằng khóa phiên vừa mới được tao ra. A và B có thể xác minh dấu thời gian bằng cách kiểm tra.
|Clock T| < ∆t1 + ∆t2
∆t1 được ước tính t