1.2 Các dịch vụ của mật mã khoá công khai Việc khám phá ra mật mã khoá công cộng tạo ra thêm nhiều dịch vụ, một trong số chúng không thể thực hiện được với mật mã đối xứng.. Nếu sự kiểm
Trang 1TRƯỜNG ĐẠI HỌC QUỐC GIA TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÙI THỊ NGA
NGHIÊN CỨU CƠ SỞ HẠ TẦNG KHÓA CÔNG KHAI
Người hướng dẫn: TS Nguyễn Ngọc Cương
Hà Nội, ngày 22 tháng 10 năm 2007
Trang 2MỤC LỤC
Lời cảm ơn 1
Lời cam đoan 2
Mục lục 3
Danh mục từ viết tắt 5
Danh mục hình vẽ 7
MỞ ĐẦU 8
Chương 1 - MẬT MÃ KHOÁ CÔNG CỘNG 10
1.1 Hệ mật mã đối xứng và không đối xứng 10
1.1.1 Mật mã khoá đối xứng 10
1.1.2 Mật mã khoá công khai 11
1.2 Các dịch vụ của mật mã khoá công khai 12
1.2.1 An toàn giữa những người lạ 12
1.2.2 Sự mã hoá 12
1.2.3 Chữ ký số 13
1.2.4 Tính toàn vẹn dữ liệu 14
1.2.5 Sự thiết lập khoá 14
1.2.6 Các dịch vụ khác 14
Chương 2 - CÁC KHÁI NIỆM CƠ SỞ HẠ TẦNG VÀ CÁC DỊCH VỤ PKI 16
2.1 Các khái niệm cơ sở hạ tầng và CSHT khoá công khai 16
2.1.1 Thẩm quyền chứng thực 17
2.1.2 Kho chứng chỉ 17
2.1.3 Huỷ bỏ chứng chỉ 18
2.1.4 Sao lưu và khôi phục khoá 19
2.1.5 Cập nhật khoá tự động 19
2.1.6 Lịch sử khoá 20
2.1.7 Chứng thực chéo 21
2.1.8 Hỗ trợ chống chối bỏ 22
2.1.9 Tem thời gian 22
2.1.10 Phần mềm máy khách 23
2.2 Các dịch vụ của PKI 25
2.2.1 Các dịch vụ lõi của PKI 25
2.2.2 Các dịch vụ mà PKI hỗ trợ 27
Chương 3 - VẤN ĐỀ CẤP PHÁT QUẢN LÝ, THU HỒI CHỨNG CHỈ 35
3.1 Các chứng chỉ và chứng thực 35
3.1.1 Các chứng chỉ X.509 35
Trang 33.1.2 Một số khuôn dạng chứng chỉ khác 42
3.1.3 Các chính sách chứng thực (Certificate Policies) 44
3.1.4 Thẩm quyền chứng thực (Certification Authority) 47
3.1.5 Thẩm quyền đăng ký (Registration Authority) 48
3.2 Quản lý khoá và chứng chỉ 49
3.2.1 Giai đoạn khởi tạo (Initiazation Phase) 52
3.2.2 Giai đoạn sau phát hành (Issued Phase) 58
3.2.3 Giai đoạn huỷ bỏ (Cancellation Phase) 62
3.3 Huỷ bỏ chứng chỉ 66
3.3.1 Mở đầu 66
3.3.2 Các kỹ thuật công bố định kỳ 68
Chương 4 - NGHIÊN CỨU VỀ CÁC LUẬT CHỮ KÝ ĐIỆN TỬ 79
4.1 Một số luật về chữ ký số 79
4.1.1 E-Sign 79
4.1.2 Luật chữ ký điện tử EU 80
4.1.3 Luật chữ ký điện tử Việt Nam 81
4.2 Một số quan tâm luật pháp về PKI 82
4.2.1 Các yêu cầu cho CA 82
4.2.2 Các vai và các chức trách 83
Chương 5 - PKI TRONG THỰC TẾ VÀ TƯƠNG LAI 87
5.1 PKI trong thực tế 87
5.2 Tương lai của PKI 92
5.3 Triển khai ứng dụng 96
5.3.1 Yếu tố về giá cả 96
5.3.2 Các vấn đề triển khai và quyết định 98
Chương 6 - XÂY DỰNG HỆ THỐNG CUNG CẤP CHỨNG CHỈ SỐ 102
6.1 Mục đích 102
6.2 Tổng quan về hệ thống 102
6.2.1 Mô hình hệ thống 102
6.2.2 Các thành phần của hệ thống VnpCert 105
6.2.3 Một số đặc tính của hệ thống cung cấp chứng chỉ số 105
6.2.4 Quá trình khởi tạo các thành phần trong hệ thống cung cấp chứng chỉ số VnpCert 108
6.2.5 Qui trình đăng ký, cấp phát và huỷ bỏ chứng chỉ 109
6.3 Cấu trúc vật lý và các vấn đề đảm bảo an toàn cho của hệ thống 118
KẾT LUẬN 121
TÀI LIỆU THAM KHẢO 122
PHỤ LỤC 124
Trang 4Danh mục từ viết tắt
ACL Access Control List API Application Program Interface ARLs Authority Revocation Lists
CA Certification Authority CARL Certification Authority Revocation List
CP Certificate Policy CPS Certification Practice Statement CRL Certificate Revocation List CSHT Cơ sở hạ tầng
DLL Dynamic Link Library
DN Distinguished Name DNS Domain Name System
DS Directory Server EPRL End-entity Public-Key Certificate Revocation List FTP File Transfer Protocol
HTTP Hyper Text Transfer Protocol IETF Internet Engineering Task Force IKE Internet Key Exchange
IPsec IP Security
IT Information Technology LAN Local Area Network LDAP Lightweight Directory Access Protocol LRA Local Registration Authorities
MD5 Message Digest Algorithm 5 OCSP Online Certificate Status Protocol OID Object Identification
PGP Pretty Good Privacy PKCS Public Key Cryptography Standards PKI Public Key Infrastructure
PKIX Public Key Infrastructure X.509 Working Group
RA Registration Authority RAO Registration Authority Operator RFC Request For Comments
Trang 5RSA Rivest Shamir Adleman SHA Secure Hash Algorithm S/MIME Secure Multipurpose Internet Mail Extensions SPKI Simple Public Key Infrastructure
SSL Secure Socket Layer TLS Transport Layer Security URL Uniform Resource Locator UTC Coordinated Universal Time VPN Virtual Private Network
Trang 6Danh mục hình vẽ
Hình 3.1: Cấu trúc chứng chỉ phiên bản 3 37
Hình 3.2: Cấu trúc chứng chỉ SET 44
Hình 3.3: Quản lý vòng đời khoá/chứng chỉ 51
Hình 3.4: Kịch bản khởi tạo thực thể đầu cuối 52
Hình 3.5: Các kịch bản huỷ bỏ chứng chỉ 64
Hình 3.6: Mô hình huỷ bỏ chứng chỉ 67
Hình 3.7: Cấu trúc CRL phiên bản 2 72
Hình 4.1: Các vai trò và các mối nghi ngờ thông thường 84
Hình 6.1: Mô hình VnpCert phân cấp hai tầng 104
Hình 6.2: CA và các thành phần liên kết với CA 104
Hình 6.3: Chứng chỉ do hệ thống VnpCert cung cấp 106
Hình 6.4: USB Token dung trong hệ thống VnpCert 108
Hình 6.5: Mô hình đăng ký và cấp chứng chỉ số 110
Hình 6.6: Mẫu đăng ký chứng chỉ số cho cá nhân do hệ thống VnpCert cung cấp 112 Hình 6.7: Nội dung tệp yêu cầu cấp chứng chỉ 113
Hình 6.8: Chứng chỉ lưu khoá công khai của RootCA trong hệ thống VnpCert 114
Hình 6.9: Chứng chỉ của người sử dụng 115
Hình 6.10: Giấy chứng nhận đã cấp chứng chỉ số cho người dùng 117
Hình 6.11: Qui trình huỷ bỏ chứng chỉ 118
Hình 6.12: Mô hình cung cấp chứng chỉ số VnpCert cùng các giải pháp đảm bảo an toàn cho hệ thống cung cấp chứng chỉ số và mạng nội bộ 120
Trang 7MỞ ĐẦU
Ngày nay, việc giao tiếp qua mạng Internet đang trở thành một nhu cầu cấp thiết Hạ tầng truyền thông IT ngày càng được mở rộng, người sử dụng dựa trên nền tảng này để truyền thông, giao dịch với đồng nghiệp, đối tác kinh doanh Các thông tin truyền trên mạng đều rất quan trọng như thông tin mật, mã số tài khoản… Tuy nhiên nguy cơ ăn cắp qua mạng ngày càng gia tăng với các thủ đoạn tinh vi, do đó cần phải có các biện pháp để bảo vệ tổ chức, doanh nghiệp trước các nguy cơ lừa đảo, can thiệp, tấn công, phá hoại hoặc vô tình tiết lộ các thông tin Cấu trúc hạ tầng
mã khoá công cộng (PKI – Public Key Infrastructure – hay còn gọi là hạ tầng khoá công cộng hoặc hạ tầng mã khoá công khai) cùng các tiêu chuẩn và các công nghệ ứng dụng của nó có thể coi là một giải pháp tổng hợp và độc lập mà chúng ta có thể
sử dụng để giải quyết vấn đề này
PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừa mang tính ứng dụng được sử dụng để khởi tạo, lưu trữ và quản lý các chứng chỉ điện tử (digital certificates) cũng như các khoá công khai và bí mật Ngoài việc bảo đảm an toàn cho thông tin liên lạc và lưu trữ, PKI còn tạo cơ sở pháp lý để giải quyết khi có tranh chấp Sáng kiến PKI ra đời năm 1995, khi mà các tổ chức công nghiệp và các chính phủ xây dựng các tiêu chuẩn chung dựa trên phương pháp mã hoá để hỗ trợ một hạ tầng bảo mật trên mạng Internet Tại thời điểm đó, mục tiêu được đặt ra là xây dựng một bộ tiêu chuẩn bảo mật tổng hợp cùng các công cụ quản lý và lý thuyết cho phép người sử dụng cũng như các tổ chức (doanh nghiệp hoặc phi lợi nhuận) có thể tạo lập, lưu trữ và trao đổi các thông tin một cách an toàn trong phạm vi cá nhân
và công cộng
Nội dung của luận văn này tập trung vào nghiên cứu về cơ sở hạ tầng khoá công khai: Các khái niệm, các nội dung, và các hoạt động liên quan tới PKI Những xem xét về triển khai, thảo luận các vấn đề thực tế và các quyết định liên quan tới việc triển khai một PKI trong thế giới thực Luận văn được trình bày như sau
Chương 1: Mã khoá công cộng
Trang 8Chương này trình bày khái niệm chính của mã khoá công cộng Khái niệm về mật mã đối xứng và không đối xứng, ưu điểm và nhược điểm của hai hệ mật này cùng các dịch vụ của mật mã khoá công khai
Chương 2: Các khái niệm cơ sở hạ tầng và các dịch vụ PKI
Trong chương này đưa ra và thảo luận cơ sở hạ tầng cho mục đích an toàn dựa trên việc xem xét cơ sở hạ tầng rộng khắp Các dịch vụ của PKI bao gồm dịch vũ lõi
và các dịch vụ được hỗ trợ bởi PKI
Chương 3: Vấn đề cấp phát quản lý, thu hồi chứng chỉ
Chương này xem xét toàn bộ quá trình quản lý vòng đời khoá/chứng chỉ bao gồm sự tạo, sự công bố, cập nhật, sự kết thúc, lịch sử khoá, sao lưu khoá và phục hồi khoá Đồng thời cũng thảo luận các kỹ thuật chung về thu hồi chứng chỉ
Chương 4: Nghiên cứu về các luật chữ ký điện tử
Thảo luận một số luật hiện tại như luật E-sign, luật chữ ký điện tử của EU, luật chữ ký điện tử của Việt Nam và một số quan tâm luật pháp về PKI gồm trách nhiệm của CA, trách nhiệm của bên đăng ký và trách nhiệm của bên sử dụng
Chương 5: PKI trong thực tế và trong tương lai
PKI trong thực tế, tập trung vào việc sử dụng PKI trong thế giới thực và làm sáng tỏ một số hiểu lầm chung và nguồn gốc của những nhầm lẫn về việc PKI có thể làm được gì và có thể không làm được gì
PKI trong tương lai, xem xét đến câu hỏi thường được đưa ra: Tại sao PKI vẫn chưa “cất cánh”? Chương này cung cấp một ý kiến về việc tại sao sự chấp nhận PKI chậm hơn nhiều người đã mong đợi và thảo luận
Chương 6: Xây dựng hệ thống cung cấp chứng chỉ số
Dựa trên mô hình quản lý và hoạt động của công ty Vinaphone, xây dựng hệ thống cung cấp chứng chỉ số VnpCert ứng dụng trong công ty Hệ thống này dùng
để cấp phát quản lý chứng chỉ, xác thực người dùng, khi cần thì thu hồi lại chứng chỉ đã cấp
Trang 9Chương 1 - MẬT MÃ KHOÁ CÔNG CỘNG
1.1 Hệ mật mã đối xứng và không đối xứng
Đã từ lâu kể từ khi con người giao tiếp với nhau, luôn có một mong muốn là giữ cho việc giao tiếp bí mật đối với những người không dự định trước Qua hàng nghìn năm, rất nhiều các phương pháp nhằm mục đích che dấu dữ liệu đã được phát minh Một lớp các phương pháp thử biến đổi những từ, ký tự hay bit được giao tiếp thành dạng khi nhìn giống như sai cú pháp hơn là một thông điệp có nghĩa Người nhận được dự định trước phải có khả năng chuyển dạng sai cú pháp đó trở lại dạng gốc để có thể đọc được thông điệp của người gửi, nhưng bất cứ người nhận nào khác chẳng hạn người nghe trộm không thể khôi phục được dạng gốc[7]
Tồn tại hai loại cơ chế phục vụ cho việc chuyển văn bản thành dạng sai cú pháp và ngược lại, đó là mật mã khoá đối xứng (khoá bí mật) và mật mã khoá công khai (khoá công cộng)
1.1.1 Mật mã khoá đối xứng
Cho tới giữa những năm 1970, chỉ duy nhất một cơ chế được biết đến dùng để biến đổi thông điệp thành dạng khác và ngược lại: Người gửi và người nhận được
đự định chia sẻ một số thông tin bí mật, thông tin bí mật này chỉ ra làm thế nào để
sự biến đổi được thực hiện
Một ví dụ nổi tiếng: Mỗi ký tự trong thông điệp gốc được thay thế bằng một
ký tự đứng sau đó 13 ký tự trong bảng chữ cái Tiếng anh Ví dụ A sẽ được thay thế bởi N, B được thay thế bởi O, và Z được thay thế bởi M Trong trường hợp này, thông tin an toàn để chuyển dạng sai cú pháp thành thông điệp có thể đọc được tương tự như trên: ký tự thứ 13 đứng trước N là A, trước O là B và trước M là Z[7] Thông tin bí mật chia sẻ được gọi là khoá Việc biến đổi từ dạng ban đầu thành dạng khác được gọi là mã hoá, việc biến đổi ngược lại thành dạng ban đầu gọi là giải mã Thông điệp gốc được gọi là bản rõ, thông điệp được mã hoá thành dạng khác, gọi là bản mã, sau đó thì người nhận có thể giải mã trở thành bản rõ tương
Trang 10ứng Toàn bộ cơ chế bí mật này được gọi là hệ mật mã (bao gồm mã hoá và giải mã)[3,4]
Hệ mật đối xứng có các đặc điểm sau:
Khoá mã hoá và khoá giải mã giống nhau (như ví dụ trên cả hai đều có giá trị 13)
Khoá này dễ dàng lấy được từ khoá kia (sự mã hoá được hoàn thành bởi luân phiên về sau 13 ký tự, và sự giải mã được hoàn thành bởi việc luân phiên về trước 13 ký tự)
Mặc dù mật mã đối xứng có một số ưu điểm (kích cỡ nhỏ và tốc độ mã hoá và giải mã có thể lên tới 10Mbs hoặc hơn), nhưng chúng cũng có một số mặt hạn chế:
Cần bảo đảm an toàn cho khoá trao đổi
Việc bắt đầu giao tiếp an toàn giữa những người không biết nhau từ trước gặp khó khăn
Gặp khó khăn về qui mô trong việc lưu trữ, quản lý khóa
1.1.2 Mật mã khoá công khai
Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đối xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá công khai và một phương pháp trao đổi công khai, để tạo ra một khoá bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính
“logarit rời rạc”)[8] Hệ mật mã khoá công khai hay còn được gọi là hệ mật mã phi đối xứng sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công cộng (public key) và khoá giải mã được gọi là khoá bí mật hay khóa riêng (private key) Trong
hệ mật này, khoá mã hoá khác với khoá giải mã Về mặt toán học thì từ khoá công cộng rất khó tính được khoá bí mật Biết được khoá này không dễ dàng tìm được khoá kia Khoá giải mã được giữ bí mật trong khi khoá mã hoá được công bố công khai Một người bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ
có người nào có đúng khoá giải mã mới có khả năng xem được bản rõ Người gửi Alice sẽ mã hoá thông điệp bằng khóa công cộng của người nhận và người nhận Bob sẽ giải mã thông điệp với khoá riêng tương ứng của mình
Trang 11Nhược điểm của mật mã khoá đối xứng đã được giải quyết nhờ hệ mật mã khoá công khai Nhưng do bản thân các hệ mật mã khoá công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều có tốc độ
mã dịch không nhanh lắm Chính nhược điểm này làm cho các hệ mật mã khoá công khai khó được dùng một cách độc lập
1.2 Các dịch vụ của mật mã khoá công khai
Việc khám phá ra mật mã khoá công cộng tạo ra thêm nhiều dịch vụ, một trong số chúng không thể thực hiện được với mật mã đối xứng Phần này sẽ làm nổi bật tầm quan trọng và thú vị của những dịch vụ này[7]
1.2.1 An toàn giữa những người lạ
Mật mã khoá công khai giải quyết được khó khăn vốn có của việc cho phép giao tiếp an toàn giữa những người lạ trong môi trường hệ mật mã đối xứng Việc tính toán khoá bí mật rất khó khăn ngay cả khi biết tất cả chi tiết của hệ mật mã, nhưng cũng trong hệ thống như vậy, khoá công khai có thể lấy được và phổ biến rộng rãi Ví dụ, khoá công khai có thể được lưu trong một kho công cộng (như sổ điện thoại) Thực vậy, thậm chí nếu Alice không có sự liên hệ trước với Bob, thì cô
ấy có thể xem khoá công khai của anh ấy và bảo vệ dữ liệu cho anh ấy Dĩ nhiên Alice phải chắc chắn rằng khoá công khai mà cô ấy có được thực sự thuộc về Bob
1.2.2 Sự mã hoá
Với một số thuật toán khoá công khai, mã hoá dữ liệu với khoá công khai là có thể, sau đó bản mã có thể được giải mã chỉ với khoá bí mật tương ứng Tuy nhiên những phép tính liên quan trong mật mã khoá công khai là quá chậm, do đó không thực tế trong nhiều môi trường Để thay thế điều đó có thể thực hiện theo 2 bước như sau:
1 Dữ liệu được mã hoá sử dụng một khoá đối xứng được tạo ngẫu nhiên
2 Khoá đối xứng sau đó được mã hoá nhờ khoá công khai của người nhận Khi người nhận nhận dữ liệu đã mã hoá, tương tự có một tiến trình bao gồm 2 bước:
1 Người nhận sử dụng khoá bí mật giải mã khoá đối xứng
Trang 122 Khoá đối xứng sau đó được sử dụng để giải mã dữ liệu
Thậm chí khi khối lượng dữ liệu được mã hoá là rất nhỏ, thì tiến trình 2 bước
đã đưa ra nên được sử dụng hơn là trực tiếp mã hoá và giải mã dữ liệu sử dụng cặp khoá bí mật/công khai Điều này giúp cho việc xử lý rõ ràng và đơn giản, tránh có bất cứ sự nhầm lẫn nào dù đầu ra của hoạt động giải mã khoá bí mật là dữ liệu hay
là một khoá đối xứng
1.2.3 Chữ ký số
Chữ ký số là một dịch vụ mật mã khoá công khai cho phép mà không dễ với
hệ mật đối xứng Nó tương tự như chữ ký viết tay bởi vì một người có thể ký trên nhiều tài liệu, bất cứ người nào cũng có thể đọc được chữ ký và kiểm tra sự chính xác của chữ ký Nó cũng an toàn hơn nhiều bởi vì nói chung không ai có thể tính toán để tạo ra được chữ ký của Alice
Chữ ký số dựa trên nền tảng khái niệm khoá công khai Có một khoá bí mật chỉ có Alice biết để khi cô ấy ký thì chữ ký là duy nhất và ràng buộc rõ ràng Hơn thế nữa khoá công khai phải phổ biến để người khác có thể kiểm tra chữ ký và nhận
ra chữ ký là của Alice
Dựa trên các khái niệm, có thể coi hoạt động của chữ ký số như hoạt động khoá bí mật trên dữ liệu trong đó kết quả tính toán là chữ ký Nếu chỉ Alice biết khoá bí mật này, thì chỉ có cô ấy có thể ký Mặt khác, bất cứ ai cũng có thể kiểm tra chữ ký nhờ khoá công khai và kiểm tra xem kết quả có tương ứng với dữ liệu gốc không
Dữ liệu được ký có thể có bất cứ kích thước nào (một thông điệp 5 từ hay tệp 10MB), nhưng hoạt động khóa bí mật có đầu vào và đầu ra cố định Để thực hiện được điều này sử dụng hàm băm mật mã Hàm này có đặc điểm là nó nhận đầu vào
có kích cỡ tùy ý, đầu ra có kích thước cố định, không thể tính toán để tìm ra hai đầu vào hàm băm khác nhau mà có cùng đầu ra Hoạt động ký là một tiến trình 2 bước:
1 Người ký băm dữ liệu thành một giá trị có độ lớn cố định
2 Sau đó người ký sử dụng giá trị này trong hoạt động khoá bí mật
Sự kiểm thử là một tiến trình cũng gồm hai bước
Trang 131 Người kiểm thử băm dữ liệu thành một giá trị có độ lớn cố định
2 Sau đó người kiểm thử kiểm tra giá trị này, dựa trên chữ ký đã truyền đi và khoá công khai của người ký Nếu chữ ký phù với khoá và giá trị băm, thì chữ ký là đúng ngược lại chữ ký là sai
1.2.4 Tính toàn vẹn dữ liệu
Một chữ ký số cung cấp cả việc xác thực dữ liệu gốc (chứng minh ai là người tạo ra dữ liệu) và tính toàn vẹn dữ liệu (chứng minh rằng dữ liệu không bị thay đổi) Đối với hàm băm, rất khó để tìm ra hai đầu vào mà băm cho đầu ra giống nhau, bất
cứ một sự thay đổi nào tới dữ liệu sẽ dẫn tới giá băm khác nhau, đây là nguyên nhân gây ra lỗi trong kiểm thử chữ ký Nếu sự kiểm thử chữ ký là thành công, người nhận
có thể cảm thấy tin tưởng rằng tính toàn vẹn dữ liệu được đảm bảo
1.2.5 Sự thiết lập khoá
Mật mã khoá công khai cũng có thể được sử dụng để thực hiện sự thiết lập khoá (đôi khi được gọi là sự trao đổi khoá) giữa hai người, đó là một giao thức có thể sử dụng khoá công khai và khoá bí mật, tại phần cuối của giao thức hai người chia sẻ khoá đối xứng mà không ai biết[3]
Việc thiết lập khoá xảy ra theo hai cách sau
Trong truyền khoá, một người tạo khoá đối xứng và gửi nó cho người kia Mật mã khoá công khai có thể được sử dụng để bảo vệ an toàn cho quá trình truyền Ví dụ, Alice có thể mã hoá khoá đối xứng sử dụng khoá công khai của Bob
Trong thoả thuận khoá, cả hai tham gia góp phần tạo khoá đối xứng Mật mã khoá công khai thực hiện một qui trình tương đối đơn giản, ngược lại điều này là khó đạt được đối với công nghệ hoàn toàn đối xứng
1.2.6 Các dịch vụ khác
Việc xuất hiện mật mã khoá công khai tạo ra nhiều dịch vụ thú vị dựa trên các dịch vụ đã liệt kê ở phần trên Bao gồm việc xây dựng bộ tạo số giả ngẫu nhiên an
Trang 14toàn, các giao thức cho việc chơi game, các cơ chế để quản lý bầu cử điện tử an toàn, …
Trang 15Chương 2 - CÁC KHÁI NIỆM CƠ SỞ HẠ TẦNG VÀ CÁC DỊCH VỤ
PKI
2.1 Các khái niệm cơ sở hạ tầng và CSHT khoá công khai
Cơ sở hạ tầng có thể xem như một nền móng rộng khắp Hai cơ sở hạ tầng quen thuộc là hạ tầng truyền thông điện tử (tức là mạng) và hạ tầng năng lượng điện Trong hạ tầng thứ nhất, mạng cục bộ (LAN) cho phép nhiều máy truyền dữ liệu trong chúng với nhiều mục đích; trong hạ tầng thứ hai, mạng lưới điện làm cho một số lượng rất nhiều các thiết bị điện nhận được hiệu điện thế và dòng điện cần cho hoạt động Tuy thế, nguyên tắc là giống nhau: cơ sở hạ tầng tồn tại sao cho các thực thể đa chủng loại có thể đơn giản “móc nối vào nó” và sử dụng nó trên cơ sở như được cần tới
Cơ sở hạ tầng cho các mục đích an ninh cần thừa nhận cùng nguyên tắc đó và
đề xuất các lợi ích nền tảng như vậy Cơ sở hạ tầng về an ninh cung cấp nền móng
an toàn cho toàn bộ tổ chức và có thể truy nhập được bởi mọi ứng dụng và đối tượng trong tổ chức mà cần đến an ninh an toàn Các “điểm cổng” (entry points) đi vào cơ sở hạ tầng cần phải tiện lợi và đồng nhất, giống như chồng giao thức TCP/IP hoặc ổ cắm điện trong tường Tức là, các đối tượng muốn sử dụng cơ sở hạ tầng không bị trở ngại một cách không chính đáng khi làm việc đó
Cơ sở hạ tầng an ninh rộng khắp là một kiến trúc nhạy cảm cho nhiều môi trường Kiến trúc này tránh các giải pháp làm từng phần, điểm-điểm, không thiết kế trước, không tương tác lẫn nhau, bằng cách ấy đưa vào khả năng quản lý được, an ninh vững chắc trải nhiều ứng dụng và các nền tính toán (computing platforms) Không khó tưởng tượng sự lộn xộn mang lại nếu như mỗi cặp người thông tin với nhau chạy đường truyền riêng của họ hoặc các cá nhân chạy máy phát điện riêng của mình với điện áp và dòng điện tuỳ ý Nhiều khía cạnh của cả xã hội cổ đại và hiện đại thể hiện rằng tính thống nhất và tiện lợi được đề nghị bởi một cơ sở hạ tầng rộng khắp, được thiết kế tốt, định nghĩa tốt là đáng giá với nỗ lực bao hàm trong các giai đoạn thiết kế và định nghĩa
Trang 16Định nghĩa cơ sở hạ tầng khoá công khai (PKI)
PKI là cơ sở của một hạ tầng an toàn rộng khắp, các dịch vụ của nó được cài đặt và thực hiện bằng cách sử dụng các khái niệm và kỹ thuật của khoá công khai[7]
2.1.1 Thẩm quyền chứng thực (Certification Authority)
Tiền đề nền tảng trong phát biểu ban đầu của mật mã khoá công khai là 2 người lạ (không biết nhau trước đó) có thể liên lạc an toàn Ví dụ, khi George muốn gửi một thông báo bí mật cho Lisa, người mà anh ta chưa gặp trước đó, anh ta sẽ bằng một cách nào đó có thể liên kết một khoá công khai với Lisa sao cho anh ta có thể mã thông báo cho cô ấy Với một số lượng người sử dụng tiềm năng gồm nhiều trăm, nhiều nghìn hoặc nhiều triệu các thực thể, cách thực tế nhất để đạt được điều này là bổ nhiệm một số tương đối nhỏ những người có thẩm quyền Những người
có thẩm quyền này được tin tưởng bởi một bộ phận lớn các dân cư, hoặc có thể, toàn bộ dân số để thực hiện nhiệm vụ gắn một cặp khoá công khai với một nhân dạng đã cho Các nhà thẩm quyền như vậy được gọi là những thẩm quyền chứng thực (Certification Authorities- CA) trong thuật ngữ PKI; họ chứng nhận (certify) việc gắn kết cặp khoá/nhân dạng bằng cách ký số một cấu trúc dữ liệu chứa một biểu diễn nào đó của nhân dạng và khoá công khai tương ứng Cấu trúc dữ liệu đó được gọi là chứng chỉ khoá công khai (public-key certificate) (hoặc đơn giản hơn, là
chứng chỉ)
Mặc dù một CA không phải là một phần tử nhất thiết của mỗi PKI có thể tưởng tượng được (đặc biệt những PKI mà rất hạn chế về kích thước hoặc những PKI thao tác trong những môi trường tương đối đóng, ở đó những người sử dụng có thể đóng vai một cách hiệu quả như những nhà thẩm quyền cho chính mình), nó là một thành phần quan trọng của nhiều PKI có quy mô lớn CA tạo nên một phần được mở rộng của định nghĩa PKI
2.1.2 Kho chứng chỉ (Certificate Repository)
Một CA chỉ giải quyết một phần của bài toán đã được nhắc tới trong mục trước (đó là, George cần liên kết một khoá công khai với Lisa để mã dữ liệu cho cô ấy)
Trang 17Chứng chỉ được phát hành bởi CA liên kết một khoá công khai với nhân dạng của Lisa; trừ khi George có thể định vị chứng chỉ này một cách dễ dàng, nếu không, anh
ta sẽ không có hiệu quả gì hơn so với việc chứng chỉ này chưa được tạo ra
Một dạng nào đó của hệ thống kho chứa mềm dẻo, quy mô lớn và trực tuyến cần phải được sắp đặt cho George để định vị các chứng chỉ mà anh ta cần cho việc liên lạc mật Vì thế, kho chứng chỉ (certificate repository) tạo nên một phần của định nghĩa PKI mở rộng, một PKI lớn sẽ vô dụng nếu không có nó
2.1.3 Huỷ bỏ chứng chỉ (Certificate Revocation)
CA ký một chứng chỉ gắn một cặp khoá công khai với nhân dạng của người sử dụng Trong các môi trường thế giới thực, tuy nhiên, các sự kiện sẽ cần đến việc phá bỏ gắn kết đó Các ví dụ thường được trích dẫn bao gồm việc thay đổi của nhân dạng, giống như việc chuyển từ tên con gái sang tên đã lấy chồng hoặc việc phát hiện ra khoá bí mật bởi hacker Cần phải có một cách để cảnh báo cho phần còn lại của cộng đồng người sử dụng rằng không tiếp tục chấp nhận nữa việc sử dụng khoá công khai này cho nhân dạng nọ Cơ chế cảnh báo này trong một PKI được gọi là huỷ bỏ chứng chỉ (certification revocation)
Một cái tương tự cho huỷ bỏ chứng chỉ PKI có thể được hình dung như sau Bằng lái xe là một dạng của chứng chỉ: việc gắn nhân dạng (tên và ảnh) với số bằng lái xe (quyền được lái) được thực hiện bởi một thẩm quyền tin cậy Khi cảnh sát thổi còi dừng xe lại, người cảnh sát không chỉ đơn thuần kiểm tra ngày hết hạn trên giấy phép lái xe; anh ta còn gọi tới nhà thẩm quyền để xem giấy phép đã bị huỷ bỏ hay chưa Việc kiểm tra tính huỷ bỏ là cần thiết bởi vì đôi khi các tình huống buộc rằng việc gắn kết nhân dạng/quyền được thể hiện trong chứng chỉ (chưa hết hạn) thực ra không còn được tin cậy nữa
Trừ khi các chứng chỉ có một thời gian sống ngắn đến mức chúng chỉ hiệu quả cho một lần sử dụng, một khuôn dạng nào đó của việc huỷ bỏ được đòi hỏi cho những tình huống mà trong đó một chứng chỉ cần phải được tuyên bố là không hợp
lệ Cho nên, chúng ta thấy rằng huỷ bỏ cũng tạo nên một phần của định nghĩa PKI
mở rộng
Trang 182.1.4 Sao lưu và khôi phục khoá (Key Backup and Recovery)
Trong một môi trường PKI đang hoạt động bất kỳ, một tỷ lệ nào đó những người sử dụng có thể bị mất quyền sử dụng khoá bí mật của mình Điều đó có thể
do một số tình huống, bao gồm:
Các mật khẩu bị quên Khoá bí mật đã được mã hoá của người sử dụng
đã cho vẫn còn về mặt vật lý nhưng không truy cập được
Phương tiện bị hỏng hóc Ví dụ, đĩa cứng bị hỏng, hoặc thẻ thông minh
bị gãy
Phương tiện bị thay thế Hệ điều hành được tải lại (ghi đè một cách hiệu quả các giấy uỷ nhiệm cục bộ), hoặc một máy tính model cũ được thay bằng một model mới và các giấy uỷ nhiệm là không được sao chuyển trước khi ổ đĩa cũ được định dạng lại (reformated)
Đối với nhiều môi trường (đặc biệt các môi trường liên hợp xí nghiệp), việc mất dữ liệu được bảo vệ bởi khoá không truy nhập được hiện tại nhìn chung là không chấp nhận được Việc kinh doanh có thể có những tài liệu quan trọng được
mã với khoá đối xứng mà đến lượt nó được mã bởi khoá công khai của một người
sử dụng cụ thể Nếu như khoá bí mật tương ứng bị mất, các tài liệu này bị làm cho không khôi phục được, nó có thể gây trở ngại nghiêm trọng, hoặc thậm chí dừng việc vận hành kinh doanh
Một giải pháp cho vấn đề này là mã tất cả dữ liệu cho nhiều người nhận, nhưng điều này có thể là không thực tế (ví dụ, đối với dữ liệu nhạy cảm cao) Một giải pháp dễ chấp nhận và thực tế hơn là ứng dụng sao lưu và khôi phục các khoá bí mật để giải mã (nhưng không phải các khoá bí mật để ký) Tính cần thiết của giải pháp này cho nhiều môi trường có nghĩa rằng sao lưu và khôi phục khoá sẽ tạo nên một phần mở rộng của định nghĩa PKI
2.1.5 Cập nhật khoá tự động (Automatic Key Update)
Một chứng chỉ có thời gian sống hữu hạn Điều đó có thể do các nguyên nhân
lý thuyết, giống như trạng thái hiện tại của hiểu biết trong mã thám đối với các thuật toán phi đối xứng và các độ dài khoá Một cách khác, nó có thể do các lý do dựa
Trang 19trên các đánh giá thực hành, ví dụ như giới hạn về lượng dữ liệu được bảo vệ một cách thông thường bởi một khoá chỉ là một số MB nào đó Tức là, dù vì lý do gì, trong nhiều môi trường PKI, một chứng chỉ đã cho sẽ phải “hết hạn” và được thay bằng một chứng chỉ mới Quá trình này được gọi là “cập nhật khoá” (key update) hoặc “cập nhật chứng chỉ” (certificate update)
Phần lớn những người sử dụng PKI sẽ cảm thấy nặng nề và khó chịu vì phải thực hiện quá trình cập nhật thủ công trên cơ sở định kỳ cho mỗi chứng chỉ của họ Người sử dụng thông thường không nhớ ngày mà chứng chỉ của họ bị hết hạn, và
họ chỉ thấy điều đó khi đã quá muộn (tức là, khi chứng chỉ không hợp lệ nữa) Cho nên, cho đến khi họ hoàn thành quá trình cập nhật, họ sẽ không được phục vụ bởi PKI Hơn thế nữa, khi người sử dụng ở trong trạng thái như vậy, quá trình cập nhật
là phức tạp hơn, đòi hỏi một trao đổi ngoại lệ (out-of-band) với CA, tương tự như quá trình khởi tạo
Giải pháp là cài đặt PKI theo cách mà khoá và chứng chỉ duy trì cập nhật theo một cách hoàn toàn tự động bởi chính PKI, không cần có sự can thiệp nào của người sử dụng Mỗi khi chứng chỉ của người sử dụng được dùng đến cho một mục đích bất kỳ, thời hạn hợp lệ của nó được kiểm tra Khi ngày hết hạn đến gần, thao tác đổi mới xảy ra, một chứng chỉ mới được tạo ra Sau đó, chứng chỉ mới được sử dụng thay cho chứng chỉ cũ và giao dịch được yêu cầu bởi người sử dụng cứ tiếp tục
Bởi vì việc cập nhật khoá tự động là sống còn đối với PKI hoạt động trong nhiều môi trường, nó tạo nên một phần của định nghĩa PKI mở rộng
2.1.6 Lịch sử khoá (Key History)
Khái niệm về cập nhật khoá, một cách thủ công hoặc tự dộng, kéo theo rằng, trên toàn bộ diễn biến thời gian, một người sử dụng đã cho có nhiều chứng chỉ “cũ”
và ít nhất một chứng chỉ “hiện tại” Tập hợp các chứng chỉ này và các khoá bí mật tương ứng được biết như là “lịch sử khoá” (key history) của người sử dụng (một cách đúng hơn là lịch sử chứng chỉ và khoá, nhưng thông thường tên ngắn hơn được
sử dụng) Việc lưu giữ vết của toàn bộ lịch sử khoá này là rất quan trọng bởi vì dữ
Trang 20liệu mà George đã mã hoá cho chính anh ta hoặc một ai đó đã mã hoá cho George vào thời điểm 5 năm trước đây không thể giải mã được bằng khoá giải mã bí mật hiện thời của anh ta (chú ý rằng việc mã lại toàn bộ dữ liệu mỗi khi khoá được cập nhật là giải pháp hoàn toàn không thực tế trong phần lớn các môi trường.) George cần lịch sử khóa của anh ta để cho khoá giải mã đúng có thể tìm thấy nhằm giải mã
dữ liệu yêu cầu Tương tự, một số chứng chỉ trong lịch sử khoá này có thể cần thiết
để kiểm chứng các chữ ký của George 5 năm trước đây
Giống như việc cập nhật khoá, việc quản trị các lịch sử khoá cũng cần phải tự động và hoàn toàn được duy trì bởi PKI Những người dùng thông thường sẽ không chấp nhận bất kỳ một hệ thống nào trong đó họ cần chọn một cách nào đó khoá bí mật tương ứng với họ, hoặc tồi hơn, thử mỗi khoá bí mật lần lượt cho đến khi được giải mã ra một cái gì đó có nghĩa PKI cần nắm giữ tất cả các khoá trong lịch sử, thực hiện sao lưu và khôi phục ở những nơi thích hợp, và tìm được khoá thích hợp tương ứng với bất kỳ dữ liệu nào đã được bảo vệ
Tầm quan trọng của lịch sử khoá làm cho nó tạo nên một phần của định nghĩa PKI mở rộng
2.1.7 Chứng thực chéo (Cross-Certification)
Khái niệm của một PKI toàn cục, duy nhất mà mỗi người dùng trong thế giới
có thể gia nhập dường như không thể trở nên thực tế Thay vào đó, cái mà chúng ta nhìn thấy hiện nay là một mô hình mà dường như có khả năng tồn tại: nhiều PKI, được cài đặt và hoạt động một cách độc lập, phục vụ các môi trường và các cộng đồng người dùng khác nhau
Khi cho tập các PKI được phát triển một cách độc lập, không tránh khỏi là ít nhất một số trong chúng cần phải được liên kết với nhau theo thời gian Việc thay đổi các quan hệ thương mại hoặc các nguyên nhân khác sẽ làm nảy sinh liên lạc an toàn giữa những cộng đồng người sử dụng của một số PKI, ngay cả khi liên lạc an toàn không phải là một yêu cầu trước đó
Khái niệm chứng thực chéo đã nảy sinh trong môi trường PKI để giải quyết chính xác nhu cầu này, nhằm tạo ra các quan hệ tin cậy giữa các cài đặt PKI không
Trang 21có liên quan trước đó Trong sự thiếu vắng của một PKI tổng thể, duy nhất, chứng thực chéo là cơ chế được chấp nhận, để cho phép những người dùng của một cộng đồng PKI này kiểm chứng các chứng chỉ của những người dùng trong một cộng đồng PKI khác Trong công việc kinh doanh, nhu cầu kết nối các PKI có thể xảy ra như là kết quả của các liên doanh liên kết, các tiếp nhận, thêm các bạn hàng và nhà cung cấp mới…Chứng thực chéo tạo nên một phần của định nghĩa PKI mở rộng
2.1.8 Hỗ trợ chống chối bỏ (Support for Non-repudiation)
Những người dùng một PKI thường thực hiện các hành động được dự định không thể thay đổi cùng với nhân dạng của họ Ví dụ, George ký số một văn bản, tức là làm khẳng định rằng văn bản đi ra từ anh ta Cho một dòng công việc suôn sẻ
và không bị ngắt, có một yêu cầu rằng những người dùng không thể phá bỏ một cách bất kỳ liên kết này vào một thời điểm bất kỳ trong tương lai Nhiều tháng sau khi ký văn bản, George cần phải không từ chối được rằng chữ ký thực sự xuất phát
từ anh ta bằng cách khẳng định rằng một ai đó có được khoá ký bí mật của anh ta và
đã sử dụng nó lên văn bản mà không có sự chấp nhận của anh ta hoặc anh ta không biết
Một sự từ chối như vậy được nhắc đến như là sự chối bỏ của hành động, cho nên một PKI cần phải cung cấp sự hỗ trợ để tránh hoặc ngăn chặn chối bỏ- một tính chất được biết như là không chối bỏ (non-repudiation) Một PKI không thể tự mình cung cấp tính không chối bỏ thực sự và đầy đủ; thông thường, yếu tố con người là cần thiết để áp dụng sự chín chắn và phán quyết trong việc cân nhắc sự kiện và đưa
ra quyết định cuối cùng Tuy nhiên, PKI cần phải hỗ trợ quá trình này bằng cách cung cấp một vài bằng chứng kỹ thuật nào đó được yêu cầu, chẳng hạn như xác thực nguồn gốc dữ liệu và lời chứng của thời gian mà dữ liệu đã được ký Hỗ trợ cho không chối bỏ vì thế tạo nên một phần của định nghĩa PKI mở rộng
2.1.9 Tem thời gian (Time Stamping)
Một phần tử quan trọng trong việc hỗ trợ cho các dịch vụ không chối bỏ là việc sử dụng của tem thời gian an toàn (secure time stamping) trong PKI Tức là, nguồn thời gian cần được tin cậy, và giá trị thời gian cần phải được vận chuyển một
Trang 22cách an toàn Cần phải có một nguồn có thể tin được về thời gian mà một tập hợp những người dùng PKI sẽ tin cậy Nguồn có thể tin được về thời gian cho PKI (tức
là, máy chủ tem thời gian an toàn mà chứng chỉ của nó được kiểm tra bởi cộng đồng
có liên quan những người dùng PKI) cần không tồn tại một cách riêng rẽ cho các mục đích của không chối bỏ; nhiều tình huống nảy sinh trong đó tem thời gian có thể tin cậy được trên một văn bản có thể trở nên hữu ích Tuy nhiên, việc hỗ trợ cho các dịch vụ không chối bỏ có lẽ là người lái quan trọng nhất cho tem thời gian đúng trong nhiều môi trường Trong trường hợp bất kỳ, tem thời gian tạo nên một phần của định nghĩa PKI mở rộng
2.1.10 Phần mềm máy khách (Client Software)
Một PKI có thể xem xét, ít nhất ở một mức nào đó, như là một tập hợp các máy chủ PKI mà sẽ “làm các việc” cho những người dùng, chẳng hạn như:
CA sẽ cung cấp các dịch vụ chứng thực
Kho sẽ lưu giữ các chứng chỉ và thông tin huỷ bỏ
Máy chủ sao lưu và khôi phục sẽ quản lý đúng các lịch sử khoá
Máy chủ tem thời gian sẽ liên kết thông tin thời gian tin cậy được vào các văn bản
Tuy nhiên, như bất kỳ ai có hiểu biết kiến trúc máy chủ- máy khách đều biết rằng, các máy chủ thông thường không thể làm được cái gì cho máy khách trừ khi máy khách yêu cầu dịch vụ (tức là, làm các đòi hỏi) Cũng nguyên tắc đó đúng cho một PKI Máy khách trên nền cục bộ của người dùng cần phải yêu cầu các dịch vụ chứng thực Máy khách cần phải hỏi về các chứng chỉ và quá trình liên quan tới thông tin huỷ bỏ Máy khách cần phải hiểu các lịch sử khoá và biết khi nào thì yêu cầu thao tác cập nhật khoá hoặc khôi phục khoá Máy khách cần biết khi nào nó yêu cầu một tem thời gian trên một văn bản Trên đầu nhận của các liên lạc an toàn (nơi
mà, theo quan điểm ứng dụng, một tiến trình “máy chủ” có thể thực hiện), vẫn là một phần mềm máy khách PKI mà sẽ cần hiểu (1) chính sách, (2) có hay không, khi nào và bằng cách nào trạng thái huỷ bỏ được xác định, và (3) xử lý đường dẫn chứng chỉ
Trang 23Phần mềm máy khách là một thành phần cần thiết của một PKI đầy đủ đặc điểm và hoạt động hoàn toàn Không có nó, nhiều dịch vụ được đề nghị bởi PKI là bất lực về hiệu quả, bởi vì không có gì là có để làm cho nó có thể và sử dụng chúng Rất quan trọng chú ý rằng đó không phải là phần mềm ứng dụng, không phải mã lệnh có nhận thức về PKI nằm sẵn trong ứng dụng như trình duyệt hoặc gói e-mail Một kiến trúc như vậy sẽ vi phạm một cách nền tảng khái niệm của PKI như là một
cơ sở hạ tầng thực sự, cung cấp độ an toàn theo một cách bền chắc trải tất cả các ứng dụng và các nền tảng tính toán Thay vào đó, phần mềm khách là mã lệnh tồn tại bên ngoài mỗi ứng dụng và thi hành đầu cuối khách được yêu cầu của các dịch
vụ PKI Các ứng dụng kết nối tới phần mềm khách này thông qua các điểm truy cập được chuẩn hoá, nhưng tự các ứng dụng không tương tác với nhiều máy chủ PKI Tức là, các ứng dụng sử dụng cơ sở hạ tầng, chúng không phải là một phần của cơ
sở hạ tầng
Rất quan trọng nhận thấy rằng sự cần thiết của phần mềm client-side không nói gì về kích thước và sự thường xuyên của phần mềm này Đặc biệt, thành phần client-side của PKI có thể lớn hoặc nhỏ, sớm nở tối tàn hoặc tồn tại lâu dài; tức là,
Một Java applet hoặc mã mobile tương tự, được tải về theo thời gian thực trên
cơ sở như cần đến và sau đó được xoá đi khi ứng dụng đang gọi (như trình duyệt Web chẳng hạn) được tắt đi
Thư viện liên kết động(DLL), hoặc tương tự, nằm thường trực trên nền tảng máy khách
Có nhiều khả năng để phần mềm client-side được cài đặt và gọi tới, nhưng nó cần phải có thể như một thành phần độc lập bên ngoài tất cả các ứng dụng sử dụng PKI để cung cấp đầy đủ các lợi ích của PKI cho máy khách
Trang 24Định nghĩa mở rộng về PKI của chúng ta bao gồm phần mềm máy khách như
là một thành phần cần thiết
2.2 Các dịch vụ của PKI
2.2.1 Các dịch vụ lõi của PKI
Một PKI được coi một cách tổng quát tương ứng với 3 dịch vụ cơ bản sau:
Xác thực (Authentication) là đảm bảo cho một thực thể rằng một thực thể
khác chính là người mà họ khẳng định
Toàn vẹn (Integrity) là đảm bảo cho một thực thể rằng dữ liệu đã không bị
thay đổi (một cách chủ ý hoặc không chủ ý) giữa “ở đây” với “ở kia” hoặc giữa “sau đó” với “bây giờ”
Bí mật (Confidentiality) là đảm bảo cho một thực thể rằng không một ai có
thể đọc được một thông điệp dữ liệu cụ thể ngoại trừ những người nhận có chủ định trước
Xác thực
Xác thực có thể tìm thấy ứng dụng trong 2 ngữ cảnh chính, đó là định danh thực thể (entity identification) và định danh nguồn gốc dữ liệu (data origin identification)
Định danh thực thể, tự nó, phục vụ đơn giản để định danh một thực thể cụ thể
đã tham gia vào, về bản chất là tách rời với bất kỳ hoạt động nào mà thực thể muốn thực hiện Cái đó rõ ràng là có giá trị bị giới hạn (bởi vì thông thường thực thể sẽ muốn thực hiện các hoạt động khác trên cơ sở định danh của mình) Cho nên, trong thực tế, định danh thực thể nói chung sinh ra một kết quả cụ thể mà sau đó được sử dụng để làm cho có thể các hoạt động, hoặc truyền thông khác Ví dụ, quá trình định danh thực thể có thể mang lại (hoặc mở) một khoá bí mật mà có thể sau đó được sử dụng để giải mã một file để đọc hoặc thay đổi cập nhật, hoặc để thiết lập một kênh liên lạc an toàn với thực thể khác Định danh, tự nó, một khi đã được xác thực, cũng có thể được tương ứng với một tập các quyền trên một danh sách kiểm
Trang 25soát truy cập (Access Control List – ACL) cho mục đích làm các quyết định kiểm soát truy cập[11]
Định danh nguồn gốc dữ liệu nhận dạng một thực thể cụ thể như là nguồn gốc,
hoặc xuất phát điểm của một thông điệp dữ liệu đã cho Đây không phải là định danh thực thể một cách tách biệt, cũng không phải định danh thực thể cho mục đích
rõ ràng nhằm làm có thể một hành động khác nào đó Thay vào đó, đây là định danh với dự định của một gắn kết tĩnh và không thể huỷ được, gắn kết một thực thể được định danh với dữ liệu cụ thể nào đó Một quá trình như vậy có thể cung cấp hỗ trợ
cho một dịch vụ không chối bỏ
Toàn vẹn dữ liệu
Toàn vẹn dữ liệu (data integrity) là đảm bảo về tính không thay đổi (nonalteration): Dữ liệu nếu đã bị thay đổi thì bị phát hiện Rõ ràng, một đảm bảo như vậy là cần thiết trong bất kỳ dạng nào của kinh doanh hoặc môi trường thương mại điện tử, nhưng nó cũng được mong muốn trong nhiều môi trường khác Mức của toàn vẹn dữ liệu có thể đạt được bởi các kỹ thuật như bit chẵn lẻ hoặc Cyclic Redundancy Codes (CRCs) Các kỹ thuật như vậy, tuy nhiên, chỉ được thiết kế để phát hiện một tỷ lệ nào đó của các bit lỗi tình cờ, chúng không có sức mạnh cản phá việc thay đổi dữ liệu một cách chủ định, bởi những kẻ thù quyết định, với nhiệm vụ
là thay đổi nội dung của dữ liệu sao cho có lợi
Để bảo vệ dữ liệu chống lại dạng tấn công này, các kỹ thuật mật mã được yêu cầu Các thuật toán và khoá thích hợp cần được khai thác và được hiểu chung giữa thực thể muốn cung cấp toàn vẹn dữ liệu và thực thể muốn đảm bảo tính toàn vẹn của dữ liệu Dịch vụ PKI về toàn vẹn có thể rất hữu ích, khi thoả mãn các lợi ích của cả 2 bên bởi vì đó là khung cảnh mà qua đó lựa chọn thuật toán và thoả thuận khoá có thể xảy ra Hơn nữa, các thoả thuận như thế này có thể xảy ra theo một cách hoàn toàn trong suốt đối với các thực thể tham gia, cho nên tính toàn vẹn có thể giả thiết trong tất cả các giao dịch dữ liệu có liên quan tới PKI (Tình huống này thay đổi chỉ khi việc kiểm chứng tính toàn vẹn thất bại cho một mẩu dữ liệu cụ thể, trong
Trang 26trường hợp này người sử dụng cần phải được thông báo để hành động thích hợp được làm.)
Bảo mật
Tính bảo mật (confidentiality) là đảm bảo bí mật của dữ liệu: Không ai có thể đọc dữ liệu ngoại trừ một hay nhiều thực thể được định trước Tính bảo mật được
yêu cầu khi dữ liệu là:
Được lưu trữ trên phương tiện (giống như ổ cứng của máy tính) mà có thể đọc bởi cá thể không có quyền
Được sao lưu vào một thiết bị (giống như băng từ) mà có thể rơi vào tay của một cá thể không được phép
Được truyền trên các mạng không được bảo vệ
Hơn thế nữa, với độ phức tạp và sức mạnh của các kẻ thù xác định ngày nay, các kỹ thuật mật mã nhằm cung cấp tính bảo mật cần phải được áp dụng cho mọi dữ liệu nhạy cảm Cũng như với tính toàn vẹn, điều này cần đến một hiểu biết chung giữa các thực thể về các thuật toán thích hợp và khoá Dịch vụ bảo mật PKI là bối cảnh mà qua đó một hiểu biết chung như vậy có thể đạt được theo một cách trong suốt đối với các thực thể thực tế tham gia vào Các dịch vụ bảo mật khác không dựa vào PKI yêu cầu tương tác thực thể hiện rõ ở một mức nào đó và vì thế là dễ mắc lỗi hơn và khó sử dụng hơn
2.2.2 Các dịch vụ mà PKI hỗ trợ
Trong phần này, chúng ta xem xét các dịch vụ an ninh mà theo một cách nào
đó có thể được hỗ trợ bởi PKI Đó là các dịch vụ một cách cố hữu hoặc là nền tảng
có liên quan tới bất kỳ PKI nào, chúng là các dịch vụ mà có thể xây dựng trên các dịch vụ PKI cốt lõi Một số PKI có thể hỗ trợ các dịch vụ phụ trợ này, một số PKI khác có thể không hỗ trợ
Liên lạc an toàn (secure communication)
Liên lạc an toàn có thể được định nghĩa như là việc truyền của dữ liệu từ người gửi tới người nhận với một hoặc nhiều các tính chất như xác thực, toàn vẹn và bí mật Dịch vụ này rõ ràng dựa trên các dịch vụ PKI cốt lõi, nhưng nó sử dụng chúng
Trang 27chung với các giao thức truyền thông và mạng truyền thống để tạo ra một dịch vụ được mở rộng, được hỗ trợ bởi PKI Sau đây là một số ví dụ của liên lạc an toàn:
Thư điện tử mật (sử dụng, ví dụ, một giao thức chẳng hạn như Secure Multipurpose Internet Mail Extensions Version 2 (S/MIMEv2) hoặc S/MIMEv3)[12,13]
Truy cập máy chủ Web an toàn (sử dụng, chẳng hạn, một giao thức chẳng hạn như An toàn tầng giao vận (Transport Layer Security- TLS)[17]
Mạng riêng ảo an toàn (Virtual Private Network - VPN) (sử dụng, ví dụ, một giao thức chẳng hạn như IPsec/IKE)[17,18]
Thư điện tử mật, ví dụ, có thể được cài đặt như là một dịch vụ được hỗ trợ bởi PKI một cách đơn giản, bằng cách buộc gói e-mail truy cập các dịch vụ an toàn cốt lõi của PKI để mã và ký các thông báo và tạo kết quả nhờ cú pháp S/MIME Các thông báo có thể được chuyển qua mạng không an toàn mà không làm tổn thương tính xác thực, tính toàn vẹn hoặc tính bảo mật
Tem thời gian an toàn (secure time stamping)
Tem thời gian an toàn bao gồm một thẩm quyền thời gian được tin cậy, tương ứng tem thời gian với một mẩu cụ thể của dữ liệu, với các tính chất của xác thực và toàn vẹn Cái quan trọng không phải là chính khuôn dạng thời gian thực sự mà là độ
an toàn của liên kết thời gian/dữ liệu Đặc biệt, với một số ứng dụng tem thời gian không biểu thị thời gian một cách chính xác nói chung, mà một số thứ tự đơn giản biểu thị rằng tài liệu này đã được trình bày cho nhà thẩm quyền trước tài liệu X và sau tài liệu Y có thể là đủ Tuy nhiên, các bên quan tâm cần phải có thể kiểm tra rằng tem thời gian được liên kết với tài liệu này là xác thực và có tính toàn vẹn[1] Không yêu cầu chỉ có một thẩm quyền tem thời gian duy nhất cho dịch vụ này Một cách khác là có thời gian an toàn (tức là, được tin cậy) có thể tại môi trường địa phương của mỗi thực thể, mỗi thực thể có thể liên kết một cách an toàn tem thời gian với dữ liệu của mình khi cần thiết Trong thực hành, tuy nhiên, thông thường khó nhận được thời gian an toàn tại mỗi môi trường địa phương (ví dụ, mỗi máy
Trang 28tính để bàn của người sử dụng) Cho nên, phương pháp thường được chọn là nhận thời gian an toàn tại một số rất nhỏ các vị trí trong mạng (có thể chỉ là 1)- những điểm này sau đó trở thành các nhà thẩm quyền tem thời gian được tin cậy – và buộc các thực thể yêu cầu các tem thời gian trên dữ liệu từ những nhà thẩm quyền này khi được yêu cầu
Dịch vụ tem thời gian an toàn sử dụng các dịch vụ PKI cốt lõi về xác thực và toàn vẹn Một cách đặc biệt, tem thời gian trên một tài liệu bao gồm chữ ký số trên
tổ hợp của biểu diễn nào đó của thời gian và giá trị băm mật mã của chính tài liệu (Chữ ký của nhà thẩm quyền cung cấp cả tính xác thực và toàn vẹn dữ liệu)
Để lược đồ này hoạt động, tất cả các thực thể PKI liên quan cần biết và tin cậy khoá công khai để kiểm tra của nhà thẩm quyền tem thời gian, để cho chữ ký trên tem thời gian có thể được kiểm tra và tin cậy Nếu một khoá công khai như vậy là không tin cậy (ví dụ, có sự thoả hiệp của khoá bí mật để ký của nhà thẩm quyền tem thời gian), các thực thể PKI cần phải được thông báo về điều đó và khởi tạo lại với khoá được tin cậy khác cho nhà thẩm quyền này, sử dụng quá trình bên ngoài an toàn nào đó Tất cả các tem thời gian đã được ký nhờ khoá không được tin cậy cần được xem như là không hợp lệ
Chứng thƣ (notarization)
Chứng thư được định nghĩa là đồng nghĩa với chứng nhận dữ liệu (data certification) Tức là, công chứng viên chứng nhận rằng dữ liệu là hợp lệ hoặc chính xác, trong đó ý nghĩa của chính xác cần phụ thuộc vào kiểu của dữ liệu được chứng nhận Ví dụ, nếu dữ liệu được chứng nhận là chữ ký số trên giá trị băm nào đó, công chứng viên có thể kiểm chứng rằng chữ ký là “hợp lệ” theo nghĩa sau:
Tính toán kiểm tra chữ ký cùng với khoá công khai tương ứng là chính xác về mặt toán học
Khoá công khai là vẫn được liên kết một cách hợp lệ với thực thể đã ký giá trị
Trang 29 Tất cả dữ liệu khác được yêu cầu trong quá trình xác thực tính hợp lệ (chẳng hạn như các chứng chỉ thêm để tạo nên một đường dẫn đầy đủ)
là truy cập được và đáng tin cậy
Công chứng viên PKI là một thực thể được tin cậy bởi một tập hợp nào đó các thực thể PKI khác để tạo nên dịch vụ công chứng đúng đắn Nó chứng nhận tính chính xác của dữ liệu thông qua cơ chế của chữ ký số, các thực thể PKI khác cần một bản sao được tin cậy của khoá công khai để kiểm tra của công chứng viên, sao cho cấu trúc chứng nhận dữ liệu đã được ký có thể được kiểm tra và được tin cậy Dịch vụ được PKI hỗ trợ của việc công chứng dựa vào dịch vụ PKI cốt lõi về xác thực Thông thường nó cũng sẽ dựa vào dịch vụ được PKI hỗ trợ về tem thời gian an toàn bởi vì công chứng viên cần phải đưa thời gian, mà tại lúc đó việc công chứng được làm, vào cấu trúc dữ liệu được xác nhận
Chống chối bỏ (non-repudiation)
Chống chối bỏ là thuật ngữ được sử dụng cho dịch vụ mà đảm bảo tới một quy
mô có thể về mặt kỹ thuật, rằng các thực thể trở nên trung thực về các hành động của họ Các biến thể được bàn tới chung nhất là không chối bỏ về nguồn gốc (non-repudiation of origin) (trong đó người sử dụng không thể chối bỏ một cách giả mạo rằng đã gửi một văn bản hoặc tài liệu) và không chối bỏ việc tiếp nhận (non-repudiation of receipt) (trong đó người sử dụng không thể chối bỏ một cách giả mạo rằng đã nhận một văn bản hoặc tài liệu) Tuy nhiên, các biến thể khác cũng đã được định nghĩa, bao gồm không chối bỏ việc tạo ra (non-repudiation of creation), không chối bỏ việc phân phát (non-repudiation of delivery), không chối bỏ của việc tán thành (non-repudiation of approval)
Ví dụ, nếu Bob gửi một biên nhận đã được ký số tới Alice, khẳng định rằng anh ta đã nhận được một văn bản cụ thể từ cô ấy, anh ta không thể sau này chối bỏ rằng đã nhận văn bản mà không cần thừa nhận một trong các điều sau:
Anh ta đưa một cách chủ ý khoá bí mật để ký của mình cho bên thứ ba
để cho phép khả năng chối bỏ biên nhận văn bản
Trang 30 Khoá bí mật để ký của anh ta đã bị thoả hiệp mà anh ta không biết (và anh ta đã sơ xuất một chút trong việc bảo vệ nó một cách đúng đắn) Dịch vụ “không chối bỏ biên nhận” đem lại cho Alice một đảm bảo nào đó rằng Bob sẽ giữ gìn cẩn thận một cách trung thực bằng biên lai đã được ký số mà anh ta đã gửi đi
Quản lý quyền ƣu tiên (Privilege management)
Quản lý quyền ưu tiên (privilege management) là thuật ngữ chung cho cái được gọi theo nhiều cách khác nhau là cấp phép, kiểm soát truy nhập, quản lý quyền, quản lý việc cho phép, quản lý các khả năng, Đặc biệt, chủ đề này đề cập tới cái mà thực thể được cho phép nhìn thấy và làm trong một môi trường cá biệt Chủ đề này bao gồm các câu hỏi như sau:
Alice có được cho phép để đọc bản ghi này trong cơ sở dữ liệu?
Bob có thể thực thi chương trình ứng dụng này?
Christine có được gán quyền truy nhập từ xa đối với mạng này?
David có bị ngăn cản khỏi việc xem các trang web trong phần này của máy chủ Web?
Các đặt hàng mua bán trên 10,000 USD từ Erica có thể được chấp nhận?
Các chính sách (đôi khi được nói tới như là các quy tắc) cần phải được định nghĩa cho các thực thể riêng lẻ, các nhóm cá biệt của các thực thể, hoặc các vai trò thực thể được định rõ trong môi trường Các chính sách này chỉ ra cái mà các thực thể, các nhóm và các vai là được cho phép để làm (hoặc ẩn hoặc hiện) và cái mà chúng không được phép để làm Quản lý quyền ưu tiên là việc tạo ra và ép buộc của các chính sách cho mục đích làm có thể công việc hàng ngày trong khi duy trì một mức mong muốn về độ an toàn[1]
Riêng tƣ
Riêng tư (khả năng của thực thể nhằm kiểm soát cách thức, khi nào, và đến mức độ nào thông tin cá nhân về anh ta được truyền tới những người khác) không phải là một suy nghĩ chung được bàn tới như là một dịch vụ có thể được hỗ trợ bởi
Trang 31PKI, có thể do PKI thường được liên kết với các chứng chỉ và các chứng chỉ được giả thiết một cách tổng quát là chứa một kiểu nào đó của thông tin định danh (một cách địa phương nếu không duy nhất về tổng thể) Nhưng tính riêng tư có thể được
hỗ trợ bởi PKI nếu một "thông tin định danh" như vậy được tách riêng ra từ các định danh thế giới thực của những người sử dụng Tức là, các chứng chỉ có thể là ẩn danh hoặc bút danh đối với những người quan sát của một giao dịch
Chứng chỉ ẩn danh (anonymous certificate) chứa bí danh (anonym) (đó không phải là một cái tên, hoặc là một cái tên dùng một lần hoàn toàn vô nghĩa), chứng chỉ bút danh (pseudonymous certificate) chứa bút danh (pseudonym) (đó là tên giả) Đây là điểm tương phản với các chứng chỉ nói chung được tương ứng với PKI, nó được định hướng một cách có chủ ý với xấp xỉ có thể gần nhất với veronym (tên thật), đặc biệt nếu các dịch vụ chống chối bỏ được yêu cầu
Ba kiểu tên được phân biệt bởi lượng liên kết có thể thông qua các giao dịch
Ẩn danh là những cái tên không có nghĩa hoặc một cái tên trống (null name) để sử dụng một lần, nên không có một liên kết nào được làm (1) với người thực sự tham gia trong giao dịch và (2) giữa các giao dịch; việc cho các đồng xu vào một máy bán hàng để mua một thanh kẹo là một giao dịch ẩn danh Bút danh hoặc là không
có nghĩa hoặc là các cái tên rõ ràng có nghĩa cho nhiều mục đích nhưng không mang quan hệ đối với tên thật Cho nên, không có liên kết nào được làm đối với con người thực sự tham gia trong giao dịch, nhưng rõ ràng rằng cùng một thực thể (không được biết) được tham gia vào nhiều giao dịch khác nhau; việc sử dụng một thẻ tín dụng được đánh cắp để mua các đồ vật từ một số trang web là một tập của các giao dịch bút danh Veronyms là tên thực của người sử dụng, cho nên mối liên kết có thể được làm đối với cả người tham gia và qua nhiều giao dịch khác nhau Mỗi kiểu tên có hữu ích của nó, cả 3 kiểu có thể gắn với cặp khoá thông qua chứng thực
Cần nhận thấy rằng tính chất bút danh- cho phép liên kết của các giao dịch khác nhau - có thể không cố ý cho phép người quan sát rút ra định danh thật (tức là,
Trang 32veronym) qua thời gian bởi vì các mẫu hoặc các đặc trưng khác trong các giao dịch này, điều này làm thất bại toàn bộ dự định của hoạt động bút danh
Thật thú vị, tính ẩn danh và tính bút danh được hỗ trợ bởi PKI không có ảnh hưởng đối với tính sẵn sàng và mục đích của xác thực Tức là, mục đích của các chứng chỉ ẩn danh và bút danh tạo ra sự phân tách giữa xác thực (authentication) và nhận dạng (identification)- Alice có thể xác thực mạnh đối với Bob mà không làm
lộ định danh của cô ta Cô ta làm điều đó theo cách thông thường dựa trên PKI (tức
là, theo một kiểu nào đó của giao thức thách thức-trả lời, bằng cách chứng minh hiểu biết về khoá bí mật tương ứng với khoá công khai được chứa trong chứng chỉ của cô ta); tại cuối của trao đổi xác thực, tuy nhiên, Bob chỉ chắc chắn rằng "thực thể khác" là người giữ hợp pháp của giá trị của trường chủ thể trong chứng chỉ, đó
là tên ẩn danh hoặc tên bút danh Riêng tư được giữ gìn đến mức Bob không có cách nào để biết định danh của thực thể khác này (tức là, "Alice")
Khả năng làm xác thực và không nhận dạng (nhận thực) là đáng giá khi tính riêng tư được yêu cầu qua các giao dịch có nhiều bước, nhiều bên Đặc biệt, xem xét kịch bản sau Thực thể E xác thực với trang Web S1 theo bút danh S1 không biết định danh của E bởi vì E sử dụng bút danh; tuy nhiên, S1 biết rằng đó chính là thực thể căn cứ vào một hay nhiều cuộc viếng thăm trước đó và có thể gán một tình trạng đặc biệt cho E (ví dụ, "E muốn xem thông tin dạng này", hoặc "E nhận dịch
vụ ưu tiên") Để thoả mãn giao dịch hiện tại, S1 muốn chuyển hướng E tới trang Web thứ hai, S2 S1 có thể nói về E bằng cách nào? Tức là, S1 làm thế nào để nói với S2 rằng, "Đây là E với tình trạng đặc biệt"? (Đôi khi cái này được gọi là vấn đề giới thiệu mục lục- indexical reference problem.) Có 3 loại chung của các giải pháp
để giới thiệu mục lục: các thẻ vật mang, các lược đồ dựa vào bí mật, các lược đồ dựa vào khoá công khai Với các thẻ vật mang, S1 nói với S2, "Bất cứ ai trình thẻ này (hoặc một con trỏ tới thẻ) cho anh chính là thực thể mà tôi đã nói tới." Đơn giản việc giữ thẻ (hoặc con trỏ) và khả năng trình nó cho S2 là cơ chế xác thực cho E Rõ ràng, nếu thẻ/con trỏ bị đánh cắp, thì bất cứ ai lấy được nó có thể giả mạo thành công E đối với S2 (ví dụ, bằng cách sử dụng Secure Socket Layer trên tất cả các kết
Trang 33nối có thể giúp giảm nhẹ mối quan tâm này nhưng không thể đảm bảo chắc chắn rằng thẻ/con trỏ sẽ được bảo vệ đủ để chống lại kẻ trộm trong khi nó nằm tại trình duyệt web của E trong quá trình chuyển từ S1 sang S2)
Với loại thứ hai, E và S1 có chung một bí mật nào đó, chẳng hạn như mật khẩu hoặc khoá đối xứng S1 nói với S2, "Bất cứ ai nói cho anh bí mật sau chính là thực thể mà tôi nói tới; bí mật là oa8ue!^6." Chứng minh việc biết bí mật cho S2 là cơ chế xác thực cho E Giải pháp này bị nhược điểm ở chỗ bí mật được chia sẻ giữa E
và S1 nhất thiết cần phải lộ ra cho S2 biết, S2 sau đó có thể đóng giả E đối với S1 vào thời điểm sau nếu S2 muốn Vấn đề này là trở nên trầm trọng nếu bí mật được đưa cho nhiều trang web hơn (để thực hiện các bước tiếp theo trong giao dịch hoặc cho các mục đích của SSO)
Với loại thứ 3, E có cặp khoá và một chứng chỉ S1 nói với S2, "Bất cứ ai có thể chứng minh một căn cứ dựa vào chứng chỉ này là thực thể mà tôi đã nói tới." Việc chứng minh biết khoá bí mật tương ứng với khoá công khai trong chứng chỉ (bút danh) là cơ chế xác thực cho E Giao dịch nhiều bước có thể được xác thực mạnh tại mỗi giai đoạn, không có khả năng cho việc giả mạo (hoặc từ người quan sát đối với việc truyền thông hoặc từ hành vi ác ý của S2) Đó vẫn là SSO từ quan điểm của thực thể con người E, người nhập một mật khẩu (hoặc là PIN, hoặc là sinh trắc học, hoặc cái gì đó) vào hệ thống địa phương để mở khoá một cặp khoá, nhưng không đóng góp trong xác thực dựa trên PKI đối với S1 hoặc S2
Dịch vụ về riêng tư được PKI hỗ trợ cho phép xác thực mạnh- cho nên độ an toàn cao hơn so với các cơ chế khác trong các giao dịch nhiều bên và nhiều bước Cái đó được hoàn thành thông qua việc sử dụng của các chứng chỉ ẩn danh hoặc bút danh mà không làm lộ định danh đối với bất kỳ một bên tin cậy nào trong các giao
dịch
Trang 34Chương 3 - VẤN ĐỀ CẤP PHÁT QUẢN LÝ, THU HỒI CHỨNG CHỈ
3.1 Các chứng chỉ và chứng thực
3.1.1 Các chứng chỉ X.509
Ba phiên bản của chứng chỉ khoá công khai X.509 đã được định nghĩa Chứng chỉ khoá công khai phiên bản 1 ban đầu được định nghĩa trong Khuyến cáo X.509 năm 1988, nó thiếu sót do tính không mềm dẻo cố hữu, bởi vì phiên bản này không thể được mở rộng để hỗ trợ thêm các đặc tính Chứng chỉ khoá công khai phiên bản
2 đã sửa chữa nhỏ khuyết điểm này, nó đơn giản gia cố phiên bản 1 với việc thêm 2 trường lựa chọn Bởi vì nhu cầu cho các trường này là không đáng kể và vẫn không
có khả năng hỗ trợ các mở rộng khác, chứng chỉ khoá công khai phiên bản 2 đã không nhận được sự chấp nhận rộng rãi
Các chứng chỉ khoá công khai phiên bản 3, như đã được chỉ ra trong Khuyến cáo X.509 năm 1997[9], đã được giới thiệu để điều chỉnh những thiếu sót tương ứng với các định nghĩa phiên bản 1 và phiên bản 2 Đặc biệt, phiên bản 3 đề nghị những cải tiến đáng kể đối với phiên bản 1 và phiên bản 2 thông qua việc thêm các lựa chọn mở rộng
Gần đây nhất (trong tháng 6 năm 2000), bản Khuyến cáo X.509 năm 2000 đã được hoàn thành Phiên bản năm 2000 bao gồm nhiều thay đổi so với phiên bản trước, bao gồm định nghĩa của hai mở rộng thêm so với chứng chỉ khoá công khai phiên bản 3[10]
Trong khu vực doanh nghiệp, có thể nói rằng các chứng chỉ số phiên bản 3 là lựa chọn được đánh giá cao vì chúng là mềm dẻo nhất và nhiều mở rộng đã được yêu cầu để hỗ trợ đầy đủ các yêu cầu của doanh nhiệp
Hình 3.1 chỉ ra cấu trúc tổng quát của một chứng chỉ phiên bản 3 Danh sách sau định ra các trường được trình bày trong hình đó:
Version (phiên bản) chỉ ra phiên bản của chứng chỉ (hoặc là 1, 2 hoặc
3)
Trang 35 Serial Number (Số xeri) là định danh duy nhất cho chứng chỉ này đối
với người phát hành chứng chỉ
Signature (chữ ký) chỉ ra định danh thuật toán (tức là, định danh đối
tượng (Object Identifier – OID), cộng với các tham số tương ứng bất kỳ) của thuật toán được sử dụng để tính chữ ký số trên chứng chỉ
Issuer (người phát hành) là một tên phân biệt (Distinguised Name- DN)
của CA và luôn phải được trình bày DN là một quy ước tên có cấu trúc hình cây được định nghĩa trong Khuyến cáo X.509 Các DN được thiết
kế để giúp đảm bảo các tên thực thể là duy nhất Không quá đi sâu vào chi tiết đối với các thư mục (Directories) và các cây thông tin thư mục (Directory Information Trees), các DN được biểu diễn như là một kết nối của các tên phân biệt quan hệ (Relative Distinguished Names- RDNs) từ đỉnh mức gốc xuống tới đỉnh cuối cùng của DN Ví dụ, “C =
CA, O = ADGA, OU = AEPOS Technologies, CN = Steve Lloyd” là một ví dụ về DN Chú ý rằng mỗi RDN ( C = CA là một RDN, O = ADGA là một RDN, và ) cần là duy nhất tại mỗi mức, ngược lại thì tính duy nhất của DN về tổng thể không được bảo đảm
Validity (Tính hợp lệ) chỉ ra cửa sổ của thời gian mà chứng chỉ này cần
được xem là hợp lệ trừ khi nó được huỷ theo một cách khác Trường này là tổ hợp của các thời gian/ngày tháng mà chứng chỉ là Không hợp
lệ trước (Not Valid Before) và Không hợp lệ sau (Not Valid After), chúng có thể được biểu diễn theo thời gian UTC hoặc theo Generalized Time
Subject (chủ thể) chỉ ra DN của người chủ chứng chỉ và phải khác null
trừ khi một dạng tên thay thế được sử dụng (xem các trường mở rộng sau này)
Subject Public Key Info (thông tin khoá công khai của chủ thể) là khoá
công khai (và định danh thuật toán) tương ứng với chủ thể và luôn cần được biểu diễn
Trang 36Hình 3.1: Cấu trúc chứng chỉ phiên bản 3
Issuer Unique ID (Định danh duy nhất của người phát hành) là định
danh duy nhất không bắt buộc của người phát hành chứng chỉ chỉ được biểu diễn trong phiên bản 2 và phiên bản 3; trường này ít được sử dụng trong cài đặt thực tế
Subject Unique ID (Định danh duy nhất của chủ thể) là định danh duy
nhất không bắt buộc của người chủ chứng chỉ chỉ được biểu diễn trong phiên bản 2 và phiên bản 3; trường này ít được sử dụng trong cài đặt thực tế
Được ký bởi CA có thẩm quyền (người phát hành)
Tên duy nhất của người phát hành chứng chỉ
Thời gian hợp lệ:
không trước, không sau
Tên duy nhất của người chủ nhân
Khoá công khai (và ID thuật toán) của người chủ nhân
ID duy nhất tuỳ chọn của CA phát hành
ID duy nhất tuỳ chọn của đối tượng
Các mở rộng tuỳ chọn
ID thuật toán và chữ ký số
Version Serial
Number
Signature Issuer Validity Subject
Subject Public Key Info
Issuer Unique
ID
Subject Unique
ID Extensions Digital
Signature
Trang 37Mỗi mở rộng của chứng chỉ được mô tả sau đây tương ứng với một cờ của tính thiết yếu Nhìn chung, các mở rộng có thể được đánh dấu là thiết yếu hoặc không thiết yếu, mặc dù các chuẩn thường khuyến cáo hoặc thậm chí bắt buộc tính thiết yếu tương ứng với một số các mở rộng
Một mở rộng mà đã được đánh dấu là thiết yếu thì cần phải được xử lý và hiểu, nếu không chứng chỉ sẽ không được sử dụng Một mở rộng không thiết yếu có thể được xử lý nếu có thể, nhưng nó có thể được bỏ qua.Ở đây chúng ta không đi sâu giải thích ý nghĩa của các trường mở rộng, mà chỉ nêu ra tên của chúng:
Authority Key Identifier (định danh khoá của thẩm quyền): định danh
duy nhất của khoá mà được sử dụng để kiểm tra chữ ký đã được tính trên chứng chỉ; nó phân biệt trong số nhiều khoá mà được áp dụng cho cùng một người phát hành chứng chỉ
Subject Key Identifier (Định danh khoá của chủ thể): là định danh duy
nhất của khoá công khai được chứa trong chứng chỉ này; nó phân biệt trong số nhiều khoá mà được áp dụng cho cùng một người chủ chứng chỉ
Key Usage (việc sử dụng khoá): một chuỗi bit được sử dụng để chỉ ra
(hoặc hạn chế) các chức năng hoặc dịch vụ mà có thể được hỗ trợ bởi việc dùng khoá công khai trong chứng chỉ này; nó có thể được sử dụng
để chỉ ra khả năng hỗ trợ cho chữ ký số, chống chối bỏ, mã khoá, mã dữ liệu, thoả thuận khoá, chữ ký chứng chỉ, chữ ký cho CRL, chỉ dùng để
mã, chỉ dùng để giải mã,
Extended Key Usage (cách sử dụng khoá mở rộng): là một dãy của một
hay nhiều OID mà chỉ ra cách sử dụng cụ thể của khoá công khai trong chứng chỉ Một số OID tương ứng với mở rộng này, bao gồm xác thực máy chủ TLS, xác thực máy trạm TLS, ký mã lệnh, bảo vệ thư tín, tem thời gian, ký OCSP (Online Certificate Status Protocol)
Trang 38 CRL Distribution Point (Điểm phân phối CRL): chỉ ra vị trí của CRL
tức là nơi hiện có thông tin thu hồi chứng chỉ Nó có thể là URL (Uniform Resource Indicator)
Private Key Usage Periods (Thời hạn sử dụng khoá bí mật): cửa sổ thời
gian mà khoá bí mật tương ứng với khoá công khai trong chứng chỉ này
có thể được sử dụng
Certificate Policies (các chính sách chứng thực): đó là một dãy của một
hay nhiều OID chính sách tương ứng với việc phát hành và sử dụng của chứng chỉ
Policy Mappings (các ánh xạ chính sách): trường này chỉ ra chính sách
xác thực tương đương giữa hai miền CA Nó được sử dụng trong việc thiết lập xác thực chéo và kiểm tra đường dẫn chứng chỉ Trường này chỉ có trong chứng chỉ CA
Subject Alternative Name (tên khác của chủ thể): chỉ ra các khuôn dạng
tên khác tương ứng với người chủ của chứng chỉ (ví dụ, địa chỉ e-mail, địa chỉ IP, URI, ) Các khuôn dạng tên khác có thể được xem như một gắn kết giống như tên phân biệt chủ thể (subject Distinguised Name), nếu như được trình bày
Issuer Alternative Name (tên khác của người phát hành) chỉ ra các dạng
tên khác tương ứng với người phát hành của chứng chỉ (ví dụ, địa chỉ mail, địa chỉ IP, URI, )
e- Subject Directory Attributes (các thuộc tính thư mục của chủ thể): chỉ ra
một dãy các thuộc tính tương ứng với người chủ của chứng chỉ Mở rộng này không được sử dụng rộng rãi hiện nay Nó được dùng để chứa những thông tin liên quan đến đặc quyền
Basic Constraints (các ràng buộc cơ sở): chỉ ra xem có phải là chứng
chỉ của CA hay không Nếu nó được biểu thị trong một chứng chỉ thực thể đầu cuối, giá trị của thuộc tính CA trong trường Basic Constraints cần phải là false Đối với các chứng chỉ CA, trường Basic Constraints
Trang 39luôn được biểu diễn và thuộc tính CA trong trường Basic Constraints cần phải đặt một giá trị true
Name Constraints (các ràng buộc tên): được dùng để bao gồm hoặc loại
trừ các nhánh trong những miền khác nhau trong khi thiết lập môi trường tin tưởng giữa các miền PKI
Policy Constraints (các ràng buộc chính sách): mở rộng chỉ có mặt
trong các chứng chỉ CA, được dùng để bao gồm hoặc loại trừ một số chính sách chứng chỉ trong khi thiết lập môi trường tin tưởng giữa các miền PKI
Inhibit Any Policy (cấm một chính sách bất kỳ): mở rộng chỉ có trong
các chứng chỉ CA Giá trị bằng 0 chỉ ra rằng hạn chế đó áp dụng từ điểm đó trở đi Một giá trị khác 0 chỉ ra nơi hạn chế có thể áp dụng, tức
là, giá trị là một offset trong đường dẫn chứng thực và chứng chỉ CA được chỉ định có thể có hoặc có thể không gặp phải
Freshest CRL Pointer (con trỏ tới CLR mới nhất): mở rộng có trong
chứng chỉ của CA và thực thể đầu cuối, cung cấp con trỏ tới thông tin CRL mới nhất Trong thực tế, cái đó giống như là con trỏ tới Delta CRL Cú pháp cũng giống như được sử dụng với CRL Distribution Points
Các trường mở rộng riêng cũng có thể được định nghĩa cho chứng chỉ dạng X.509 Các mở rộng riêng thông thường được định nghĩa để sử dụng trong lĩnh vực
cụ thể Ví dụ, RFC3280 định nghĩa ra hai mở rộng riêng cho sử dụng Internet như sau:
Authority Information Access (truy cập thông tin thẩm quyền): một mở
rộng riêng tư có trong các chứng chỉ CA và chứng chỉ thực thể đầu cuối, chỉ ra cách thông tin hoặc các dịch vụ được đề nghị bởi người phát hành chứng chỉ có thể nhận được Kiểu của thông tin và các dịch vụ bao gồm các dịch vụ xác nhận hợp lệ trực tuyến và thông tin chính sách nhưng không bao gồm thông tin vị trí CRL (Điểm phân phối CRL đã
Trang 40được bàn tới ở trên được sử dụng cho mục đích này) Cú pháp mở rộng được tạo nên từ một dãy của OID phương pháp truy cập mà mô tả kiểu
và khuôn dạng của dịch vụ/thông tin và vị trí tương ứng của dịch vụ/thông tin ở dạng của tên tổng quát (General Name) (ví dụ, một URI, Directory Name, hoặc tên RFC822) Hai OID phương pháp truy cập đã được định nghĩa Một phương pháp truy cập, được nói tới như là
"những người phát hành CA", tải thông tin về các CA mà đứng trước so với người phát hành chứng chỉ Thông tin này có thể được sử dụng để trợ giúp xây dựng các đường dẫn chứng thực Phương pháp truy cập được định nghĩa khác là để cho các dịch vụ xác nhận hợp lệ trực tuyến dựa trên OCSP Các phương pháp truy cập khác có thể được định nghĩa tiếp theo RFC3280 khẳng định rằng mở rộng này cần được đánh dấu là quan trọng
Subject Information Access (truy cập thông tin chủ thể): một mở rộng
riêng tư có mặt trong các chứng chỉ CA và thực thể đầu cuối, chỉ ra cách thông tin và dịch vụ được đề nghị bởi chủ thể trong chứng chỉ có thể nhận được Giống như mở rộng riêng tư Authority Information Access, cú pháp mở rộng được tạo nên từ một dãy của OID phương pháp truy cập và vị trí tương ứng của dịch vụ/thông tin ở dạng của tên tổng quát Một OID phương pháp truy cập đã được định nghĩa cho các
CA (CA Repository) và một OID phương pháp truy cập đã được định nghĩa cho các thực thể đầu cuối (tem thời gian) Phương pháp truy cập
CA Repository chỉ ra vị trí của kho chứa nơi mà CA công bố chứng chỉ
và thông tin CRL Phương pháp truy cập Tem thời gian chỉ ra rằng chủ thể mà đã được định danh trong chứng chỉ cung cấp dịch vụ tem thời gian Các phương pháp truy cập khác có thể được định nghĩa trong tương lai RFC3280 khẳng định rằng mở rộng này cần phải được đánh dấu là quan trọng