Optimize the Certificate Chain


인증의 체인을 검증하기 위해서는 브라우저가 인증서 체인을 일일이 확인해야 한다. 사이트 인증서 에서부터 반복적으로 부모 인증서를 확인하여 Root 인증까지 도달한다. 모든 중개자들(라우터 등등)이 인증서를 포함하여 제공되는 상황이라면 치명적이다. 만약 인증 체인과정에서 어떤 하나라도 빠져버린다면 브라우저는 검증 과정을 멈추고 잘못된 인증서를 재확인하고 추가적인 DNS Lookup, TCP Handshake, HTTP request를 과정에 추가하게 된다.

서버의 인증서 체인을 재확인하는 것은 새로운 TCP 연결을 통해 초기과정에서 이뤄지는 TLS Handshake의 과정의 일부이다. 만약 인증서 체인이 TCP의 초기 congestion window 크기를 초과한다면 TLS Handshake 과정에서 추가적인 RTT가 발생할 수 있다. 인증서 길이가 congestion window 보다 크게 되면 절차 진행전에 client ACK를 기다리고 Server가 멈추게 되는 상황을 야기한다.

실제적으로 인증서 체인의 크기와 단계는 많은 관리가 필요하고 오래된 TCP Stack에서 4 TCP Segment로 congestion window 초기화 과정에서 문제를 일으킨다. 최신의 TCP Stack에서는 congestion window 10 TCP Segment로 초기화 되고 대부분의 인증서 체인보다 훨씬 충분한 크기를 제공한다.

최신의 TCP Stack을 사용하는 서버인지 확인하고 설정과 최적화를 통해서 인증서의 크기를 줄여야 한다. 적은 바이트를 보내는 것은 항상 지향해야 하며 최적화를 가치있게 만든다.

results matching ""

    No results matching ""