Tại sao không sử dụng HTTPS cho mọi thứ?


126

Nếu tôi đang thiết lập máy chủ và có (các) chứng chỉ SSL, tại sao tôi không sử dụng HTTPS cho toàn bộ trang web thay vì chỉ để mua / đăng nhập? Tôi nghĩ sẽ tốt hơn nếu chỉ mã hóa toàn bộ trang web và bảo vệ người dùng hoàn toàn. Nó sẽ ngăn chặn các vấn đề như quyết định những gì phải được bảo mật bởi vì mọi thứ sẽ được, và nó không thực sự gây bất tiện cho người dùng.

Nếu tôi đã sử dụng HTTPS cho một phần của trang web, tại sao tôi không muốn sử dụng nó cho toàn bộ trang web?

Đây là một câu hỏi liên quan: Tại sao https chỉ được sử dụng để đăng nhập? , nhưng câu trả lời không thỏa đáng. Các câu trả lời cho rằng bạn không thể áp dụng https cho toàn bộ trang web.


2
Điều làm tôi ngạc nhiên là các công ty dịch vụ tài chính vẫn sử dụng http.
Tom Hawtin - tackline

15
@Tom Tôi muốn một số trang web gửi cho tôi tin nhắn lừa đảo sẽ sử dụng https cho các trang web giả mạo của họ, vì vậy tôi biết rằng tôi đang cung cấp dữ liệu của mình cho đúng kẻ lừa đảo.
WhirlWind

Cảm ơn đã hỏi câu hỏi này. Tôi đã giả sử hiệu suất là các lý do và nó sẽ là tồi tệ hơn nhiều so với http. Nhìn thấy câu trả lời, có vẻ như hiệu suất không tệ lắm, điều này khiến tôi quá băn khoăn.
- Tái lập lại

4
Tôi nghĩ rằng bạn đã chọn câu trả lời tồi tệ nhất trên trang, với 11 phiếu giảm xuống. Câu trả lời bạn chọn có sự coi thường hoàn toàn về bảo mật và thực tiễn tốt nhất.
binh

5
Câu hỏi này thực sự xứng đáng là một câu trả lời hiện đại có giáo dục.
Old Badman Grey

Câu trả lời:


17

Tôi có thể nghĩ ra một vài lý do.

  • Một số trình duyệt có thể không hỗ trợ SSL.
  • SSL có thể làm giảm hiệu suất phần nào. Nếu người dùng đang tải xuống các tệp lớn, công khai, có thể có một gánh nặng hệ thống để mã hóa chúng mỗi lần.

137
Những trình duyệt nào không hỗ trợ SSL?
Malfist

6
Một số biên dịch của lynx sẽ không hỗ trợ nó. Nếu bạn chỉ hỗ trợ các trình duyệt mới hơn, bạn sẽ ổn thôi.
WhirlWind

5
Tôi đã xem qua điều này: iweb.tntech.edu/hexb/publications/https-STAR-03122003.pdf "Khi máy chủ đã bão hòa, hiệu suất hệ thống của HTTPS đạt được khoảng 67% HTTP về thông lượng."
WhirlWind

16
Tôi không t buy this explanation. 1) Donsử dụng trình duyệt không hỗ trợ SSL vào năm 2013. 2) ngay cả google cũng sử dụng SSL ngay bây giờ 3) thiết lập đúng, bạn có thể chuyển hướng lưu lượng truy cập http sang liên kết https bên phải.
jfyelle

4
Câu trả lời xấu, tại sao manu upvotes? Trình duyệt nào trên trái đất không hỗ trợ ssl và người dùng không phải nhớ gõ https, có thể được xử lý bằng các chuyển hướng
Sanne

25

Ngoài các lý do khác (đặc biệt là liên quan đến hiệu suất), bạn chỉ có thể lưu trữ một tên miền cho mỗi địa chỉ IP * khi sử dụng HTTPS.

Một máy chủ có thể hỗ trợ nhiều tên miền trong HTTP vì tiêu đề HTTP của Máy chủ cho phép máy chủ biết tên miền nào sẽ phản hồi.

Với HTTPS, máy chủ phải cung cấp chứng chỉ của nó cho máy khách trong quá trình bắt tay TLS ban đầu (trước khi HTTP bắt đầu). Điều này có nghĩa là tiêu đề Máy chủ chưa được gửi đi nên không có cách nào để máy chủ biết tên miền nào đang được yêu cầu và chứng chỉ nào (www.foo.com hoặc www.bar.com) để phản hồi.


* Chú thích: Về mặt kỹ thuật, bạn có thể lưu trữ nhiều tên miền nếu bạn lưu trữ chúng trên các cổng khác nhau, nhưng đó thường không phải là một tùy chọn. Bạn cũng có thể lưu trữ nhiều tên miền nếu chứng chỉ SSL của bạn có thẻ đại diện. Ví dụ: bạn có thể lưu trữ cả foo.example.com và bar.example.com với chứng chỉ * .example.com


5
Sẽ không có chứng chỉ SSL ký tự đại diện giải quyết vấn đề này?
Cướp

Các chú thích mâu thuẫn với câu trả lời: / bạn có thể sử dụng các ký tự đại diện và lưu trữ bất kỳ tên miền nào. vi.wikipedia.org/wiki/Wildcard_cert
ve

23
Vấn đề này đã được giải quyết từ lâu bởi Chỉ định Tên Máy chủ, được hỗ trợ bởi tất cả các trình duyệt chính hiện nay. vi.wikipedia.org/wiki/Server_Name_Inication
tia

@tia ngoại trừ không phải tất cả các máy chủ web đều hỗ trợ nó
meffect

2
@meffect ... Nhưng rất nhiều việc, bao gồm apache2, nginx, lighttpd và nodejs. Ngoài ra, nhà phát triển phải chọn proxy ngược mà họ sử dụng cho đường hầm HTTPS. Nói rằng "không có khách hàng hỗ trợ" sẽ là một điểm hợp lệ nếu đó là sự thật bởi vì đó là điều mà nhà phát triển không có quyền kiểm soát và phải tính đến. Tuy nhiên, nói rằng "một số máy chủ không hỗ trợ nó" phần lớn không liên quan, chính xác là vì nó không cần phải được tính toán. Đặc biệt là khi tất cả các máy chủ dòng chính làm thực sự có hỗ trợ.
Bắn Parthian

13

SSL / TLS không được sử dụng gần như đủ thường xuyên. HTTPS phải được sử dụng cho toàn bộ phiên , không có lúc nào ID phiên có thể được gửi qua HTTP. Nếu bạn chỉ sử dụng https để đăng nhập thì bạn đã vi phạm rõ ràng Top 10 của OWASP cho năm 2010 "A3: Xác thực bị hỏng và Quản lý phiên".


Điều này có thể quá rộng của một giả định. Không có lý do nào mà trạng thái phiên không thể được quản lý riêng biệt cho http và https thông qua thao tác đăng nhập https duy nhất. Nó có khả năng làm việc nhiều hơn giá trị của nó và mời các lỗi liên quan đến bảo mật nhưng dường như sẽ không tự động cấu thành một vi phạm rõ ràng.
Einstein

@Einstein vui lòng đọc OWASP A3, nó được viết rất rõ ràng. Hãy nhớ rằng kẻ tấn công không cần tên người dùng / mật khẩu nếu anh ta có cookie từ một phiên xác thực.
rook

Trang web cung cấp hỗn hợp https / http. Đăng nhập https cung cấp mã thông báo phiên bảo mật thấp và cao riêng biệt. Mã thông báo bảo mật thấp được chỉ định cho phiên http sẽ không hoạt động đối với các hoạt động yêu cầu bảo mật cao. Từ bài đọc của tôi, OWASP A3 đang làm sáng tỏ vấn đề cơ bản về khả năng truy cập bảo mật cao thông qua vận tải bảo mật thấp.
Einstein

@Einstein Vì vậy, sau đó bạn không đồng ý rằng Id phiên được sử dụng để xác thực trình duyệt web? Hãy xem xét mô hình tấn công này, trong các cuộc tấn công xss bạn đang cố gắng đạt được giá trị document.cookieđể kẻ tấn công có thể sử dụng điều này để xác thực. Giá trị này cũng có thể đạt được bằng cách đánh hơi lưu lượng truy cập, https dừng lại. Tôi không chắc chính xác quan điểm của bạn là gì.
rook

Trong kịch bản của bạn, id phiên cho http sẽ vô giá trị đối với tài nguyên được bảo vệ https nếu một hệ thống tạo hai phiên riêng biệt cho một hành động xác thực duy nhất để cho phép cả hai giao thức được sử dụng mà không có phiên https và tài nguyên liên quan được hiển thị bởi cookie phiên http. Ví dụ: phiên http có thể được sử dụng để xác định quyền truy cập vào tài nguyên công cộng cho mục đích báo cáo hoặc truy cập vào bảng tin công khai nhưng chúng sẽ không hợp lệ đối với tài nguyên an toàn.
Einstein

12

Tại sao không gửi tất cả các bài đăng thư trong một phong bì mờ chống giả mạo bằng Thư đăng ký? Một người nào đó từ Bưu điện sẽ luôn có quyền giám hộ cá nhân đối với nó, vì vậy bạn có thể khá chắc chắn rằng không ai rình mò thư của bạn. Rõ ràng, câu trả lời là trong khi một số thư đáng giá, thì hầu hết thư không có. Tôi không quan tâm nếu có ai đọc "Vui mừng bạn đã ra tù!" bưu thiếp cho chú Joe.

Mã hóa không miễn phí và không phải lúc nào cũng giúp.

Nếu một phiên (chẳng hạn như mua sắm, ngân hàng, v.v.) sẽ kết thúc bằng cách sử dụng HTTPS, không có lý do chính đáng nào để không thực hiện toàn bộ HTTPS sớm nhất có thể.

Ý kiến ​​của tôi là HTTPS chỉ nên được sử dụng khi không thể tránh khỏi cần thiết, bởi vì yêu cầu hoặc phản hồi cần được bảo vệ khỏi việc rình mò trung gian. Ví dụ, hãy xem Yahoo! trang chủ. Mặc dù bạn đã đăng nhập, hầu hết các tương tác của bạn sẽ qua HTTP. Bạn xác thực qua HTTPS và nhận cookie chứng minh danh tính của bạn, vì vậy bạn không cần HTTPS để đọc các câu chuyện tin tức.


CƯỜI LỚN!!! Tuyệt quá! Tôi cá là người đưa thư lừa đảo mở phong bì với "Vui mừng bạn đã ra tù" sẽ làm
bối rối

19
Nếu thư đăng ký có giá cao hơn 1% thay vì 300% nữa, tôi sẽ sử dụng nó cho mọi thứ.
cá hòa tan

3
You authenticate over HTTPS and get cookies that prove your identity, so you don't need HTTPS to read news stories.Đó không phải là cách thích hợp để xử lý phiên auth. Cookies nên được đặt với cờ AN TOÀN. Nhưng bỏ qua lời khuyên bảo mật khủng khiếp đó trong một giây ... Tương tự thư của bạn không thực sự chính xác vì một vài lý do. Một là bạn thường không thể khai thác vào thư trả lại hoặc mạo danh ai đó với người khác mà không bị trừng phạt hoặc đưa thông báo "Phiên của bạn đã hết hạn" vào thư trả lại để họ nhập lại thông tin đăng nhập họ sử dụng cho cả Yahoo! và ngân hàng của họ.
Bắn Parthian

Tái sử dụng mật khẩu và sửa lỗi phiên, trong số những thứ khác, không phải là vấn đề trong thư con ốc.
Bắn Parthian

Đó là những điểm tốt, nhưng bạn đang áp dụng phân tích năm 2016 cho một cuộc thảo luận vào năm 2010
David M

12

Lý do lớn nhất, ngoài tải hệ thống, là nó phá vỡ lưu trữ ảo dựa trên tên. Với SSL, đó là một trang web - một địa chỉ IP. Điều này là khá tốn kém, cũng như khó quản lý hơn.


+1 Đó lý do tại sao Google App Engine không hỗ trợ https trên các miền tùy chỉnh. Chờ đợi TLS-SNI được hỗ trợ rộng rãi hơn.
Sripathi Krishnan

1
Bạn có thể lấy lại điều này với phần cứng chấm dứt SSL. Và nếu tải hệ thống là một vấn đề (nó dành cho nhiều người!) Thì SSL phần cứng có thể là cách để đi.
Jason

ngoại trừ bạn có thể có nhiều tên miền trong cùng một chứng chỉ.
lucascaro

10
Không đúng chút nào. (Không còn nữa, dù sao đi nữa.)
Parthian Shot

7
Downvote vì thông tin trong bài đã lỗi thời. SNI hiện được hỗ trợ bởi tất cả các trình duyệt chính.
Martin Törnwall

5

Đối với các liên kết có độ trễ cao, bắt tay TLS ban đầu yêu cầu các chuyến đi khứ hồi bổ sung để xác thực chuỗi chứng chỉ (bao gồm gửi bất kỳ chứng chỉ trung gian nào), đồng ý về các bộ mật mã và thiết lập một phiên. Khi một phiên được thiết lập, các yêu cầu tiếp theo có thể sử dụng bộ đệm ẩn phiên để giảm số lượng chuyến đi khứ hồi nhưng ngay cả trong trường hợp tốt nhất này vẫn có nhiều chuyến đi khứ hồi hơn so với kết nối HTTP thông thường. Ngay cả khi các hoạt động mã hóa là các chuyến đi khứ hồi miễn phí thì không và có thể khá đáng chú ý đối với các liên kết mạng chậm hơn, đặc biệt là nếu trang web không tận dụng đường ống http. Đối với người dùng băng thông rộng trong một phân đoạn được kết nối tốt của mạng thì đây không phải là vấn đề. Nếu bạn kinh doanh quốc tế, yêu cầu https có thể dễ dàng gây ra sự chậm trễ đáng chú ý.

Có những cân nhắc bổ sung như bảo trì máy chủ trạng thái phiên đòi hỏi nhiều bộ nhớ hơn và tất nhiên là hoạt động mã hóa dữ liệu. Bất kỳ trang web nhỏ nào trên thực tế không cần phải lo lắng về khả năng máy chủ được cung cấp so với chi phí phần cứng ngày nay. Bất kỳ trang web lớn nào cũng có thể dễ dàng đủ khả năng giảm tải CPU / w AES hoặc thẻ bổ trợ để cung cấp chức năng tương tự.

Tất cả những vấn đề này đang ngày càng trở thành một vấn đề không phải là vấn đề khi thời gian trôi qua và khả năng của phần cứng và mạng được cải thiện. Trong hầu hết các trường hợp tôi nghi ngờ có bất kỳ sự khác biệt hữu hình ngày hôm nay.

Có thể có những cân nhắc về hoạt động như hạn chế quản trị đối với lưu lượng https (nghĩ rằng các bộ lọc nội dung trung gian..et al) có thể là một số quy định của công ty hoặc chính phủ. Một số môi trường doanh nghiệp yêu cầu giải mã dữ liệu theo chu vi để ngăn chặn rò rỉ thông tin ... can thiệp vào điểm truy cập và các hệ thống truy cập dựa trên web tương tự không có khả năng tiêm tin nhắn trong các giao dịch https. Vào cuối ngày, theo quan điểm của tôi, lý do không đi https theo mặc định có thể khá nhỏ.


4

https đói nhiều tài nguyên hơn so với http thông thường.

Nó đòi hỏi nhiều hơn từ cả máy chủ và máy khách.


3

Nếu toàn bộ phiên được mã hóa thì bạn sẽ không thể sử dụng bộ đệm cho các tài nguyên tĩnh như hình ảnh và js ở cấp proxy, ví dụ như ISP.


Chà, ngoại trừ các proxy chấm dứt SSL, hoặc nếu bạn đang sử dụng CDN có khả năng HTTPS.
Bắn Parthian

3

Bạn nên sử dụng HTTPS ở mọi nơi, nhưng bạn sẽ mất những điều sau:

  1. Bạn chắc chắn không nên sử dụng Nén SSL hoặc Nén HTTP qua SSL, do các cuộc tấn công BREACH và CRIME. Vì vậy, không nén nếu phản hồi của bạn chứa định danh phiên hoặc csrf. Bạn có thể giảm thiểu điều này bằng cách đặt tài nguyên tĩnh (hình ảnh, js, css) của mình vào miền không có cookie và sử dụng nén ở đó. Bạn cũng có thể sử dụng khai thác HTML.

  2. Một chứng chỉ SSL, một địa chỉ IP, trừ khi sử dụng SNI, không hoạt động trên tất cả các trình duyệt (android cũ, blackberry 6, v.v.).

  3. Bạn không nên lưu trữ bất kỳ nội dung bên ngoài nào trên các trang của bạn không qua SSL.

  4. Bạn mất tiêu đề Người giới thiệu HTTP bên ngoài khi trình duyệt chuyển đến trang HTTP, điều này có thể hoặc không phải là vấn đề đối với bạn.


0

Chà, lý do rõ ràng là hiệu năng: tất cả dữ liệu sẽ phải được mã hóa bởi máy chủ trước khi truyền và sau đó được khách hàng giải mã khi nhận, điều này thật lãng phí thời gian nếu không có dữ liệu nhạy cảm. Nó cũng có thể ảnh hưởng đến bao nhiêu trang web của bạn được lưu trữ.

Nó cũng có khả năng gây nhầm lẫn cho người dùng cuối nếu tất cả các địa chỉ sử dụng https://thay vì quen thuộc http://. Ngoài ra, xem câu trả lời này:

Tại sao không luôn luôn sử dụng https khi bao gồm tệp js?


9
Tại sao nó gây nhầm lẫn cho người dùng? Có bao nhiêu người thực sự nhìn vào giao thức của uri?
Malfist

Hôm nay, 10 năm sau, https phổ biến hơn và http sẽ gây nhầm lẫn
madprops

0

https yêu cầu máy chủ mã hóa và giải mã các yêu cầu và phản hồi của khách hàng. Tác động hiệu suất sẽ tăng lên nếu máy chủ phục vụ nhiều khách hàng. Đó là lý do tại sao hầu hết các triển khai https hiện tại chỉ giới hạn ở xác thực mật khẩu. Nhưng với sức mạnh tính toán ngày càng tăng, điều này có thể thay đổi, sau khi tất cả Gmail đang sử dụng SSL cho toàn bộ trang web.


0

Ngoài phản hồi của WhirlWind, bạn nên xem xét chi phí và khả năng áp dụng của chứng chỉ SSL, các vấn đề truy cập (có thể, mặc dù không thể, rằng khách hàng có thể không thể giao tiếp qua cổng SSL), v.v.

Sử dụng SSL không phải là một bảo mật an toàn. Loại bảo vệ này cần được xây dựng trong kiến ​​trúc của ứng dụng, thay vì cố gắng dựa vào một số viên đạn ma thuật.


2
Vì người dùng đã bảo vệ một phần của trang web, nên chi phí của chứng chỉ ít nhiều sẽ không còn nữa.
Futureelite7

2
@ Futureelite7 điểm tốt, nhưng có lẽ có liên quan đến những người khác có thể đang nghiên cứu chủ đề này trong tương lai.
3Dave

Featurism là kẻ thù của an ninh. Phần lớn các điểm yếu trong công cụ của riêng tôi, có nguồn gốc từ một số tính năng không phù hợp mà bản thân tôi hoặc người tiền nhiệm chấp nhận vào kế hoạch sản phẩm. Tôi thấy rằng việc một tính năng được khởi động bởi vì nó gây ra lỗ hổng bảo mật sẽ không khiến bạn nổi tiếng hơn việc từ chối nó ngay từ đầu. Sự nổi tiếng KHÔNG NÊN quan trọng, nhưng thật đáng buồn, nó có thể và làm được. Trong đôi giày của bạn, tôi sẽ tự hỏi mình thực sự muốn giao dịch với người dùng không bảo mật đến mức nào, hoặc liệu ứng dụng có phù hợp với người dùng không thể sử dụng mã hóa hay không (nghĩ: ngân hàng, chính trị, hoạt động).
Jason

0

Tôi được cho biết rằng trong một dự án tại công ty chúng tôi, họ thấy rằng băng thông được chiếm bởi các tin nhắn SSL nhiều hơn đáng kể so với các tin nhắn đơn giản. Tôi tin rằng ai đó đã nói với tôi rằng đó là một dữ liệu đáng kinh ngạc gấp 12 lần. Tôi chưa tự mình xác minh điều này và nghe có vẻ rất cao, nhưng nếu có một loại tiêu đề nào đó được thêm vào mỗi trang và hầu hết các trang có một lượng nhỏ nội dung, điều đó có thể không quá xa.

Điều đó nói rằng, rắc rối của việc qua lại giữa http và https và theo dõi những trang nào có vẻ như quá nhiều nỗ lực đối với tôi. Tôi chỉ một lần cố gắng xây dựng một trang web trộn lẫn chúng và cuối cùng chúng tôi đã từ bỏ kế hoạch khi chúng tôi gặp phải những thứ phức tạp như cửa sổ bật lên được tạo bởi Javascript có giao thức sai gắn với chúng và loại đó. Chúng tôi cuối cùng chỉ làm cho toàn bộ trang https trở nên ít rắc rối hơn. Tôi đoán trong những trường hợp đơn giản là bạn chỉ cần có màn hình đăng nhập và màn hình thanh toán cần được bảo vệ và chúng là những trang đơn giản, sẽ không phải là vấn đề lớn để trộn lẫn.

Tôi sẽ không lo lắng nhiều về gánh nặng của khách hàng để giải mã. Thông thường, khách hàng sẽ mất nhiều thời gian hơn để chờ dữ liệu đi qua dây hơn là xử lý nó. Cho đến khi người dùng thường xuyên có kết nối internet gigabit / giây, khả năng xử lý của khách hàng có thể không liên quan. Sức mạnh CPU được máy chủ yêu cầu để mã hóa các trang là một vấn đề khác. Cũng có thể có vấn đề về việc không thể theo kịp hàng trăm hoặc hàng ngàn người dùng.


1
Băng thông bổ sung là nhỏ ngay cả trong trường hợp xấu nhất.
Tổng thống James K. Polk

0

Một điểm nhỏ khác (có thể ai đó có thể xác minh), Nếu người dùng nhập dữ liệu vào một mục biểu mẫu như hộp văn bản và sau đó vì lý do nào đó làm mới trang hoặc máy chủ gặp sự cố trong một giây, dữ liệu người dùng đã nhập sẽ bị mất khi sử dụng HTTPS nhưng được bảo tồn bằng HTTP.

Lưu ý: Tôi không chắc đây có phải là trình duyệt cụ thể không nhưng chắc chắn nó sẽ xảy ra với trình duyệt Firefox của tôi.


0

windows Server 2012 với IIS 8.0 hiện cung cấp SNI, đó là Chỉ định tên máy chủ cho phép nhiều ứng dụng web SSL trong IIS được lưu trữ trên một Địa chỉ IP.


1
Điều đó có liên quan gì đến câu hỏi? Đó là một tính năng thú vị, nhưng tôi không thấy sự liên quan.
dùng1618143
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.