Bất cứ khi nào tôi cố gắng hiểu bất cứ điều gì về SSL, tôi luôn khó theo dõi "khóa" và "chứng chỉ" đề cập đến điều gì. Tôi sợ nhiều người sử dụng chúng không chính xác hoặc thay thế cho nhau. Có sự khác biệt tiêu chuẩn giữa khóa và chứng chỉ không?
Bất cứ khi nào tôi cố gắng hiểu bất cứ điều gì về SSL, tôi luôn khó theo dõi "khóa" và "chứng chỉ" đề cập đến điều gì. Tôi sợ nhiều người sử dụng chúng không chính xác hoặc thay thế cho nhau. Có sự khác biệt tiêu chuẩn giữa khóa và chứng chỉ không?
Câu trả lời:
Chứng chỉ chứa khóa công khai.
Chứng chỉ, ngoài việc chứa khóa chung, còn chứa thông tin bổ sung như nhà phát hành, chứng chỉ được cho là được sử dụng cho mục đích gì và các loại siêu dữ liệu khác.
Thông thường, chứng chỉ được ký bởi cơ quan cấp chứng chỉ (CA) bằng khóa riêng của CA. Điều này xác minh tính xác thực của chứng chỉ.
openssl
Lệnh có thể giải mã và phân tích những thứ này hoặc bạn có thể sử dụng một tiện ích trực tuyến như thế này: lapo.it/asn1js
Hãy nói rằng công ty A có một cặp khóa và cần xuất bản khóa công khai của mình để sử dụng công khai (còn gọi là ssl trên trang web của anh ấy).
Vì vậy, khóa công khai của công ty A được ký với khóa riêng của CA hợp lệ được gọi là chứng chỉ của công ty A.
Hãy để tôi giải thích với một ví dụ.
Trong PKI dựa trên cặp khóa thông thường, có khóa riêng và khóa chung.
Trong một hệ thống dựa trên chứng chỉ, có khóa riêng và chứng chỉ. Chứng chỉ chứa nhiều thông tin hơn khóa công khai.
Bản trình diễn (Bạn có thể tạo chứng chỉ và khóa riêng): http : //www.elfsigncert ve.com/
Bạn có thể tải xuống mở tệp khóa riêng và tệp chứng chỉ, bạn thấy tệp chứng chỉ chứa nhiều thông tin như hiển thị bên dưới.
Bạn có thể đối sánh chứng chỉ đã tạo của mình (mở bằng trình chỉnh sửa văn bản) và khóa riêng (mở bằng trình chỉnh sửa văn bản) từ trang web này: https://www.sslshopper.com/cert ve- key- matcher.html
Nếu chứng chỉ khớp với khóa riêng của khách hàng, khách hàng chắc chắn, chứng chỉ đó được cung cấp bởi khách hàng hoặc được cung cấp bởi đại lý đáng tin cậy của khách hàng (CA).
Tuy nhiên, có những vấn đề chỉ trong khóa riêng và giao tiếp dựa trên chứng chỉ .
Bởi vì, bất kỳ ai cũng có thể tạo chứng chỉ và khóa riêng của họ, do đó, một cái bắt tay đơn giản không chứng minh bất cứ điều gì về máy chủ ngoài máy chủ biết khóa riêng khớp với khóa chung của chứng chỉ. Một cách để giải quyết vấn đề này là để khách hàng có một bộ hoặc một số chứng chỉ mà nó tin tưởng. Nếu chứng chỉ không có trong tập hợp, máy chủ sẽ không được tin cậy .
Có một số nhược điểm của phương pháp đơn giản này. Máy chủ sẽ có thể nâng cấp lên các khóa mạnh hơn theo thời gian ("xoay khóa"), thay thế khóa chung trong chứng chỉ bằng một khóa mới. Thật không may, bây giờ ứng dụng khách phải được cập nhật do thực chất thay đổi cấu hình máy chủ. Điều này đặc biệt có vấn đề nếu máy chủ không thuộc quyền kiểm soát của nhà phát triển ứng dụng, ví dụ, nếu đó là dịch vụ web của bên thứ ba. Cách tiếp cận này cũng có vấn đề nếu ứng dụng phải nói chuyện với các máy chủ tùy ý như trình duyệt web hoặc ứng dụng email.
Để giải quyết những nhược điểm này, các máy chủ thường được cấu hình với các chứng chỉ từ các tổ chức phát hành nổi tiếng được gọi là Tổ chức phát hành Chứng chỉ (CA). nền tảng máy chủ (máy khách) thường chứa một danh sách các CA nổi tiếng mà nó tin tưởng. Tương tự như máy chủ, CA có chứng chỉ và khóa riêng. Khi cấp chứng chỉ cho máy chủ, CA ký chứng chỉ máy chủ bằng khóa riêng của nó. Sau đó, khách hàng có thể xác minh rằng máy chủ có chứng chỉ do CA cấp cho nền tảng.
Tuy nhiên, trong khi giải quyết một số vấn đề, sử dụng CA giới thiệu một vấn đề khác. Vì CA cấp chứng chỉ cho nhiều máy chủ, bạn vẫn cần một số cách để đảm bảo rằng bạn đang nói chuyện với máy chủ mà bạn muốn. Để giải quyết vấn đề này, chứng chỉ do CA cấp sẽ xác định máy chủ bằng một tên cụ thể như gmail.com hoặc một bộ máy chủ được ký tự đại diện như * .google.com.
Ví dụ sau đây sẽ làm cho các khái niệm này cụ thể hơn một chút. Trong đoạn trích dưới đây từ một dòng lệnh, lệnh s_client của công cụ openssl xem xét thông tin chứng chỉ máy chủ của Wikipedia. Nó chỉ định cổng 443 vì đó là mặc định cho HTTPS. Lệnh sẽ gửi đầu ra của openssl s_client tới openssl x509, định dạng thông tin về chứng chỉ theo tiêu chuẩn X.509. Cụ thể, lệnh yêu cầu đối tượng chứa thông tin tên máy chủ và nhà phát hành xác định CA.
$ openssl s_client -connect wikipedia.org:443 | openssl x509 -noout -subject -issuer
subject= /serialNumber=sOrr2rKpMVP70Z6E9BT5reY008SJEdYv/C=US/O=*.wikipedia.org/OU=GT03314600/OU=See www.rapidssl.com/resources/cps (c)11/OU=Domain Control Validated - RapidSSL(R)/CN=*.wikipedia.org
issuer= /C=US/O=GeoTrust, Inc./CN=RapidSSL CA
Bạn có thể thấy rằng chứng chỉ được cấp cho các máy chủ khớp với * .wikipedia.org bởi RapidSSL CA.
Như bạn có thể thấy, do thông tin bổ sung này được CA gửi đến Máy chủ, khách hàng có thể dễ dàng biết liệu nó có liên lạc với máy chủ của mình hay không.
Chứng chỉ SSL được lấy từ Cơ quan chứng nhận tin cậy, chứng nhận cho kết nối an toàn của trang web. Chứng chỉ SSL thường chứa logo xác thực và cả các khóa công khai cần thiết để mã hóa và giải mã dữ liệu sẽ được gửi đến máy tính. Chức năng khóa SSL
Một số khóa SSL có thể được tạo trong một phiên. Chúng được sử dụng để mã hóa và giải mã thông tin được gửi đến và từ máy tính. Các khóa được sử dụng để xác minh rằng thông tin chưa được sửa đổi hoặc giả mạo.
Chênh lệch vòng đời
Chứng chỉ tồn tại lâu hơn khóa SSL. Chứng chỉ SSL được lấy từ Tổ chức chứng nhận, có thể được gia hạn thường xuyên bởi các ngân hàng và doanh nghiệp. Mặt khác, khóa SSL hoặc khóa phiên được tạo duy nhất trong phiên và bị loại bỏ khi phiên kết thúc.
OK, hãy phá vỡ điều này để những người không có kỹ thuật có thể hiểu.
Hãy nghĩ về nó như thế này. Giấy chứng nhận giống như một hộp ký gửi an toàn tại ngân hàng của bạn. Nó chứa rất nhiều thứ quan trọng; nói chung những thứ có chứa danh tính của bạn. Chứng chỉ có khóa chung và cần khóa riêng để mở.
Hộp ký gửi an toàn của bạn cũng có hai chìa khóa để mở, giống như một chứng chỉ.
Với hộp ký gửi an toàn, khóa ngân hàng giống như khóa công khai vì nó nằm ở ngân hàng và khóa chung vẫn ở cùng với chứng chỉ. Bạn có khóa riêng, cần thiết để "lấy chứng chỉ" và trong ví dụ về hộp ký gửi an toàn, khóa riêng của bạn cũng cần thiết ngoài khóa công khai.
Trước khi bạn thực sự có thể mở hộp ký gửi an toàn của mình, trước tiên bạn phải xác minh danh tính của mình (giống như yêu cầu chứng chỉ); Khi bạn đã được xác định, bạn sử dụng khóa riêng của mình cùng với khóa chung để mở hộp an toàn của bạn. Điều này giống như thực hiện yêu cầu chứng chỉ của bạn, và sau đó nhận chứng chỉ của bạn từ cơ quan chứng nhận (miễn là bạn có thể được xác định (đáng tin cậy) và bạn có đúng khóa).