Trước hết, có một số bước bị thiếu trong bước ba. Điều gì thực sự xảy ra trong bước thứ ba là:
- khách hàng xác nhận giấy chứng nhận
- máy khách và máy chủ gửi một số thông điệp qua lại nhờ đó mà họ đàm phán những loại bí mật mã hóa khóa cả hai đều có thể sử dụng
- khách hàng tạo khóa bí mật cho thuật toán mã hóa đó, mã hóa khóa bí mật bằng khóa công khai của máy chủ và gửi khóa bí mật được mã hóa đến máy chủ.
- máy chủ hiện có thể giải mã khóa bí mật bằng khóa riêng của họ.
- khách hàng và máy chủ hiện đã đồng ý về thuật toán khóa bí mật và họ chia sẻ khóa bí mật. Tất cả các thông tin liên lạc hiện được mã hóa và giải mã bằng khóa bí mật được chia sẻ.
- khách hàng mã hóa thông tin xác thực của họ bằng khóa bí mật ...
Lý do cho điều này là gấp đôi. Đầu tiên, toán cho mật mã khóa công khai đắt hơn nhiều so với toán cho mật mã khóa bí mật. Ý tưởng là để làm điều đó toán học đắt tiền chỉ một lần, để cho phép trao đổi một bí mật được chia sẻ. Thứ hai, máy khách biết khóa công khai của máy chủ, nhưng máy khách có thể thậm chí không có khóa công khai, vậy làm thế nào máy chủ có thể gửi một thông báo bí mật? Đó là lý do tại sao họ phải đồng ý về một khóa bí mật được chia sẻ.
Dù sao chuyển sang câu hỏi của bạn:
đâu dịch vụ giữ khóa bí mật của mình?
Trên Windows trong bộ nhớ chứng chỉ do hệ điều hành cung cấp. Trên các hệ điều hành khác, tôi không biết.
Tại sao chứng chỉ cần thiết?
Giả sử bạn muốn mua máy cắt cỏ của tôi bằng thẻ tín dụng, nhưng bạn lo lắng rằng tôi thực sự có thể là kẻ lừa đảo. Bạn muốn biết tên thật của tôi để bạn có thể truy tố tôi nếu tôi bắt đầu tính phí chuyến đi của tôi đến Vegas trên thẻ của bạn.
Vì vậy, khi chúng tôi thực hiện giao dịch, tôi cho bạn thấy một mẩu giấy có nội dung "Eric Lippert cho rằng chủ sở hữu của tờ giấy này là Eric Lippert, đã ký, Eric Lippert". Bạn có tin tôi? Nếu bạn đã tin tưởng Eric Lippert thì bạn không cần mảnh giấy, và nếu bạn không tin tưởng Eric Lippert, thì giấy không thiết lập sự tin tưởng. Đây là "chứng chỉ tự ký".
Bây giờ, nếu tôi chỉ cho bạn một mẩu giấy có nội dung "VeriSign kết hợp tuyên bố rằng chủ sở hữu của tờ giấy này là Eric Lippert, đã ký VeriSign", thì câu hỏi là: bạn có tin tưởng VeriSign đã xác minh danh tính của tôi không ? Nếu bạn làm, thì đây là bằng chứng cho thấy người mà bạn đang nói chuyện là người mà họ tuyên bố là.
Đó là mục đích của chứng chỉ. Nó thiết lập rằng một khóa công khai cụ thể thực sự được liên kết với một tổ chức cụ thể bởi vì nó là được một bên thứ ba được tin cậy lẫn nhau có chữ ký là được gọi là cơ quan chứng nhận .
Khi bạn mua thứ gì đó bằng thẻ tín dụng trực tuyến, bạn có thể tin tưởng trang web chỉ thực hiện các khoản phí được ủy quyền cho thẻ đó. Chứng chỉ xác minh rằng khóa công khai mà bạn sẽ sử dụng để mã hóa thực sự là chìa khóa công cộng của trang web đó, chứ không phải khóa công khai của một hacker nào đó.
Nhưng chứng chỉ với khóa công khai là công khai, vì vậy, không ai có thể lấy chứng chỉ và giả vờ làm máy chủ?
Có, nhưng điều đó không giúp họ trừ khi họ ăn cắp khóa riêng tư, riêng tư. Người có chứng chỉ của người khác không thể giải mã thư đã được mã hóa bằng khóa công khai, vì vậy họ sẽ không thể thực hiện trao đổi khóa bí mật với khách hàng! Ngay cả khi họ quản lý để lừa khách hàng, tất cả họ sẽ nhận được là một luồng bit được mã hóa bằng khóa bí mật của sự lựa chọn của khách hàng, một khóa bí mật mà kẻ tấn công không thể có mà không có một nửa chứng chỉ riêng.
Điều đó có nghĩa là: nếu tôi cho phép truy cập vào khóa riêng của mình, ai đó có thể mạo danh tôi, phải không?
Có. Bảo mật của toàn bộ hệ thống phụ thuộc vào khóa riêng tư còn lại. Đó là lý do tại sao nó được gọi là khóa riêng riêng. Nếu kẻ tấn công có quyền truy cập vào khóa riêng của bạn thì họ có thể mạo danh bạn theo ý muốn, vì vậy, hãy giữ bí mật, giữ an toàn cho số điện thoại. Nếu khóa của bạn bị xâm nhập thì có một cơ chế mà theo đó chứng chỉ có thể bị thu hồi, nhưng thiệt hại thường sẽ được thực hiện.