Có phải tất cả các máy chủ đều cần sử dụng giao thức HTTPS hoặc chỉ các máy chủ đối mặt công khai?


38

Tôi có một máy chủ web mặt trước chạy qua HTTPS - đây là mặt công khai - tức là cổng đang mở.

Tôi cũng có một máy chủ API phụ trợ mà máy chủ web của tôi thực hiện các yêu cầu API - đây là mặt công khai và yêu cầu xác thực - cổng được mở.

2 máy chủ này chạy trên HTTPS.

Đằng sau máy chủ API, có rất nhiều máy chủ khác. Máy chủ API đảo ngược proxy cho các máy chủ này. Các cổng cho các máy chủ khác này không mở cho lưu lượng đến. Họ chỉ có thể được nói chuyện thông qua máy chủ API.

Câu hỏi của tôi ... Có phải "rất nhiều máy chủ khác" cần chạy trên HTTPS hoặc, với điều kiện là chúng không thể được truy cập bên ngoài, thay vào đó chúng có thể chạy qua HTTP một cách an toàn không?

Tôi nghĩ rằng đây sẽ là một câu hỏi phổ biến nhưng tôi không thể tìm thấy câu trả lời cho nó. Cảm ơn. Nếu đây là một bản dupe xin vui lòng chỉ cho tôi câu trả lời đúng.


35
Xét về cách NSA khai thác các liên kết ở nước ngoài mà Google và Yahoo đã sử dụng để liên lạc giữa các trung tâm dữ liệu của họ không được mã hóa, tôi khuyên bạn nên luôn cho rằng kết nối bị nghi ngờ. Bạn không bao giờ biết ai đó có thể lắng nghe và tốt hơn là an toàn hơn là xin lỗi. Lần duy nhất tôi sẽ xem xét sử dụng HTTP một mình là một dịch vụ chạy trên cùng một máy sử dụng nó, chỉ mở cho các kết nối cục bộ.
childofsoong

7
Điều này được gọi là giảm tải ssl và chấm dứt ssl nếu bạn muốn nghiên cứu thêm.
Esben Skov Pedersen

31
Nó giống như hỏi "tất cả các cửa cần khóa, hay chỉ cửa ngoài"? Chỉ bạn mới có thể trả lời câu hỏi này khi xem xét các mối đe dọa trong và không có mạng của bạn.
Ryan Griggs

5
Như Security.SE faq nói : "Bảo mật là một chủ đề rất bối cảnh: các mối đe dọa được coi là quan trọng trong môi trường của bạn có thể không quan trọng đối với người khác và ngược lại. Bạn đang cố gắng bảo vệ thứ gì đó có giá trị toàn cầu chống lại các mối đe dọa liên tục nâng cao? Bạn đang tìm kiếm một cách tiếp cận hiệu quả về chi phí cho một doanh nghiệp nhỏ có cấu hình thấp? Để có câu trả lời hữu ích nhất, bạn nên cho chúng tôi biết: tài sản nào bạn đang cố gắng bảo vệ; ai sử dụng tài sản bạn đang cố gắng bảo vệ và bạn là ai nghĩ rằng có thể muốn lạm dụng nó (và tại sao); ...
DW

2
Những bước bạn đã thực hiện để bảo vệ tài sản đó; Những rủi ro nào bạn nghĩ rằng bạn vẫn cần phải giảm thiểu. "Loại bối cảnh này là cần thiết. Tôi khuyên bạn nên chỉnh sửa câu hỏi của mình để bao gồm thông tin này.
DW

Câu trả lời:


50

Đây là một vấn đề về quan điểm, và cũng phải làm với các vấn đề quy định (nếu bạn phải đối mặt với bất kỳ).

Ngay cả khi hiện tại không cần thiết, tôi vẫn là một người ủng hộ lớn cho việc giữ HTTPS được bật giữa bất kỳ tường lửa / bộ cân bằng tải / máy chủ đầu cuối và máy chủ đầu cuối nào. Đó là một bề mặt ít tấn công hơn. Tôi đã ký hợp đồng với những nơi cần chuyển đổi khi thông tin nhạy cảm hơn bắt đầu được thông qua - tốt hơn là bắt đầu từ đó.

Những gì tôi thường đề nghị là sử dụng CA nội bộ (nếu có) hoặc tự ký (nếu không có CA nội bộ) các máy chủ phía sau. Chúng tôi sẽ đặt ngày hết hạn tốt đẹp và xa trong tương lai để tránh những thay đổi không cần thiết.


1
tốt hơn là bắt đầu từ đó - những từ đã cho bạn điểm :)
danday74

12
Đây là một ý tưởng tốt. Bạn không muốn NSA tạo ra các bản vẽ ngớ ngẩn về cấu trúc liên kết mạng của bạn .
Kevin

3
Mã hóa tất cả các thông tin liên lạc của bạn cũng bảo vệ chống nghe lén nội bộ - cho dù đó là ở dạng máy tính của nhân viên thực tập nhặt trojan trong khi duyệt ảnh mèo hoặc một sniffer nhỏ cắm vào cổng mạng phía sau bàn không sử dụng hoặc mật khẩu wifi được chia sẻ một chút quá lỏng lẻo.
Doktor J

8
" We'd set the expiration date nice and far into the future to avoid unnecessary changes." Và vui lòng thêm một quy tắc vào bộ giám sát ưa thích của bạn để cảnh báo bạn khi nó sắp hết hạn. Xin vui lòng!
GnP

2
@GnP Tôi cũng làm như vậy - nếu đó là chứng chỉ có thời hạn 10 năm, chính sách của chúng tôi luôn bắt buộc máy chủ phụ trợ được thay thế trong khoảng thời gian đó .. Làm cho nó hơi dư thừa và dường như không cần thiết phải đề cập trong câu trả lời.
Tim Brigham

19

TL; DR bạn nên mã hóa lưu lượng trừ khi trên cùng một máy chủ.

Bạn không thể tin tưởng vào mạng của bạn. Phần mềm độc hại trong mạng riêng của bạn có thể chặn / sửa đổi các yêu cầu http.

Đó không phải là các cuộc tấn công lý thuyết, mà là ví dụ thực tế:


16

Có phải "rất nhiều máy chủ khác" cần chạy trên HTTPS hoặc, cho rằng chúng không thể được truy cập bên ngoài, thay vào đó chúng có thể chạy qua HTTP một cách an toàn không?

Điều này thực sự phụ thuộc vào những gì bạn đang cố gắng để hoàn thành. Hiểu mục đích của việc sử dụng HTTPS là để bảo vệ dữ liệu chuyển tuyến giữa hai điểm. Nếu bạn lo lắng về dữ liệu bị đánh hơi trong mạng của mình thì có lẽ điều đó nên được quan tâm trước tiên. Nếu bạn cần bảo vệ dữ liệu truyền trong mạng của mình, điều bạn đang nói là bạn có lo ngại về tính bảo mật của dữ liệu truyền qua hệ thống của bạn trong mạng hoặc có một số lý do liên quan đến tuân thủ để bạn mã hóa dữ liệu truyền.

Đây thực sự là nhiều hơn một câu hỏi ý kiến, nhưng câu trả lời là nó phụ thuộc. Bạn đang cố làm gì vậy? Những loại dữ liệu bạn đang mã hóa? Những mối đe dọa nào bạn đang cố gắng bảo vệ? Bạn có yêu cầu pháp lý (ví dụ: PCI-DSS, HIPAA, v.v.) nói rằng bạn cần mã hóa dữ liệu trong quá trình không? Nếu dữ liệu nhạy cảm và bạn lo ngại nó có thể bị sử dụng sai khi nó được truyền bên trong mạng của bạn thì tôi khuyên bạn nên kết hợp với quản lý để khắc phục sự cố. Vì vậy, cuối cùng, bạn đang cố gắng bảo vệ cái gì và tại sao bạn lại cố gắng bảo vệ nó?


13

Trước đây, mọi người cho rằng mạng nội bộ an toàn như nhà ở. Có lần tôi đã tranh chấp với một giám sát viên, người đã kinh hoàng rằng các máy chủ đối mặt với nội bộ của tôi đang chạy tường lửa tích hợp của họ. "Nếu bạn không thể tin tưởng vào mạng nội bộ của mình, bạn có thể tin tưởng ai?" Tôi đã chỉ ra rằng chúng tôi có máy tính xách tay sinh viên trên mạng nội bộ của chúng tôi và rằng không có tường lửa giữa máy tính xách tay sinh viên và máy chủ của tôi. Anh ta, là người mới đến học viện, dường như có vũ trụ của mình bị xé toạc trước thông tin này.

Mạng nội bộ không còn được coi là an toàn, ngay cả khi bạn không có máy tính xách tay sinh viên trên mạng của mình. Xem câu trả lời của Tom cho một số ví dụ.

Điều đó nói rằng, vâng, nó phụ thuộc vào thông tin nào được truyền đi, bất kỳ vấn đề tuân thủ pháp luật nào, v.v. Bạn có thể quyết định rằng bạn không quan tâm nếu ai đó đánh hơi, nói, dữ liệu thời tiết. Điều đó nói rằng, có thể ngay cả khi dữ liệu được gửi bây giờ không nhạy cảm , ai đó có thể quyết định thêm các tính năng vào ứng dụng của bạn sau đó nhạy cảm, vì vậy tôi sẽ khuyên bạn nên hoang tưởng hơn (bao gồm cả HTTPS).


Dữ liệu của ai đó có thể đủ nhạy cảm: Ai đó có thể dựa trên các quyết định sai lầm của họ về dữ liệu giả mạo bị giả mạo.
Hagen von Eitzen

1
Đủ công bằng, nó phụ thuộc vào những gì bạn đang sử dụng dữ liệu thời tiết. Tôi đã cố gắng đưa ra một cái gì đó vô hại. :)
Kinda Villyard

1
@HagenvonEitzen hoặc kẻ tấn công sẽ tiêm phần mềm độc hại / quảng cáo vào đó, vì vậy bà sẽ bị nguyền rủa khi kiểm tra thời tiết bằng máy Windows XP của mình.
André Borie

8

Ngày nay với các hướng dẫn CPU chuyên dụng để tăng tốc mã hóa và các giao thức truyền tải mới hoàn toàn không hoạt động hoặc hoạt động với hiệu suất bị suy giảm qua một liên kết không được mã hóa (HTTP / 2, gRPC, v.v.), có lẽ câu hỏi hay hơn là: lý do tại sao bạn yêu cầu hạ cấp một liên kết mạng thành HTTP? Nếu không có lý do cụ thể, thì câu trả lời là ở lại với HTTPS.


Quá trình suy nghĩ tốt đẹp
danday74

5

Lý do duy nhất để vô hiệu hóa mã hóa mà tôi có thể nghĩ đến là hiệu suất. Tuy nhiên, trong trường hợp của bạn, các máy chủ nội bộ được giao tiếp qua HTTP, có nghĩa là chúng đã chịu chi phí hiệu năng khi chạy máy chủ web, hỗ trợ giao thức HTTP và mã hóa dữ liệu trong HTTP / JSON / bất cứ điều gì. Vô hiệu hóa mã hóa sẽ giải phóng 100KB RAM và giúp bạn kiếm được vài micro giây trên mỗi KB dữ liệu được truyền, điều này sẽ không ảnh hưởng đến hiệu suất tổng thể. Mặt khác, bạn sẽ phải chú ý nhiều hơn đến bảo mật vì bạn đã chạy HTTP trong mạng nội bộ của mình ngay bây giờ. Trên thực tế, có thể cấu hình tường lửa nghiêm ngặt hơn sẽ làm mọi thứ chậm hơn so với việc vô hiệu hóa mã hóa đã tăng tốc chúng, dẫn đến hiệu suất kém hơn mà người dùng cuối nhận thấy.

Nó sẽ giống như đặt một spoiler lên máy kéo: bạn đạt được bên cạnh không có gì về mặt lý thuyết, và rất nhiều sự bất tiện trên thực tế.

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.