it-swarm-vi.com

Khóa phiên mã hóa đối xứng trong SSL / TLS

Câu hỏi này liên quan đến các khóa gửi và nhận phiên được sử dụng trong giao thức SSL/TLS. Tôi hiểu rằng khóa này sử dụng mã hóa đối xứng (DES, AES, BlowFish, v.v.) Tôi tự hỏi, nếu các cặp khóa công khai vượt trội hơn các khóa đối xứng về bảo mật trao đổi khóa, tại sao không sử dụng mã hóa bất đối xứng cho phiên chìa khóa quá?

đây là phần mở rộng của một câu hỏi hiện có: bảo mật PKI, Chứng chỉ, cơ quan cấp chứng chỉ, bảo mật chuyển tiếp

66
lurscher

3 lý do (bây giờ):

  1. Mã hóa bất đối xứng chậm hơn, chậm hơn nhiều so với mã hóa đối xứng. Đơn đặt hàng cường độ chậm hơn.
  2. Với cùng một keylength, bất đối xứng yếu hơn nhiều so với đối xứng, bit-for-bit. Do đó, bạn cần một khóa lớn hơn nhiều để cung cấp sự bảo vệ tương đương. Điều này cũng góp phần vào sự chậm chạp được đề cập trong 1.
  3. (Theo nhận xét của @ Thomasuckingin :) Mã hóa bất đối xứng mang theo sự gia tăng kích thước đầu ra. Chẳng hạn, nếu bạn sử dụng RSA, dữ liệu được mã hóa lớn hơn ít nhất 10% so với Cleartext. Mặt khác, mã hóa đối xứng có một chi phí cố định kích thước cố định ngay cả khi mã hóa hàng gigabyte dữ liệu.
77
AviD

Các thuật toán mã hóa bất đối xứng kém hiệu quả hơn nhiều so với các thuật toán đối xứng. Vì vậy, về cơ bản, tất cả việc sử dụng mã hóa thông qua các khóa bất đối xứng đều liên quan đến việc mã hóa khóa phiên đối xứng, trong đó thông điệp thực tế được mã hóa.

Bên cạnh các lưu ý hữu ích của AviD về độ dài khóa, lưu ý rằng nếu các cuộc tấn công điện toán lượng tử trở nên khả thi, chúng sẽ khiến tất cả các thuật toán khóa công khai chính (và do đó SSL/TLS) không hiệu quả. Nhưng AES-256 thẳng sẽ vẫn mạnh ngay cả khi bị tấn công máy tính lượng tử. Xem Kích thước khóa - Ảnh hưởng của tấn công tính toán lượng tử - Wikipedia . Câu hỏi sau đó sẽ trở lại với cách trao đổi các khóa đó và thiết lập niềm tin vào chúng.

33
nealmcb

Đây là một cách tiếp cận tiêu chuẩn, được gọi là hệ thống mật mã lai. Mật mã đối xứng và mật mã bất đối xứng đều có điểm mạnh và điểm yếu. Đặc biệt:

  • Mật mã bất đối xứng cho phép bất cứ ai mã hóa các tin nhắn mà chỉ một người tham gia mới có thể giải mã và cho phép mọi người xác minh các tin nhắn mà chỉ một người tham gia có thể đã ký.
  • Mật mã đối xứng nhanh hơn rất nhiều so với mật mã bất đối xứng. Thực sự, rất nhiều.

Bảo mật không thực sự là mối quan tâm trong việc lựa chọn giữa mật mã đối xứng và bất đối xứng. Mật mã bất đối xứng giải quyết các vấn đề mà mật mã đối xứng có thể; đối với mọi thứ khác, mật mã đối xứng được sử dụng, bởi vì nó nhanh hơn rất nhiều.

(Do hậu quả của việc nhanh hơn, mật mã đối xứng thường có biên độ bảo mật cao hơn: kích thước khóa chung - AES 128 bit - đủ lớn để ngăn chặn một bước đột phá toán học hoàn toàn mới, tất cả các máy tính hiện có trên trái đất hoạt động được lâu vì vũ trụ đã tồn tại sẽ chỉ có một cơ hội nhỏ để phá vỡ mã hóa. Mật mã học bất đối xứng chạy trên các lề nhỏ hơn do hiệu suất kém và thỉnh thoảng có những cải tiến toán học trong các phương pháp bẻ khóa làm cho kích thước khóa thường được sử dụng trong vài năm nhưng không nhất thiết phải trong một vài thập kỷ. Nhưng đây là mối quan tâm thứ yếu so với khả năng/hiệu suất thay thế.)

Các hệ thống mật mã lai giải quyết vấn đề nan giải bằng cách sử dụng mật mã bất đối xứng chỉ khi cần thiết:

  • Để xác minh chữ ký của tin nhắn, tin nhắn là băm và mật mã bất đối xứng chỉ được sử dụng trên hàm băm, không trực tiếp trên tin nhắn có độ dài thay đổi.
  • Để mã hóa một số dữ liệu, một đối xứng khóa phiên được tạo. Mật mã bất đối xứng được sử dụng để chia sẻ khóa đối xứng này giữa những người tham gia (máy khách và máy chủ). Dữ liệu của Real real được mã hóa và xác thực sử dụng khóa đối xứng này.

Trong HTTPS vì nó thường được sử dụng trên web, máy chủ có khóa chung, nhưng máy khách thì không - bất kỳ trình duyệt nào cũng có thể liên hệ với máy chủ, máy chủ không quan tâm khách hàng là ai. ( Chứng chỉ phía máy khách được sử dụng khi có ý nghĩa .) Một cái nhìn rất cao và không đầy đủ về thiết lập phiên HTTPS là:

  1. Máy chủ sẽ gửi chứng chỉ cho máy khách. Chứng chỉ chứa khóa chung của máy chủ và chữ ký của khóa chung đó bởi cơ quan chứng nhận . Khách hàng xác minh rằng cơ quan cấp chứng chỉ là một cơ quan đã biết (trình duyệt gửi kèm với một danh sách các khóa công khai của cơ quan chứng nhận).
  2. Máy khách và máy chủ sắp xếp để chọn khóa đối xứng, theo cách mà kẻ tấn công sẽ không thể tạo lại khóa chỉ bằng cách kiểm tra lưu lượng hoặc thậm chí bằng cách sửa đổi nó (hoặc ít nhất là một hoạt động Kẻ tấn công sẽ được phát hiện và máy khách hoặc máy chủ sau đó sẽ hủy phiên). A trao đổi khóa Diffie-Hellman cộng với chữ ký của máy chủ (để cho khách hàng xác minh rằng việc trao đổi được thực hiện với máy chủ, chứ không phải với kẻ tấn công trung gian) là một khả năng để tạo khóa đối xứng. Cũng có thể chỉ dựa vào khóa riêng của máy chủ (với chi phí không đảm bảo bảo mật chuyển tiếp ).
  3. Tất cả các giao tiếp tiếp theo sử dụng khóa đối xứng đó.

Lưu ý rằng tôi đã thực hiện rất nhiều đơn giản hóa ở trên. Để biết thêm chi tiết, đọc: