SlideShare a Scribd company logo
1 of 34
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.
Tuy nhiên bài dịch vẫn không thể tránh khỏi những sai sót về lời dịch, chính
tả.
Chữ ký số và giao thức chứng thực
2
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
Một số vấn đề
Chữ ký số và giao thức chứng thực
3
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
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
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).
Chữ ký số và giao thức chứng thực
4
đó 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.
Chữ ký số và giao thức chứng thực
5
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.
Chữ ký số và giao thức chứng thực
6
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.
Chữ ký số và giao thức chứng thực
7
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.
Chữ ký số và giao thức chứng thực
8
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.
Chữ ký số và giao thức chứng thực
9
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
Chữ ký số và giao thức chứng thực
10
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.
Chữ ký số và giao thức chứng thực
11
 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.
Chữ ký số và giao thức chứng thực
12
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
Chữ ký số và giao thức chứng thực
13
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
đƣợc ƣớc tính thông thƣờng là khoảng thời gian nằm giữa xung clock của
KDC và xung clock của A hoặc B, đƣợc dự kiến là thời gian trễ trên mạng.
Mỗi node (trạm) có thể thiết lập xung clock của mình dựa vào trạm đƣợc chọn
làm nguồn. Bởi vì dấu thời gian T đƣợc mã hóa an toàn sử dụng khóa chính,
do đó nếu một kẻ tấn cống ngay cả khi biết khóa phiên cũ cũng không thể
thành công nếu tấn công và phản hồi lại tại bƣớc 3 sẽ bị phát hiện bởi B, vì
không phù hợp với dấu thời gian.
Nhận xét cuối cùng là: Tại bƣớc 4 và 5 không có trong phần trình bày ban đầu
[DENN81+ nhƣng đƣợc bổ sung trong [DENN82]. Những bƣớc này xác nhận
việc tiếp nhận khóa phiên tại B.
Giao thức Denning có vẻ nhƣ cung cấp mức độ an toàn cao hơn so sánh với
giao thức Needham/Schroeder. Tuy nhiên mối quan tâm mới ở đây là: sơ đồ
này yêu cầu sự tin cậy của xung clock đƣợc sử dụng để đồng bộ trên mạng.
Chữ ký số và giao thức chứng thực
14
[GONG92] chỉ ra một nguy cơ. Nguy cơ này dựa trên thực tế rằng việc phân
phối xung clock có thể không đồng bộ nếu bị tấn công hoặc xảy ra lỗi trên
đồng hồ hoặc lỗi khi đồng bộ.[2] Một vấn đề xảy ra khi xung clock của ngƣời
gửi vƣợt trƣớc xung clock của ngƣời nhận. Trong trƣờng hợp này kẻ tấn công
có thể chặn các thông điệp từ ngƣời gửi và phát lại nó khi dấu thời gian của
thông điệp phù hợp với dấu thời gian cùa phía nhận. Thông điệp phát lại này
có thể cho kết quả không mong đợi (bị sai lệch). Gong đề cập đến cuộc tấn
công gọi là suppres –replay attacks.
[2]
Như những thứ có thể và đang diễn ra. Trong những năm gần
đây, flawed chip được sử dụng trong một số máy tính và trong những
hệ thống điện tử khác để quản lý thời gian. Chip này có xu hướng bỏ
qua một ngày [NEUM90].
Một cách để ngăn chặn kiểu tấn công lặp lại yêu cầu các bên tham gia phải
thƣờng xuyên theo dõi xung clock của họ tƣơng phản với xung clock của
KDC. Một cách khác là tránh sự đồng bộ xung clock nếu không cần thiết, việc
này dựa trên giao thức bắt tay và sử dụng nonces.Cách này không dễ bị tấn
công lặp lại bởi vì nonce của ngƣời nhận sẽ đƣợc chọn trong tƣơng lai và
không thể đoán trƣớc đƣợc ngƣời gửi. Giao thức Needham/Schroeder dựa
vào một nonce duy nhất, nhƣ chúng ta đã biết đã có một lỗ hổng khác ở đây.
Trong [KEHN92] một ý tƣởng đƣợc đƣa ra tập trung vào vấn đề suppress-
replay attacks và đồng thời khắc phục những vấn đề trong giao thức
Needham/Schroeder. Sau đó một mâu thuẫn trong giao thức sau đó đƣợc ghi
chú và một chiến lƣợc nâng cao đƣợc trình bày trong [NEUM93.a]. [3] Giao
thức nhƣ sau:
[3]
Đó là điều khó khăn để có được sự thật.
Chữ ký số và giao thức chứng thực
15
Bây giờ chúng ta xem xét thứ tự các bƣớc:
1. Khởi tại của trao đổi chứng thực bằng cách tạo ra một nonce, Na, cùng
với định danh của nó đƣợc gửi tới B trong plaintext. Nonce này sẽ đƣợc
gửi lại A trong một thông điệp đƣợc mã hóa bao gồm khóa phiên và
đảm bảo tính kịp thời của A.
2. B sẽ yêu cầu tới KDC để nhận một khóa phiên nếu cần thiết. Thông
điệp của nó tới B bao gồm định danh của nó và nonce, Nb nonce này sẽ
đƣợc gửi trả lại cho B đính kèm trong thông điệp đƣợc mã hóa,cùng với
khóa phiên và đảm bảo tính kịp thời của B. KDC dựa vào những thông
tin này để cấp chứng chỉ cho A. Những thông tin này quy định cụ thể
thứ tự nhận chứng chỉ, một chứng chỉ có một thời gian hết hạn và
nonce nhận đƣợc từ A.
3. KDC sẽ gửi tới A nonce của B và những thông tin đƣợc mã hóa với
khóa mà B chia sẻ với KDC. Những block server này xem nhƣ là những
giấy phép để A có thể sử dụng trong những lần xác thực tiếp theo, sẽ
đƣợc nhìn thấy ở phần sau. KDC cũng gởi tới A những thông tin đƣợc
mã hóa với khóa bí mật dùng chung giữa A và KDC. Những block này
xác nhận rằng B đã nhận đƣợc những thông điệp gửi đến từ A (IDB) và
đây là các thông điệp kịp thời chứ không phải là thông điệp lặp lại (Na)
và cung cấp với A khóa phiên (Ks) và giới hạn thời gian sử dụng của nó
là (Tb).
4. A truyền chứng chỉ (ticket) tới B cùng với nonce của B , sau đó mã hóa
với khóa phiên. Chứng chỉ cung cấp cho B cùng với khóa bí mật đƣợc
sử dụng để giải mã E (Ks,Nb) dùng để khôi phục nonce.
Trong thực tế nonce của B đƣợc mã hóa với khóa phiên xác thực để
thông điệp có thể đến từ A mà không bị replay (phát lại).
Giao thức cung cấp một sự an toàn, có nghĩa là thiết lập giữa A và B trong
trong một phiên làm việc là an toàn với việc sử dụng khóa phiên. Hơn nữa,
giao thức này cho phép A sở hữu một khóa để có thể sử dụng trong những
lần xác thực tiếp theo, tránh sự liên tục liên lạc với máy chủ xác thực nếu
không cần thiết. Giả sử rằng A và B thiết lập với nhau một phiên (làm việc) sử
dụng giao thức đã nói ở trên và sau đó kết thúc phiên làm việc.
Chữ ký số và giao thức chứng thực
16
Sau đó, trong thời gian thiết lập kết nối của giao thức, A đề nghị một phiên
làm việc mới với B. Giao thức sẽ xảy ra nhƣ sau:
Khi B nhận đƣợc thông điệp ở bƣớc 1, nó xác minh chứng chỉ là chƣa hết hạn.
Các nonces N’a và N’b mới đƣợc tạo ra đảm bảo rằng mỗi bên không bị tấn
công phát lại.
Trong tất cả các bƣớc trên thời gian quy định trong Tb tƣơng đƣơng với xung
clock của B. Vì vậy timestamp không yêu cầu đồng bộ, bởi vì B chỉ kiểm tra
dấu thời gian do mình tạo ra.
Public-Key Encryption Approaches (Phương pháp mã hóa công khai)
Trong Chƣơng 10 chúng ta đã xem xét một phƣơng pháp sử dụng mã hóa
khóa công khai cho mục đích phân phối khóa phiên (Hình 10.6). Giao thức
này giả sử rằng mỗi bên sở hữu khóa công khai của nhau. Giả sử này có thể
không thực tế:
Giao thức sử dụng dấu thời gian đƣợc cung cấp trong [DENN8]:
Trong trƣờng hợp này, hệ thống trung tâm đƣợc xem nhƣ dịch vụ xác thực
(AS), bởi vì nó không thực sự chịu trách nhiệm phân phối khóa bí mật. Thay
vào đó, AS cung cấp chứng nhận khóa công khai. Khóa phiên đƣợc lựa chọn
và đƣợc mã hóa bởi A; do đó, không có nguy hiểm nào tới AS. Dấu thời gian
bảo vệ khóa khỏi sự tấn công lặp lại.
Chữ ký số và giao thức chứng thực
17
Giao thức này là nhỏ gọn (đơn giản), nhƣng nhƣ đã nói ở trƣớc việc yêu cầu
đồng bộ của xung clock. Một phƣơng pháp khác đƣợc đề xuất bởi Woo and
Lam [WOO92a], sử dụng nonces. Giao thức bao gồm các bƣớc sau:
Tại bƣớc một, A thông báo với KDC về ý định muốn thiết lập một kết nối an
toàn với B. KDC trả về cho A một bản so chứng nhận khóa công khai của B
(bƣớc 2). Sử dụng khóa công khai của B, A thông báo với B về đề nghị muốn
giao tiếp với B và tới một nonce Na (bƣớc 3). Tại bƣớc 4, B yêu cầu KDC cho
biết khóa công khai của A và yêu cầu một khóa phiên. B gửi cho KDC khóa
phiên của A để KDC đóng dấu khóa phiên với nonce này, nonce đƣợc bảo vệ
sử dụng khóa công khai của KDC. Tại bƣớc 5 KDC gửi về cho một bản sao
chứng nhận khóa công khai của A cộng thêm thông tin {Na, Ks,IDB}. Thông tin
này cho biết Ks là khóa bí mật đƣợc sinh ra bởi KDC và thay cho B gắn nó với
Na. Các ràng buộc giữa Ks và Na sẽ đảm bảo với A rằng Ks là đáng tin cậy.
Trong bƣớc 6 cả ba tham số {Na, Ks,IDB} sẽ đƣợc mã hóa sử dụng khóa bí mật
của KDC, cho phép B xác minh rằng cả ba thông số này là của KDC, nó cũng
đƣợc mã hóa sử dụng khóa công khai của B, vì vậy không có một đối tƣợng
nào có thể sử dụng ba thông số này để cố gắng thiết lập một một kết nối giả
mạo (gian lận) với A. Khóa phiên Ks sẽ đƣợc lấy lại để mã hóa Nb và trả nó về
cho B. Điều này đảm bảo với B rằng khóa phiên đã đƣợc A biết đến.
Giao thức này có vẻ an toàn với các kiểu tấn công khác. Tuy nhiên tác giả đã
tìm thấy lỗ hổng và gửi một phiên bản sửa đổi của thuật toán trong
[WOO92]:
Chữ ký số và giao thức chứng thực
18
Định danh của A, IDA, đƣợc têm vào các mục đƣợc mã hóa với khóa bí mật
của KDC ở bƣớc 5 và 6. Việc liên kết khóa phiên này (Ks) để xác định các bên
sẽ tham gia vào phiên làm việc. Các tài khoản định danh IDA cho ta biết giá trị
nonce Na trong thực tế đƣợc xem là duy nhất trong số các nonce đƣợc tạo bởi
A, không bao gồm các nonce đƣợc tạo bởi tất cả các bên. Vì vậy cặp {IDA,Na}
xác định duy nhất yêu cầu kết nối của A.
Trong hai ví dụ này và giao thức đƣợc mô tả trƣớc đó. Giao thức này đã đƣợc
chỉnh sửa và bổ sung để có đƣợc giao thức an toàn hơn. Những ví dụ này làm
nổi bật những khó khăn trong lĩnh vực xác thực (ngay cả khi các giá trị nhận
đƣợc là đúng).
SỰ CHỨNG THỰC MỘT CHIỀU
Một ứng của phƣơng pháp này đang đƣợc phát triển phổ biến trong lĩnh vực
thƣ điện tử. Lợi ích chủ yếu của xác thực một chiều trong thƣ điện tử là không
nhất thiết ngƣời nhận và ngƣời gửi đều cùng online (có thể offline). Thay vào
đó các e-mail đƣợc chuyển đến hộp thƣ điện tử của ngƣời nhận, nó sẽ đƣợc
đặt vào vùng đệm cho đến khi ngƣời nhận sẵn sàng đọc nó. Các “envelope”
hoặc tiêu đề của e-mail phải đƣợc trình bày rõ ràng, để thông điệp có thể
đƣợc xử lý bởi giao thức e-mail khi lƣu trữ và truyền thông, các giao thức e-
mail nhƣ Simple Mail Transfer Protocol(SMTP) hoặc X.400. Tuy nhiên, ta
thƣờng mong muốn rằng các giao thức xử lý mail không truy xuất đến văn
bản nguồn của thông điệp, bởi vì điều đó yêu cầu các giao thức xử lý mail
Chữ ký số và giao thức chứng thực
19
phải đáng tin cậy. Vì vậy, thông điệp e-mail nên đƣợc mã hóa nhƣ vậy để các
hệ thống xử lý mail không phải là chủ sở hữu của khóa giải mã
Một yêu cầu thứ hai của xác thực là. Thông thƣờng, ngƣời nhận muốn đảm
bảo rằng thông điệp phải đến từ ngƣời gửi.
Symmetric Encryption Approaches (Phương pháp mã hóa đối xứng)
Sử dụng mã hóa đối xứng, việc phân quyền phân phối khóa đƣợc trình bày
trong Hình 7.11 là không thực tế. Sơ đồ này yêu cầu ngƣời gửi, gửi đến ngƣời
nhận một yêu cầu và chờ gửi về cho ngƣời ngƣời nhận một khóa phiên, khóa
phiên này là duy nhất cho ngƣời yêu cầu nó.
Với một số cải tiến, chiến lƣợc phân phối khóa KDC minh họa trong Hình 7.9
là một lựa chọn điển hình cho mã hóa thƣ điện tử. Bởi vì chúng ta muốn tránh
yêu cầu ngƣời nhận (B) và ngƣời gửi A online cùng nhau, bƣớc 4 và 5 bị loại
ra. Đối với một thông điệp M, ta có thứ tự nhƣ sau:
Phƣơng pháp này đảm bảo rằng chỉ duy nhất ngƣới chờ nhận thông điệp mới
có thể đọc đƣợc nó. Phƣơng pháp này cũng cung cấp một mức độ xác thức
mà ngƣời gửi là A. Nhƣ đã nói lúc trƣớc, giao thức này không phát hiện kiểu
tấn công lặp lại. Một phƣơng pháp phòng chống là cung cấp một dấu thời
gian cùng với thông điệp. Vì sự trì hoãn trong việc xử lý e-mail nên dấu thời
gian có thể bị hạn chế khả năng.
Public-Key Encryption Approaches (Phương pháp mã hóa công khai)
Chúng ta tìm hiểu phƣơng pháp mã hóa khóa công khai để phù hợp với dịch
vụ thƣ điện tử, bao gồm sự mã hóa đơn giản toàn bộ thông điệp cho việc bảo
mật (Hình 11.1b), xác thực (11.1c) và cả hai (11.1d). Những phƣơng pháp này
Chữ ký số và giao thức chứng thực
20
yêu cầu hoặc ngƣời gửi biết khóa công khai của ngƣời nhận (bảo mật), hoặc
ngƣời nhận biết khóa công khai của ngƣời gửi (xác thực) hoặc cả hai biết khóa
công khai của nhau (bảo mật và xác thực). Ngoài ra thuật toán khóa công khai
phải đƣợc áp dụng một hoặc hai lần đối với những thông điệp dài.
Nếu bảo mật là quan trọng thì cách dƣới đây hiệu quả hơn:
Trong trƣờng hợp này, thông điệp đƣợc mã hóa một lần với khóa bí mật, nó
cũng đƣợc mã hóa một lần với khóa công khai của B. Chỉ có B mới có thể sử
dụng khóa bí mật tƣơng ứng để khôi phục thông điệp bị khóa và sau đó sử
dụng khóa này để giải mã thông điệp. Sơ đồ này hiệu quả hơn đơn giản chỉ là
mã hóa toàn bộ thông điệp với khóa công khai của B.
Nếu xác thực là quan trọng hơn thì sử dụng chữ ký số là đủ, nó đƣợc trình
bày nhƣ trong Hình 11.5c:
Phƣơng pháp này đảm bảo rằng A không thể phủ nhận việc gửi thông điệp.
Tuy nhiên kỹ thuật lại mở ra một kiểu tấn công mới. Bob gửi văn bản tới ông
chủ Alice của mình để báo cáo rằng mình đang có một ý tƣởng giúp tiết kiệm
tiền cho công ty. Anh ta ký vào thông điệp chữ ký của mình và sau đó gửi nó
tới hệ thống e-mail. Sau đó thông điệp sẽ đƣợc gửi tới mailbox của Alice.
Nhƣng giả sử rằng Max đã nghe đƣợc ý tƣởng của Bob và lấy cắp đƣợc mail
trong hàng đợi trƣớc khi nó đƣợc chuyển. Anh ta tìm thấy thông điệp của Bob
và gỡ chữ ký của Bob ra thay chữ ký của mình, sau đó chuyển thông điệp tới
hàng đợi mail của Alice. Max đã ăn cắp ý tƣởng của Bob.
Để tránh đƣợc điều này, cả thông điệp và chữ ký có thể đƣợc mã hóa với khóa
công khai của ngƣời nhận:
Sơ đồ thứ hai yêu cầu B biết khóa công khai của A và và khóa là đúng đắn và
kịp thời.Một cách hiệu quả đƣợc cung cấp để bảo đảm cho vấn đề này là sử
Chữ ký số và giao thức chứng thực
21
dụng chứng nhận chữ ký số, đƣợc trình bày trong Chƣơng 10. Chúng ta có
nhƣ sau:
Ngoài việc gửi thông điệp, A còn gửi cho B chữ ký đƣợc mã hóa với khóa
công khai của A và chứng chỉ của A. Chứng chỉ này đƣợc mã hóa với khóa bí
mật của trung tâm xác thực. Bên nhận thông điệp trƣớc hết sử dụng chứng chỉ
để đạt đƣợc khóa công khai của ngƣời gửi và xác minh nó là đúng đúng đắn,
sau đó sử dụng khóa công khai để xác minh thông điệp của chính nó (thông
điệp vừa nhận đƣợc). Ngoài ra toàn bộ thông điệp có thể đƣợc mã hóa một
lần với khóa bí mật; khóa bí mật cũng đƣợc truyền, mã hóa với khóa công
khai của B. Phƣơng pháp này đƣợc xem xét kỹ trong Chƣơng 15.
13.3 Digital Signature Standard
Viện tiêu chuẩn và công nghệ quốc gia (NIST) đã công bố chuẩn xử lý thông
tin liên bang FIPS 186, nó đƣợc biết đến nhƣ là chuẩn chữ ký số (DSS). Chuẩn
chữ ký số này đƣợc tạo ra bằng cách sử dụng thuật toán băm an toàn (SHA)
đƣợc mô tả trong Chƣơng 12 và trình bày một công nghệ chữ ký số mới, sử
dụng thuật toán chữ ký số (DSA). DSS đƣợc đề xuất lần đầu tiên vào năm
1991 sau đó đƣợc sửa đổi để phù hợp với những thông tin phản hồi nhận
đƣợc vào năm 1993. Có 1 phiên bản thử nghiệm vào năm 1996. Năm 2000 một
phiên bản mở rộng của chuẩn này đƣợc ban hành có tên là FIPS 186-2. Phiên
bản cuối cùng là sự kết hợp giữa thuật toán DSA dựa trên RSA và mật mã
đƣờng cong ellipse. Trong phần này chúng ta sẽ thảo luận về thuật toán DSS
gốc.
The DSS Approach (Các phương pháp tiếp cận DSS)
DSS sử dụng một thuật toán đƣợc cung cấp chức năng duy nhất là chữ ký số.
Không giống nhƣ RSA nó không đƣợc sử dụng để mã hóa hoặc trao đổi khóa.
Tuy nhiên nó sử dụng kỹ thuật khóa công khai.
Hình 13.1 thể hiện sự tƣơng phản của phƣơng pháp DSS và RSA đƣợc sử
dụng để tạo ra chữ ký số. Trong phƣơng pháp RSA, thông điệp đƣợc ký là
đầu vào của một hàm băm để tạo ra mã băm an toàn có chiều dài cố định. Mã
Chữ ký số và giao thức chứng thực
22
băm này sau đó đƣợc mã hóa sử dụng khóa bí mật của ngƣời gửi để tạo chữ
ký. Cả thông điệp và chữ ký sau đó đƣợc truyền đi. Ngƣời nhận sau đó nhận
đƣợc thông điệp này và cũng tạo ra mã băm dựa trên thông điệp nhận đƣợc.
Ngƣời nhận cũng sẽ giải mã chữ ký sử dụng khóa công khai của ngƣời gửi.
Nếu việc tính toán mã băm giống với chữ ký đƣợc giải mã thì chữ ký đƣợc
chấp nhận là có giá trị. Bởi vì chỉ có duy nhất ngƣời gửi có khóa bí mật và chỉ
có duy nhất ngƣời gửi mới có thể tạo ra giá trị của chữ ký.
Hình 13.1 Hai phương pháp chữ ký số
Phƣơng pháp DSS cũng sử dụng một hàm băm. Hàm băm đƣợc cung cấp nhƣ
là đầu vào của hàm chữ ký cùng với giá trị k đƣợc tạo ra ngẫu nhiên là những
thành phần của hàm chữ ký này. Hàm chữ ký cũng phụ thuộc vào khóa bí
mật (PRa) của ngƣời gửi và đặt các tham số đƣợc biết đến này tới một nhóm
các thông tin cơ bản. Chúng ta có thể xem xét những thiết lập để tạo thành
khóa công khai toàn cục(PUg). Kết quả là một chữ ký bao gồm hai thành phần
đặt tên là r và s.
[4]
Nó cũng cho phép các tham số được thêm vào thay đổi với mỗi
user để chúng là một phần khóa công khai của người sử dụng. Trong
thực thế nhiều khả năng khóa công khai toàn cục sẽ được sử dụng tách
biệt với khóa công khai của những người sử dụng.
Bên nhận thông điệp sẽ tạo ra mã băm dựa trên thông điệp nhận đƣợc. Mã
băm này cùng với chữ ký là đầu vào của hàm xác minh chữ ký. Hàm xác
Chữ ký số và giao thức chứng thực
23
minh cũng phụ thuộc vào khóa công khai toàn cục và khóa công khai của
ngƣời gửi (PUa), khóa công khai và khóa bí mật đƣợc tạo ra bởi ngƣời gửi.
Đầu ra của hàm xác minh là r (thành phần của chữ ký) nếu chữ ký là có giá trị.
Chữ ký đƣợc nhận đƣợc là của ngƣời gửi vì chỉ có ngƣời gửi mới có khóa bí
mật, mới có thể tạo ra đƣợc chữ ký hợp lệ.
Bây giờ chúng ta sẽ đi vào chi tiết của thuật toán.
The Digital Signature Algorithm (Thuật toán chữ ký số)
Thuật toán DSA dựa trên độ phức tạp của bài toán logarit rời rạc (trình bày
trong Chƣơng 8)
Và dựa vào hệ chữ ký Elgamal [ELGA85] và Schnorr [SCH91]
Hình 13.2 tổng quan về thuật toán. Có ba tham số dùng chung và đƣợc công
khai cho một nhóm ngƣời dùng. Bao gồm số nguyên tố q 160 bit, tiếp theo là
số nguyên tố p có độ dài trong khoảng 512 đến 1024 bits là ƣớc số của q chia
(p-1). Cuối cùng là g là kết quả của phép tính g = h(p1)/q mod p, trong đó h là một
số nguyên có giá trị nằm giữa 1 và p-1 và g phải lớn hớn 1. [5]
[5]
Trong lý thuyết số tính g dựa trên việc tính q mod p; xem
lại Chương 8.
Hình 13.2 Thuật Toán Chữ Ký Số (DSA)
Global Public – Key Component
p số nguyên tố thõa 2L-1 < p < 2L với 512 <= L <= 1024 và là bội số
của 64
q là ƣớc số của (p-1) với 2159 < q < 2160 , chiều dài 160 bit
g = h(p-1)/q mod p , với h là số nguyên bất kỳ 1< h < (p-1) sao cho
h(p-1)/q mod p > 1.
User’s Private Key
x là số ngẫu nhiên hoặc chuỗi số ngẫu nhiên 0 < x < q
User’s Public Key
y = gx mod p
User’s Per-Message Secret Number
k là số ngẫu nhiên hoặc chuỗi số ngẫu nhiên 0 < k < q
Chữ ký số và giao thức chứng thực
24
Signing
r = (gk mod p) mod q
s = [k-1 (H(M) + xr)] mod q
Signature= (r,s)
Verifying
w = (s’)-1 mod q
u1 = [H(M’)w] mod q
u2 =(r’)w mod q
v = [(gu-1yu-2) mod p] mod q
TETS: v=r’
M thông điệp đƣợc gửi
H(M) hàm băm của M sử dụng thuật toán SHA
M’,r’,s’ các phiên bản nhận đƣợc của M, r, s
Với những số mà mình có, mỗi user sẽ sử dụng khóa bí mật của mình để tạo
ra khóa công khai. Khóa bí mật x phải là một số phải là số có giá trị từ 1 tới (q -
1) và nên chọn là số ngẫu nhiên hoặc là chuỗi số ngẫu nhiên. Khóa công khai
đƣợc tính từ khóa cá nhân y= gx mod p. Việc biết x sau đó tính y thì đơn giản,
nhƣng khi biết y muốn tính x thì lại rất khó vì đó là bài toán logarit rời rạc của
y và g mod p (đã xét trong Chƣơng 8).
Để tạo chữ ký, user tính toán hai đại lƣợng r và s, hàm của khóa công bao gồm
các thành phần (p, q, g), khóa bí mật của user (x), giá trị băm của thông điệp
H(M), và một số k đƣợc chọn ngẫu nhiên và là duy nhất cho mỗi chữ ký.
Tại nơi nhận, việc xác thực đƣợc thực hiện nhƣ công thức trình bày trên Hình
13.2, phía nhận tạo ra một đại lƣợng v là một thành phần của hàm khóa công
khai, khóa công khai của ngƣời gửi và giá trị băm của thông điệp nhận đƣợc.
Nếu đại lƣợng v và r (thành phần của chữ ký) là giống nhau thì chữ ký là có
giá trị (là chữ ký của ngƣời gửi).
Hình 13.3 miêu tả hàm ký và xác nhận (xác minh chữ ký).
Hình 13.3 miêu tả hàm ký và xác nhận.
Chữ ký số và giao thức chứng thực
25
Cấu trúc của thuật toán nhƣ trình bày trong Hình 13.3, khá thú vị. Lƣu ý rằng
việc kiểm tra dựa vào giá trị r (giá trị xác thực) mà không phụ thuộc vào các
giá trị khác của thông điệp. Thay vào đó,r là hàm của k và ba thành phần của
khóa công khai hay r = (gk mod p) mod q , s = ( k-1H(M) + xr) mod q) trong đó
giá trị băm H(M), nghịch đảo của k, x.r là các đầu vào của hàm f1 .
Cấu trúc của hàm là để phía nhận có thể khôi phục r bằng cách sử dụng chữ
ký và thông điệp đến, khóa công khai của ngƣời dùng, và khóa công khai
toàn cục.
Việc kiểm chứng tại sao cho nếu v = r thì chữ ký đƣợc cho là đúng, nếu dựa
vào các hƣớng dẫn trong Hình 13.2 và 13.3 thì sẽ không chứng minh đƣợc
điều này. Nếu muốn giải thích rõ hơn thì độc giả tham khảo thêm tại website
của ebook này.
Với độ khó của bài toán logarit rời rạc, rất khó để bên thứ ba có thể khôi phục
k khi biết r hoặc khôi phục x từ s.
Một điểm đáng chú ý là việc tạo ra chữ ký chỉ yêu cầu tính toán (gk mod p).
Bởi vì gia trị này không phụ thuộc vào thông điệp đƣợc ký, nó có thể đƣợc
tính toán trƣớc. Trong trƣờng hợp này ngƣời sử dụng có thể tính toán lại r
đƣợc dùng để ký các văn bản khi cần. Công việc lúc này chỉ khác trƣớc là việc
tính nghịch đảo của k là (k-1). Một lần nữa các giá trị này lại đƣợc tính toán lại.
Chữ ký số và giao thức chứng thực
26
13.4 Khuyến nghị đọc và các trang Web khuyến cáo.
[AKL83] là một trang kinh điển thảo luận về chữ ký số vá còn có giá trị thực tế
rất cao. Ngoài ra, còn có những trang trang khác cũng rất hay, xem tại
[MITC92]
AKL83 Akl, S. "Digital Signatures: A Tutorial Survey." Computer,
February 1983.
MITC92 Mitchell, C.; Piper, F. ; and Wild, P. "Digital Signatures." In
[SIMM92a].
Các trang web khuyến cáo
Digital Signatures: NIST là trang cung cấp thông tin về các
phương pháp chữ ký số.
13. 5. Thuật ngữ chính, một số câu hỏi và một số vấn
đề.
Thuật ngữ chính
Trọng tài
Chữ ký số có trọng tài
Chữ ký số trực tiếp
Chữ ký số
Thuật toán chữ ký số (DSA)
Chuẩn chữ ký số (DSS)
Chữ ký số và giao thức chứng thực
27
Xác thực lẫn nhau
nonce
Xác thực một chiều
Tấn công lặp lại
Ngăn chặn - tấn công lặp lại
Dấu thời gian
Câu hỏi ôn tập:
13.1 Danh sách hai tranh chấp nảy sinh trong hoàn cảnh việc xác thực
thông điệp.
13.2 Các tính chất một chữ ký số cần phải có là gì?
13.3 Những yêu cầu của 1 chƣơng trình chữ ký số cần phải đáp ứng là
gì?
13.4 Sự khác nhau giữa chữ ký số trực tiếp và chữ ký số có trọng tài là
gì?
13.5 Chức năng chữ ký và chức năng bảo mật đƣợc đƣa vào thông điệp
theo thứ tự nào? Và tại sao?
13.6 Một số mối đe dọa liên kết với một chƣơng trình trực tiếp chữ ký
số là gì?
13.7 Cho ví dụ về tấn công lặp lại.
13.8 Ba phƣơng pháp chung để xử lý tấn công lặp lại.
13.9 Ngăn chặn-tấn công trở lại là gì?
Các vấn đề:
13.1 Sửa đổi chữ ký số của Bảng 13.1a và b để cho phép ngƣời nhận để
kiểm chứng chữ ký.
Chữ ký số và giao thức chứng thực
28
13.2 Sửa đổi chữ ký số của Bảng 13.1c để tránh tăng gấp ba mã hoá của
toàn bộ thông điệp.
13.3 Thảo luận ở Bảng 13.1c, đã nói rõ các liên minh để không thể lừa
gạt đƣợc. Trong thực tế, có một khả năng. Mô tả nó và giải thích tại sao
nó sẽ có sự tín nhiệm nhỏ rất chúng ta có thể một cách an toàn lờ đi.
13.4 Ở Phần 13.2, chúng tôi phác thảo kế hoạch khoá công khai dự kiến
trong [WOO92a] cho phân phối của khóa bí mật. Các phiên bản sửa đổi
bao gồm IDA trong các bƣớc 5 và 6. Điều gì tấn công, cụ thể, là phản đối
bằng cách sửa đổi này?
13.5 Giao thức tham khảo trong Vấn đề 13.1 có thể giảm từ bảy bƣớc
đến năm, có trình tự sau :
(1) A  B:
(2) B  KDC:
(3) KDC  B:
(4) B  A:
(5) A  B:
Hiển thị thông báo truyền ở mỗi bƣớc. Gợi ý: Thông báo cuối cùng
trong giao thức này giống nhƣ thông báo cuối cùng trong giao thức gốc.
13.6 Có tham khảo đến kìm nén - lặp lại tấn công mô tả trong Phần 13.2:
a. Hãy cho một ví dụ về một cuộc tấn công khi một bên là xung
clock trƣớc đó của KDC.
b. Hãy cho một ví dụ về một cuộc tấn công khi một bên là xung
clock trƣớc đó của một bên khác.
13.7 Có ba phƣơng pháp điển hình để sử dụng nhƣ thách thức. Giả sử
Na là một nonce tạo ra bởi A, A và B cùng chia sẻ khóa K, và f() là một
chức năng chẳng hạn nhƣ tăng. Ba tập quán là:
Chữ ký số và giao thức chứng thực
29
Mô tả tình huống theo đó mỗi sử dụng thích hợp.
13.8 Tiến sĩ Watson kiên nhẫn đợi cho đến khi Sherlock Holmes kết
thúc. " Một số vấn đề thú vị để giải quyết, Holmes? ng ấy hỏi khi
Holmes rời khỏi cuối cùng.
"Ôi, không chính xác. Tôi chỉ đã kiểm tra thƣ điện tử của tôi rồi làm một
vài thí nghiệm mạng thay vì những hoá chất bình thƣờng của tôi. Tôi có
chỉ một khách hàng bây giờ và tôi đã giải quyết vấn đề của anh ấy. Nếu
tôi nhớ chính xác, bạn từng đề cập khóa mật mã giữa sở thích kia của
bạn, vì vậy nó có thể làm bạn quan tâm. "
"Ừm, Tôi chỉ là ngƣời chuyên về mật mã nghiệp dƣ, Holmes. Tất nhiên
Tôi quan tâm đến vấn đề. Nó về là gì? "
"Khách hàng của tôi là ông Hosgrave, giám đốc của một ngân hàng nhỏ
nhƣng tiến bộ. Ngân hàng làm hoàn toàn trên máy vi tính và tất nhiên
sử dụng mạng truyền thông rộng rãi. Ngân hàng đã sử dụng RSA để
bảo vệ dữ liệu của mình và ký các văn bản kỹ thuật số đƣợc truyền đạt.
Bây giờ ngân hàng muốn giới thiệu một số thay đổi trong thủ tục của
nó, trong đó, nó cần phải kỹ thuật số ký một số văn bản do hai bên ký
1. Bên ký hiệp ƣớc đầu tiên chuẩn bị tài liệu, tạo thành chữ ký của
nó, và chuyển tài liệu cho bên ký hiệp ƣớc thứ hai
2. Ngƣời ký thứ hai nhƣ là một bƣớc đầu tiên phải xác minh rằng
tài liệu đã thực sự có chữ ký của ngƣời ký tên đầu tiên. Sau đó
kết hợp chữ ký của mình vào chữ ký của tài liệu để cho ngƣời
nhận, cũng nhƣ thành viên nào của công chúng, có thể xác nhận
rằng tài liệu đã thực sự có chữ ký của cả hai bên ký. Ngoài ra chỉ
Chữ ký số và giao thức chứng thực
30
có ngƣời ký tên thứ hai có thể xác minh chữ ký của tài liệu sau
bƣớc (1), có nghĩa là ngƣời nhận (hoặc thành viên nào của công
chúng) có thể chỉ để xác minh các tài liệu hoàn chỉnh với chữ ký
của cả hai bên ký, nhƣng không phải tài liệu ở dạng trung gian
của nó, nơi chỉ có một bên ký kết đã ký tên vào nó. Hơn nữa, các
ngân hàng muốn sử dụng các module hiện tại của mình có hỗ trợ
RSA kiểu chữ ký số."
"Hm, Tôi hiểu nhƣ thế nào RSA có thể đƣợc dùng để ký theo số thức tài
liệu vào lúc 1 giờ bên ký hiệp ƣớc, Holmes. Tôi đoán bạn đã giải quyết
đƣợc vấn đề của ông Hosgrave bởi khái quát thích hợp của RSA chữ ký
số."
"Chính xác, Watson," Sherlock Holmes gật đầu. "Ban đầu, chữ ký kỹ thuật
số RSA đƣợc hình thành bằng cách mã hóa các tài liệu của khoá giải mã tin
của khóa d , và chữ ký có thể đƣợc kiểm chứng bởi bất cứ ai thông qua giải
mã của nó bằng cách sử dụng mã hóa khóa công khai đƣợc biết đến khóa
'e'. Ngƣời ta có thể xác minh rằng chữ ký S đƣợc thành lập bởi có những
ngƣời biết d, mà lẽ ra phải đƣợc bên ký hiệp ƣớc duy nhất? Bây giờ các
vấn đề của ông Hosgrave có thể đƣợc giải quyết trong cùng một cách bởi
khái quát nhẹ của quá trình, đó là ..."
Kết thúc giải thích.
13.9 DSA xác định nếu quy trình thế hệ chữ ký dẫn đến giá trị của s = 0, một
giá trị mới của k nên đƣợc tạo ra và chữ ký phải đƣợc tính toán lại. Tại sao?
13.10 Chuyện gì sẽ xảy ra nếu giá trị k đƣợc dùng tạo ra chữ ký DSA là làm
hại?
13.11 Các tài liệu DSS bao gồm một thuật toán đƣợc đề nghị cho thử nghiệm
một số cho tính nguyên tố, nhƣ sau:
1. [Chọn w] Cho w là một số nguyên lẻ ngẫu nhiên. Sau đó (w 1) thậm
chí còn và có thể đƣợc thể hiện trong mẫu 2a m với m lẻ. Vậy là, 2a là bộ
nguồn lớn nhất của 2 chia cho (w 1).
2. [Tạo b] Cho b là một số nguyên ngẫu nhiên trong khoảng 1 < b <w.
Chữ ký số và giao thức chứng thực
31
3. [Exponentiate+ Đặt j = 0 và z =bm mod w.
4. [Done+ Nếu j = 0 và z = 1, hoặc nếu z = w 1, sau đó w vƣợt qua thử
nghiệm và có thể là số nguyên tố; đi đến bƣớc 8.
5. [Chấm dứt+ Nếu j > 0 và z = 1, sau đó w là không phải là số nguyên
tố, chấm dứt thuật toán cho w.
6. [Tăng j+ Đặt j = j + 1. Nếu j <a, thiết lập z = z2 mod w và đi đến bƣớc 4.
7. [Chấm dứt] w không phải số nguyên tố, chấm dứt thuật toán cho w.
8. [Kiểm tra một lần nữa+ Nếu đủ các giá trị ngẫu nhiên của b đã đƣợc
thử nghiệm, sau đó chấp nhận w là số nguyên tố và chấm dứt thuật
toán, nếu không, hãy xem bƣớc 2.
a. Giải thích thuật toán công trình
b. Chỉ ra rằng nó tƣơng đƣơng với các bài kiểm tra Miller-Rabin
đƣợc mô tả trong Chƣơng 8.
13.12 Với DSS, vì giá trị của k đƣợc tạo ra cho mỗi chữ ký, ngay cả khi cùng
một thông điệp đƣợc ký kết hai lần khác nhau, chữ ký sẽ khác nhau. Điều này
không đúng với chữ ký RSA. Các ý nghĩa thực tiễn của sự khác biệt này là gì?
13.13 Xem xét các vấn đề của việc tạo ra các thông số tên miền cho DSA. Giả
sử chúng ta có số nguyên tố đã đƣợc tìm thấy p và q sao cho q | (p 1).chúng ta
cần tìm g thuộc Zp with g of order q mod p. Hãy xem xét hai thuật toán sau
đây:
Chữ ký số và giao thức chứng thực
32
a. Chứng minh rằng giá trị trả về của thuật toán 1 có thứ tự q.
b. Chứng minh rằng giá trị trả về của thuật toán 1 có thứ tự q.
c. Giả sử P = 40193 và q = 157. Bạn mong bao nhiêu lần lặp lại vòng lặp?
Thuật toán 1 để làm trƣớc khi nó tìm máy phát điện?
d. Nếu p là 1024 bit và q là 160 bit, bạn sẽ đề nghị dùng thuật toán 1 để
tìm g phải không? Giải thích.
e. Giả sử P = 40193 và q = 157. Xác suất mà thuật toán 2 tính một máy
phát điện trong vòng lặp đi lặp lại đầu tiên của nó là gì?
13.14 Ta thƣờng có khuynh hƣớng cố phát triển phiên bản trên Diffie -
Hellman điều đó có thể đƣợc dùng làm chữ ký số. Đây là cái mà là đơn giản
hơn DSA và không đòi hỏi số ngẫu nhiên bí mật ngoài khóa riêng
Yếu tố công khai:
q số nguyên tố
α α < q và α là gốc nguyên thuỷ của q
Khóa riêng:
X X < q
Khoá công khai:
Y = aX mod q
Để đăng một thông điệp M, tính h = H (M), mã hàm băm của thông
điệp. Chúng tôi yêu cầu gcd(h, q 1) = 1. Nếu không, phụ thêm hàm băm
vào thông điệp và tính toán một hàm băm mới. Tiếp tục quy trình này
cho đến mã băm đƣợc tạo ra tƣơng đối cơ bản để (q 1). Sau đó tính Z để
đáp ứng Z x h _ X (mod q 1). Chữ ký của thôgn điệp là aZ. Để xác minh
chữ ký, ngƣời sử dụng xác nhận rằng Y = (AZ)h = AX mod q.
a. Kế hoạch này làm việc cho thấy rằng quy trình kiểm tra tạo ra
bình đẳng nếu chữ ký là hợp lệ.
Chữ ký số và giao thức chứng thực
33
b. Chƣơng trình này không thể chấp nhận bằng cách mô tả một
kỹ thuật đơn giản để giả mạo chữ ký của ngƣời dùng trên một
tin nhắn tùy ý.
13.15 Đề xuất đầu tiên cho kế hoạch chữ ký số sử dụng mã hoá cân đối
đƣợc dựa trên những thứ sau đây: Để ký n - bit thông báo, ngƣời gửi
phát sinh ngẫu nhiên trƣớc khóa mật mã 56 -bit 2n :
k1, K1, k2, K2,..., kn, Kn
đƣợc giữ bí mật. Ngƣời gửi chuẩn bị trƣớc hai bộ tƣơng ứng tham biến
việc làm hợp lệ 64 bit nonsecret, đƣợc công bố :
u1, V1, u2, V2,..., un, Vn and v1, V1, v2, V2,..., vn, Vn
vi = E(ki, ui), Vi = E(ki, Ui)
Các tin M đƣợc ký nhƣ sau. Đối với các bit thứ i của tin nhắn, hoặc ki
hoặc Ki đƣợc đính kèm vào tin nhắn, tùy thuộc vào việc các bit tin là 0
hoặc 1. Ví dụ, nếu ba bit đầu tiên của tin nhắn là 011, sau đó ba phím
đầu tiên của chữ ký là k1, K2, K3.
a. Làm thế nào xác nhận tin nhắn?
b. Kỹ thuật an toàn không?
c. Làm thế nào nhiều lần cùng một bộ khóa bí mật có thể đƣợc sử
dụng an toàn cho các tin nhắn khác nhau?
d. Cái gì, nếu có, vấn đề thực tế cho phƣơng pháp hiện nay?
Chữ ký số và giao thức chứng thực
34
TÀI LIỆU DỊCH
[1] Cryptography and Network Security, Fourth Edition – William Stallings.

More Related Content

Similar to 7222 chu ky_so_giao_thuc_chung_thuc_h39_lt_20130409025611

701 -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th
701  -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th701  -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th
701 -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6thNTPhuong
 
301 -hop_dong_dien_tu_van
301  -hop_dong_dien_tu_van301  -hop_dong_dien_tu_van
301 -hop_dong_dien_tu_vanNTPhuong
 
301 -hop_dong_dien_tu_van
301  -hop_dong_dien_tu_van301  -hop_dong_dien_tu_van
301 -hop_dong_dien_tu_vanNTPhuong
 
Công nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐTCông nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐTThuy Na
 
Nghiên cứu 1 số giải pháp an toàn và bảo thông tin trong giao dịch điện tử
Nghiên cứu 1 số giải pháp an toàn và bảo  thông tin trong  giao dịch điện tửNghiên cứu 1 số giải pháp an toàn và bảo  thông tin trong  giao dịch điện tử
Nghiên cứu 1 số giải pháp an toàn và bảo thông tin trong giao dịch điện tửVu Phong
 
Ssl project it-slideshares.blogspot.com
Ssl project it-slideshares.blogspot.comSsl project it-slideshares.blogspot.com
Ssl project it-slideshares.blogspot.comphanleson
 
Chữ ký số Digital Signature.pptx
Chữ ký số Digital Signature.pptxChữ ký số Digital Signature.pptx
Chữ ký số Digital Signature.pptxssuserf23293
 
206 -bai_giang_hop_dong_dien_tu_-_2nd
206  -bai_giang_hop_dong_dien_tu_-_2nd206  -bai_giang_hop_dong_dien_tu_-_2nd
206 -bai_giang_hop_dong_dien_tu_-_2ndNTPhuong
 
206 -bai_giang_hop_dong_dien_tu_-_2nd
206  -bai_giang_hop_dong_dien_tu_-_2nd206  -bai_giang_hop_dong_dien_tu_-_2nd
206 -bai_giang_hop_dong_dien_tu_-_2ndNTPhuong
 
Lab security+ Bài 10: CA
Lab security+ Bài 10: CALab security+ Bài 10: CA
Lab security+ Bài 10: CAxeroxk
 

Similar to 7222 chu ky_so_giao_thuc_chung_thuc_h39_lt_20130409025611 (18)

ANMVT.pptx
ANMVT.pptxANMVT.pptx
ANMVT.pptx
 
Chu kii so
Chu kii soChu kii so
Chu kii so
 
Ch13
Ch13Ch13
Ch13
 
701 -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th
701  -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th701  -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th
701 -bai_giang_chu_ky_so_nghi_dinh_chu_ky_so_6th
 
Ch17
Ch17Ch17
Ch17
 
Ch17
Ch17Ch17
Ch17
 
301 -hop_dong_dien_tu_van
301  -hop_dong_dien_tu_van301  -hop_dong_dien_tu_van
301 -hop_dong_dien_tu_van
 
301 -hop_dong_dien_tu_van
301  -hop_dong_dien_tu_van301  -hop_dong_dien_tu_van
301 -hop_dong_dien_tu_van
 
Công nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐTCông nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐT
 
Nghiên cứu 1 số giải pháp an toàn và bảo thông tin trong giao dịch điện tử
Nghiên cứu 1 số giải pháp an toàn và bảo  thông tin trong  giao dịch điện tửNghiên cứu 1 số giải pháp an toàn và bảo  thông tin trong  giao dịch điện tử
Nghiên cứu 1 số giải pháp an toàn và bảo thông tin trong giao dịch điện tử
 
Chữ ký số là gì?
Chữ ký số là gì?Chữ ký số là gì?
Chữ ký số là gì?
 
Ssl project it-slideshares.blogspot.com
Ssl project it-slideshares.blogspot.comSsl project it-slideshares.blogspot.com
Ssl project it-slideshares.blogspot.com
 
Chữ ký số là gì ? Khái niệm và cách thức hoạt động
Chữ ký số là gì ? Khái niệm và cách thức hoạt độngChữ ký số là gì ? Khái niệm và cách thức hoạt động
Chữ ký số là gì ? Khái niệm và cách thức hoạt động
 
Chữ ký số Digital Signature.pptx
Chữ ký số Digital Signature.pptxChữ ký số Digital Signature.pptx
Chữ ký số Digital Signature.pptx
 
206 -bai_giang_hop_dong_dien_tu_-_2nd
206  -bai_giang_hop_dong_dien_tu_-_2nd206  -bai_giang_hop_dong_dien_tu_-_2nd
206 -bai_giang_hop_dong_dien_tu_-_2nd
 
206 -bai_giang_hop_dong_dien_tu_-_2nd
206  -bai_giang_hop_dong_dien_tu_-_2nd206  -bai_giang_hop_dong_dien_tu_-_2nd
206 -bai_giang_hop_dong_dien_tu_-_2nd
 
Hiệu lực của văn bản được ký bằng chữ ký điện tử
Hiệu lực của văn bản được ký bằng chữ ký điện tửHiệu lực của văn bản được ký bằng chữ ký điện tử
Hiệu lực của văn bản được ký bằng chữ ký điện tử
 
Lab security+ Bài 10: CA
Lab security+ Bài 10: CALab security+ Bài 10: CA
Lab security+ Bài 10: CA
 

More from letranganh

Bloom2 140709095102-phpapp01
Bloom2 140709095102-phpapp01Bloom2 140709095102-phpapp01
Bloom2 140709095102-phpapp01letranganh
 
Big data là gì và người ta khai thác
Big data là gì và người ta khai thácBig data là gì và người ta khai thác
Big data là gì và người ta khai thácletranganh
 
Cách xem máy tính dùng uefi hay bios
Cách xem máy tính dùng uefi hay biosCách xem máy tính dùng uefi hay bios
Cách xem máy tính dùng uefi hay biosletranganh
 
Quy tắc đặt dấu thanh trong chữ quốc ngữ
Quy tắc đặt dấu thanh trong chữ quốc ngữQuy tắc đặt dấu thanh trong chữ quốc ngữ
Quy tắc đặt dấu thanh trong chữ quốc ngữletranganh
 
Shrm bo ck-final4
Shrm bo ck-final4Shrm bo ck-final4
Shrm bo ck-final4letranganh
 
Tiếng anh chuyên nghành cntt
Tiếng  anh chuyên nghành cnttTiếng  anh chuyên nghành cntt
Tiếng anh chuyên nghành cnttletranganh
 
123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2
123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2
123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2letranganh
 
74518107labk0009 y0 yky_20130525014544_15188
74518107labk0009 y0 yky_20130525014544_1518874518107labk0009 y0 yky_20130525014544_15188
74518107labk0009 y0 yky_20130525014544_15188letranganh
 
41 xác thực điện tử dịch vụ hạ tầng xây dựng chính phủ điện tử
41 xác thực điện tử   dịch vụ hạ tầng xây dựng chính phủ điện tử41 xác thực điện tử   dịch vụ hạ tầng xây dựng chính phủ điện tử
41 xác thực điện tử dịch vụ hạ tầng xây dựng chính phủ điện tửletranganh
 
34846326 th8772
34846326 th877234846326 th8772
34846326 th8772letranganh
 
24 2010-tt-btttt
24 2010-tt-btttt24 2010-tt-btttt
24 2010-tt-bttttletranganh
 
Bai thuc hanh qtvphqhttdvpcb
Bai thuc hanh qtvphqhttdvpcbBai thuc hanh qtvphqhttdvpcb
Bai thuc hanh qtvphqhttdvpcbletranganh
 

More from letranganh (20)

Bloom2 140709095102-phpapp01
Bloom2 140709095102-phpapp01Bloom2 140709095102-phpapp01
Bloom2 140709095102-phpapp01
 
Big data là gì và người ta khai thác
Big data là gì và người ta khai thácBig data là gì và người ta khai thác
Big data là gì và người ta khai thác
 
Cách xem máy tính dùng uefi hay bios
Cách xem máy tính dùng uefi hay biosCách xem máy tính dùng uefi hay bios
Cách xem máy tính dùng uefi hay bios
 
Quy tắc đặt dấu thanh trong chữ quốc ngữ
Quy tắc đặt dấu thanh trong chữ quốc ngữQuy tắc đặt dấu thanh trong chữ quốc ngữ
Quy tắc đặt dấu thanh trong chữ quốc ngữ
 
Shrm bo ck-final4
Shrm bo ck-final4Shrm bo ck-final4
Shrm bo ck-final4
 
Tiếng anh chuyên nghành cntt
Tiếng  anh chuyên nghành cnttTiếng  anh chuyên nghành cntt
Tiếng anh chuyên nghành cntt
 
Dienvanbemac
DienvanbemacDienvanbemac
Dienvanbemac
 
123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2
123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2
123 b o-de-thi-thu-dh.thuvienvatly.com.53bd6.39188-2
 
74518107labk0009 y0 yky_20130525014544_15188
74518107labk0009 y0 yky_20130525014544_1518874518107labk0009 y0 yky_20130525014544_15188
74518107labk0009 y0 yky_20130525014544_15188
 
41 xác thực điện tử dịch vụ hạ tầng xây dựng chính phủ điện tử
41 xác thực điện tử   dịch vụ hạ tầng xây dựng chính phủ điện tử41 xác thực điện tử   dịch vụ hạ tầng xây dựng chính phủ điện tử
41 xác thực điện tử dịch vụ hạ tầng xây dựng chính phủ điện tử
 
34846326 th8772
34846326 th877234846326 th8772
34846326 th8772
 
24 2010-tt-btttt
24 2010-tt-btttt24 2010-tt-btttt
24 2010-tt-btttt
 
Bai thuc hanh qtvphqhttdvpcb
Bai thuc hanh qtvphqhttdvpcbBai thuc hanh qtvphqhttdvpcb
Bai thuc hanh qtvphqhttdvpcb
 
133
133133
133
 
Phuluc1
Phuluc1Phuluc1
Phuluc1
 
Phuluc2
Phuluc2Phuluc2
Phuluc2
 
Phuluc3
Phuluc3Phuluc3
Phuluc3
 
Phuluc4
Phuluc4Phuluc4
Phuluc4
 
Phuluc2
Phuluc2Phuluc2
Phuluc2
 
Phuluc1
Phuluc1Phuluc1
Phuluc1
 

7222 chu ky_so_giao_thuc_chung_thuc_h39_lt_20130409025611

  • 1. 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. Tuy nhiên bài dịch vẫn không thể tránh khỏi những sai sót về lời dịch, chính tả.
  • 2. Chữ ký số và giao thức chứng thực 2 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 Một số vấn đề
  • 3. Chữ ký số và giao thức chứng thực 3 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 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 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).
  • 4. Chữ ký số và giao thức chứng thực 4 đó 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.
  • 5. Chữ ký số và giao thức chứng thực 5 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.
  • 6. Chữ ký số và giao thức chứng thực 6 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.
  • 7. Chữ ký số và giao thức chứng thực 7 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.
  • 8. Chữ ký số và giao thức chứng thực 8 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.
  • 9. Chữ ký số và giao thức chứng thực 9 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
  • 10. Chữ ký số và giao thức chứng thực 10 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.
  • 11. Chữ ký số và giao thức chứng thực 11  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.
  • 12. Chữ ký số và giao thức chứng thực 12 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
  • 13. Chữ ký số và giao thức chứng thực 13 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 đƣợc ƣớc tính thông thƣờng là khoảng thời gian nằm giữa xung clock của KDC và xung clock của A hoặc B, đƣợc dự kiến là thời gian trễ trên mạng. Mỗi node (trạm) có thể thiết lập xung clock của mình dựa vào trạm đƣợc chọn làm nguồn. Bởi vì dấu thời gian T đƣợc mã hóa an toàn sử dụng khóa chính, do đó nếu một kẻ tấn cống ngay cả khi biết khóa phiên cũ cũng không thể thành công nếu tấn công và phản hồi lại tại bƣớc 3 sẽ bị phát hiện bởi B, vì không phù hợp với dấu thời gian. Nhận xét cuối cùng là: Tại bƣớc 4 và 5 không có trong phần trình bày ban đầu [DENN81+ nhƣng đƣợc bổ sung trong [DENN82]. Những bƣớc này xác nhận việc tiếp nhận khóa phiên tại B. Giao thức Denning có vẻ nhƣ cung cấp mức độ an toàn cao hơn so sánh với giao thức Needham/Schroeder. Tuy nhiên mối quan tâm mới ở đây là: sơ đồ này yêu cầu sự tin cậy của xung clock đƣợc sử dụng để đồng bộ trên mạng.
  • 14. Chữ ký số và giao thức chứng thực 14 [GONG92] chỉ ra một nguy cơ. Nguy cơ này dựa trên thực tế rằng việc phân phối xung clock có thể không đồng bộ nếu bị tấn công hoặc xảy ra lỗi trên đồng hồ hoặc lỗi khi đồng bộ.[2] Một vấn đề xảy ra khi xung clock của ngƣời gửi vƣợt trƣớc xung clock của ngƣời nhận. Trong trƣờng hợp này kẻ tấn công có thể chặn các thông điệp từ ngƣời gửi và phát lại nó khi dấu thời gian của thông điệp phù hợp với dấu thời gian cùa phía nhận. Thông điệp phát lại này có thể cho kết quả không mong đợi (bị sai lệch). Gong đề cập đến cuộc tấn công gọi là suppres –replay attacks. [2] Như những thứ có thể và đang diễn ra. Trong những năm gần đây, flawed chip được sử dụng trong một số máy tính và trong những hệ thống điện tử khác để quản lý thời gian. Chip này có xu hướng bỏ qua một ngày [NEUM90]. Một cách để ngăn chặn kiểu tấn công lặp lại yêu cầu các bên tham gia phải thƣờng xuyên theo dõi xung clock của họ tƣơng phản với xung clock của KDC. Một cách khác là tránh sự đồng bộ xung clock nếu không cần thiết, việc này dựa trên giao thức bắt tay và sử dụng nonces.Cách này không dễ bị tấn công lặp lại bởi vì nonce của ngƣời nhận sẽ đƣợc chọn trong tƣơng lai và không thể đoán trƣớc đƣợc ngƣời gửi. Giao thức Needham/Schroeder dựa vào một nonce duy nhất, nhƣ chúng ta đã biết đã có một lỗ hổng khác ở đây. Trong [KEHN92] một ý tƣởng đƣợc đƣa ra tập trung vào vấn đề suppress- replay attacks và đồng thời khắc phục những vấn đề trong giao thức Needham/Schroeder. Sau đó một mâu thuẫn trong giao thức sau đó đƣợc ghi chú và một chiến lƣợc nâng cao đƣợc trình bày trong [NEUM93.a]. [3] Giao thức nhƣ sau: [3] Đó là điều khó khăn để có được sự thật.
  • 15. Chữ ký số và giao thức chứng thực 15 Bây giờ chúng ta xem xét thứ tự các bƣớc: 1. Khởi tại của trao đổi chứng thực bằng cách tạo ra một nonce, Na, cùng với định danh của nó đƣợc gửi tới B trong plaintext. Nonce này sẽ đƣợc gửi lại A trong một thông điệp đƣợc mã hóa bao gồm khóa phiên và đảm bảo tính kịp thời của A. 2. B sẽ yêu cầu tới KDC để nhận một khóa phiên nếu cần thiết. Thông điệp của nó tới B bao gồm định danh của nó và nonce, Nb nonce này sẽ đƣợc gửi trả lại cho B đính kèm trong thông điệp đƣợc mã hóa,cùng với khóa phiên và đảm bảo tính kịp thời của B. KDC dựa vào những thông tin này để cấp chứng chỉ cho A. Những thông tin này quy định cụ thể thứ tự nhận chứng chỉ, một chứng chỉ có một thời gian hết hạn và nonce nhận đƣợc từ A. 3. KDC sẽ gửi tới A nonce của B và những thông tin đƣợc mã hóa với khóa mà B chia sẻ với KDC. Những block server này xem nhƣ là những giấy phép để A có thể sử dụng trong những lần xác thực tiếp theo, sẽ đƣợc nhìn thấy ở phần sau. KDC cũng gởi tới A những thông tin đƣợc mã hóa với khóa bí mật dùng chung giữa A và KDC. Những block này xác nhận rằng B đã nhận đƣợc những thông điệp gửi đến từ A (IDB) và đây là các thông điệp kịp thời chứ không phải là thông điệp lặp lại (Na) và cung cấp với A khóa phiên (Ks) và giới hạn thời gian sử dụng của nó là (Tb). 4. A truyền chứng chỉ (ticket) tới B cùng với nonce của B , sau đó mã hóa với khóa phiên. Chứng chỉ cung cấp cho B cùng với khóa bí mật đƣợc sử dụng để giải mã E (Ks,Nb) dùng để khôi phục nonce. Trong thực tế nonce của B đƣợc mã hóa với khóa phiên xác thực để thông điệp có thể đến từ A mà không bị replay (phát lại). Giao thức cung cấp một sự an toàn, có nghĩa là thiết lập giữa A và B trong trong một phiên làm việc là an toàn với việc sử dụng khóa phiên. Hơn nữa, giao thức này cho phép A sở hữu một khóa để có thể sử dụng trong những lần xác thực tiếp theo, tránh sự liên tục liên lạc với máy chủ xác thực nếu không cần thiết. Giả sử rằng A và B thiết lập với nhau một phiên (làm việc) sử dụng giao thức đã nói ở trên và sau đó kết thúc phiên làm việc.
  • 16. Chữ ký số và giao thức chứng thực 16 Sau đó, trong thời gian thiết lập kết nối của giao thức, A đề nghị một phiên làm việc mới với B. Giao thức sẽ xảy ra nhƣ sau: Khi B nhận đƣợc thông điệp ở bƣớc 1, nó xác minh chứng chỉ là chƣa hết hạn. Các nonces N’a và N’b mới đƣợc tạo ra đảm bảo rằng mỗi bên không bị tấn công phát lại. Trong tất cả các bƣớc trên thời gian quy định trong Tb tƣơng đƣơng với xung clock của B. Vì vậy timestamp không yêu cầu đồng bộ, bởi vì B chỉ kiểm tra dấu thời gian do mình tạo ra. Public-Key Encryption Approaches (Phương pháp mã hóa công khai) Trong Chƣơng 10 chúng ta đã xem xét một phƣơng pháp sử dụng mã hóa khóa công khai cho mục đích phân phối khóa phiên (Hình 10.6). Giao thức này giả sử rằng mỗi bên sở hữu khóa công khai của nhau. Giả sử này có thể không thực tế: Giao thức sử dụng dấu thời gian đƣợc cung cấp trong [DENN8]: Trong trƣờng hợp này, hệ thống trung tâm đƣợc xem nhƣ dịch vụ xác thực (AS), bởi vì nó không thực sự chịu trách nhiệm phân phối khóa bí mật. Thay vào đó, AS cung cấp chứng nhận khóa công khai. Khóa phiên đƣợc lựa chọn và đƣợc mã hóa bởi A; do đó, không có nguy hiểm nào tới AS. Dấu thời gian bảo vệ khóa khỏi sự tấn công lặp lại.
  • 17. Chữ ký số và giao thức chứng thực 17 Giao thức này là nhỏ gọn (đơn giản), nhƣng nhƣ đã nói ở trƣớc việc yêu cầu đồng bộ của xung clock. Một phƣơng pháp khác đƣợc đề xuất bởi Woo and Lam [WOO92a], sử dụng nonces. Giao thức bao gồm các bƣớc sau: Tại bƣớc một, A thông báo với KDC về ý định muốn thiết lập một kết nối an toàn với B. KDC trả về cho A một bản so chứng nhận khóa công khai của B (bƣớc 2). Sử dụng khóa công khai của B, A thông báo với B về đề nghị muốn giao tiếp với B và tới một nonce Na (bƣớc 3). Tại bƣớc 4, B yêu cầu KDC cho biết khóa công khai của A và yêu cầu một khóa phiên. B gửi cho KDC khóa phiên của A để KDC đóng dấu khóa phiên với nonce này, nonce đƣợc bảo vệ sử dụng khóa công khai của KDC. Tại bƣớc 5 KDC gửi về cho một bản sao chứng nhận khóa công khai của A cộng thêm thông tin {Na, Ks,IDB}. Thông tin này cho biết Ks là khóa bí mật đƣợc sinh ra bởi KDC và thay cho B gắn nó với Na. Các ràng buộc giữa Ks và Na sẽ đảm bảo với A rằng Ks là đáng tin cậy. Trong bƣớc 6 cả ba tham số {Na, Ks,IDB} sẽ đƣợc mã hóa sử dụng khóa bí mật của KDC, cho phép B xác minh rằng cả ba thông số này là của KDC, nó cũng đƣợc mã hóa sử dụng khóa công khai của B, vì vậy không có một đối tƣợng nào có thể sử dụng ba thông số này để cố gắng thiết lập một một kết nối giả mạo (gian lận) với A. Khóa phiên Ks sẽ đƣợc lấy lại để mã hóa Nb và trả nó về cho B. Điều này đảm bảo với B rằng khóa phiên đã đƣợc A biết đến. Giao thức này có vẻ an toàn với các kiểu tấn công khác. Tuy nhiên tác giả đã tìm thấy lỗ hổng và gửi một phiên bản sửa đổi của thuật toán trong [WOO92]:
  • 18. Chữ ký số và giao thức chứng thực 18 Định danh của A, IDA, đƣợc têm vào các mục đƣợc mã hóa với khóa bí mật của KDC ở bƣớc 5 và 6. Việc liên kết khóa phiên này (Ks) để xác định các bên sẽ tham gia vào phiên làm việc. Các tài khoản định danh IDA cho ta biết giá trị nonce Na trong thực tế đƣợc xem là duy nhất trong số các nonce đƣợc tạo bởi A, không bao gồm các nonce đƣợc tạo bởi tất cả các bên. Vì vậy cặp {IDA,Na} xác định duy nhất yêu cầu kết nối của A. Trong hai ví dụ này và giao thức đƣợc mô tả trƣớc đó. Giao thức này đã đƣợc chỉnh sửa và bổ sung để có đƣợc giao thức an toàn hơn. Những ví dụ này làm nổi bật những khó khăn trong lĩnh vực xác thực (ngay cả khi các giá trị nhận đƣợc là đúng). SỰ CHỨNG THỰC MỘT CHIỀU Một ứng của phƣơng pháp này đang đƣợc phát triển phổ biến trong lĩnh vực thƣ điện tử. Lợi ích chủ yếu của xác thực một chiều trong thƣ điện tử là không nhất thiết ngƣời nhận và ngƣời gửi đều cùng online (có thể offline). Thay vào đó các e-mail đƣợc chuyển đến hộp thƣ điện tử của ngƣời nhận, nó sẽ đƣợc đặt vào vùng đệm cho đến khi ngƣời nhận sẵn sàng đọc nó. Các “envelope” hoặc tiêu đề của e-mail phải đƣợc trình bày rõ ràng, để thông điệp có thể đƣợc xử lý bởi giao thức e-mail khi lƣu trữ và truyền thông, các giao thức e- mail nhƣ Simple Mail Transfer Protocol(SMTP) hoặc X.400. Tuy nhiên, ta thƣờng mong muốn rằng các giao thức xử lý mail không truy xuất đến văn bản nguồn của thông điệp, bởi vì điều đó yêu cầu các giao thức xử lý mail
  • 19. Chữ ký số và giao thức chứng thực 19 phải đáng tin cậy. Vì vậy, thông điệp e-mail nên đƣợc mã hóa nhƣ vậy để các hệ thống xử lý mail không phải là chủ sở hữu của khóa giải mã Một yêu cầu thứ hai của xác thực là. Thông thƣờng, ngƣời nhận muốn đảm bảo rằng thông điệp phải đến từ ngƣời gửi. Symmetric Encryption Approaches (Phương pháp mã hóa đối xứng) Sử dụng mã hóa đối xứng, việc phân quyền phân phối khóa đƣợc trình bày trong Hình 7.11 là không thực tế. Sơ đồ này yêu cầu ngƣời gửi, gửi đến ngƣời nhận một yêu cầu và chờ gửi về cho ngƣời ngƣời nhận một khóa phiên, khóa phiên này là duy nhất cho ngƣời yêu cầu nó. Với một số cải tiến, chiến lƣợc phân phối khóa KDC minh họa trong Hình 7.9 là một lựa chọn điển hình cho mã hóa thƣ điện tử. Bởi vì chúng ta muốn tránh yêu cầu ngƣời nhận (B) và ngƣời gửi A online cùng nhau, bƣớc 4 và 5 bị loại ra. Đối với một thông điệp M, ta có thứ tự nhƣ sau: Phƣơng pháp này đảm bảo rằng chỉ duy nhất ngƣới chờ nhận thông điệp mới có thể đọc đƣợc nó. Phƣơng pháp này cũng cung cấp một mức độ xác thức mà ngƣời gửi là A. Nhƣ đã nói lúc trƣớc, giao thức này không phát hiện kiểu tấn công lặp lại. Một phƣơng pháp phòng chống là cung cấp một dấu thời gian cùng với thông điệp. Vì sự trì hoãn trong việc xử lý e-mail nên dấu thời gian có thể bị hạn chế khả năng. Public-Key Encryption Approaches (Phương pháp mã hóa công khai) Chúng ta tìm hiểu phƣơng pháp mã hóa khóa công khai để phù hợp với dịch vụ thƣ điện tử, bao gồm sự mã hóa đơn giản toàn bộ thông điệp cho việc bảo mật (Hình 11.1b), xác thực (11.1c) và cả hai (11.1d). Những phƣơng pháp này
  • 20. Chữ ký số và giao thức chứng thực 20 yêu cầu hoặc ngƣời gửi biết khóa công khai của ngƣời nhận (bảo mật), hoặc ngƣời nhận biết khóa công khai của ngƣời gửi (xác thực) hoặc cả hai biết khóa công khai của nhau (bảo mật và xác thực). Ngoài ra thuật toán khóa công khai phải đƣợc áp dụng một hoặc hai lần đối với những thông điệp dài. Nếu bảo mật là quan trọng thì cách dƣới đây hiệu quả hơn: Trong trƣờng hợp này, thông điệp đƣợc mã hóa một lần với khóa bí mật, nó cũng đƣợc mã hóa một lần với khóa công khai của B. Chỉ có B mới có thể sử dụng khóa bí mật tƣơng ứng để khôi phục thông điệp bị khóa và sau đó sử dụng khóa này để giải mã thông điệp. Sơ đồ này hiệu quả hơn đơn giản chỉ là mã hóa toàn bộ thông điệp với khóa công khai của B. Nếu xác thực là quan trọng hơn thì sử dụng chữ ký số là đủ, nó đƣợc trình bày nhƣ trong Hình 11.5c: Phƣơng pháp này đảm bảo rằng A không thể phủ nhận việc gửi thông điệp. Tuy nhiên kỹ thuật lại mở ra một kiểu tấn công mới. Bob gửi văn bản tới ông chủ Alice của mình để báo cáo rằng mình đang có một ý tƣởng giúp tiết kiệm tiền cho công ty. Anh ta ký vào thông điệp chữ ký của mình và sau đó gửi nó tới hệ thống e-mail. Sau đó thông điệp sẽ đƣợc gửi tới mailbox của Alice. Nhƣng giả sử rằng Max đã nghe đƣợc ý tƣởng của Bob và lấy cắp đƣợc mail trong hàng đợi trƣớc khi nó đƣợc chuyển. Anh ta tìm thấy thông điệp của Bob và gỡ chữ ký của Bob ra thay chữ ký của mình, sau đó chuyển thông điệp tới hàng đợi mail của Alice. Max đã ăn cắp ý tƣởng của Bob. Để tránh đƣợc điều này, cả thông điệp và chữ ký có thể đƣợc mã hóa với khóa công khai của ngƣời nhận: Sơ đồ thứ hai yêu cầu B biết khóa công khai của A và và khóa là đúng đắn và kịp thời.Một cách hiệu quả đƣợc cung cấp để bảo đảm cho vấn đề này là sử
  • 21. Chữ ký số và giao thức chứng thực 21 dụng chứng nhận chữ ký số, đƣợc trình bày trong Chƣơng 10. Chúng ta có nhƣ sau: Ngoài việc gửi thông điệp, A còn gửi cho B chữ ký đƣợc mã hóa với khóa công khai của A và chứng chỉ của A. Chứng chỉ này đƣợc mã hóa với khóa bí mật của trung tâm xác thực. Bên nhận thông điệp trƣớc hết sử dụng chứng chỉ để đạt đƣợc khóa công khai của ngƣời gửi và xác minh nó là đúng đúng đắn, sau đó sử dụng khóa công khai để xác minh thông điệp của chính nó (thông điệp vừa nhận đƣợc). Ngoài ra toàn bộ thông điệp có thể đƣợc mã hóa một lần với khóa bí mật; khóa bí mật cũng đƣợc truyền, mã hóa với khóa công khai của B. Phƣơng pháp này đƣợc xem xét kỹ trong Chƣơng 15. 13.3 Digital Signature Standard Viện tiêu chuẩn và công nghệ quốc gia (NIST) đã công bố chuẩn xử lý thông tin liên bang FIPS 186, nó đƣợc biết đến nhƣ là chuẩn chữ ký số (DSS). Chuẩn chữ ký số này đƣợc tạo ra bằng cách sử dụng thuật toán băm an toàn (SHA) đƣợc mô tả trong Chƣơng 12 và trình bày một công nghệ chữ ký số mới, sử dụng thuật toán chữ ký số (DSA). DSS đƣợc đề xuất lần đầu tiên vào năm 1991 sau đó đƣợc sửa đổi để phù hợp với những thông tin phản hồi nhận đƣợc vào năm 1993. Có 1 phiên bản thử nghiệm vào năm 1996. Năm 2000 một phiên bản mở rộng của chuẩn này đƣợc ban hành có tên là FIPS 186-2. Phiên bản cuối cùng là sự kết hợp giữa thuật toán DSA dựa trên RSA và mật mã đƣờng cong ellipse. Trong phần này chúng ta sẽ thảo luận về thuật toán DSS gốc. The DSS Approach (Các phương pháp tiếp cận DSS) DSS sử dụng một thuật toán đƣợc cung cấp chức năng duy nhất là chữ ký số. Không giống nhƣ RSA nó không đƣợc sử dụng để mã hóa hoặc trao đổi khóa. Tuy nhiên nó sử dụng kỹ thuật khóa công khai. Hình 13.1 thể hiện sự tƣơng phản của phƣơng pháp DSS và RSA đƣợc sử dụng để tạo ra chữ ký số. Trong phƣơng pháp RSA, thông điệp đƣợc ký là đầu vào của một hàm băm để tạo ra mã băm an toàn có chiều dài cố định. Mã
  • 22. Chữ ký số và giao thức chứng thực 22 băm này sau đó đƣợc mã hóa sử dụng khóa bí mật của ngƣời gửi để tạo chữ ký. Cả thông điệp và chữ ký sau đó đƣợc truyền đi. Ngƣời nhận sau đó nhận đƣợc thông điệp này và cũng tạo ra mã băm dựa trên thông điệp nhận đƣợc. Ngƣời nhận cũng sẽ giải mã chữ ký sử dụng khóa công khai của ngƣời gửi. Nếu việc tính toán mã băm giống với chữ ký đƣợc giải mã thì chữ ký đƣợc chấp nhận là có giá trị. Bởi vì chỉ có duy nhất ngƣời gửi có khóa bí mật và chỉ có duy nhất ngƣời gửi mới có thể tạo ra giá trị của chữ ký. Hình 13.1 Hai phương pháp chữ ký số Phƣơng pháp DSS cũng sử dụng một hàm băm. Hàm băm đƣợc cung cấp nhƣ là đầu vào của hàm chữ ký cùng với giá trị k đƣợc tạo ra ngẫu nhiên là những thành phần của hàm chữ ký này. Hàm chữ ký cũng phụ thuộc vào khóa bí mật (PRa) của ngƣời gửi và đặt các tham số đƣợc biết đến này tới một nhóm các thông tin cơ bản. Chúng ta có thể xem xét những thiết lập để tạo thành khóa công khai toàn cục(PUg). Kết quả là một chữ ký bao gồm hai thành phần đặt tên là r và s. [4] Nó cũng cho phép các tham số được thêm vào thay đổi với mỗi user để chúng là một phần khóa công khai của người sử dụng. Trong thực thế nhiều khả năng khóa công khai toàn cục sẽ được sử dụng tách biệt với khóa công khai của những người sử dụng. Bên nhận thông điệp sẽ tạo ra mã băm dựa trên thông điệp nhận đƣợc. Mã băm này cùng với chữ ký là đầu vào của hàm xác minh chữ ký. Hàm xác
  • 23. Chữ ký số và giao thức chứng thực 23 minh cũng phụ thuộc vào khóa công khai toàn cục và khóa công khai của ngƣời gửi (PUa), khóa công khai và khóa bí mật đƣợc tạo ra bởi ngƣời gửi. Đầu ra của hàm xác minh là r (thành phần của chữ ký) nếu chữ ký là có giá trị. Chữ ký đƣợc nhận đƣợc là của ngƣời gửi vì chỉ có ngƣời gửi mới có khóa bí mật, mới có thể tạo ra đƣợc chữ ký hợp lệ. Bây giờ chúng ta sẽ đi vào chi tiết của thuật toán. The Digital Signature Algorithm (Thuật toán chữ ký số) Thuật toán DSA dựa trên độ phức tạp của bài toán logarit rời rạc (trình bày trong Chƣơng 8) Và dựa vào hệ chữ ký Elgamal [ELGA85] và Schnorr [SCH91] Hình 13.2 tổng quan về thuật toán. Có ba tham số dùng chung và đƣợc công khai cho một nhóm ngƣời dùng. Bao gồm số nguyên tố q 160 bit, tiếp theo là số nguyên tố p có độ dài trong khoảng 512 đến 1024 bits là ƣớc số của q chia (p-1). Cuối cùng là g là kết quả của phép tính g = h(p1)/q mod p, trong đó h là một số nguyên có giá trị nằm giữa 1 và p-1 và g phải lớn hớn 1. [5] [5] Trong lý thuyết số tính g dựa trên việc tính q mod p; xem lại Chương 8. Hình 13.2 Thuật Toán Chữ Ký Số (DSA) Global Public – Key Component p số nguyên tố thõa 2L-1 < p < 2L với 512 <= L <= 1024 và là bội số của 64 q là ƣớc số của (p-1) với 2159 < q < 2160 , chiều dài 160 bit g = h(p-1)/q mod p , với h là số nguyên bất kỳ 1< h < (p-1) sao cho h(p-1)/q mod p > 1. User’s Private Key x là số ngẫu nhiên hoặc chuỗi số ngẫu nhiên 0 < x < q User’s Public Key y = gx mod p User’s Per-Message Secret Number k là số ngẫu nhiên hoặc chuỗi số ngẫu nhiên 0 < k < q
  • 24. Chữ ký số và giao thức chứng thực 24 Signing r = (gk mod p) mod q s = [k-1 (H(M) + xr)] mod q Signature= (r,s) Verifying w = (s’)-1 mod q u1 = [H(M’)w] mod q u2 =(r’)w mod q v = [(gu-1yu-2) mod p] mod q TETS: v=r’ M thông điệp đƣợc gửi H(M) hàm băm của M sử dụng thuật toán SHA M’,r’,s’ các phiên bản nhận đƣợc của M, r, s Với những số mà mình có, mỗi user sẽ sử dụng khóa bí mật của mình để tạo ra khóa công khai. Khóa bí mật x phải là một số phải là số có giá trị từ 1 tới (q - 1) và nên chọn là số ngẫu nhiên hoặc là chuỗi số ngẫu nhiên. Khóa công khai đƣợc tính từ khóa cá nhân y= gx mod p. Việc biết x sau đó tính y thì đơn giản, nhƣng khi biết y muốn tính x thì lại rất khó vì đó là bài toán logarit rời rạc của y và g mod p (đã xét trong Chƣơng 8). Để tạo chữ ký, user tính toán hai đại lƣợng r và s, hàm của khóa công bao gồm các thành phần (p, q, g), khóa bí mật của user (x), giá trị băm của thông điệp H(M), và một số k đƣợc chọn ngẫu nhiên và là duy nhất cho mỗi chữ ký. Tại nơi nhận, việc xác thực đƣợc thực hiện nhƣ công thức trình bày trên Hình 13.2, phía nhận tạo ra một đại lƣợng v là một thành phần của hàm khóa công khai, khóa công khai của ngƣời gửi và giá trị băm của thông điệp nhận đƣợc. Nếu đại lƣợng v và r (thành phần của chữ ký) là giống nhau thì chữ ký là có giá trị (là chữ ký của ngƣời gửi). Hình 13.3 miêu tả hàm ký và xác nhận (xác minh chữ ký). Hình 13.3 miêu tả hàm ký và xác nhận.
  • 25. Chữ ký số và giao thức chứng thực 25 Cấu trúc của thuật toán nhƣ trình bày trong Hình 13.3, khá thú vị. Lƣu ý rằng việc kiểm tra dựa vào giá trị r (giá trị xác thực) mà không phụ thuộc vào các giá trị khác của thông điệp. Thay vào đó,r là hàm của k và ba thành phần của khóa công khai hay r = (gk mod p) mod q , s = ( k-1H(M) + xr) mod q) trong đó giá trị băm H(M), nghịch đảo của k, x.r là các đầu vào của hàm f1 . Cấu trúc của hàm là để phía nhận có thể khôi phục r bằng cách sử dụng chữ ký và thông điệp đến, khóa công khai của ngƣời dùng, và khóa công khai toàn cục. Việc kiểm chứng tại sao cho nếu v = r thì chữ ký đƣợc cho là đúng, nếu dựa vào các hƣớng dẫn trong Hình 13.2 và 13.3 thì sẽ không chứng minh đƣợc điều này. Nếu muốn giải thích rõ hơn thì độc giả tham khảo thêm tại website của ebook này. Với độ khó của bài toán logarit rời rạc, rất khó để bên thứ ba có thể khôi phục k khi biết r hoặc khôi phục x từ s. Một điểm đáng chú ý là việc tạo ra chữ ký chỉ yêu cầu tính toán (gk mod p). Bởi vì gia trị này không phụ thuộc vào thông điệp đƣợc ký, nó có thể đƣợc tính toán trƣớc. Trong trƣờng hợp này ngƣời sử dụng có thể tính toán lại r đƣợc dùng để ký các văn bản khi cần. Công việc lúc này chỉ khác trƣớc là việc tính nghịch đảo của k là (k-1). Một lần nữa các giá trị này lại đƣợc tính toán lại.
  • 26. Chữ ký số và giao thức chứng thực 26 13.4 Khuyến nghị đọc và các trang Web khuyến cáo. [AKL83] là một trang kinh điển thảo luận về chữ ký số vá còn có giá trị thực tế rất cao. Ngoài ra, còn có những trang trang khác cũng rất hay, xem tại [MITC92] AKL83 Akl, S. "Digital Signatures: A Tutorial Survey." Computer, February 1983. MITC92 Mitchell, C.; Piper, F. ; and Wild, P. "Digital Signatures." In [SIMM92a]. Các trang web khuyến cáo Digital Signatures: NIST là trang cung cấp thông tin về các phương pháp chữ ký số. 13. 5. Thuật ngữ chính, một số câu hỏi và một số vấn đề. Thuật ngữ chính Trọng tài Chữ ký số có trọng tài Chữ ký số trực tiếp Chữ ký số Thuật toán chữ ký số (DSA) Chuẩn chữ ký số (DSS)
  • 27. Chữ ký số và giao thức chứng thực 27 Xác thực lẫn nhau nonce Xác thực một chiều Tấn công lặp lại Ngăn chặn - tấn công lặp lại Dấu thời gian Câu hỏi ôn tập: 13.1 Danh sách hai tranh chấp nảy sinh trong hoàn cảnh việc xác thực thông điệp. 13.2 Các tính chất một chữ ký số cần phải có là gì? 13.3 Những yêu cầu của 1 chƣơng trình chữ ký số cần phải đáp ứng là gì? 13.4 Sự khác nhau giữa chữ ký số trực tiếp và chữ ký số có trọng tài là gì? 13.5 Chức năng chữ ký và chức năng bảo mật đƣợc đƣa vào thông điệp theo thứ tự nào? Và tại sao? 13.6 Một số mối đe dọa liên kết với một chƣơng trình trực tiếp chữ ký số là gì? 13.7 Cho ví dụ về tấn công lặp lại. 13.8 Ba phƣơng pháp chung để xử lý tấn công lặp lại. 13.9 Ngăn chặn-tấn công trở lại là gì? Các vấn đề: 13.1 Sửa đổi chữ ký số của Bảng 13.1a và b để cho phép ngƣời nhận để kiểm chứng chữ ký.
  • 28. Chữ ký số và giao thức chứng thực 28 13.2 Sửa đổi chữ ký số của Bảng 13.1c để tránh tăng gấp ba mã hoá của toàn bộ thông điệp. 13.3 Thảo luận ở Bảng 13.1c, đã nói rõ các liên minh để không thể lừa gạt đƣợc. Trong thực tế, có một khả năng. Mô tả nó và giải thích tại sao nó sẽ có sự tín nhiệm nhỏ rất chúng ta có thể một cách an toàn lờ đi. 13.4 Ở Phần 13.2, chúng tôi phác thảo kế hoạch khoá công khai dự kiến trong [WOO92a] cho phân phối của khóa bí mật. Các phiên bản sửa đổi bao gồm IDA trong các bƣớc 5 và 6. Điều gì tấn công, cụ thể, là phản đối bằng cách sửa đổi này? 13.5 Giao thức tham khảo trong Vấn đề 13.1 có thể giảm từ bảy bƣớc đến năm, có trình tự sau : (1) A  B: (2) B  KDC: (3) KDC  B: (4) B  A: (5) A  B: Hiển thị thông báo truyền ở mỗi bƣớc. Gợi ý: Thông báo cuối cùng trong giao thức này giống nhƣ thông báo cuối cùng trong giao thức gốc. 13.6 Có tham khảo đến kìm nén - lặp lại tấn công mô tả trong Phần 13.2: a. Hãy cho một ví dụ về một cuộc tấn công khi một bên là xung clock trƣớc đó của KDC. b. Hãy cho một ví dụ về một cuộc tấn công khi một bên là xung clock trƣớc đó của một bên khác. 13.7 Có ba phƣơng pháp điển hình để sử dụng nhƣ thách thức. Giả sử Na là một nonce tạo ra bởi A, A và B cùng chia sẻ khóa K, và f() là một chức năng chẳng hạn nhƣ tăng. Ba tập quán là:
  • 29. Chữ ký số và giao thức chứng thực 29 Mô tả tình huống theo đó mỗi sử dụng thích hợp. 13.8 Tiến sĩ Watson kiên nhẫn đợi cho đến khi Sherlock Holmes kết thúc. " Một số vấn đề thú vị để giải quyết, Holmes? ng ấy hỏi khi Holmes rời khỏi cuối cùng. "Ôi, không chính xác. Tôi chỉ đã kiểm tra thƣ điện tử của tôi rồi làm một vài thí nghiệm mạng thay vì những hoá chất bình thƣờng của tôi. Tôi có chỉ một khách hàng bây giờ và tôi đã giải quyết vấn đề của anh ấy. Nếu tôi nhớ chính xác, bạn từng đề cập khóa mật mã giữa sở thích kia của bạn, vì vậy nó có thể làm bạn quan tâm. " "Ừm, Tôi chỉ là ngƣời chuyên về mật mã nghiệp dƣ, Holmes. Tất nhiên Tôi quan tâm đến vấn đề. Nó về là gì? " "Khách hàng của tôi là ông Hosgrave, giám đốc của một ngân hàng nhỏ nhƣng tiến bộ. Ngân hàng làm hoàn toàn trên máy vi tính và tất nhiên sử dụng mạng truyền thông rộng rãi. Ngân hàng đã sử dụng RSA để bảo vệ dữ liệu của mình và ký các văn bản kỹ thuật số đƣợc truyền đạt. Bây giờ ngân hàng muốn giới thiệu một số thay đổi trong thủ tục của nó, trong đó, nó cần phải kỹ thuật số ký một số văn bản do hai bên ký 1. Bên ký hiệp ƣớc đầu tiên chuẩn bị tài liệu, tạo thành chữ ký của nó, và chuyển tài liệu cho bên ký hiệp ƣớc thứ hai 2. Ngƣời ký thứ hai nhƣ là một bƣớc đầu tiên phải xác minh rằng tài liệu đã thực sự có chữ ký của ngƣời ký tên đầu tiên. Sau đó kết hợp chữ ký của mình vào chữ ký của tài liệu để cho ngƣời nhận, cũng nhƣ thành viên nào của công chúng, có thể xác nhận rằng tài liệu đã thực sự có chữ ký của cả hai bên ký. Ngoài ra chỉ
  • 30. Chữ ký số và giao thức chứng thực 30 có ngƣời ký tên thứ hai có thể xác minh chữ ký của tài liệu sau bƣớc (1), có nghĩa là ngƣời nhận (hoặc thành viên nào của công chúng) có thể chỉ để xác minh các tài liệu hoàn chỉnh với chữ ký của cả hai bên ký, nhƣng không phải tài liệu ở dạng trung gian của nó, nơi chỉ có một bên ký kết đã ký tên vào nó. Hơn nữa, các ngân hàng muốn sử dụng các module hiện tại của mình có hỗ trợ RSA kiểu chữ ký số." "Hm, Tôi hiểu nhƣ thế nào RSA có thể đƣợc dùng để ký theo số thức tài liệu vào lúc 1 giờ bên ký hiệp ƣớc, Holmes. Tôi đoán bạn đã giải quyết đƣợc vấn đề của ông Hosgrave bởi khái quát thích hợp của RSA chữ ký số." "Chính xác, Watson," Sherlock Holmes gật đầu. "Ban đầu, chữ ký kỹ thuật số RSA đƣợc hình thành bằng cách mã hóa các tài liệu của khoá giải mã tin của khóa d , và chữ ký có thể đƣợc kiểm chứng bởi bất cứ ai thông qua giải mã của nó bằng cách sử dụng mã hóa khóa công khai đƣợc biết đến khóa 'e'. Ngƣời ta có thể xác minh rằng chữ ký S đƣợc thành lập bởi có những ngƣời biết d, mà lẽ ra phải đƣợc bên ký hiệp ƣớc duy nhất? Bây giờ các vấn đề của ông Hosgrave có thể đƣợc giải quyết trong cùng một cách bởi khái quát nhẹ của quá trình, đó là ..." Kết thúc giải thích. 13.9 DSA xác định nếu quy trình thế hệ chữ ký dẫn đến giá trị của s = 0, một giá trị mới của k nên đƣợc tạo ra và chữ ký phải đƣợc tính toán lại. Tại sao? 13.10 Chuyện gì sẽ xảy ra nếu giá trị k đƣợc dùng tạo ra chữ ký DSA là làm hại? 13.11 Các tài liệu DSS bao gồm một thuật toán đƣợc đề nghị cho thử nghiệm một số cho tính nguyên tố, nhƣ sau: 1. [Chọn w] Cho w là một số nguyên lẻ ngẫu nhiên. Sau đó (w 1) thậm chí còn và có thể đƣợc thể hiện trong mẫu 2a m với m lẻ. Vậy là, 2a là bộ nguồn lớn nhất của 2 chia cho (w 1). 2. [Tạo b] Cho b là một số nguyên ngẫu nhiên trong khoảng 1 < b <w.
  • 31. Chữ ký số và giao thức chứng thực 31 3. [Exponentiate+ Đặt j = 0 và z =bm mod w. 4. [Done+ Nếu j = 0 và z = 1, hoặc nếu z = w 1, sau đó w vƣợt qua thử nghiệm và có thể là số nguyên tố; đi đến bƣớc 8. 5. [Chấm dứt+ Nếu j > 0 và z = 1, sau đó w là không phải là số nguyên tố, chấm dứt thuật toán cho w. 6. [Tăng j+ Đặt j = j + 1. Nếu j <a, thiết lập z = z2 mod w và đi đến bƣớc 4. 7. [Chấm dứt] w không phải số nguyên tố, chấm dứt thuật toán cho w. 8. [Kiểm tra một lần nữa+ Nếu đủ các giá trị ngẫu nhiên của b đã đƣợc thử nghiệm, sau đó chấp nhận w là số nguyên tố và chấm dứt thuật toán, nếu không, hãy xem bƣớc 2. a. Giải thích thuật toán công trình b. Chỉ ra rằng nó tƣơng đƣơng với các bài kiểm tra Miller-Rabin đƣợc mô tả trong Chƣơng 8. 13.12 Với DSS, vì giá trị của k đƣợc tạo ra cho mỗi chữ ký, ngay cả khi cùng một thông điệp đƣợc ký kết hai lần khác nhau, chữ ký sẽ khác nhau. Điều này không đúng với chữ ký RSA. Các ý nghĩa thực tiễn của sự khác biệt này là gì? 13.13 Xem xét các vấn đề của việc tạo ra các thông số tên miền cho DSA. Giả sử chúng ta có số nguyên tố đã đƣợc tìm thấy p và q sao cho q | (p 1).chúng ta cần tìm g thuộc Zp with g of order q mod p. Hãy xem xét hai thuật toán sau đây:
  • 32. Chữ ký số và giao thức chứng thực 32 a. Chứng minh rằng giá trị trả về của thuật toán 1 có thứ tự q. b. Chứng minh rằng giá trị trả về của thuật toán 1 có thứ tự q. c. Giả sử P = 40193 và q = 157. Bạn mong bao nhiêu lần lặp lại vòng lặp? Thuật toán 1 để làm trƣớc khi nó tìm máy phát điện? d. Nếu p là 1024 bit và q là 160 bit, bạn sẽ đề nghị dùng thuật toán 1 để tìm g phải không? Giải thích. e. Giả sử P = 40193 và q = 157. Xác suất mà thuật toán 2 tính một máy phát điện trong vòng lặp đi lặp lại đầu tiên của nó là gì? 13.14 Ta thƣờng có khuynh hƣớng cố phát triển phiên bản trên Diffie - Hellman điều đó có thể đƣợc dùng làm chữ ký số. Đây là cái mà là đơn giản hơn DSA và không đòi hỏi số ngẫu nhiên bí mật ngoài khóa riêng Yếu tố công khai: q số nguyên tố α α < q và α là gốc nguyên thuỷ của q Khóa riêng: X X < q Khoá công khai: Y = aX mod q Để đăng một thông điệp M, tính h = H (M), mã hàm băm của thông điệp. Chúng tôi yêu cầu gcd(h, q 1) = 1. Nếu không, phụ thêm hàm băm vào thông điệp và tính toán một hàm băm mới. Tiếp tục quy trình này cho đến mã băm đƣợc tạo ra tƣơng đối cơ bản để (q 1). Sau đó tính Z để đáp ứng Z x h _ X (mod q 1). Chữ ký của thôgn điệp là aZ. Để xác minh chữ ký, ngƣời sử dụng xác nhận rằng Y = (AZ)h = AX mod q. a. Kế hoạch này làm việc cho thấy rằng quy trình kiểm tra tạo ra bình đẳng nếu chữ ký là hợp lệ.
  • 33. Chữ ký số và giao thức chứng thực 33 b. Chƣơng trình này không thể chấp nhận bằng cách mô tả một kỹ thuật đơn giản để giả mạo chữ ký của ngƣời dùng trên một tin nhắn tùy ý. 13.15 Đề xuất đầu tiên cho kế hoạch chữ ký số sử dụng mã hoá cân đối đƣợc dựa trên những thứ sau đây: Để ký n - bit thông báo, ngƣời gửi phát sinh ngẫu nhiên trƣớc khóa mật mã 56 -bit 2n : k1, K1, k2, K2,..., kn, Kn đƣợc giữ bí mật. Ngƣời gửi chuẩn bị trƣớc hai bộ tƣơng ứng tham biến việc làm hợp lệ 64 bit nonsecret, đƣợc công bố : u1, V1, u2, V2,..., un, Vn and v1, V1, v2, V2,..., vn, Vn vi = E(ki, ui), Vi = E(ki, Ui) Các tin M đƣợc ký nhƣ sau. Đối với các bit thứ i của tin nhắn, hoặc ki hoặc Ki đƣợc đính kèm vào tin nhắn, tùy thuộc vào việc các bit tin là 0 hoặc 1. Ví dụ, nếu ba bit đầu tiên của tin nhắn là 011, sau đó ba phím đầu tiên của chữ ký là k1, K2, K3. a. Làm thế nào xác nhận tin nhắn? b. Kỹ thuật an toàn không? c. Làm thế nào nhiều lần cùng một bộ khóa bí mật có thể đƣợc sử dụng an toàn cho các tin nhắn khác nhau? d. Cái gì, nếu có, vấn đề thực tế cho phƣơng pháp hiện nay?
  • 34. Chữ ký số và giao thức chứng thực 34 TÀI LIỆU DỊCH [1] Cryptography and Network Security, Fourth Edition – William Stallings.