it-swarm-vi.com

Làm thế nào Chrome và Firefox xác thực Chứng chỉ SSL?

Làm thế nào Chrome và Firefox xác thực Chứng chỉ SSL? Họ có yêu cầu dữ liệu từ một trang web chứng nhận SSL, như GeoTrust, để xác thực chứng chỉ nhận được từ máy chủ web không?

26
user1397542

Các trình duyệt và/hoặc hệ điều hành có xu hướng đi kèm với một danh sách các chứng chỉ CA được xác định trước được sử dụng làm neo tin cậy để kiểm tra chứng chỉ của các máy chủ mà chúng kết nối. Tất cả đều có thể tùy chỉnh (ngoại trừ chứng chỉ EV, trong đó chứng chỉ gốc được mã hóa cứng vào trình duyệt, mặc dù bạn có thể vô hiệu hóa chúng ... ngoại trừ lỗi).

Firefox sử dụng danh sách riêng trên tất cả các nền tảng.

Internet Explorer và Chrome sử dụng kho lưu trữ chứng chỉ của hệ điều hành trên Windows. Mặc định có sẵn thông qua Microsoft Chương trình chứng chỉ gốc .

Apple cũng có chương trình của nó .

Việc tin tưởng một chứng chỉ máy chủ không xác định được thực hiện bằng cách xây dựng đường dẫn chứng nhận giữa chứng chỉ này và một trong các neo tin cậy của trình duyệt. Điều này được thực hiện như được định nghĩa trong RFC 3280/RFC 5280.

Ngoài ra, việc thu hồi chứng chỉ cũng có thể được kiểm tra, thông qua CRL hoặc qua OCSP.

Vì vậy, không thể chặn liên lạc giữa trình duyệt và CA để giả mạo chứng chỉ hợp lệ vì chứng chỉ có khả năng đã có trong bộ đệm của trình duyệt?

Để lặp lại điểm tôi đã đưa ra như một nhận xét cho câu trả lời của Wug: kho lưu trữ neo tin cậy không phải là bộ đệm . Bộ đệm là một trình giữ chỗ động nhằm mục đích giữ những gì bạn đã truy cập gần đây theo ý của bạn, dựa trên giả định bạn sẽ cần lại chúng sớm. Ngược lại, danh sách chứng chỉ tin cậy của bạn không bao giờ được cập nhật tự động trên cơ sở những gì bạn đang duyệt. (Nó có thể được cập nhật bằng các cập nhật bảo mật tự động, nhưng đó là một vấn đề khác.)

Chứng chỉ máy chủ sẽ được lấy mỗi khi phiên SSL/TLS mới được thiết lập và trình duyệt phải xác minh nó mỗi lần. Nó không được lưu trữ. (Bạn có thể có một số bộ nhớ đệm OCSP, nhưng đó là để cải thiện hiệu suất và chỉ được giữ trong một khoảng thời gian ngắn. Đây chỉ là để xác minh trạng thái hủy bỏ tại thời điểm truy cập.)

Liên lạc với CA chỉ để thu hồi chứng chỉ. Bạn không liên hệ với CA. Chứng chỉ CA (neo đáng tin cậy của bạn) là một "bước nhảy đức tin" nhất định, được gói bởi hệ điều hành/trình duyệt của bạn (mà bạn có thể chọn rõ ràng, nhưng nó đã được sửa theo liên quan đến một kết nối nhất định). Tốt nhất bạn có thể ngăn việc kiểm tra thu hồi chứng chỉ xảy ra (điều này có thể khiến trình duyệt của bạn khiến việc xác thực không thành công, tùy thuộc vào cài đặt của nó).

16
Bruno

Máy chủ web sẽ gửi toàn bộ chuỗi chứng chỉ cho khách hàng theo yêu cầu. Trình duyệt (hoặc trình xác nhận khác) sau đó có thể kiểm tra chứng chỉ cao nhất trong chuỗi bằng chứng chỉ CA được lưu trữ cục bộ.

Hầu hết các hệ điều hành giữ một bộ đệm của các chứng chỉ có thẩm quyền mà các trình duyệt có thể truy cập cho các mục đích đó, nếu không trình duyệt sẽ có bộ riêng của chúng ở đâu đó.

Một chứng chỉ có thể được ký bởi một chứng chỉ khác, tạo thành một "chuỗi tin cậy" thường chấm dứt tại một chứng chỉ có thẩm quyền tự ký được cung cấp bởi một thực thể như GeoTrust, Verisign, Godaddy, v.v.

Đây sẽ là một câu hỏi tốt hơn cho trang web SE bảo mật.

Cụ thể, Google chrome, tôi không chắc chắn 100% sử dụng bộ đệm của hệ điều hành, nhưng bạn có thể thêm chứng chỉ có thẩm quyền qua Cờ lê -> Cài đặt -> Hiển thị cài đặt nâng cao -> HTTPS/SSL -> Quản lý chứng chỉ -> Cơ quan chứng chỉ gốc đáng tin cậy và thêm một chứng chỉ CA có thẩm quyền ở đó.

3
Wug

Như Wug đã giải thích, việc xác thực xảy ra từ chứng chỉ máy chủ đến chứng chỉ cao nhất trong chuỗi. Trình duyệt sẽ xem xét các thuộc tính chứng chỉ và thực hiện xác nhận cơ bản, chẳng hạn như đảm bảo URL khớp với Issued to trường, Issued By trường chứa Cơ quan cấp chứng chỉ tin cậy, ngày hết hạn có vẻ tốt trong Valid From lĩnh vực, v.v.

Ngoài ra, mỗi chứng chỉ chứa URL trỏ đến Danh sách hủy bỏ chứng chỉ (CRL Distribution Points), khách hàng sẽ cố tải xuống danh sách từ URL đó và đảm bảo chứng chỉ trong tay chưa bị thu hồi.

Để trả lời câu hỏi của bạn

Có phải họ đang yêu cầu dữ liệu từ trang web Chứng nhận SSL như GeoTrust để xác thực chứng chỉ nhận được từ máy chủ web?

, trình duyệt sẽ thực hiện xác thực cơ bản và sau đó liên hệ với máy chủ ủy quyền CA (thông qua các điểm CRL) để đảm bảo chứng chỉ vẫn tốt.

3
Ulises

Đây là mất của tôi trên vaildation chứng chỉ. Giả sử chứng chỉ web có tên chính xác, trình duyệt sẽ cố gắng tìm Cơ quan cấp chứng chỉ đã ký chứng chỉ máy chủ web để lấy khóa công khai của người ký. Cơ quan cấp chứng chỉ ký có thể là một phần của chuỗi CA

Với khóa chung, chữ ký trên chứng chỉ của trang web có thể được giải mã (điều này đảm bảo rằng chỉ CA mới có thể ký nó trừ khi khóa riêng của họ bị xâm phạm) để tiết lộ băm của chứng chỉ máy chủ web. Trình duyệt cũng tính toán hàm băm của chứng chỉ máy chủ web và nếu hai giá trị băm khớp nhau chứng tỏ rằng Cơ quan cấp chứng chỉ đã ký chứng chỉ.

Nếu không thể tìm thấy khóa chung của người ký hoặc băm không khớp thì chứng chỉ không hợp lệ.

Vấn đề với hệ thống này là Cơ quan Chứng nhận không hoàn toàn đáng tin cậy.

1
Bill Laing

Lưu ý rằng Google Chrome đã ngừng sử dụng danh sách CRL vào khoảng ngày 7 tháng 2 năm 2012 để kiểm tra xem chứng chỉ có hợp lệ hay không. Có vẻ như họ xây dựng tất cả các chứng chỉ hợp lệ vào trình duyệt và cài đặt một bộ mới mỗi lần trình duyệt được cập nhật. Xem URL: https://threatpost.com/en_us/bloss/google-stop-USE-online-crl-checks-chrome-020712 .

0
Andrew Stern