it-swarm-vi.com

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

Tại sao HTTP vẫn được sử dụng phổ biến, thay vào đó tôi tin rằng HTTPS an toàn hơn nhiều?

75
blunders

SSL/TLS có một chi phí nhỏ. Khi Google chuyển Gmail sang HTTPS (từ một tính năng tùy chọn sang cài đặt mặc định), họ phát hiện ra rằng chi phí hoạt động của CPU là khoảng + 1% và chi phí mạng + 2%; xem văn bản này để biết chi tiết. Tuy nhiên, đây là dành cho Gmail, bao gồm dữ liệu riêng tư, động, không chia sẻ và được lưu trữ trên các hệ thống của Google, có thể truy cập từ mọi nơi với độ trễ rất thấp. Các tác dụng chính của HTTPS, so với HTTP, là:

  • Bắt đầu kết nối yêu cầu một số roundtrips mạng bổ sung. Vì các kết nối như vậy được "duy trì" và được sử dụng lại bất cứ khi nào có thể, độ trễ thêm này là không đáng kể khi một trang web nhất định được sử dụng với các tương tác lặp đi lặp lại (như điển hình với Gmail); các hệ thống phục vụ hầu hết các nội dung tĩnh có thể thấy chi phí mạng không đáng kể.

  • Máy chủ proxy không thể lưu trữ các trang được phân phát bằng HTTPS (vì chúng thậm chí không nhìn thấy các trang đó). Một lần nữa, không có gì tĩnh để lưu trữ bộ nhớ cache với Gmail, nhưng đây là một bối cảnh rất cụ thể. Các ISP rất thích bộ nhớ đệm vì băng thông mạng là tuổi thọ của chúng.

  • HTTPS là HTTP trong SSL/TLS. Trong quá trình bắt tay TLS, máy chủ hiển thị chứng chỉ của nó, phải chỉ định tên máy chủ dự định - và điều này xảy ra trước chính yêu cầu HTTP được gửi đến người phục vụ. Điều này ngăn chặn lưu trữ ảo, trừ khi tiện ích mở rộng TLS được gọi là Chỉ định tên máy chủ được sử dụng; điều này đòi hỏi sự hỗ trợ từ khách hàng. Cụ thể, Internet Explorer không không hỗ trợ Chỉ định tên máy chủ trên Windows XP (IE 7.0 trở lên hỗ trợ nó, nhưng Chỉ trên Vista và Win7) Với thị phần hiện tại của các hệ thống máy tính để bàn sử dụng WinXP, người ta không thể cho rằng "mọi người" hỗ trợ Chỉ định Tên Máy chủ. Thay vào đó, các máy chủ HTTPS phải sử dụng một IP cho mỗi tên máy chủ, trạng thái hiện tại của triển khai IPv6 và IPv4 thiếu địa chỉ làm cho vấn đề này.

  • HTTPS "an toàn" hơn HTTP theo nghĩa sau: dữ liệu được xác thực là đến từ một máy chủ được đặt tên và việc chuyển tiền được bảo mật đối với bất kỳ ai có thể nghe lén trên đường dây. Đây là mô hình bảo mật không có ý nghĩa trong nhiều tình huống: ví dụ: khi bạn xem video từ Youtube, bạn không thực sự quan tâm đến việc video thực sự đến từ youtube.com hay từ một số hacker (lịch sự) gửi bạn video bạn muốn xem; và video đó dù sao cũng là dữ liệu công khai, vì vậy tính bảo mật có liên quan thấp ở đây. Ngoài ra, xác thực chỉ được thực hiện tương đối với chứng chỉ của máy chủ, xuất phát từ Tổ chức chứng nhận mà trình duyệt máy khách biết. Chứng chỉ không miễn phí, vì quan điểm của chứng chỉ là chúng liên quan đến việc nhận dạng vật lý của chủ sở hữu chứng chỉ (Tôi không nói rằng CA thương mại định giá chứng chỉ của họ một cách công bằng; nhưng ngay cả CA công bằng nhất, do chính Đức Phật điều hành, sẽ vẫn phải tính phí cho một chứng chỉ). CA thương mại sẽ chỉ tình yêu HTTPS là "mặc định". Hơn nữa, không rõ liệu mô hình PKI được thể hiện bằng chứng chỉ X.509 có thực sự là thứ cần thiết "mặc định" cho Internet hay không (đặc biệt là khi nói về mối quan hệ giữa chứng chỉ và DNS - một số người cho rằng Chứng chỉ máy chủ phải được cấp bởi nhà đăng ký khi tên miền được tạo).

  • Trong nhiều mạng doanh nghiệp, HTTPS có nghĩa là những kẻ nghe trộm không thể nhìn thấy dữ liệu và danh mục đó bao gồm tất cả các loại bộ lọc nội dung và phần mềm chống vi-rút. Đặt HTTPS thành mặc định sẽ khiến nhiều quản trị viên hệ thống rất không hài lòng.

Tất cả những điều này là lý do tại sao HTTPS không nhất thiết là một ý tưởng tốt như giao thức mặc định cho Web. Tuy nhiên, hiện tại chúng không phải là lý do tại sao HTTPS không phải là giao thức mặc định cho Web; HTTPS không phải là mặc định đơn giản vì HTTP đã ở đó trước tiên.

68
Thomas Pornin

Trong khi có những câu trả lời tuyệt vời đã được đưa ra, tôi tin rằng cho đến nay một khía cạnh bị bỏ qua.

Đây là: Plain HTTP là giao thức mặc định cho web vì phần lớn thông tin trên web không cần bảo mật.

Tôi không có ý coi thường câu hỏi hoặc mối quan tâm bảo mật của một số trang web/ứng dụng. Nhưng đôi khi chúng ta có thể quên bao nhiêu lưu lượng truy cập web:

  • chỉ chứa thông tin hoàn toàn công khai
  • hoặc có ít hoặc không có giá trị
  • hoặc nơi có nhiều khách truy cập được xem là tăng giá trị của trang web (phương tiện tin tức, hiệu ứng mạng trang web)

Một vài ví dụ nhanh, tôi chắc chắn rằng bạn có thể nhanh chóng tạo ra nhiều hơn trong tâm trí của bạn:

  • Hầu như tất cả các trang web của công ty, đôi khi được gọi là "trang web quảng cáo", liệt kê thông tin công khai về một công ty.
  • Hầu như tất cả các phương tiện truyền thông tin tức, blog, đài truyền hình, vv đã chọn hỗ trợ quảng cáo làm chiến lược kiếm tiền chính của họ.
  • Các dịch vụ có thể Offer đăng nhập và cá nhân hóa bổ sung, nhưng ai cũng cung cấp miễn phí nội dung của họ cho bất kỳ ai duyệt ẩn danh (YouTube fx).
31
Jesper M
  • Nó đặt tải CPU nhiều hơn đáng kể trên máy chủ, đặc biệt là đối với nội dung tĩnh.
  • Khó gỡ lỗi hơn với các gói chụp
  • Nó không hỗ trợ các máy chủ ảo dựa trên tên
5
Mike Scott

Http luôn luôn là mặc định. Ban đầu https không cần thiết cho bất cứ điều gì, nó gần như là một sự bổ sung được giải quyết vì nó trở nên cần bảo mật rõ ràng trong một số trường hợp.

Ngay cả bây giờ, có rất nhiều trang web không cần https mà nó vẫn không phải là một lý lẽ thuyết phục để thay thế hoàn toàn http.

Với các cơ chế hiệu quả hơn bao giờ hết để chạy các kết nối được bảo mật TLS, chi phí hoạt động của CPU đang trở thành vấn đề ít hơn nhiều.

5
Rory Alsop

Không ai chỉ ra một vấn đề rõ ràng phát sinh từ việc sử dụng http làm mặc định, thay vì https.

Hầu như không ai bận tâm để viết đầy đủ uri khi yêu cầu tài nguyên cần được mã hóa và/hoặc ký cho các mục đích khác nhau.

Lấy gmail làm ví dụ, khi người dùng đang truy cập gmail.com, trên thực tế họ đang truy cập giao thức mặc định của http, thay vì https. Tại thời điểm này, an ninh đã thất bại trong các tình huống mà đối thủ đang chặn giao thông. Tại sao? Bởi vì có thể tách html khỏi yêu cầu https và trỏ chúng đến http.

Nếu https thực tế là giao thức mặc định, các phiên của bạn tới các trang web sẽ được bảo vệ.

Đối với câu hỏi tại sao http được chọn qua https, các câu trả lời khác nhau ở trên sẽ được áp dụng. Thế giới chỉ chưa sẵn sàng cho việc sử dụng mã hóa rộng rãi.

5
Dog eat cat world

Ngoài những lý do mà những người khác đã đưa ra:

  • Công việc bổ sung cần thiết để thiết lập HTTPS trên máy chủ

    Quản trị viên máy chủ cần cấu hình chứng chỉ cho từng miền. Điều này liên quan đến việc tương tác với cơ quan cấp chứng chỉ để chứng minh bạn là chủ sở hữu chính hãng của tên miền và có được gia hạn chứng chỉ. Điều này có thể có nghĩa là tạo thủ công yêu cầu ký chứng chỉ và mua gia hạn hoặc thiết lập quy trình tự động để thực hiện việc đó (chẳng hạn như certbot sử dụng Let Encrypt). Trong cả hai trường hợp, nó hoạt động nhiều hơn là không sử dụng HTTPS.

  • Yêu cầu thêm địa chỉ IP

    Đây không thực sự là một vấn đề vì hỗ trợ SNI (Nhận dạng tên máy chủ) trở nên phổ biến trong các trình duyệt và thư viện máy khách SSL.

    Tuy nhiên, theo truyền thống, cần phải sử dụng một địa chỉ IP khác nhau cho mỗi trang web riêng biệt bằng SSL trên một máy chủ và cổng cụ thể. Điều này được xác định với khả năng thực hiện lưu trữ dựa trên tên (lưu trữ ảo) - một thực tiễn được sử dụng rộng rãi cho phép nhiều tên miền khác nhau được lưu trữ từ cùng một địa chỉ IP. Với HTTPS, lưu trữ dựa trên tên thông thường không hoạt động vì máy chủ sẽ cần biết tên máy chủ để trình bày trong lớp xác thực SSL/TLS trước yêu cầu HTTP, chứa tên máy chủ, có thể được giải mã.

    Nhận dạng tên máy chủ (SNI), thực hiện hiệu quả lưu trữ dựa trên tên ở lớp SSL/TLS, loại bỏ giới hạn này.

  • Tốc độ thay đổi chậm

    HTTPS là một sửa đổi cho một giao thức hiện có, HTTP, vốn đã được sử dụng rất nhiều trước khi nhiều người bắt đầu nghĩ về bảo mật. Khi một công nghệ đã được thiết lập và phổ biến như HTTP, có thể mất một thời gian rất dài để thế giới chuyển sang người kế nhiệm, ngay cả khi lý do thay đổi là hấp dẫn.

3
thomasrutter

Thomas đã viết một câu trả lời xuất sắc, nhưng tôi nghĩ tôi sẽ cung cấp thêm một vài lý do tại sao HTTPS không được sử dụng rộng rãi hơn ...

  • Không cần thiết. Vì câu trả lời của Jesper chỉ ra một cách sâu sắc "phần lớn thông tin trên web không cần bảo mật". Tuy nhiên, với số lượng theo dõi ngày càng tăng của các công cụ tìm kiếm, công ty quảng cáo, bộ lọc internet cấp quốc gia và các chương trình "Big Brother" khác (ví dụ: NSA); nó đang làm tăng nhu cầu về các biện pháp riêng tư lớn hơn.

  • Tốc độ. Nó thường cảm thấy chậm vì các chuyến đi khứ hồi thêm và yêu cầu thêm cho danh sách thu hồi chứng chỉ ( OCSP v.v.). Rất may SPDY (được tạo bởi Google và hiện được hỗ trợ trong tất cả các trình duyệt chính) và một số công việc thú vị từ CloudFlare đang giúp thay đổi điều này .

  • Giá chứng chỉ. Hầu hết các cơ quan cấp chứng chỉ tính số tiền quá lớn (hàng trăm đô la) cho một chứng chỉ. Rất may có các tùy chọn miễn phí , nhưng chúng không được công khai nhiều (không chắc tại sao?).

  • Giá của địa chỉ IP. Cho đến khi IPv6 trở nên phổ biến, các trang web sẽ phải đối mặt với sự khan hiếm ngày càng tăng (và do đó chi phí) của địa chỉ IPv4. SNI cho phép sử dụng nhiều chứng chỉ trên một địa chỉ IP, nhưng không hỗ trợ SNI trong Windows XP hoặc IE 6, hầu hết các trang web vẫn cần một địa chỉ IP chuyên dụng để cung cấp SSL.

  • Tăng mức sử dụng CPU của máy chủ.  Đây là một niềm tin phổ biến, nhưng theo Google " SSL/TLS không còn đắt nữa về mặt tính toán ".

2
Simon East

Lời giải thích đơn giản và hợp lý nhất mà tôi đã tìm thấy giữa các đồng nghiệp của mình là nó luôn được thực hiện với HTTP, tại sao lại thay đổi nó ngay bây giờ.

Nếu nó không bị hỏng, đừng sửa nó.

1
blfoleyus

Câu trả lời thực sự là chứng chỉ SSL ở dạng hiện tại rất khó sử dụng. Chúng không thể sử dụng đến mức nó đe dọa đến tính bảo mật của chứng chỉ, vì mọi người dùng các phím tắt để hoàn thành công việc. Tôi nói điều này như một người thường xuyên giao dịch với SSL 2 chiều (PKI certs), sự không tương thích của ngăn xếp TLS được tạo ra bởi sự phức tạp của thông số kỹ thuật và số lượng kết hợp cấu hình điên rồ (giới hạn mật mã, tùy chọn, lỗi thư viện cụ thể của ngôn ngữ , v.v.) được gọi là "TLS".

Xem sự trỗi dậy của LetsEncrypt là bằng chứng cho thấy điều này là đúng.

Caddy là một dự án proxy ngược sử dụng LetsEncrypt. Nó có thể gia hạn chứng chỉ trong khi máy chủ chạy và mọi người sử dụng hết hạn thực sự vì gia hạn được tự động hóa.

1
Rob