2009-10-23 38 views
11

(Khoảng) có bao nhiêu bit dữ liệu phải được truyền qua mạng trong khi kết nối được mã hóa so với kết nối không được mã hóa?TLS thêm bao nhiêu chi phí mạng so với kết nối không được mã hóa?

IIUC, sau khi bắt tay TLS hoàn thành, số lượng bit được truyền tương đương với số bit được truyền bằng số lượng được truyền trong khi kết nối không được mã hóa. Nó thật sự đúng?

Theo dõi, chuyển một tệp lớn qua https chậm hơn đáng kể so với chuyển tệp đó qua http, cho bộ vi xử lý nhanh và cùng điều kiện mạng (lý tưởng)?

Trả lời

14

Tôi đã nhận được câu hỏi này một vài lần, vì vậy tôi quyết định viết một giải thích nhỏ về chi phí với một số số mẫu dựa trên trường hợp thông thường. Bạn có thể đọc nó trên blog của tôi tại http://netsekure.org/2010/03/tls-overhead/.

Tóm tắt thông tin từ bài viết trên blog:

  • Tổng nguyên cần thiết để thiết lập một phiên TLS mới nói đến khoảng 6.5k byte trên trung bình.
  • Tổng chi phí để tiếp tục phiên TLS hiện tại đến trung bình khoảng 330 byte.
  • Tổng chi phí của dữ liệu được mã hóa là khoảng 40 byte.
+1

Bài đăng thú vị thực sự. – Bruno

+0

Chắc chắn đáng đọc. Nó giống như một khóa học sụp đổ về cách TLS hoạt động. –

-2

Thứ tự độ lớn. Xem this. Điều này không quá quan trọng, nếu thông tin được bảo vệ có giá trị bảo mật. Và hãy nhớ rằng tốc độ xử lý chỉ có thể tăng lên, vì vậy hiệu suất sẽ tiếp tục trở nên tốt hơn.

+1

nó không phải là "xấp xỉ 10x", đó là "khoảng 12KB thêm" cho mỗi thiết lập kết nối. – Javier

+0

Có chi phí khởi động và có phí trên mỗi gói. Chi phí cho mỗi gói có thể lên tới 30-50 byte cho phần đệm và băm. 12K cho âm thanh khởi động hợp lý, số lượng certs được trình bày trong quá trình bắt tay bởi máy khách và máy chủ có thể thay đổi khá nhiều. Các máy khách và máy chủ tinh vi có thể cắt giảm một phiên làm việc nối tiếp như câu trả lời khác nói. –

12

Câu trả lời ngắn gọn là: Milage của bạn có thể thay đổi (YMMV) - tất cả phụ thuộc vào mẫu lưu lượng truy cập của bạn. Có một số yếu tố để đưa vào tài khoản:

  • Những cái bắt tay bổ sung và Certs sẽ thêm 4-6KB vào dòng TCP, điều này sẽ dẫn đến ethernet hơn các khung đi qua dây dẫn cũng
  • Clients nên tải xuống certificate revocation list. Một số công cụ như cURL bỏ qua bước này. Các crl có thể được lưu trữ bởi trình duyệt, tuy nhiên, nó thường không có một liên kết lâu đời với nó. Verisign đặt thời hạn của họ hết hạn sau bốn phút. Trong thử nghiệm của tôi, tôi thấy Safari trên Windows tải xuống cùng một tệp 91KB hai lần.
  • TLS Session resumption có thể tránh phần trao đổi khóa công khai của quá trình bắt tay cũng như xác minh chứng chỉ.
  • HTTP keep-alives sẽ giữ cho ổ cắm mở, giống như http, nhưng tiết kiệm hơn khi ổ cắm là TLS.
  • SSL compression hỗ trợ đang bắt đầu hiển thị phía máy chủ, nhưng AFAIK, hầu hết các trình duyệt hiện chưa triển khai. Ngoài ra, nếu bạn đã nén ở lớp http, không nhiều sẽ đạt được ở đây. Các lợi ích lớn có thể có nếu khách hàng đang gửi một lượng lớn văn bản đến máy chủ, thông thường không được nén ở lớp http.
1

Trên chi phí được tính trong http://netsekure.org/2010/03/tls-overhead/, bạn có nghĩ rằng bạn có thể bỏ qua vectơ khởi tạo (IV) cho chế độ AES ở chế độ CBC không? vì nó là AES128, tôi nghĩ rằng 16 byte của IV cần phải được thêm vào chi phí, làm cho tổng số 56 thay vì 40 byte.

Các vấn đề liên quan