Khuôn dạng chứng chỉ khoá công khai được chấp nhận rộng rãi nhất được định nghĩa trong chuẩn X.509 của ISO/IFC/ITU.
2.3.4.1 Khuôn dạng chứng chỉ cơ bản
Khuôn dạng chứng chỉ X.509 gồm có 3 phiên bản, phiên bản 1 ra đời vào năm 1998, phiên bản 2 vào năm 1993 và phiên bản 3 vào năm 1996. Sau đây trình bày khuôn dạng của phiên bản 1 và 2. Các yếu tố cơ bản được trình bày như trong Hình 18
Các trường của chứng chỉ như sau:
a. Phiên bản(Version): Chỉ ra dạng phiên bản 1,2,3
b. Số hiệu (Serial number): Số hiệu nhận dạng duy nhất của chứng chỉ này. Nó được CA gán cho.
c. Tên thuật toán ký (Signature): Tên thuật toán ký được CA sử dụng để ký chứng chỉ.
d. Người phát hành (Isuer): Tên theo chuẩn X.500 của CA phát hành.
e. Thời gian hợp lệ (Validity): Ngày/giờ có hiệu lực và hết hạn của một chứng chỉ
f. Chủ thể (Subject): Tên X.500 của đối tượng nắm giữ khoá riêng (tương ứng với khoá công khai được chứng thực)
g. Thông tin về khoá công khai của chủ thể (Subject Publickey information): Gồm có khoá công khai của chủ thể cùng với một tên thuật toán sử dụng khoá công khai này.
h. Tên duy nhất của người phát hành (Issuer unique identifier): Là một chuỗi bit tuỳ chọn, được sử dụng để chỉ ra tên rõ ràng của CA phát hành, trong trường hợp cùng một tên được gán cho các thực thể khác nhau cùng thời gian.
i. Tên duy nhất của chủ thể (Subject unique identifier): là một chuỗi bit tuỳ chọn, được sử dụng để chỉ ra tên rõ ràng của chủ thể, trong trường hợp cùng một tên được gán cho các thực thể khác nhau trong cùng thời gian.
Hình 18: Khuông dạng chứng chỉ trong phiên bản 1 và 2 của X.509
Phiên bản(của chứng chỉ) Số hiệu của chứng chỉ Tên thuật toán ký
Tên ngưởi phát hành chứng chỉ theo X500 Thời gian hợp lệ(Ngày/giờ bắt đầu và kết thúc) Tên chủ thể theo X500 Thông tin khoá công khai của chủ thể Tên thuật toán Khoá công khai
Tên duy nhât của người phát hành
Chữ ký số của CA
Tên duy nhât của chủ thể
Khoá riêng của CA
Sinh chữ ký số
2.3.4.2 Khuôn dạng chứng chỉ X.509 mở rộng (V.3)
Các phiên bản 1 và 2 không đáp ứng được tất cả các yêu cầu mở rộng, dưới đây là các lý do giải thích việc bổ sung thêm thông tin:
a. Giả thiết các chủ thể của một chứng chỉ bất kỳ có các chứng chỉ khác nhau với các khoá công khai khác nhau (các khoá này được sử dụng cho các mục đích khác nhau) và giả thiết rằng các cặp khoá được cập nhật định kỳ, do vậy cần phải có cách để phan biệt các chứng chỉ khác nhau của đối tượng này một cách dễ dàng.
b. Một tên trong X.500 trở thành tên duy nhất của chủ thể nhưng không có đủ thông tin cho những người sử dụng chứng chỉ khác nhận dạng chủ thể, vì thế cần chuyển thêm thông tin nhận dạng chủ thể ngoài tên X.500 c. Một số các ứng dụng cần nhận dạng những người sử dụng thông qua các
dạng tên xác định ứng dụng, ngoài các tên X.500. Ví dụ, trong an toàn thư tín điện tử, việc găn một khoá công khai với một địa chỉ thư tín điện tử rất quan trọng hơn nhiều so với việc gắn với một tên X.500
d. Các chứng chỉ khác nhau có thể được phát hành theo các chính sách và các hoạt động chứng thực khác nhau. Các chính sách và các hoạt động chứng thực này thường chi phối mức tin cậy của người sử dụng đối với một chứng chỉ. Ví dụ, nếu một chứng chỉ được phát hành cho một thuê bao với hy vọng rằng, đôi khi nó được sử dụng cho mục đích mã hoá thư tín điện tử, CA sẽ không phải thực hiện tất cả các kiểm tra nhận dạng và xá thực thích hợp nếu chứng chỉ đã được sử dụng cho việc kiểm tra các chữ ký số trong các giao dịch tài chính giữa các tổ chức. Những người sử dụng chứng chỉ cần biết rằng, các đảm bảo và các hoạt động sẽ được áp dụng cho việc phát hành từng chứng chỉ.
e. Các đường dẫn chứng thực không dài tuỳ tiện và phức tạp. khi một CA (CA phát hành) chứng thực CA khác (CA của một chủ thể), CA phát hành có thể chỉ muốn chấp nhận một tập hợp con các chứng chỉ được CA của một chủ thể phát hành (ví dụ, các chứng chỉ này bao phủ lên không gian tên của chủ thể riêng biệt
Trong thực tế, để thoả mã các yêu cầu trong tương lai, cần bổ sung thêm các trường vào chứng chỉ. Các tổ chức chuẩn (ISO/IEC, ITU và ANSI 19) chấp nhận bổ sung thêm vào chứng chỉ X.509 có 3 khuôn dạng chứng chỉ được định nghĩa.
Chứng chỉ trong phiên bản 3 có cùng khuôn dạng với các chứng chỉ trong phiên bản 1 và 2 nhưng có bổ sung thêm các trường mở rộng, được trình bày trong hình…
Mỗi trường mở rộng có một kiểu (cần được đăng ký). Giống với cách đăng ký một thuật toán, kiểu của trường mở rộng được đăng ký bằng cách gan cho nó một tên đối tượng. Về nguyên tắc, các kiểu của trường mở rộng được một người nào đó xác định. Mỗi trường mở rộng chứa một giá trị tên đối tượng (chỉ ra kiểu của trường, một chỉ báo thiết yếu và một giá trị). Kiểu của mục dữ liểutong trường con và ngữ nghĩa liên quan đến giá trị này do kiểu của trường mở rộng chi phối.
Chỉ báo thiết yếu là một cờ. Cờ này sẽ xuất hiện khi trường mở rộng là thiết yếu (critical) hoặc không thiết yếu (non critical). Nếu cờ này chỉ báo là “không thiết yếu” thì hệ thống sử dụng chứng chỉ có thể bỏ qua trường mở rộng nếu nó không
chấp nhận kiểu của trường. Nếu cờ này chỉ báo là “thiết yếu”thì hệ thống sẽ không an toàn nếu sử dụng bất kỳ phần nào của chứng chỉ, trừ khi hệ thống này chấp nhận kiểu của trường mở rộng và thiết lập chức năng liên quan.
Ví dụ, giả sử rằng trường mở rộng được xác định để chuyển một dạng tên lựa chọn cho đối tượng của chứng chỉ sử dụng, thông qua một tập hợp các ứng dụng đặc thù. Một trường như vậy có thể được chỉ báo là không thiết yếu vì các ứng dụng khác không sử dụng dạng tên lựa chọn vẫn được phép sử dụng chứng chỉ dựa vào trường tên chủ thể nguyên thuỷ ngay cả khi các ứng dụng này không có sự thoả thuận về việc mở rộng tên lựa chọn. Thông thường khi sử dụng, đa số các trường mở rộng được chỉ báo là không thiết yếu.