문제

는 모든 Url 을 암호화를 사용할 때 TLS/SSL(HTTPS)을 암호화?는지 알고 싶기 때문에 나는 모든 URL 데이터를 숨을 사용할 때 TLS/SSL(HTTPS).

는 경우 TLS/SSL 당신에게 총 URL 을 암호화한 다음 나는 걱정할 필요가 없을 숨기는 방법은 기밀 정보에서 Url 이 있습니다.

도움이 되었습니까?

해결책

예, SSL 연결은 TCP 레이어와 HTTP 레이어 사이에 있습니다. 클라이언트와 서버는 먼저 보안 암호화 된 TCP 연결 (SSL/TLS 프로토콜을 통해)을 설정 한 다음 클라이언트가 암호화 된 TCP 연결을 통해 HTTP 요청 (GET, POST, DELETE ...)을 보냅니다.

다른 팁

때문에 아무도 제공되는 와이어 캡처,여기에 하나입니다.
서버는 이름 (도메인의 일부 URL)를 제공에 ClientHello 패킷에 일반 텍스트.

다음은 브라우저의 요청하기:
https://i.stack.imgur.com/path/?some=parameters&go=here

ClientHello SNI 이 대답 에 대한 더 TLS 버전이 필드(있다 3 그들의하지 않 버전 분야는 각 버전 번호를 포함!)

https://www.ietf.org/rfc/rfc3546.txt:

3.1.서버 이름이 표시

[TLS]메커니즘을 제공하지 않습한 클라이언트에게 서버 의 이름이 서버에 연락하. 그는 것이 바람직할 클라이언트는 이 정보를 제공하고 촉진하는 안전 는 서버의 연결을 호스트에 여러 가상 서버에 단 하나 근본적인 네트워크 주소입니다.

을 제공하기 위해 서버는 이름,클라이언트에 포함될 수 있는 의 확장 유형을"server_name 에"(extended)클라이언트 안녕하세요.


에서 짧은:

  • FQDN(도메인의 일부 URL) 전송 에는 취소ClientHello 패킷의 경우 SNI extension 사용

  • 의 나머지 부분 URL(/path/?some=parameters&go=here 가)없음 사업부 ClientHello 이후 요청의 URL 은 HTTP 일(OSI7 층),따라서 그것은 결코 보이지 않을 것이에 TLS 데이터 교환(층 4 또는 5).는 것이 나중에 보고서 GET /path/?some=parameters&go=here HTTP/1.1 HTTP 요청 후에보안 TLS 채널은 설치된다.


EXECUTIVE SUMMARY

도메인 이름이 전달될 수 있을 취소(는 경우 SNI 확장자가에 사용되는 TLS 악수)그러나 URL(경로와 매개 변수)는 항상 암호화되어 있습니다.


월 2019 업데이트

감사 칼.스콧 이 하나다.

페이로드에서 SNI 확장할 수 있습을 통해 암호화 이안 RFC 제안.이 기능에만 존재하는 TLS1.3(옵션으로 그리고 양쪽 끝에 그것을 구현하)와 이전 버전과의 호환성이 없습 TLS1.2 니다.

매뉴얼 번역-뭔가 잘못 되 면는 그것에 대해 자세히 알아볼 수 있습 내부기 면 닭고기 앞에 있어야 합니다 계란,어디에서 당신 닭고기를 넣어?

실제로 이는 대신 전송 FQDN 일반 텍스트로(같은 Wireshark 캡쳐 보여줍니다),그것은 지금 암호화되어 있습니다.

참고: 이 주소를 개인 정보 보호 측면보다 더 보안 중 하나 때문에 역 DNS 조회할 수 있습을 공개하는 목적지 어쨌든 호스트.

로서 다른 답변 이미 지적했지만 HTTPS "URL"은 실제로 암호화되어 있습니다. 그러나 도메인 이름을 해결할 때 DNS 요청/응답은 아마도 그렇지 않을 수 있으며 물론 브라우저를 사용하는 경우 URL도 기록 될 수 있습니다.

URL을 포함하여 전체 요청 및 응답이 암호화됩니다.

HTTP 프록시를 사용하면 대상 서버의 주소 (도메인)를 알고 있지만이 서버의 요청 된 경로를 모릅니다 (즉, 요청 및 응답은 항상 암호화).

나는 이전 답변에 동의합니다.

명시 적으로 :

URL의 첫 번째 부분 인 TLS를 사용하면 (https://www.example.com/)는 연결을 구축 할 때 여전히 볼 수 있습니다. 두 번째 부분 (/herearemygetParameters/1/2/3/4)은 TLS에 의해 보호됩니다.

그러나 GET 요청에 매개 변수를 넣지 말아야 할 이유가 여러 가지가 있습니다.

첫째, 다른 사람이 이미 언급 한 바와 같이 : - 브라우저 주소 표시 줄을 통한 누설 - 역사를 통한 누출

그 외에도 HTTP 참조기를 통해 URL이 누출되어 있습니다. 사용자는 TLS에서 사이트 A를 확인한 다음 사이트 B에 대한 링크를 클릭합니다. 두 사이트 모두 TLS에 있으면 사이트 B에 대한 요청에는 사이트 a 인치의 전체 URL이 포함됩니다. 요청의 참조 매개 변수입니다. 사이트 B의 관리자는 서버 B의 로그 파일에서 검색 할 수 있습니다.)

Marc Novakowski의 유용한 답변에 추가 - URL은 서버의 로그 (예 :/etc/etc/httpd/logs/ssl_access_log)에 저장됩니다. 따라서 서버가 더 이상 정보를 유지하지 않으려는 경우 용어, URL에 넣지 마십시오.

예 그리고 아니오.

서버 주소 부분은 연결을 설정하는 데 사용되므로 암호화되지 않습니다.

이것은 암호화 된 SNI 및 DNS로 향후 변화 될 수 있지만 2018 년 현재 두 기술 모두 일반적으로 사용되지 않습니다.

경로, 쿼리 문자열 등이 암호화됩니다.

get 요청에 대해서는 사용자가 여전히 위치 막대에서 URL을 자르고 붙여 넣을 수 있으며 화면을보고있는 사람이 볼 수있는 기밀 정보를 넣고 싶지 않을 것입니다.

트래픽을 모니터링하는 제 3자는 트래픽을 검사하여 방문한 페이지를 결정하여 다른 사용자가 사이트를 방문 할 때 트래픽과 비교하여 방문한 페이지를 결정할 수 있습니다. 예를 들어, 사이트에 2 페이지 만있는 경우, 하나는 다른 하나보다 훨씬 큰 경우 데이터 전송의 크기를 비교하면 방문한 페이지를 알려줍니다. 이것이 제 3 자에서 숨겨 질 수있는 방법이 있지만 일반 서버 나 브라우저 동작은 아닙니다. 예를 들어 Scirate 의이 논문을 참조하십시오. https://scirate.com/arxiv/1403.0297.

일반적으로 다른 답변은 정확합니다. 실제로이 논문은 방문한 페이지 (IE URL)를 상당히 효과적으로 결정할 수 있음을 보여줍니다.

a에 대한 내 대답에 연결됩니다 중복 질문. URL은 브라우저 기록 인 서버 측 로그에서 사용할 수있을뿐만 아니라 HTTP 참조 헤더로 전송됩니다. 제 3 자 콘텐츠를 사용하는 경우 컨트롤 이외의 소스에 URL을 노출시킵니다.

전체 URL의 개인 정보를 항상 믿을 수는 없습니다. 예를 들어, Enterprise Network의 경우와 같이 회사 PC와 같은 공급 장치는 브라우저가 HTTPS 트래픽에 대한 프록시 (Man-in-the-Middle) 검사를 조용히 신뢰할 수 있도록 추가 "신뢰할 수있는"루트 인증서로 구성됩니다. . 이는 전체 URL이 검사를 위해 노출되었음을 의미합니다. 이것은 일반적으로 로그에 저장됩니다.

또한 비밀번호도 노출되어 기록되었을 것입니다. 이것이 또 다른 이유입니다. 일회성 비밀번호 또는 비밀번호를 자주 변경합니다.

마지막으로, 요청 및 응답 내용도 암호화되지 않은 경우 노출됩니다.

검사 설정의 한 예는 다음과 같이 설명합니다 여기에서 검사 점. 제공된 PC를 사용하는 구식 "인터넷 카페"도 이런 식으로 설정 될 수 있습니다.

현재 2019 년이며 TLS v1.3이 출시되었습니다. CloudFlare에 따르면 SNI는 TLS v1.3 덕분에 암호화 될 수 있습니다. 그래서 나는 나 자신에게 위대하다고 말했다! Cloudflare.com의 TCP 패킷 내에서 어떻게 보이는지 살펴 보겠습니다. 따라서 Chrome을 Browser 및 Wireshark를 패킷 스나이퍼로 사용하여 CloudFlare 서버의 응답에서 "Client Hello"핸드 셰이크 패킷을 잡았습니다. 클라이언트 헬로 패킷 내에서 일반 텍스트로 서버 이름을 읽을 수 있습니다.

enter image description here

따라서 중개자가 대상 서버 이름을 볼 수 있기 때문에 여전히 익명의 연결이 아니기 때문에 읽을 수있는 내용을 조심하십시오.

따라서 SNI의 암호화는 TLSV1.3과 함께 작동하기 위해 추가 구현이 필요한 것처럼 보입니다.

다음 기사는 CloudFlare가 TLSV1.3의 일부로 제공 한 SNI의 암호화에 대해 설명합니다. 그러나 CloudFlare.com의 모든 HTTPS URL은 TLS v1.3의 TCP 패킷 내에 일반 텍스트로 표시됩니다.

[https://blog.cloudflare.com/encrypted-sni/]]]

비록 거기에 몇 가지 좋은 답이 여기에,그들의 대부분에 초점을 맞추고 브라우저 탐색.내가 이것을 쓰고 2018 년에 아마 누군가에 대해 알고 싶어하는 보안 모바일 앱입니다.

모바일 앱, 는 경우,제어 모두의 끝 응용 프로그램(서버 응용 프로그램),로 사용할 HTTPS 면 안전.iOS 또는 안드로이드는 인증서를 확인하고 완화 가능한 MiM 공격(는 것만이 약한 포인트에서 모든 이).을 보낼 수 있습을 통해 중요한 데이터 HTTPS 연결 될 것입니다 암호화 운송 중.그냥 귀하의 응용 프로그램과 서버가 알고있는 어떤 매개변수를 통해 전송되니다.

만이"어쩌면"여기는 경우 클라이언트는 서버에 감염되는 악성 소프트웨어 데이터를 볼 수 있기 전에 그것에 싸여 https.그러나 사람이 감염된 소프트웨어의 종류가있을 것이다,그들은 데이터 액세스,당신이 무엇을 사용하여 수송니다.

또한 편안한 API를 구축하는 경우 클라이언트가 브라우저가 아니고 사람들이 링크를 클릭하지 않을 수 있으므로 브라우저 유출 및 HTTP 참조 문제는 대부분 완화됩니다.

이 경우 Bearer 토큰을 얻으려면 Oauth2 로그인을 권장합니다. 이 경우 유일한 민감한 데이터는 초기 자격 증명입니다 ... 어쨌든 게시물 요청에 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top