it-swarm-vi.com

Sự hiểu biết của tôi về cách HTTPS hoạt động (ví dụ gmail)

Tôi muốn hỏi liệu sự hiểu biết dưới đây của tôi có đúng hay không liên quan đến HTTPS được sử dụng cho trang web chúng tôi đang truy cập.

Tôi sẽ sử dụng Gmail làm ví dụ:

  1. Máy tính xách tay của tôi cố gắng kết nối với máy chủ Gmail và gửi yêu cầu http
  2. Thay vào đó, máy chủ Gmail trả lời yêu cầu thiết lập kết nối https (gửi yêu cầu https)
  3. Máy tính xách tay của tôi kiểm tra chứng nhận https của máy chủ Gmail và đồng ý sử dụng https để kết nối
  4. Máy tính xách tay của tôi tìm thấy Khóa công khai của máy chủ Gmail và sử dụng nó để mã hóa mật khẩu tài khoản gmail của tôi và gửi nó đến Máy chủ Gmail
  5. Máy chủ Gmail xác minh mật khẩu của tôi bằng cách sử dụng Khóa riêng của Máy chủ Gmail và xác nhận đăng nhập email của tôi
  6. Máy chủ Gmail gửi thông tin email đến máy tính xách tay của tôi bằng cách mã hóa nó bằng máy tính xách tay của tôi Khóa công khai
  7. Máy tính xách tay của tôi đọc thông tin email được mã hóa bằng cách giải mã nó bằng cách sử dụng Khóa riêng của máy tính xách tay của tôi
  8. Cứ tiếp tục như vậy cho đến khi máy tính xách tay của tôi đăng xuất khỏi máy chủ Gmail.

Tóm tắt: có 4 khóa liên quan đến kết nối https này. Khóa công khai/khóa riêng của máy chủ Gmail (2pc) + Khóa công khai/khóa riêng của máy tính xách tay của tôi (2pc)

27
Xianlin

Vâng, bạn đang đi đúng hướng! Nhưng mọi thứ thực sự hoạt động hơi khác một chút so với bạn vạch ra.

Cụ thể, Bước 4-8 không hoàn toàn là cách SSL hoạt động. SSL hoạt động hơi khác một chút. Đây là cách nó thực sự hoạt động (Tôi sẽ thực hiện một số đơn giản hóa nhỏ, nhưng điều này sẽ giúp Gist của ý tưởng đúng):

  • Máy chủ Gmail gửi cho khách hàng của bạn một chứng chỉ . Chứng chỉ bao gồm khóa chung của máy chủ Gmail và một số bằng chứng cho thấy khóa chung này thực sự thuộc về gmail.com.

  • Trình duyệt của bạn xác minh bằng chứng trong chứng chỉ, để xác nhận rằng nó có khóa chung phù hợp cho gmail.com.

  • Trình duyệt của bạn chọn khóa đối xứng mới ngẫu nhiên [~ # ~] k [~ # ~] để sử dụng cho kết nối với Gmail. Nó mã hóa [~ # ~] k [~ # ~] dưới khóa chung của Gmail.

  • Gmail decrypts [~ # ~] k [~ # ~] bằng khóa riêng của nó. Bây giờ cả trình duyệt của bạn và máy chủ Gmail đều biết [~ # ~] k [~ # ~] , nhưng không ai khác làm được.

  • Bất cứ khi nào trình duyệt của bạn muốn gửi một cái gì đó đến Gmail, nó sẽ mã hóa nó theo [~ # ~] k [~ # ~] ; máy chủ Gmail giải mã nó khi nhận được. Bất cứ khi nào máy chủ Gmail muốn gửi một cái gì đó đến trình duyệt của bạn, nó sẽ mã hóa nó theo [~ # ~] k [~ # ~] .

Các bước 1-3 của bạn gần như đúng, mặc dù không chính xác và các chi tiết phụ thuộc một chút vào trình duyệt bạn sử dụng và URL nào bạn nhập vào thanh địa chỉ hoặc cách bạn truy cập Gmail ở nơi đầu tiên - nhưng bạn là gì đã viết là đủ gần để hiểu các khái niệm cơ bản. Đủ tốt cho công việc của chính phủ.

Đây là một số đọc thêm cho bạn:

Làm thế nào có thể mọi người quan sát kết nối HTTPS được thiết lập sẽ không biết cách giải mã nó?

Làm thế nào để các quy trình cho chứng chỉ kỹ thuật số, chữ ký và ssl hoạt động?

Mục đích chứng chỉ được ký và tin cậy bởi CA

Tại sao việc giả mạo chứng chỉ SSL khó khăn?

Tại sao HTTPS không phải là giao thức mặc định?

Truy cập các trang web HTTPS trên một điểm truy cập công cộng có an toàn không?

Tôi nghĩ những bài viết đó sẽ cung cấp cho bạn một sự hiểu biết tuyệt vời về SSL, cách thức hoạt động và lý do tại sao nó được thiết kế theo cách của nó.

Nếu điều đó là không đủ, bạn phải có nhiều hơn nữa, đây là một số bài viết từ Wikipedia:

Cách chứng chỉ hoạt động

Cách SSL hoạt động

Tuy nhiên, họ có thể có nhiều chi tiết kỹ thuật hơn bạn muốn biết và họ không phải là người giới thiệu tuyệt vời đầu tiên về các khái niệm hoặc ý tưởng cơ bản.

50
D.W.