Mục Lục 1. Scope Phạm vi………………………………………………………… .2 2. References…………………………………………………………… …..2 3. Definitions………………………………………………………… ……..2 4. Symbols and abbreviations……………………………………………….3 5. General overview……………………………………………………….. .3 6. Extendedcertificate syntax……………………………………………….3 6.1 ExtendedCertificateInfo………………………………………….4 6.2 ExtendedCertificate……………………………………………....4 7. Appendix A. X.509 publickey certificates……………………………….5 7.1 CertificateInfo…………………………………………………….6 7.2 Certificate…………………………………………………………7 1. Scope Phạm vi Tiêu chuẩn này mô tả một cú pháp cấp Giấy chứng nhận mở rộng. Giấy chứng nhận mở rộng bao gồm một giấy X.509 chứng nhận khoá công khai và thiết lập các thuộc tính, chung chữ ký của người phát hành certificate X.509 khoá công khai. Do đó các thuộc tính và các X.509 kèm theo giấy chứng nhận khoá công khai có thể được kiểm chứng với một hoạt động chính duy nhất, và một giấy chứng nhận X.509 bình thường có thể được trích xuất, nếu cần thiết, ví dụ, cho PrivacyEnhanced Mail (PEM). Bao gồm một tập hợp các thuộc tính mở rộng quá trình chứng nhận vượt quá khóa công khai để xác nhận các thông tin khác về một chủ thể nhất định, chẳng hạn như địa chỉ thư điện tử. Một danh sách không đầy đủ các thuộc tính được đưa ra trong PKCS 9. Các ứng dụng dự kiến sơ bộ của tiêu chuẩn này là trong PKCS 7 mã hóa tin nhắn, nhưng người ta cho rằng các ứng dụng khác sẽ được phát triển. 2. References Tài liệu tham khảo PKCS 1, PKCS 7, PKCS 9, X.208, X.208, X.209, X.500, X.501, X.509 3. Definitions Định nghĩa Với mục đích của tiêu chuẩn này, các định nghĩa sau đây áp dụng. AlgorithmIdentifier: Một loại xác định một thuật toán (do đối tượng nhận dạng) và bất kỳ thông số liên quan. Loại này được định nghĩa trong X.509. Attribute: Một loại có chứa một loại thuộc tính (theo quy định của đối tượng nhận dạng) và một hoặc giá trị thuộc tính nhiều hơn. Loại này được định nghĩa trong X.501. ASN.1: Tóm tắt Một Ký hiệu cú pháp, theo quy định tại X.208. BER: Basic Encoding Rules, theo quy định tại X.209. Certificate: Một loại có gắn tên phân biệt của một thực thể cho một khóa công khai với một chữ ký số. Loại này được định nghĩa trong X.509. Loại này cũng có tên phân biệt của người phát hành giấy chứng nhận (những người ký tên), một tổ chức phát hành, thuật toán nhận dạng chữ ký của người phát hành, và một thời hạn hiệu lực. DER: Phân biệt mã hóa các quy tắc cho ASN.1, theo quy định tại X.509, mục 8.7. Name: Một loại xác định duy nhất hay phân biệt đối tượng trong một thư mục X.500. Loại này được định nghĩa trong X.501. Trong một X.509 certificate, loại certificate xác định các công ty và tổ chức phát hành mà public key được chứng nhận. PEM:Tăng cường bảo mật Internet PrivacyEnhanced Mail, như được định nghĩa trong RFC 1422 và các văn bản liên quan.
Extended-Certificate Syntax Standard Mục Lục 1. Scope - Phạm vi………………………………………………………… .2 2. References…………………………………………………………… … 2 3. Definitions………………………………………………………… …… 2 4. Symbols and abbreviations……………………………………………….3 5. General overview……………………………………………………… .3 6. Extended-certificate syntax……………………………………………….3 6.1 ExtendedCertificateInfo………………………………………….4 6.2 ExtendedCertificate…………………………………………… 4 7. Appendix A. X.509 public-key certificates……………………………….5 7.1 CertificateInfo…………………………………………………….6 7.2 Certificate…………………………………………………………7 1 1. Scope - Phạm vi Tiêu chuẩn này mô tả một cú pháp cấp Giấy chứng nhận mở rộng. Giấy chứng nhận mở rộng bao gồm một giấy X.509 chứng nhận khoá công khai và thiết lập các thuộc tính, chung chữ ký của người phát hành certificate X.509 khoá công khai. Do đó các thuộc tính và các X.509 kèm theo giấy chứng nhận khoá công khai có thể được kiểm chứng với một hoạt động chính duy nhất, và một giấy chứng nhận X.509 bình thường có thể được trích xuất, nếu cần thiết, ví dụ, cho Privacy-Enhanced Mail (PEM). Bao gồm một tập hợp các thuộc tính mở rộng quá trình chứng nhận vượt quá khóa công khai để xác nhận các thông tin khác về một chủ thể nhất định, chẳng hạn như địa chỉ thư điện tử. Một danh sách không đầy đủ các thuộc tính được đưa ra trong PKCS # 9. Các ứng dụng dự kiến sơ bộ của tiêu chuẩn này là trong PKCS # 7 mã hóa tin nhắn, nhưng người ta cho rằng các ứng dụng khác sẽ được phát triển. 2. References -Tài liệu tham khảo PKCS #1, PKCS #7, PKCS #9, X.208, X.208, X.209, X.500, X.501, X.509 3. Definitions- Định nghĩa Với mục đích của tiêu chuẩn này, các định nghĩa sau đây áp dụng. AlgorithmIdentifier: Một loại xác định một thuật toán (do đối tượng nhận dạng) và bất kỳ thông số liên quan. Loại này được định nghĩa trong X.509. Attribute: Một loại có chứa một loại thuộc tính (theo quy định của đối tượng nhận dạng) và một hoặc giá trị thuộc tính nhiều hơn. Loại này được định nghĩa trong X.501. ASN.1: Tóm tắt Một Ký hiệu cú pháp, theo quy định tại X.208. BER: Basic Encoding Rules, theo quy định tại X.209. Certificate: Một loại có gắn tên phân biệt của một thực thể cho một khóa công khai với một chữ ký số. Loại này được định nghĩa trong X.509. Loại này cũng có tên phân biệt của người phát hành giấy chứng nhận (những người ký tên), một tổ chức phát hành, thuật toán nhận dạng chữ ký của người phát hành, và một thời hạn hiệu lực. DER: Phân biệt mã hóa các quy tắc cho ASN.1, theo quy định tại X.509, mục 8.7. Name: Một loại xác định duy nhất hay "phân biệt" đối tượng trong một thư mục X.500. Loại này được định nghĩa trong X.501. Trong một X.509 certificate, loại certificate xác định các công ty và tổ chức phát hành mà public key được chứng nhận. PEM:-Tăng cường bảo mật Internet Privacy-Enhanced Mail, như được định nghĩa trong RFC 1422 và các văn bản liên quan. 2 4. Symbols and abbreviations- Biểu tượng và chữ viết tắt Không có biểu tượng hoặc chữ viết tắt được quy định trong tiêu chuẩn này. 5. General overview -Tổng tổng quan Phần tiếp theo quy định cú pháp mở rộng certificate. Một đánh giá về ý nghĩa của giấy chứng nhận X.509. Tiêu chuẩn này xuất ra một loại, ExtendedCertificate. 6.Extended-certificate syntax - Cú pháp mở rộng giấy chứng nhận Phần này cung cấp cho các cú pháp cấp Giấy chứng nhận mở rộng. Giấy chứng nhận mở rộng bao gồm ba phần: "extended-certificate information", một thuật toán chữ ký định danh, và chữ ký số trên các extended-certificate information. Các extended-certificate information bao gồm một giấy chứng nhận X.509(đã được ký kết của nhà phát hành) và một bộ các thuộc tính cung cấp các thông tin khác về các thực thể mà chúng xác nhận trong Giấy chứng nhận X.509. Quá trình mà một extended certificate được xây dựng bao gồm các bước sau: 1. Một giá trị ExtendedCertificateInfo có chứa một X.509 certificate và một bộ các thuộc tính được xây dựng bằng certificate tổ chức phát hành. 2. Giá trị ExtendedCertificateInfo được ký kết với Giấy chứng nhận của tổ chức phát hành private key. 3. Giá trị ExtendedCertificateInfo, một thuật toán chữ ký nhận dạng, và chữ ký của người phát hành certificate được thu thập với nhau thành một giá trị ExtendedCertificate, được xác định dưới đây: +Phần này được chia thành hai phần. Phần đầu tiên mô tả các giấy chứng nhận mở rộng-thông tin loại ExtendedCertificateInfo +Phần thứ hai mô tả các ExtendedCertificate loại cấp cao nhất. Ghi chú. 1. Trong các ứng dụng mà một giấy chứng nhận mở rộng hoặc Giấy chứng nhận X.509 có thể được xử lý, các cú pháp sau đây được khuyến khích (nhưng không bắt buộc): ExtendedCertificateOrCertificate ::= CHOICE { certificate Certificate, X.509 extendedCertificate [0] IMPLICIT ExtendedCertificate } Việc thay thế certificate có mã hóa BER như một X.509 certificate, và các giá trị thu được từ hai lựa chọn thay thế có thể phân biệt vì những tag ngữ cảnh cụ thể 0 trên các extendedCertificate thay thế. 3 2. Có ít nhất bốn lý do các extended certificates được xây dựng trên X.509 certificates, thay vì ở vị trí của chúng: • Thay đổi X.509 certificate với cú pháp có thể dễ dàng • X.509 certificate có thể được trích xuất để tương thích với các tiêu chuẩn khác (ví dụ, Bảo mật-Enhanced Mail, hoặc X.509 với chính nó) • Cả hai X.509 certificate và extended certificate có thể được kiểm chứng với một public-key duy nhất, kể từ khi ký kết với nhau bởi cùng một certificate do một tổ chức phát hành • Có rất ít khả năng dự phòng, có một extended certificate thay cho X.509 certificate sẽ yêu cầu extended certificate có nhiều các thông tin đã có trong các X.509 certificates, như là tổ chức phát hành và tên đối tượng 6.1 ExtendedCertificateInfo -Thông tin Extended-certificate có ASN.1 loại ExtendedCertificateInfo: ExtendedCertificateInfo ::= SEQUENCE { version Version, certificate Certificate, attributes Attributes } Version ::= INTEGER Attributes ::= SET OF Attribute Các lĩnh vực loại ExtendedCertificateInfo có ý nghĩa sau đây: • Version là số phiên bản, để tương thích với tương lai sửa đổi tiêu chuẩn này. Nó sẽ là 0 cho phiên bản của tiêu chuẩn. • Certificate là X.509 certificate. • Attributes là một tập hợp các thuộc tính. Những thuộc tính này được bổ sung thông tin về các chủ đề của certificate. Một số loại thuộc tính có thể có ích ở đây được xác định trong PKCS # 9. 6.2 ExtendedCertificate Một extended certificate có ASN.1loại ExtendedCertificate: ExtendedCertificate ::= SEQUENCE { extendedCertificateInfo ExtendedCertificateInfo, signatureAlgorithm SignatureAlgorithmIdentifier, signature Signature } SignatureAlgorithmIdentifier ::= AlgorithmIdentifier Signature ::= BIT STRING Các lĩnh vực loại ExtendedCertificate có ý nghĩa sau đây: • ExtendedCertificateInfo là " "extended-certificate information.". là giá trị được ký kết. • SignatureAlgorithm xác định các thuật toán chữ ký (và bất kỳ liên kết các thông số), theo đó, giấy chứng nhận extended-certificate information được ký kết. Ví dụ như PKCS # 1 của md2WithRSAEncryption và md5WithRSAEncryption. 4 • Signature là kết quả của việc ký kết extended-certificate information với khóa riêng của người phát hành giấy chứng nhận. Quá trình chữ ký bao gồm hai bước sau: 1. Giá trị của trường extendedCertificateInfo là DER mã hóa, năng suất một chuỗi octet. 2. Kết quả của bước 1 được ký kết với khóa riêng của người phát hành giấy chứng nhận theo các thuật toán chữ ký quy định, năng suất một chuỗi bit, chữ ký. Lưu ý. Cú pháp ExtendedCertificate tương đương có thể được viết với X.509 SIGNED vĩ mô: ExtendedCertificate ::= SIGNED ExtendedCertificateInfo 7. Appendix A. X.509 public-key certificates Public-key certificates như X.509 certificates xác định cấu trúc trong một hệ mật mã khoá công khai phân phối. Bằng cách ký một certificate, một công ty phát hành certificate liên kết với nhau public key của một thực thể có tên của tổ chức và các thông tin khác. Bằng cách xác minh chữ ký trên certificate, những người tin tưởng các công ty phát hành certificate có thể phát triển tin tưởng vào public key. Bởi vì certificates là phần quan trọng nhất của một tiêu chuẩn public-key tương thích, PKCS đã thông qua việc sử dụng giấy chứng nhận X.509. Cách tiếp cận này duy trì khả năng tương thích với những người dùng khác của chuẩn X.509 đặc biệt, với Internet Bảo mật-Enhanced Mail. Phụ lục này mô tả cú pháp của X.509 certificate, cho mục đích tham khảo. Để được chính xác, nó mô tả cú pháp sửa đổi được đưa ra trong RFC 1422, mà đã làm việc theo cách của nó trở lại với tiêu chuẩn X.509 năm 1988. Một Giấy chứng nhận X.509 bao gồm ba phần: "Giấy chứng nhận thông tin", một thuật toán chữ ký định danh, và chữ ký số trên các thông tin certificate. Các thông tin giấy chứng nhận bao gồm tên phân biệt của một thực thể, các thực thể của khóa công khai, tên phân biệt của người phát hành giấy chứng nhận, một công ty phát hành cụ thể số, một thuật toán chữ ký định danh, và thời gian hiệu lực. Quá trình mà certificate được xây dựng bao gồm các bước sau: 1. Một giá trị CertificateInfo có chứa thông tin certificate xây dựng bởi các công ty phát hành certificate. 2. Giá trị CertificateInfo được ký kết với các công ty phát hành certificate của private key. 3. Giá trị CertificateInfo, một thuật toán chữ ký định danh, và chữ ký của người phát hành giấy chứng nhận tập hợp thành một giá trị Giấy chứng nhận, quy định 5 dưới đây. Các cuộc thảo luận sau đây được chia thành hai phần. Phần đầu tiên mô tả các CertificateInfo loại giấy chứng nhận-thông tin, và phần thứ hai mô tả các loại Giấy chứng nhận cấp cao nhất. 7.1 CertificateInfo Giấy chứng nhận thông tin đã ASN.1 loại CertificateInfo: CertificateInfo ::= SEQUENCE { version [0] Version DEFAULT v1988, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo } Version ::= INTEGER { v1988(0) } CertificateSerialNumber ::= INTEGER Validity ::= SEQUENCE { notBefore UTCTime, notAfter UTCTime } SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING } AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY ALGORITHM OPTIONAL } Các lĩnh vực loại CertificateInfo có ý nghĩa sau đây: • Version là số phiên bản, để tương thích với tương lai bản sửa đổi của X.509. Giá trị mặc định của nó là v1988, mà Version kiểu giao cho số 0. Các tag [0] trên version là một thẻ rõ ràng. Đây là mặc định cho các thẻ không được đánh dấu rõ ràng hoặc ngầm định trong module ASN.1 xác định các loại Certificate. • SerialNumber là số nối tiếp tổ chức phát hành cụ thể của certificate. Mỗi giấy chứng nhận cho một công ty phát hành đặc biệt phải có một số serial khác nhau. • Signature xác định các thuật toán chữ ký chữ ký của người phát hành (và bất kỳ liên quan đến các thông số). • Issuer là tên phân biệt của người phát hành certificate. • Validity là thời hạn hiệu lực của giấy chứng nhận. Thời hạn hiệu lực thời gian quy định các điểm trong thời gian giữa certificate được coi là hợp lệ. • Subject là tên phân biệt của đối tượng chứng nhận (các thực thể chính là người có công chứng). • SubjectPublicKeyInfo chứa thông tin về public key được chứng nhận. Thông tin xác định các thực thể của thuật toán public key (và bất kỳ các liên kết thông số); ví dụ về các thuật toán khoá công khai bao gồm RSA của X.509 và PKCS # 1 của 6 rsaEncryption. Thông tin này cũng bao gồm một chuỗi bit đại diện của khóa công khai. Đối với cả hai public-key các thuật toán đề cập đến, các chuỗi bit chứa mã hóa BER của một giá trị X.509/PKCS # 1 loại RSAPublicKey. 7.2 Certificate Một chứng nhận X.509 có Giấy chứng nhận kiểu ASN.1: Certificate ::= SEQUENCE { certificateInfo CertificateInfo, signatureAlgorithm AlgorithmIdentifier, signature BIT STRING } Các lĩnh vực loại Certificate có ý nghĩa sau đây: • CertificateInfo là "Giấy chứng nhận thông tin." Đó là giá trị được ký kết. • SignatureAlgorithm xác định các thuật toán chữ ký (và bất kỳ các liên kết thông số), theo đó các thông tin certificate đã ký kết. Ví dụ như md2WithRSAEncryption của PKCS # 1 và md5ithRSAEncryption. Giá trị của cái này nên giống như giá trị của signature của giấy chứng nhận thông tin. • Signature là kết quả của việc ký kết các thông tin certificate với tổ chức phát hành certificate của khóa riêng. Quá trình chữ ký bao gồm hai bước, như trong mục 6.2: 1. Giá trị của trường certificateInfo là mã hóa DER, năng suất một chuỗi octet. 2. Kết quả của bước 1 được ký kết với khóa riêng của người phát hành giấy chứng nhận theo các thuật toán chữ ký quy định, năng suất một chuỗi bit, chữ ký. Lưu ý. Cú pháp Certificate thường là bằng văn bản với X.509 SIGNED vĩ mô. Certificate ::= SIGNED SEQUENCE { version [0] Version DEFAULT v1988, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo } Các vĩ mô SIGNED đã được mở rộng trong thảo luận này cho đơn giản. VeriSign® là thương hiệu uy tín nhất trên toàn thế giới hiện nay trong lĩnh vực cung cấp chứng chỉ số. Một website có gắn biểu tượng "VeriSign Secured Seal" sẽ gia tăng mức độ tin cậy từ phía khách hàng lên rất nhiều lần. Secure Site Pro EV từ GOLD Partner cua VN Thông thường, khi truy cập web, với địa chỉ http://vnexperts…., nghĩa là ta đang truy cập một trang web không có cơ chế mã hóa dữ liệu truyền đi giữa 7 người dùng và trang web đó (web server). Điều đó có nghĩa là mọi dữ liệu truyền đi giữa người sử dụng đến trang web đó, có thể bị nghe lén giữa đường đi. Đây là điểm không an toàn. Vậy một trang web bảo mật có gì khác? Điểm khác ở đây chính là trang web đó sử dụng chứng chỉ số, khi truy cập vào trang web đó, ta không dùng địa chỉ thông thường http://vnexperts… mà sử dụng https://vnexperts… Có nghĩa ta sử dụng qua HTTPS Một trong vô số các trang web sử dụng chứng chỉ số để bảo mật, đó là https://gmail.com. Khi truy cập vào đây, ta có thể yên tâm là dữ liệu truyền đi giữa người dùng và trang web đó được bảo mật cao, nghĩa là khó có thể lộ thông tin giao dịch. Sử dụng Internet Explorer để truy cập vào trang web, ta có thể thấy các thông tin về bảo mật, chứng chỉ số được chỉ ra cụ thể: Như hình trên, sử dụng Internet Explore (IE) để truy cập vào một trang web sử dụng chứng chỉ số để bảo mật, ta thấy dấu hiệu bảo mật ở Khóa vàng góc dưới. Nếu kích chuột vào đây, IE sẽ hiển thị chứng chỉ số của trang web này. Vậy các thông tin này có nghĩa là gì? Hình trên hiển thị ra một chứng chỉ số (Certificate), trong đó có các thông tin có ý nghĩa như sau: chứng chỉ số này được cấp cho www.google.com, đơn vị cung cấp chứng chỉ là ‘Thawte SGC CA’, đơn vị cung cấp chứng chỉ cấp cao hơn cho ‘Thawte SGC CA’ là ‘VeriSign Class 3 Public Primary CA’. Như vậy, với ý nghĩa của chứng chỉ số, ta có thể nói rằng: trang web đang được truy cập là https://gmail.com, có chủ sở hữu với tên ký hiệu là www.google.com, chủ sở hữu này đã sử dụng chứng chỉ số được cung cấp bởi CA: ‘Thawte SGC CA’ ( thuộc ‘VeriSign Class 3 Public Primary CA’). Mọi thông tin truyền đi giữa người dùng và trang web (web server) là hoàn toàn được bảo mật. Trên đây là cách thức sử dụng chứng chỉ số ở mức đơn giản. Cách thức sử dụng này mới chỉ là bảo mật một phía, người dùng tin cậy chứng chỉ của trang web (web server) mà họ truy cập, trong khi đó. Cách thức bảo mật cao hơn là trường hợp người dùng phải có chứng chỉ để truy cập trang web. Khi đó, để người dùng và web (web server) có thể xác thực được nhau, chứng chỉ của người dùng và của web (web server) phải được cung cấp từ một CA. Trong ví dụ trên, chứng chỉ của người dùng cũng phải được cung cấp bởi ‘Thawte SGC CA’ ( thuộc ‘VeriSign Class 3 Public Primary CA’). Việc sử dụng chứng chỉ số không chỉ áp dụng cho trường hợp giao dịch web như trên, ngoài ra còn có nhiều hình thức sử dụng khác, ví dụ, sử dụng chứng chỉ số cho email, cho các thiết bị di động… 8 Xem chứng thư từ một trang https Lưu chứng thư trên máy tính với đuôi mở rộng là *.cer 9 So sánh 2 chứng thư( xem trên file *.cer và xem trực tiếp trên firefox) 10 [...]...Version: là số phiên bản SerialNumber là số nối tiếp tổ chức phát hành cụ thể của certificate Mỗi giấy chứng nhận cho một công ty phát hành đặc biệt phải có một số serial khác nhau 11 Signature xác định các thuật toán chữ ký chữ ký của người phát hành Issuer là tên phân biệt của người phát hành certificate 12 Validity là thời hạn hiệu lực của giấy chứng nhận Thời hạn hiệu lực thời... gian giữa certificate được coi là hợp lệ Validity from thời gian bắt đầu có hiệu lực Validity to thời gian kết thúc hiệu lực 13 Subject là tên phân biệt của đối tượng chứng nhận SubjectPublicKeyInfo chứa thông tin về public key được chứng nhận 14 15 . hiển thị chứng chỉ số của trang web này. Vậy các thông tin này có nghĩa là gì? Hình trên hiển thị ra một chứng chỉ số (Certificate), trong đó có các thông tin có ý nghĩa như sau: chứng chỉ số này. số loại thuộc tính có thể có ích ở đây được xác định trong PKCS # 9. 6.2 ExtendedCertificate Một extended certificate có ASN.1loại ExtendedCertificate: ExtendedCertificate ::= SEQUENCE { extendedCertificateInfo. phân biệt của đối tượng chứng nhận (các thực thể chính là người có công chứng) . • SubjectPublicKeyInfo chứa thông tin về public key được chứng nhận. Thông tin xác định các thực thể của thuật toán