HTTPS를 통해 실행되는 프런트 엔드 웹 서버가 있습니다.이 포트는 공개입니다. 즉, 포트가 열려 있습니다.
또한 웹 서버가 API 요청을하는 백엔드 API 서버가 있습니다. 이는 공개이며 인증이 필요합니다-포트가 열려 있습니다.
이 두 서버는 HTTPS를 통해 실행됩니다.
API 서버 뒤에는 다른 서버가 많이 있습니다. API 서버는이 서버로 프록시를 리버스합니다. 이러한 다른 서버의 포트는 들어오는 트래픽에 개방되어 있지 않습니다. API 서버를 통해서만 대화 할 수 있습니다.
내 질문 … “많은 다른 서버”가 HTTPS를 통해 실행되어야합니까, 아니면 외부에서 액세스 할 수없는 경우 HTTP를 통해 안전하게 실행할 수 있습니까?
나는 이것이 일반적인 질문이라고 생각했지만 그것에 대한 답을 찾을 수 없었습니다. 감사. 이것이 속임수라면 정답을 알려주세요.
답변
이것은 의견의 문제이며 규제 문제와 관련이 있습니다 (해당되는 경우).
현재 필요하지 않더라도 모든 응용 프로그램 수준 방화벽 /로드 밸런서 / 프론트 엔드 서버와 백 엔드 서버 사이에서 HTTPS를 사용하도록 유지하는 데 큰 옹호자입니다. 공격면이 적습니다. 더 민감한 정보가 전달되기 시작하면서 전환해야 할 장소와 계약을 맺었습니다. 그곳에서 시작하는 것이 좋습니다.
일반적으로 제안하는 것은 내부 CA (사용 가능한 경우) 또는 자체 서명 (내부 CA가없는 경우) 백엔드 서버를 사용하는 것입니다. 불필요한 변경을 피하기 위해 만료 날짜를 멋지고 미래로 설정했습니다.
답변
TL; DR 동일한 호스트에 있지 않으면 트래픽을 암호화해야 합니다.
네트워크를 신뢰할 수 없습니다. 자신의 네트워크에있는 악성 코드는 http 요청을 가로 채거나 수정할 수 있습니다.
이론적 인 공격이 아니라 실제 사례입니다.
-
광고를 주입하는 일부 웹 사이트의 네트워크 내부에 라우터 (해킹되었을 가능성이 있음) : https://www.blackhat.com/docs/us-16/materials/us-16-Nakibly-TCP-Injection-Attacks-in-the-Wild- 대규모 연구 wp.pdf
-
cloudfare와 백엔드 사이의 인도 네트워크 스니핑 : https://medium.com/@karthikb351/airtel-is-sniffing-and-censoring-cloudflares-traffic-in-india-and-they-don-t-even-know -it-90935f7f6d98 # .hymc3785e
답변
“많은 다른 서버”가 HTTPS를 통해 실행되어야합니까, 아니면 외부에서 액세스 할 수없는 경우 HTTP를 통해 안전하게 실행할 수 있습니까?
이것은 실제로 당신이 성취하려는 것에 달려 있습니다. HTTPS 사용의 목적은 두 지점간에 전송되는 데이터를 보호하는 것입니다. 네트워크 내부에서 스니핑되는 데이터가 걱정되는 경우 먼저 처리해야합니다. 네트워크 내에서 전송중인 데이터를 보호해야하는 경우 네트워크 내에서 시스템을 통과하는 데이터의 보안에 대한 우려가 있거나 전송중인 데이터를 암호화해야하는 준수 관련 이유가 있다는 것입니다.
이것은 실제로 여론 문제에 대한 것이지만 그 대답은 달려 있습니다. 무엇을하려고합니까? 어떤 종류의 데이터를 암호화하고 있습니까? 어떤 위협으로부터 방어하려고합니까? 전송중인 데이터를 암호화해야한다는 법적 요구 사항 (예 : PCI-DSS, HIPAA 등)이 있습니까? 데이터가 민감하고 네트워크 내에서 전송 될 때 잘못 사용될 수 있다고 우려되는 경우 관리 부서와 함께 문제를 해결하는 것이 좋습니다. 결국, 무엇을 보호하려고하고 왜 그것을 보호하려고합니까?
답변
당시 사람들은 내부 네트워크가 집처럼 안전하다고 생각했습니다. 내 내부 서버가 내장 방화벽을 실행하고 있다는 사실에 놀란 감독자와 한 번 분쟁에 빠졌습니다. “내부 네트워크를 신뢰할 수 없다면 누구를 신뢰할 수 있습니까?” 내부 네트워크에 학생용 랩탑이 있고 학생 랩탑과 서버 사이에 방화벽이없는 것으로 나타났습니다. 학계에 익숙하지 않은 그는이 정보에 자신의 우주가 엉망인 것처럼 보였다.
네트워크에 학생용 랩톱이 없어도 내부 네트워크는 더 이상 안전한 것으로 간주되지 않습니다. 몇 가지 예는 Tom의 답변을 참조하십시오.
즉, 전송되는 정보, 법적 준수 문제 등에 따라 다릅니다. 누군가가 날씨 데이터를 스니핑하면 상관하지 않기로 결정할 수 있습니다. 즉, 전송 된 데이터가 지금 민감하지 않더라도 누군가가 나중에 애플리케이션 에 민감한 기능을 추가하기로 결정할 수 있으므로 더 큰 편집증 (HTTPS 포함)을 권장합니다.
답변
오늘날 암호화 속도를 높이기위한 특수한 CPU 지침과 암호화되지 않은 링크 (HTTP / 2, gRPC 등)를 통해 전혀 작동하지 않거나 성능이 저하되는 새로운 전송 프로토콜과 함께 더 나은 질문은 다음과 같습니다. 왜 네트워크 링크를 HTTP로 다운 그레이드해야합니까? 특별한 이유가 없다면 대답은 HTTPS를 유지하는 것입니다.
답변
내가 생각할 수있는 암호화를 비활성화하는 유일한 이유는 성능입니다. 그러나 귀하의 경우 내부 서버는 HTTP를 통해 인터페이스됩니다. 즉, 웹 서버를 실행하여 HTTP 프로토콜을 지원하고 HTTP / JSON /으로 데이터를 인코딩하는 데 필요한 성능 비용을 이미 부담하고 있습니다. 암호화를 비활성화하면 100KB의 RAM이 확보되고 전송 된 데이터의 KB 당 몇 마이크로 초가 걸리므로 전체 성능에 눈에 띄는 영향을 미치지 않습니다. 반면에 지금 인트라넷에서 HTTP를 실행하기 때문에 보안에 더 많은주의를 기울여야합니다. 실제로,보다 엄격한 방화벽 구성은 암호화를 비활성화하여 속도를 높이는 것보다 속도가 느려져 최종 사용자가 인식하는 성능이 저하 될 수 있습니다.
그것은 스포일러를 트랙터에 두는 것과 같습니다. 이론적으로 아무것도 옆에 없으며 실제로 많은 불편을 겪습니다.