Enable TLS False Start


Session 재사용은 두가지 장점을 제공한다. 추가적인 Handshake RTT 를 없애고 이전의 협상된 세션 항목을 재사용 함으로써 CPU 오버헤드 비용을 줄여준다. 그러나 이러한 방법들도 Server에 처음 접속하는 Client나 Session 이 만료된 Client에게는 소용이 없다.

새로운 방문자나 재방문자를 위한 한번의 RTT Handshake와 재방문자의 CPU 오버헤드를 줄이는 두가지를 해결하는 방법은 TLS False Start를 사용하는 것이다. TLS False Start는 선택할 수 있는 Protocol 확장인데 Client가 handshake 중에 응용프로그램 데이터를 보낼수 있도록 하는 구조이다.'

TLS False Start는 TLS handshake 프로토콜을 수정하지 않는다. 응용프로그램이 도착하는 시간에 대해서만 영향을 끼친다. 이해하기 쉽게 설명하자면, Client가 ClientKeyExchange 레코드를 보낸다, ClientKeyExchange 메시지는 이미 암호화 키를 알기 때문에 응용프로그램 데이터를 전송할 수 있다. handshake의 남은 과정은 handshake 과정에서 변조가 없었는지 확인할 뿐이다. 이과정이 병행으로 수형된다. 그 결과 False Start 옵션은 TLS handshake를 한번의 RTT로 수행하게 해준다.

Defloying TLS False Start

False Start가 handshake 프로토콜의 시점만 수정하기 때문에 TLS 프로토콜 자체의 어떤 업데이트도 필요하지 않고 일방적으로 완료될 수 있다. 예를들어 Client가 암호화된 응용프로그램 데이터를 더 빠르게 보낼수 있다.

실제적으로 TLS False Start가 모든 TLS Client와 Server 를 호환해야 하지만 몇몇의 서버들은 구현되어 있지 않기 때문에 문제가 TLS 연결에 문제가 발생할 수 있다. 그결과 최근의 브라우저들은 Server가 특정 조건의 만족하는 경우에만 TLS False Start를 사용한다.

  • 크롬과 파이어폭스는 server handshake에서 ALPN 프로토콜 지원이 필요하다. Server에 의해 결정되는 cipher suite는 Forward Secracy 가 가능해야 한다.
  • 사파리는 Forward Secracy가 지원되는 Cipher suite가 필요하다
  • Internet Explorer는 TLS False Start가 사용가능한 알려진 사이트 블랙리스트와 TLS False Start가 실패했을 경우 반복 handshake의 타임아웃을 조합하여 사용한다.

TLS False Start 가 모든 부라우저에서 사용 가능하기 위해서는 서버가 반드시 ALPN 확장을 통한 지원하는 프로토콜의 목록이 있어야 한다 예를들면 h2, http\/1.1은 forward secrecy를 지원하고 사용을 권장한다.

results matching ""

    No results matching ""