Ký ₫iện tử trong hệ mã khóa công khai Với hệ mã khóa công khai, một quy trình ký văn bản điện tử được thiết lập dựa trên ý tưởng của hai nhà khoa học Diffie và Hellman: 1 Người gửi chủ n
Trang 1Sơ bộ về
VÀ CÁC VẤN ĐỀ LIÊN QUAN
1 BẢN CHẤT CỦA CHỮ KÝ SỐ VÀ QUY TRÌNH THỰC HIỆN 1
1.1 Chữ ký trong đời sống 1
1.2 Hệ mã khoá công khai và việc tạo chữ ký số 2
Nguyên lý hoạt động của Hệ mã khóa công khai 2
Ký điện tử trong hệ mã khóa công khai 3
1.3 Chữ ký số và vai trò của CA 6
2 ĐẠI CƯƠNG VỀ CHỨNG THỰC SỐ 8
2.1 Khái niệm 8
2.2 Sử dụng chứng thực số 8
2.3 Nội dung của chứng thực số theo chuẩn X.509 9
Những nội dung thông tin cơ bản theo chuẩn X.509 10
3 HỆ THỐNG THẨM QUYỀN PHÁT HÀNH CHỨNG THỰC SỐ (CA - CERTIFICATE AUTHORITY) 11
3.1 Các chức năng có bản 11
Cấp phát chứng thực 12
Kiểm tra chứng thực 13
3.2 Các mô hình hệ thống 14
Trang 21 BẢN CHẤT CỦA CHỮ KÝ SỐ VÀ QUY TRÌNH THỰC HIỆN
1.1 Chữ ký trong ₫ời sống
Trong đời sống thường ngày, chữ ký (viết tay) trên một văn bản là một minh chứng
về "bản quyền" hoặc ít nhất cũng là sự "tán đồng, thừa nhận" các nội dung trong văn bản Những yếu tố nào làm lên "sức thuyết phục" của nó? Một cách lý tưởng thì:
1 Chữ ký là bằng chứng thể hiện người ký có chủ định khi ký văn bản
2 Chữ ký thể hiện chủ quyền của người ký, nó làm cho người ta nhận biết rằng
ai đích thị là người đã ký văn bản
3 Chữ ký không thể tái sử dụng, tức là nó là phần của văn bản mà “không thể
sao chép” sang các văn bản khác Nói cách khác, nó chỉ có giá trị ở trong văn bản được ký và trở thành vô giá trị nếu ở ngoài văn bản đó
4 Văn bản đã ký không thể thay đổi được
5 Chữ ký không thể chối bỏ và cũng là thứ không thể giả mạo (người đã ký văn
bản không thể phủ định việc mình đã ký văn bản và người khác không thể tạo
ra chữ ký đó)
Trong cuộc sống đời thường, mọi cái không phải lúc nào cũng diễn ra theo đúng như mô hình "lý tưởng" nêu trên, nhưng ít nhất thì người ta luôn mong muốn như vậy Mong muốn ấy là có cơ sở Thật vậy, với khả năng kiểm định sát sao, việc
“gian lận” là không phải dễ (người mạo chữ ký có thể đánh lừa được một vài người nào đó, nhưng không thể qua mắt được những người kiểm định chữ ký chuyên nghiệp, và trên đầu kẻ gian luôn treo lơ lửng một mối nguy hiểm về việc “bị lật tẩy bất kỳ lúc nào”)
Trong trào lưu “tin học hóa” các hoạt động xã hội ngày càng rộng rãi, các loại hình văn bản điện tử đang ngày càng trở nên phổ biến và các giao dịch thông tin điện tử ngày càng trở nên lấn át các giao dịch giấy tờ truyền thống (số lượng văn
Trang 3bản phi điện tử ngày càng trở nên ít ỏi) Một vấn đề cấp bách đang được đặt ra là: liệu chúng ta có thể mang được những nét “đặc trưng lý tưởng” của chữ ký viết tay (nêu trên) vào "thế giới máy tính" hay không? Nói cách khác, liệu ta có thể tạo ra
(cho mỗi văn bản) một cái gì đó mang các thuộc tính tương tự như chữ ký hay
không?
Xin lưu ý những khó khăn hiển nhiên mà ta sẽ gặp trong thế giới các văn bản điện tử: các dòng thông tin trên máy tính được sao chép một cách quá dễ dàng, việc thay đổi nội dung một văn bản điện tử chẳng để lại dấu vết gì về phương diện "tẩy xoá", hình ảnh của chữ ký tay của một người (dù khó bắt chước đến đâu) cũng dễ dàng cho "sao - chép" từ văn bản này sang văn bản khác, Tóm lại, văn bản điện tử không có được thuộc tính “bút sa gà chết” như văn bản giấy, và do đó không thể hỗ trợ cho cung cách ký thông thường xưa nay (trên giấy)
Để tạo ra cho mỗi văn bản điện tử một “chữ ký” với các thuộc tính tương tự như chữ ký trên văn bản giấy, ta cần có một cách tiếp cận hoàn toàn mới, dựa trên các thành tựu công nghệ mã hóa thông tin hiện đại, như sẽ được giới thiệu trong phần tiếp theo
1.2 Hệ mã khoá công khai và việc tạo chữ ký số
Nguyên lý hoạt ₫ộng của Hệ mã khóa công khai
)
Hệ mã khóa công khai là hệ mật mã được phát minh ra trong những thập kỷ cuối
của thế kỷ vừa qua Nét khác biệt cơ bản của các hệ mã này so với các hệ mã
truyền thống trước đây là nó sử dụng 2 chìa khóa riêng biệt cho việc lập mã và giải
mã văn bản Chìa dùng cho việc lập mã có thể được công bố cho mọi người biết
(thường được gọi là chìa công khai), còn chìa dùng cho việc giải mã thì được giữ bí mật tuyệt đối Việc biết được chìa khóa lập mã (công khai) không cho phép tính ra được chìa khóa giải mã (bí mật) Mỗi cá thể tham gia vào hệ thống được cấp
riêng một cặp chìa khoá , trong đó là chìa khóa lập mã, còn là chìa
khóa giải mã Khi mã hóa một văn bản P (bằng chìa khóa lập mã ) ta sẽ được
k
k E
Trang 4một văn bản mã ký hiệu là Văn bản này chỉ có thể được giải mã bằng chìa khóa (cùng cặp với ), nghĩa là
( )
k
C = E P
k
D E k D C k( )=D E P k( ( ))k =P
)
Khi một cá thể i nào đó muốn gửi thông điệp M cho đối tác k thì anh ta dùng
chìa khoá lập mã của đối tác k (đã được biết công khai) để mã hóa văn bản và
gửi đi dưới dạng thông điệp mã Khi đối tác k nhận được thông điệp này thì dùng chìa khoá giải mã của mình (là ) để giải mã ra theo nguyên lý đã nêu
k E
(
k
C = E M
k D
( ) ( ( ))
D C =D E M =M
Các cá thể khác trong hệ thống, nếu nhận được văn bản mã C , thì cũng không thể nào giải mã ra M , vì họ không có chìa khoá giải mã D k của cá thể k
Các nguyên lý vừa trình bày trên đã được cụ thể hoá trong một số hệ mã khoá
công khai được phát minh gần đây Một trong các hệ mã đầu tiên được phát minh
vào năm 1978 bởi Rivest, Shamir và Adleman (thường được gọi là hệ mã RSA, xem cụ thể hơn trong phần 4: Cơ sở toán học và các giải pháp kỹ thuật)
Ký ₫iện tử trong hệ mã khóa công khai
Với hệ mã khóa công khai, một quy trình ký văn bản điện tử được thiết lập dựa trên
ý tưởng của hai nhà khoa học Diffie và Hellman:
(1) Người gửi (chủ nhân văn bản) ký văn bản bằng cách mã hoá nó với khoá bí
mật của mình, rồi gửi cho người nhận
(2) Người nhận văn bản (đã ký) tiến hành kiểm tra chữ ký bằng cách sử dụng
chìa khoá công khai của người gửi để giải mã văn bản Nếu giải mã thành
công thì văn bản ký là đúng của người gửi
Giao thức này mang đầy đủ các thuộc tính của thủ tục ký tá thông thường, đã mô tả
ở trên Thật vậy:
Chữ ký là sản phẩm của người đã chủ động tạo ra nó, tức là người đã dùng
chiếc chìa khoá bí mật của mình để mã hoá văn bản
Trang 5 Chữ ký cho biết chủ nhân của nó chính là người sở hữu chiếc chìa khóa bí
mật đã được dùng để mã văn bản (kiểm tra bằng cách cho giải mã bằng chìa
khoá công khai của người đó) Không ai làm giả được "chữ ký" vì rằng chỉ có
duy nhất một người có chìa khoá bí mật đã dùng để "ký" (mã hoá)
Chữ ký cho văn bản này không thể "tái sử dụng" cho văn bản khác Thật vậy,
việc biết chữ ký (văn bản mã) không cho phép tìm ra được chìa khóa bí mật
của người gửi (để có thể ký một văn bản khác)
Văn bản đã ký không thể thay đổi (xuyên tạc) được nội dung Thật vậy, nếu
đã mở ra để thay đổi thì không thể “ký lại” được nữa, vì không có chiếc chìa
khóa bí mật của “người đã ký" (như đã nói ở trên)
Người ký văn bản không thể thoái thác việc mình “đã ký”, vì ngoài ông ta ra không còn ai có cái chìa khóa đã được dùng để "ký" văn bản
Rõ ràng, về mặt logic thì quy trình ký như trên là rất hợp lý Mọi thành viên tham
gia sử dụng một hệ mã khóa công khai đều có được khả năng ký văn bản điện tử (bằng chìa khóa bí mật của riêng mình) và kiểm tra chữ ký của những người khác
(bằng chìa khóa công khai mà họ đã công bố)
Tuy nhiên, trong thực tiễn triển khai, mọi người đều biết tốc độ mã hoá của
các hệ mã khoá công khai là vô cùng chậm Cho nên, việc ký một văn bản dài (như
thông tư, nghị định, văn kiện, ) theo quy trình nêu trên là không khả thi trên thực
tiễn
Để khắc phục khó khăn này, người ta sử dụng một hàm “chiết xuất” đặc trưng
văn bản Hàm này nhận giá trị đầu vào là văn bản (độ dài tùy ý) và cho đầu ra là
một dãy số có độ dài xác định, gọi là mã băm (message digest) Hàm chiết xuất có
thuộc tính quan trọng là rất “nhạy" đối với các thay đổi của văn bản, theo đó chỉ cần một thay đổi cực nhỏ trong văn bản (như thay dấu chấm, dấu phảy, ) cũng sẽ
kéo theo sự thay đổi rõ rệt trong giá trị mã băm của nó Chính vì vậy mã băm có tính đặc trưng rất cao, và thường được gọi là đặc trưng văn bản Để nhận biết sự
toàn vẹn của một văn bản người ta chỉ cần xem đặc trưng của nó có bị thay đổi hay
không Hai thuộc tính quan trọng khác của hàm chiết xuất là tính một chiều và tốc
Trang 6độ nhanh Tính một chiều thể hiện ở chỗ không thể tạo ra được một văn bản có mã băm (đặc trưng) là một xâu số cho trước, và dó đó không thể mạo ra một “văn bản
giả” có cùng đặc trưng với một văn bản cho trước Tốc độ nhanh có nghĩa là thời
gian tính đặc trưng cho văn bản là không đáng kể (Các hàm chiết xuất “đặc trưng”
còn có tên khoa học là hàm băm mật mã, được giới thiệu trong phần 4 Cơ sở toán
học và các giải pháp kỹ thuật)
Rõ ràng, việc đặc trưng văn bản không bị thay đổi cũng đồng nghĩa với việc
bản thân văn bản không bị thay đổi Từ đây ta có một quy trình ký các văn bản dựa vào đặc trưng của nó Theo quy trình này, khi một cá thể A muốn ký một văn bản thì cần phải thực hiện các bước sau đây:
P
1 Tính đặc trưng của văn bản P (bằng hàm chiết xuất có sẵn trên hệ thống);
2 Dùng chìa khoá bí mật của mình để mã hoá dãy số đặc trưng văn bản thu được ở bước trên Đặc trưng văn bản sau khi được mã (bằng chìa bí mật của A) thì được gọi là chữ ký số (của ông A đối với văn bản ); P
Tức là tuân theo sơ đồ sau
Khoá bí mật
Dễ dàng thấy rằng chữ ký số được tạo ra trong quy trình trên có đầy đủ các
thuộc tính đã nêu trong mục đầu Thời gian tạo chữ ký được giảm đi rất nhiều và
gần như không phụ thuộc vào độ dài của văn bản Thật vậy, do thời gian tính đặc
Trang 7trưng văn bản là không đáng kể, thời gian tạo chữ ký chỉ còn là việc mã hóa đặc
trưng của văn bản (có độ dài như nhau với mọi văn bản, và nhỏ hơn độ dài văn bản nhiều lần)
Một người nào đó, nhận được văn bản P cùng với chữ ký số đi kèm, muốn tiến
hành kiểm tra thì cần tiến hành các bước sau:
1 Tính đặc trưng của văn bản P (bằng hàm chiết xuất có sẵn trên hệ thống);
2 Giải mã chữ ký số (bằng chìa khoá công khai của ông A) để có một đặc trưng nữa của , rồi so sánh nó với đặc trưng thu được ở bước trên Nếu chúng
khớp nhau thì chứng tỏ văn bản nhận được chính là văn bản đã được ông A ký
và nội dung của nó không bị thay đổi so với khi ký
P
Tức là tuân theo sơ đồ sau
Dữ liệu
Giá trị băm
=?
Khoá công khai
Hàm băm
Giải mã
1.3 Chữ ký số và vai trò của CA
Như vậy, chữ ký số không phải là một nét vẽ ngoằn ngoèo khó bắt chước (như chữ
ký tay thông thường trên giấy) mà là một dãy số được tạo nên từ đặc trưng của văn
bản bằng phép mã hóa với chìa khóa bí mật của người ký
Trang 8So với thủ tục ký thông thường (trên văn bản giấy), thủ tục ký điện tử có những
ưu thế vượt trội Nếu như trong môi trường văn bản giấy tờ thông thường các thuộc tính (1-5) của “chữ ký tay” còn phần nào mang tính “lý tưởng” mà chưa hoàn toàn
“hiện thực” thì, ngược lại, các thuộc tính này là “hiển nhiên” đối với các “chữ ký số” trên môi trường văn bản điện tử Hơn thế:
Chữ ký số là “chính xác tuyệt đối” (không còn mối e ngại về việc chữ ký
“không giống nhau trong mỗi lần ký”, như khi phải ký bằng tay);
Trong khi việc kiểm định chữ ký viết tay, con dấu giả, là không đơn giản (vì
thường đòi hỏi phương tiện kỹ thuật đặc biệt) thì chữ ký số có thể được kiểm
định một cách dễ dàng và chính xác (bằng thiết bị luôn có sẵn trong chương trình) Mọi sự giả mạo, gian lận vì thế đều bị phát hiện tức khắc
Như vậy, bằng việc triển khai giải pháp ký điện tử ta có thể nói lời kết thúc cho các loại văn bằng chứng chỉ giả, mở đường cho các dịch vụ giao dịch trực tuyến với độ tin cậy cao Tuy nhiên, điều này chỉ có thể đạt được nếu như mỗi người sở hữu đúng cặp chìa khoá công khai và bí mật của chính mình Nếu như có một ông B nào đó có thể đánh lừa được mọi người rằng cặp chìa khoá công khai (mà ông đang có) là của ông A., thì sẽ xảy
ra hiện tương "mạo danh" vô cùng nguy hiểm Một mặt, ông B sẽ đọc được tất cả các tin mật mà người khác muốn gửi cho ông A nếu tin được mã bằng chìa khoá công khai của ông B, và mặt khác ông B có thể thể ký các văn bản "vô tội vạ" và đánh lừa mọi người rằng ông A đã ký những văn bản đó Tóm lại, để cho chữ ký số có thể phát huy dược thế mạnh của mình thì trước hết cần phải có giải pháp xác định một cách chính xác "ai là ai" trên toàn hệ thống Một giải pháp như vậy có thể có được bằng việc dùng một "bên thứ
ba đáng tin cậy", một bộ máy trung thực đảm nhận việc cấp phát cho mỗi thực thể (người, máy tính, phương tiện, ) một định danh duy nhất và gắn cho mỗi định danh một cặp chì khoá (bí mật - công khai) duy nhất, để rồi vào mọi lúc, mọi nơi bất kỳ ai cũng có thể thông qua nó để kiểm định xem một chìa khoá công khai nào đó thuộc về thực thể có định danh nào Bộ máy trung thực đó còn được gọi là Cơ quan thẩm quyền cấp chứng thực, gọi tắt là CA (Certificate Authority)
Trang 92 ĐẠI CƯƠNG VỀ CHỨNG THỰC SỐ
2.1 Khái niệm
Trong mật mã học, chứng thực số (còn gọi là chứng thực điện tử) là một chứng
thực sử dụng chữ ký số để gắn một chìa khóa công khai với một thực thể (một cá
nhân, hay một máy chủ, hoặc một công ty ) Nói cách khác, chứng thực số là phương tiện giúp người ta khẳng định được một chìa khoá công khai nào đó thuộc
về thực thể nào
Một chứng thực số chuẩn mực thường bao gồm chìa khóa công khai và một số thông tin về thực thể sở hữu chìa khóa đó (tên, địa chỉ, ) Như vậy, thông tin trên chứng thực số không chỉ cho biết một chìa khóa công khai nào đó thuộc về ai, ta còn có thể biết được các thông tin liên quan khác, mà đôi khi cũng rất quan trọng trong một hệ thống cụ thể, như là danh phận, chức vụ, của người sở hữu
Trong một mô hình với hạ tầng khóa công khai (PKI) chuẩn mực, chữ ký trong chứng thực thuộc về nhà cung cấp chứng thực số (Certificate Authority, viết tắt là CA) Chữ ký trong chứng thực là sự đảm bảo của người ký về mối liên hệ giữa chìa
khóa công khai và thực thể được chứng nhận Trong mô hình mạng tín nhiệm (web
of trust), thì chữ ký có thể là của chính thực thể đó hoặc của một thực thể khác
2.2 Sử dụng chứng thực số
Chứng thực số là tiền đề cho nhiều ứng dụng của mật mã khóa công khai Đối với
các hệ mã đối xứng (bí mật), việc trao đổi chìa khóa (bí mật) giữa những người sử dụng trên quy mô rộng là vô cùng khó khăn, hầu như không thể thực hiện được Với các hệ mã hóa khóa công khai, người ta có thể thoát ra khỏi khó khăn này Trên nguyên tắc, nếu cá nhân A muốn người khác gửi thông tin mật cho mình thì chỉ cần công bố chìa khóa công khai của chính mình Bất kỳ ai có được chìa khóa này đều có thể gửi thông tin mật cho A Tuy nhiên, khi ấy lại nảy sinh một vấn đề khác Thật vậy, nếu chìa khoá công khai của A không được chứng thực, một người nào đó (D) cũng có khả năng đưa ra một chìa khóa công khai khác và giả mạo rằng
đó là chìa khóa của A Bằng cách làm như vậy kẻ "mạo danh" này có thể đọc được
Trang 10một số thông tin mà người khác gửi cho A Nếu như chìa khoá công khai của A có trong một chứng thực số (được chứng thực bởi một bên thứ 3, chẳng hạn như là T, với công nghệ chữ số) thì bất kỳ ai tin tưởng vào T cũng có thể kiểm tra chìa khóa công khai của A Nói cách khác, kẻ mạo danh D ắt sẽ bị lật tẩy Trong mô hình hạ tầng khóa công khai thì T chính là nhà cung cấp chứng thực số (CA - Certificate Authority)
Khi áp dụng chứng thực số ở quy mô lớn, có rất nhiều CA cùng hoạt động Vì vậy một cá thể A có thể không quen thuộc (không đủ tin tưởng) với CA của một cá thể B khác Do đó chứng thực của B có thể phải bao gồm chữ ký của CA ở mức cao hơn Quá trình này dẫn đến việc hình thành một mạng lưới quan hệ phức tạp và phân tầng giữa các CA Trong tiêu chuẩn X.509 về hệ thống hạ tầng khóa công khai, mạng lưới CA tạo thành cây từ trên xuống với gốc là một CA trung tâm mà không cần được chứng thực bởi một bên thứ 3 nào khác
Cũng giống như giấy CMND, một chức thực điện tử cũng có thời hạn lưu hành nhất định, và có thể bị thu hồi trước thời hạn Một chứng thực số có thể bị thu hồi nếu như chìa khoá bí mật (cùng cặp với chìa công khai của nó) đã bị lộ, hoặc mối liên hệ giữa khóa công khai và chủ thể sở hữu đã thay đổi Điều này có thể xảy ra ở mức độ không thường xuyên, nhưng người sử dụng phải luôn kiểm tra tính pháp lý của chứng thực số mỗi khi sử dụng Việc kiểm tra có thể thực hiện bằng cách so
sánh chứng thực với danh sách các chứng thực bị thu hồi (Certificate Revocation
List - CRL) Việc đảm bảo danh sách này luôn chính xác và được cập nhật kịp thời
là chức năng cơ bản của hạ tầng khóa công khai tập trung Tuy nhiên công việc này đòi hỏi nhân công và tiền bạc nên cần được đầu tư thích hợp Để thực sự đạt hiệu quả, danh sách này phải luôn sẵn sàng cho bất kỳ ai cần đến vào bất kỳ thời điểm nào tại mọi nơi
2.3 Nội dung của chứng thực số theo chuẩn X.509
Tiêu chuẩn về chứng thực số dựa trên cơ sở hạ tầng khóa công khai phổ biến nhất
hiện này là X.509 được ban hành bởi ITU-T (International Telegraph Union -