Sự khác biệt giữa chứng chỉ và khóa liên quan đến SSL là gì?


126

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?


Certs được sử dụng cho SSL chủ yếu dựa trên PKI en.wikipedia.org/wiki/Public-key_cryptography
Zoredache

Câu trả lời:


114

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ỉ.


4
@Zoredache Nếu một chứng chỉ thường chỉ có khóa chung, có một tên hay để gọi các tệp .p12 hoặc .pfx có chứa các chứng chỉ và khóa riêng cùng nhau không?
DRS

Một pkcs12 là một định dạng lưu trữ. Nó có thể chứa một khóa, hoặc có thể không. Tôi thường cố gắng luôn luôn cụ thể khi giới thiệu về những gì một tập tin cụ thể chứa, hoặc chỉ nói tập tin pkcs12.
Zoredache

2
Thông tin bổ sung này được chôn ở đâu? Tôi đã xem xét một số chứng chỉ và tất cả đều vô nghĩa với tôi
CodyBugstein

3
Sự vô nghĩa mà bạn đang xem là mã hóa Base64. Nó được thực hiện theo cách đó có thể vì một lý do tương tự rằng các tệp đính kèm email được chuyển đổi sang đó - về cơ bản để đảm bảo chúng có thể vận chuyển thông qua các giao thức và cơ chế được thiết kế cho ASCII mà không cần sửa đổi ngẫu nhiên và không phải lo lắng về những thứ như dòng mới, dấu ngoặc, v.v. opensslLệ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
LawrenceC

Là chứng chỉ được ký bởi CA hoặc máy chủ đang được liên lạc?
Olshansk

58

Hai hình ảnh này cùng nhau giải thích mọi thứ với tôi:

Nguồn: linuxvoice

nhập mô tả hình ảnh ở đây

Nguồn: infosecinstolarship

nhập mô tả hình ảnh ở đây


1
Xkcd

Đẹp. 1 làm rõ: pic thứ 1 là tiêu chuẩn (1 chiều) TLS auth; thứ 2, lẫn nhau (2 chiều) auth. Và thêm 1 cuộc gọi trong cuộc gọi đầu tiên sẽ giúp giải thích thêm về cách tin cậy thực sự được thiết lập (tất cả trong 1 hình ảnh trông thân thiện hơn): sau khi khách hàng nhận được chứng nhận khóa công khai của máy chủ, khách hàng xác minh rằng CA đã ký chứng chỉ của máy chủ được chứa trong danh sách CA riêng đáng tin cậy của khách hàng (thiết lập rằng bây giờ nó cũng tin tưởng CA đó). Sau đó, an toàn để gửi cho máy chủ khóa phiên, với mỗi khóa có thể vừa mã hóa và giải mã các liên lạc tiếp theo.
dùng1172173

Liên kết đầu tiên, đến linuxvoice.com/ , đưa ra lỗi chứng chỉ. Mỉa mai
Tobb

37

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).

  • Công ty A phải gửi yêu cầu chứng nhận (CR) cho cơ quan chứng nhận (CA) để nhận chứng chỉ cho cặp chìa khóa của mình.
  • Khóa công khai, nhưng không phải là khóa riêng của cặp khóa của công ty A được bao gồm như một phần của yêu cầu chứng chỉ.
  • Sau đó, CA sử dụng thông tin nhận dạng của công ty A để xác định xem yêu cầu có đáp ứng các tiêu chí của CA để cấp chứng chỉ hay không.
    Nếu CA chấp thuận yêu cầu, nó sẽ cấp giấy chứng nhận cho công ty A. Tóm lại, CA ký khóa công khai của công ty A bằng khóa riêng (CA) của mình, để xác minh tính xác thực của nó.

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.


Công ty A có điểm nào liên kết khóa riêng của (Công ty A) với chứng chỉ (Công ty A) không?
Tola Odejayi

Không. Khóa riêng vẫn là khóa riêng cho A.
Mohsen Heydari

Vậy chìa khóa riêng của công ty A được sử dụng ở đâu?
sivann

2
Sau các thủ tục trên. Công ty A sẽ có chứng chỉ SSL hợp lệ trên trang web của mình. Bất kỳ khách truy cập (trình duyệt) nào đang liên lạc với trang web sẽ sử dụng khóa công khai chứng chỉ để mã hóa tin nhắn của anh ta. Công ty A có khóa riêng của chứng chỉ SSL là người duy nhất có thể giải mã tin nhắn.
Mohsen Heydari

Tôi đoán công ty A là một người đàn ông.
DimiDak

5

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. nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

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.


3

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.

Đọc thêm tại đây


2

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).


3
<PiratesOfTheCarribean> Vì vậy, chúng tôi sẽ theo đuổi khóa này! </ PiratesOfTheCarribean> (Đọc: Bạn hoàn toàn không có ý nghĩa gì cả ...)
Timo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.