it-swarm-vi.com

Giá trị thực của dấu vân tay là gì?

Trong chứng chỉ kỹ thuật số x509 có phần "dấu vân tay chứng chỉ". Nó chứa md5, sha1 và sha256. Chúng được lấy như thế nào và trong quá trình kết nối SSL, các giá trị này được kiểm tra như thế nào?

34
Ashwin

Dấu vân tay, như được hiển thị trong phần Dấu vân tay khi xem chứng chỉ bằng Firefox hoặc dấu vân tay trong IE là hàm băm của chứng chỉ toàn bộ ở dạng DER.

Nếu chứng chỉ của bạn ở định dạng PEM, hãy chuyển đổi nó thành DER với OpenSSL:

openssl x509 -in cert.crt -outform DER -out cert.cer

Sau đó, thực hiện băm SHA-1 trên đó (ví dụ: với sha1sum1):

sha1sum cert.cer

Điều này sẽ tạo ra kết quả tương tự như những gì bạn thấy trong trình duyệt. Các giá trị này không phải là một phần của chứng chỉ, thay vào đó chúng được tính toán từ chứng chỉ.

Một ứng dụng của những dấu vân tay này là xác nhận chứng chỉ EV. Trong trường hợp này, dấu vân tay SHA-1 của chứng chỉ EV CA gốc là mã hóa cứng trong trình duyệt (lưu ý rằng (a) đó là dấu vân tay của chứng chỉ gốc và (b) nó phải khớp chính xác các neo tin cậy được vận chuyển với phiên bản trình duyệt được biên dịch với các giá trị đó).

Ngoài ra, những dấu vân tay này chủ yếu được sử dụng để xác định các chứng chỉ (để tổ chức chúng).

Đó là các khóa công khai thực tế được sử dụng để xác minh các chứng chỉ khác trong chuỗi. Thông báo được sử dụng để ký chứng chỉ thực sự không có trong chứng chỉ (chỉ có chữ ký kết quả). Xem cấu trúc chứng chỉ :

   Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

   TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        ...

Trong trường hợp này, giá trị chữ ký được tính từ tbsCertert được mã hóa DER (nghĩa là nội dung của nó). Khi thuật toán chữ ký là SHA1 với RSA (ví dụ), thông báo SHA-1 được tính toán và sau đó được ký bằng khóa riêng RSA của tổ chức phát hành. Bản tóm tắt SHA-1 này không liên quan gì đến dấu vân tay đã được hiển thị bởi openssl x509 -fingerprint hoặc trong trình duyệt, vì đó chỉ là phần tbsCertert.

Ngoài ra còn có một số tiện ích mở rộng không liên quan có thể sử dụng các bản tóm tắt, các khóa công khai lần này: Mã định danh khóa chủ đề và Mã định danh khóa thẩm quyền . Đây là các tùy chọn (và trong nội dung TBS của chứng chỉ).

39
Bruno