3.2 Quản lý khoá và chứng chỉ
3.3.2 Các kỹ thuật công bố định kỳ
Các kỹ thuật công bố định kỳ bao gồm:
CRL đầy đủ (complete CRLs)
Các danh sách huỷ bỏ thẩm quyền chứng thực (Certification Authority Revocation Lists- CARLs)
Các danh sách huỷ bỏ chứng chỉ khoá công khai thực thể đầu cuối (End-entity Public-key Certificate Revocation Lists –EPRLs)
Các điểm phân phối CRL (hay còn gọi là CRL được phân chia) (CRL Distribution Points hay Partitioned CRLs)
Delta CRLs (CRLs bổ sung) và Indirect Delta CRLs (CRLs bổ sung không trực tiếp)
CRLs không trực tiếp (Indirect CRLs)
CRLs chuyển hướng (Redirect CRLs)
Các cây huỷ bỏ chứng chỉ (Certificate Revocation Trees- CRTs).
được đặc trưng bởi việc phát hành thông tin huỷ bỏ trên cơ sở định kỳ trong một khuôn dạng của cấu trúc dữ liệu được ký. Trừ ra Các cây huỷ bỏ chứng chỉ, tất cả các kỹ thuật này được định nghĩa trong phiên bản năm 2000 của X.509, và chúng dựa trên cùng một cấu trúc dữ liệu ASN.1 cơ sở được nói tới như là CRL. Cấu trúc CRL cơ sở sẽ được bàn tới ngay sau đây.
CRL cơ sở
Được khẳng định một cách đơn giản, các CRL là các cấu trúc dữ liệu được ký mà chứa một danh sách các chứng chỉ đã được huỷ bỏ. Chữ ký số được thêm vào CRL cung cấp tính toàn vẹn và tính xác thực của CRL. Người ký vào CRL thông thường chính là thực thể mà đã ký các chứng chỉ đã được ban hành mà đã được liệt kê trong CRL. Tuy nhiên, CRL có thể được ký bởi một thực thể khác với người phát hành chứng chỉ.
Các CRL có thể được lưu (cache) để tăng hiệu suất. Việc lưu các CRL cũng làm cho thuận tiện khả năng kiểm định chứng chỉ khi làm việc không trực tuyến. Tất nhiên, khả năng lưu các CRL và niềm tin được đặt vào trong các CRL được lưu cần phải tương ứng với các Chính sách chứng chỉ được áp dụng.
Hiện tại, có hai phiên bản khác nhau về CRL đã được định nghĩa. Phiên bản 1 đã được định nghĩa trong các đặc tả X.509 ban đầu (khoảng 1988). Chú ý rằng các CRL phiên bản 1 là có lỗi một cách tiềm ẩn vì một số lý do sau:
Chúng có các vấn đề về tính mở rộng (tức là, kích thước của CRL phiên bản 1 là dễ dàng vượt lên so với các giới hạn chấp nhận được).
Chúng có các giới hạn về chức năng, đặc biệt liên quan tới khả năng không thể mở rộng CRL cùng với đặc tính thêm khi cần thiết.
Chúng là đối tượng của các tấn công thay thế CRL (tức là, có thể thay thế một cách có hại một CRL này bởi một CRL khác mà không bị phát hiện).
Các CRL phiên bản 2 giải quyết các vấn đề này bằng cách đưa vào khái niệm của các mở rộng, cũng nhiều như đưa ra các mở rộng vào các chứng chỉ khoá công khai X.509 phiên bản 3. Một số mở rộng được định nghĩa trên cơ sở theo từng mục
chứng chỉ được huỷ bỏ (per-revoked-certificate-entry), và các mở rộng khác được định nghĩa trên cơ sở theo CRL, như được mô tả trong các mục sau. Như với các mở rộng chứng chỉ, các mở rộng CRL này cần phải được mô tả sơ lược trong một môi trường đã cho.
Mặc dù X.509 định nghĩa một số yêu cầu tương ứng với các trường chuẩn và mở rộng của một chứng chỉ, việc định rõ các chi tiết thêm là thường cần thiết. Như được bàn đến sau này, đó là do nhiều chuẩn hướng tới tổng quát về bản chất, và các mức thêm của việc chỉ rõ được đòi hỏi để hiện thực hoá tính tương tác lẫn nhau.
Nhóm làm việc về Cơ sở hạ tầng khoá công khai PKIX (Public Key Infrastructure X.509 Working Group) của IETF (Internet Engineering Task Force) đã đưa ra một mô tả sở lược về CRL và chứng chỉ dùng cho Internet vào tháng giêng năm 1999 cùng với việc công bố RFC2459. Nó đã được thay bằng RFC3280 vào tháng Tư năm 2002[10]. RFC3280 phản ánh nhiều cải tiến đã được đưa vào phiên bản năm 2000 của X.509.
Chú ý rằng các mở rộng có thể được đánh dấu là quan trọng và không quan trọng. Một mở rộng được đánh dấu quan trọng cần phải được xử lý và hiểu bởi bên tin tưởng, mặc dù X.509 đảm bảo một mức độ mềm dẻo nào đó mà có thể được áp dụng dưới một số tình huống. Ít nhất, bên tin tưởng giả thiết rằng các chứng chỉ có ở trên danh sách thì cần bị huỷ bỏ, ngay cả khi một số mở rộng không được hiểu. Tuy nhiên, nếu một mở rộng theo CRL là không được hiểu, thì không thể giả thiết rằng một danh sách của các chứng chỉ được huỷ bỏ là đầy đủ. Các mở rộng không quan trọng có thể được bỏ qua nếu bên tin tưởng không hiểu chúng (tức là, các mở rộng có thể được bỏ qua mà không cần thêm một hành động nào về phía bên tin tưởng).
Cấu trúc tổng quát của CRL phiên bản 2 được trình bày ở hình 3.7. Các trường được trình bày trong hình này được định nghĩa như sau:
Version (phiên bản) chỉ ra phiên bản của CRL (giá trị hoặc là Version 2, hoặc không được chỉ ra thì ứng với Version 1).
Signature (chữ ký) chỉ ra định danh đối tượng (object identifier – OID) của thuật toán đã được sử dụng để tính chữ ký số trên CRL. Ví dụ, OID cho MD5 cùng với RSA có thể được trình ra, điều đó chỉ ra rằng chữ ký số là giá trị băm MD5 đã được mã hoá bằng RSA.
Issue (người phát hành) là một tên phân biệt (Distinguished Name- DN) của người phát hành CRL (tức là, người ký của CRL) và cần phải luôn có và duy nhất.
This Update (cập nhật lần này) là thời gian mà CRL này đã được phát hành, nó có thể được biểu diễn theo thời gian UTC hoặc Generalized Time.
Next Update (cập nhật lần sau), đây là một trường lựa chọn, đó là thời gian mà theo đó CRL tiếp theo sẽ được phát hành. Chú ý rằng CRL mới có thể được phát hành trước thời gian Next Update được chỉ ra.
Revoked Certificates (các chứng chỉ được huỷ bỏ) là danh sách các chứng chỉ được huỷ bỏ (tức là, danh sách chứa các số seri duy nhất của các chứng chỉ được huỷ bỏ, chứ không phải chính bản thân các chứng chỉ). Mỗi mục cũng bao gồm thời gian mà chứng chỉ không được xem là còn hiệu lực nữa, một cách tuỳ chọn, nó có thể bao gồm các mở rộng tuỳ theo từng mục như được bàn luận tiếp trong phần sau.
Extensions (Các mở rộng) là các lựa chọn mở rộng theo từng CRL, chúng sẽ được thảo luận đến ngay dưới đây.
Hình 3.7: Cấu trúc CRL phiên bản 2
Những mở rộng theo từng mục (per-entry extensions)
Chuẩn X.509 (phiên bản năm 2000) định ra một số mở rộng mà có thể được sử dụng trên cơ sở từng mục. Điều này cho phép thông tin thêm được hộ tống cùng với mỗi huỷ bỏ riêng biệt, điều này là không thể đối với các CRL phiên bản 1. Các mở rộng theo từng mục là:
Reason Code (mã lý do) là nguyên nhân mà chứng chỉ bị huỷ bỏ. Mã lý do bao gồm bị lộ khoá, sự tổn thương của CA, bị thay thế, ngừng hoạt động, chứng chỉ bị thu giữ, bị loại bỏ khỏi CRL, bị rút quyền, và không được chỉ ra.
Certificate Issuer (người phát hành chứng chỉ) là tên của người phát hành chứng chỉ, nó chỉ được yêu cầu đối với các CRL không trực tiếp như được mô tả sau này. Nếu mở rộng Người phát hành Chứng chỉ có mặt, nó cần phải được đánh dấu là quan trọng theo như X.509.
Hold Instruction Code (Mã qui tắc lưu) được sử dụng để hỗ trợ sự ngờ Version Signature Issue This
Update Next Update ...List of Revoked... Certificates Extensions Digital Signature
Được ký bởi CA có chức trách (người phát hành)
Định dạng phiên bản của CRL ( ví dụ V2) ID của thuật toán được sử dụng để ký CRL Tên của người phát hành Ngày/giờ mà CRL này được phát hành Ngày/giờ phát hành CRL tiếp theo Số seri của chứng chỉ, Ngày/giờ huỷ, các mở rộng tuỳ chọn theo từng mục Các mở rộng tuỳ chọn theo từng CRL ID của thuật toán và chữ ký số
cài đặt lại hoặc bị huỷ bỏ ngay lập tức. Hành động đặc biệt được làm, khi mở rộng này gặp phải, được định danh bởi một OID có mặt trong mở rộng này.
Invalidity Date (Ngày không hợp lệ) là thời gian được biết (hoặc chờ đợi) mà chứng chỉ không còn được xem là hợp lệ nữa.
Những mở rộng theo từng CRL (per-CRL extensions)
Phiên bản năm 2000 của X.509 đã đưa vào những cải tiến đáng kể khi so với phiên bản năm 1997. Những mở rộng đã được đưa vào phiên bản 2000 của X.509 đã được định rõ. Các mở rộng CRL chuẩn tắc là:
Authority Key Identifier (Định danh khoá thẩm quyền) là định danh duy nhất của khoá mà được sử dụng để xác minh chữ ký số được tính trên cả CRL. Định danh khoá thẩm quyền chỉ sự khác biệt giữa nhiều khoá được áp dụng cho cùng một người phát hành CRL. Nhiều khoá (chưa hết hạn) có thể tồn tại cho cùng một người phát hành CRL vì một loạt các nguyên nhân, bao gồm những khoá trong các chu kỳ có giao nhau về thời gian để hỗ trợ việc đổi khoá của CA. Mở rộng này luôn được đánh dấu coi là không bắt buộc theo như X.509, nhưng việc đưa trường này vào lại là bắt buộc bởi RFC3280. RFC3280 cũng chỉ ra phương pháp định danh khoá (khác với việc sử dụng tên người phát hành/số serial) cần được sử dụng.
Issue Alternative Name (Tên khác của người phát hành ) là một hoặc nhiều hình thái tên khác nhau tương ứng với người phát hành CRL. Tên khác của người phát hành chỉ ra người phát hành CRL bằng cách sử dụng một cái gì đó khác với DN đã được định ra trong trường Issue Name (ví dụ, địa chỉ IP, tên DNS, địa chỉ e-mail RFC-822, ...) X.509 cho phép mở rộng này là cần thiết hoặc không, nhưng RFC3280 khuyến cáo trường này không nên coi là quan trọng.
CRL number (số CRL) truyền đạt một số seri duy nhất cho mỗi CRL đối với người phát hành CRL và thuộc tính thư mục thẩm quyền tương
ứng hoặc điểm phân phối CRL (CRL Distribution Point) (xem CRL Stream Identifier ở phía sau). Đó là một số nguyên tăng đơn điệu mà cho phép phát hiện ra việc mất các CRL. Mở rộng này luôn được coi được đánh dấu là không quan trọng theo như X.509 nhưng việc đưa trường này vào là bắt buộc bởi RFC3280. RFC3280 đề xuất rằng CRL Number cần phải là duy nhất đối với người phát hành và phạm vi CRL đã định sẵn. Cái này có thể dùng để phát hiện khi một CRL đè lên một cái khác và nó định ra các CRL đầy đủ bổ sung và các CRL Delta.
CRL Scope (Phạm vi CRL), một cách hình thức được chuẩn hoá trong phiên bản 2000 của X.509, cung cấp một phương pháp cực kỳ mềm dẻo để phân loại thông tin CRL. Các CRL có thể được phân loại theo nhiều cách, bao gồm bằng kiểu chứng chỉ, các mã lý do huỷ bỏ chứng chỉ, các số seri, các định danh khoá của chủ thể và các cây con về tên. Theo phiên bản năm 2000 của X.509, mở rộng này luôn được đánh dấu là quan trọng.
Status Referrals (Các chỉ dẫn tới trạng thái), một cách hình thức được chuẩn hoá trong phiên bản năm 2000 của X.509, mở rộng này cung cấp hai chức năng chính. Trước hết, nó đảm bảo việc phân loại động thông tin huỷ bỏ. Thứ hai, nó cho phép CA công bố danh sách các CRL hiện tại mà có thể được sử dụng để xác định chắc chắn xem một bên tin cậy vào đã có thông tin huỷ bỏ cuối cùng hay chưa. Theo như phiên bản năm 2000 của X.509, mở rộng này luôn được đánh dấu là quan trọng.
CRL Stream Identifier (Định danh dòng CRL), một cách hình thức được chuẩn hoá trong phiên bản năm 2000 của X.509, nó được sử dụng để “nhận dạng ngữ cảnh mà trong đó số CRL là duy nhất”. Ví dụ, định danh dòng duy nhất có thể được gắn vào mỗi điểm phân phối CRL. Kết hợp định danh dòng với số CRL cung cấp một định danh duy nhất cho mỗi CRL được phát hành bởi CA đã được cho, bất chấp kiểu của CRL.
Theo phiên bản năm 2000 của X.509, mở rộng này luôn được đánh dấu là không quan trọng.
Ordered List (Danh sách được sắp xếp), một cách hình thức đã được chuẩn hoá trong phiên bản năm 2000 của X.509, chỉ ra xem danh sách các chứng chỉ đã được huỷ bỏ là theo thứ tự tăng dựa trên số seri hay ngày tháng huỷ bỏ. Nếu mở rộng này thiếu vắng, không có thứ tự đặc biệt có thể được giả thiết trừ khi bị bắt buộc một cách khác đi bởi chính sách địa phương. Theo như phiên bản năm 2000 của X.509, mở rộng này luôn được đánh dấu là không quan trọng.
Delta Information (Thông tin Delta), một cách hình thức được chuẩn hoá trong phiên bản năm 2000 của X.509, chỉ ra rằng các Delta CRLs tương ứng với CRL này là có thể. Mở rộng này cung cấp vị trí của Delta CRL (được chỉ ra như General Name) và một cách tuỳ chọn thời gian khi Delta CRL sau sẽ được phát hành. Theo như phiên bản năm 2000 của X.509, mở rộng này luôn được đánh dấu là không quan trọng.
Issuing Distribution Point (Điểm phân phối phát hành) chỉ ra tên của điểm phân phối CRL (nếu có) và các kiểu của các chứng chỉ được chứa trong CRL (ví dụ, chỉ có các chứng chỉ của người sử dụng cuối, chỉ có các chứng chỉ của CA, và/hoặc chỉ có các chứng chỉ được huỷ bỏ theo một nguyên nhân đặc biệt). Khi có thể ứng dụng, nó chỉ ra rằng CRL là CRL không trực tiếp. Chú ý rằng mở rộng này, nếu hiện diện, cần phải được đánh dấu là quan trọng theo như X.509. Mặc dù mở rộng này cần phải được đánh dấu là quan trọng, RFC3280 không yêu cầu các cài đặt tuân thủ để hỗ trợ mở rộng này.
Delta CRL Indicator (Báo hiệu Delta CRL) chỉ ra rằng CRL này là Delta CRL so với CRL cơ sở được tham chiếu tới. Tổ hợp của CRL cơ sở và Delta CRL trình bày tất cả thông tin huỷ bỏ được biết tại thời điểm khi Delta CRL được phát hành, tương đối so với phạm vi đã được
cho. Phạm vi của Delta CRL cần phải phù hợp với phạm vi của CRL cơ sở.
Base Update (Cập nhật cơ sở), một cách hình thức được chuẩn hoá trong phiên bản năm 2000 của X.509, nó được sử dụng trong các Delta CRLs mà có chứa mở rộng Delta CRL Indicator để chỉ ra ngày/thời gian mà sau đó Delta CRL này cung cấp các cập nhật trạng thái huỷ bỏ. Mở rộng này là không cần thiết khi Delta CRL bao gồm mở rộng CRL Scope. Theo như phiên bản năm 2000 của X.509, mở rộng này luôn được đánh dấu là không quan trọng.
Freshest CRL (CRL mới nhất), một cách hình thức đã được chuẩn hoá trong phiên bản năm 2000 của X.509, chỉ ra rằng thông tin CRL mới nhất là có thể. Trong thực tế, cái này thường là con trỏ tới Delta CRL. RFC3280 chỉ ra rằng phạm vi của Delta CRL cần phải giống như phạm vi của CRL mà chứa mở rộng này. Thêm vào đó, các Delta CRL không thể sử dụng mở rộng này (tức là không cho phép một Delta CRL trỏ tới một Delta CRL khác). Theo phiên bản năm 2000 của X.509, mở rộng này có thể được đánh dấu là quan trọng hoặc không quan trọng. Tuy nhiên, nếu nó được đánh dấu là quan trọng, thì bên tin tưởng không có lựa chọn trừ khi kiểm tra thông tin CRL mới nhất trước khi sử dụng chứng chỉ cần đánh giá.
Những mở rộng riêng (Private Extensions)
Các mở rộng riêng tư cũng cần được định nghĩa theo như X.509 trên cả hai cơ sở theo từng mục và theo từng CRL. Các mở rộng riêng tư thông thường được định nghĩa để sử dụng trong miền đặc biệt. Như đã được khuyến cáo trong RFC3280, quan tâm hành sử để tránh các vấn đề tương tác với các miền khác mà không thừa nhận các mở rộng được định nghĩa riêng tư bất kỳ. Đặc biệt, các mở rộng riêng tư nên không bị đánh dấu là quan trọng trừ khi nó cần thiết tuyệt đối để thoả mãn các yêu cầu chức năng trong một miền đặc biệt. Điều này tất nhiên là đúng đối với một
mở rộng bất kỳ, chuẩn tắc hoặc riêng tư. RFC3280 không định ra bất kỳ một mở rộng CRL riêng tư nào.
Các CRL đầy đủ
Có thể tạo ra các CRL đầy đủ cho tất cả thông tin huỷ bỏ tương ứng với một CA lĩnh vực cụ thể được đưa vào một CRL. Việc công bố CRL đầy đủ có thể thích