Apple, Cloudflare, Fastly 및 Mozilla의 SNI 암호화 솔루션 개발

보안 / Apple, Cloudflare, Fastly 및 Mozilla의 SNI 암호화 솔루션 개발 5 분 읽기

Cloudflare의 Nick Sullivan의 트윗에서 알 수 있듯이 Apple, Cloudflare, Fastly 및 Mozilla가 IETF 102 Hackathon에서 HTTPS의 서버 이름 식별 메커니즘의 암호화를 강화하기 위해 협력하고 있다는 소식이 방금 나타났습니다. 트윗은 '굉장한 작업'이라고 말하고 작업중인 서버의 링크를 통해 공유함으로써 4 대 기술 대기업의 믹스 팀을 축하했습니다. esni.examp1e.netcloudflare-esni.com .



IETF Hackathon은 오늘날 일반 사용자가 직면 한 기술 관련 문제에 대한 솔루션 초안 작성에 젊은 개발자와 기술 애호가를 초대하는 플랫폼입니다. 이벤트는 무료로 참가할 수 있고 모두에게 열려 있으며 경쟁이 아닌 팀워크를 장려합니다. 올해의 IETF 해커 톤은 14 일 몬트리올에서 열렸습니다.그리고 157 월. 가장 눈에 띄는 성과는 지난 10 년 동안 개발자들을 괴롭혔던 문제인 TLS (Transport Layer Security) SNI (Server Name Indication)의 암호화입니다. Apple, Cloudflare, Fastly , 그리고 Mozilla는 이제 해결책을 제안했습니다.



IETF 해커 톤 이벤트. IETF

지난 10 년 반 동안 HTTP (Hyper Text Transfer Protocol)에서 전송 계층 보안 서버 이름 표시 TLS SNI HTTPS (Hyper Text Transfer Protocol Secure) 로의 분명한 글로벌 이동이있었습니다. 그만큼 문제 TLS SNI HTTPS 시스템 최적화에서 나온 것은 해커가 나중에 암호 해독을 위해 데이터 전송을 일치시키는 목적에 맞게 SNI를 사용할 수있는 능력이었습니다.

SNI가 개발되기 전에는 동일한 첫 번째 클라이언트 핸드 셰이크를 사용하여 여러 가상 서버에 대한 보안 연결을 설정하는 것이 어려웠습니다. 하나의 IP 주소가 하나의 서버와 상호 작용할 때 두 개는 'hellos'를 교환하고 서버는 인증서를, 컴퓨터는 클라이언트 키를, 두 개는 'ChangeCipherSpec'명령을 교환 한 다음 연결이 설정됨에 따라 상호 작용이 완료되었습니다. 이것은 방금 말한 것처럼 쉽게 들릴 수 있지만 프로세스에는 여러 교환 및 응답이 포함되어 통신하는 서버 수가 증가함에 따라 쉽게 문제가 발생했습니다. 모든 사이트에서 동일한 인증서를 사용했다면 큰 문제는 아니었지만 안타깝게도 거의 그렇지 않았습니다. 여러 사이트가 다양한 인증서를주고 받았을 때 서버가 컴퓨터가 찾고있는 인증서를 확인하기 어려웠고 복잡한 교환 웹에서 누가 무엇을 언제 전송했는지 식별하기가 어려워 전체 활동이 종료되었습니다. 모두 경고 메시지와 함께.



TLS SNI는 2003 년 6 월 IETF 서밋을 통해 도입되었으며 어떤 의미에서는 교환 웹에 관련된 컴퓨터 및 서비스에 대한 이름 태그를 만드는 데 사용되었습니다. 이로 인해 서버가 필요한 정확한 인증서를 제공 할 수있게되었고 두 사람이 누가 무엇을 말했는지 혼동하지 않고 자체적으로 대화를 교환 할 수있게 되었기 때문에 서버-클라이언트 안녕하세요 교환 프로세스가 훨씬 더 간단 해졌습니다. 채팅을위한 연락처 이름을 갖고 메시지가 어디에서 오는지 혼동하지 않고 각 쿼리에 적절하게 응답하여 필요한 컴퓨터에 적합한 문서를 제공하는 것과 비슷합니다. 이 SNI 정의는 교환 프로세스를 최적화하는이 방법에서 가장 큰 문제를 일으킨 것입니다.

HTTPS로 전환 할 때 많은 기업이 직면 한 어려움은 각 인증서에 대한 요청을 수행하기 위해 개별 IP 주소를 사용하여 많은 인증서를 SNI 형식으로 조정하는 것이 었습니다. TLS가 이들을 위해 한 일은 이러한 요청에 응답하기 위해 인증서를 생성하는 것을 더 간단하게 만드는 것이었고 SNI가 한 것은 전체 인터넷 네트워크에 전체 식별 시스템을 적용하여 개별화 된 전용 인증서 IP 주소의 필요성을 제거하는 것이 었습니다. 세기의 업그레이드로 인해 해커가 확립 된 '연락처 이름'을 사용하여 데이터 전송을 모니터링 및 섀도우하고 나중에 해독하는 데 필요한 정보를 추출 할 수 있다는 사실이있었습니다.

TLS는 암호화 된 채널에서 데이터를주고받을 수 있도록 허용했지만 SNI는 올바른 대상에 도달하도록 보장하지만 후자는 해커가 DNS 요청, IP 주소를 따라 온라인 활동을 모니터링하고 소스와 일치시킬 수있는 수단도 제공했습니다. 및 데이터 스트림. TLS 채널을 통해 DNS 정보를 전달하여 더 엄격한 SNI 코딩 정책이 구현되었지만 해커가이를 추출하고 격리하려는 정보를 추적하는 식별 수단으로 사용할 수있는 작은 창이 남아 있습니다. 해독. TLS 암호화 데이터의 더 많은 트래픽을 처리하는 복잡한 서버는 일반 텍스트 SNI를 사용하여 서버에서 통신을 전송합니다. 이로 인해 해커가 팔로우하려는 정보의 채널과 스트림을 쉽게 식별 할 수 있습니다. 해커가 관심있는 데이터의 SNI 정보를 추출 할 수있게되면 서버와 별도의 TLS 연결에서 명령의 가짜 재생을 설정하여 도난당한 SNI 정보를 전송하고 해당 정보를 검색 할 수 있습니다. 그것과 연관되었습니다. 과거에이 SNI 문제를 해결하려는 시도가 여러 번 있었지만 대부분은 SNI가 서버에 대한 편리한 식별 방법을 만들기 위해 작동하는 단순성 원칙에 위배됩니다.

이 방법을 설정하기 위해 처음 작업 한 정상 회담으로 돌아가서, 4 개의 거대 기술 기업의 참가자가 TLS SNI를위한 암호화를 개발하기 위해 몬트리올에서 회의로 돌아 왔습니다. 다중 HTTPS 인접 시스템의 더 큰 효율성에도 불구하고 보안은 여전히 ​​문제로 남아 있기 때문입니다. 이전과 마찬가지로.

TLS에서 SNI를 숨기려면 해커가 볼 수있는 '프론 팅 서비스'의 표시 아래에 '숨겨진 서비스'가 유지되어야합니다. 숨겨진 서비스를 직접 관찰 할 수없는 경우 해커는 암호화 된 데이터를 전달하는 데 사용되는 기본 비밀 서비스 매개 변수를 식별 할 수없는 일반 텍스트로 숨겨져있는 위장에 오해를 받게됩니다. 관찰자가 프론 팅 서비스의 흔적을 따라갈 때 데이터는 해커가 흔적을 잃게되는 시점에서 의도 한 숨겨진 서비스로 리디렉션 될 때 관찰 된 채널에서 제거됩니다. 서버도 프론 팅 서비스에 노출되기 때문에 데이터가 그곳으로 이동함에 따라 두 번째 병렬 SNI 신호가 프론 팅 서비스로 전송되어 데이터를 숨겨진 서비스로 리디렉션하고이 방향 변경 프로세스에서 해커는 서버의 웹에서 손실됩니다. 이 이중 티켓 메커니즘은 동일한 SNI 하에서 결합 된 티켓으로 더욱 발전됩니다. 하나의 데이터가 서버로 전송되면 데이터는 협력 SNI 리디렉터를 생성하고 두 데이터는 TLS 암호화 데이터를 필요한 곳으로 가져 오기 위해 함께 작동합니다. 두 SNI 트랙을 모두 포함하는 무작위 프론 팅 서비스를 크랙 할 수 없으면 해커는 데이터의 흔적을 따라갈 수 없지만 서버는 여전히 둘을 연결하고 숨겨진 서비스를 데이터의 최종 위치로 해독 할 수 있습니다. 이를 통해 서버는 SNI를 계속 사용하여 TLS 암호화에서 데이터 전송을 최적화하는 동시에 해커가 SNI 메커니즘을 이용할 수 없도록합니다.