인증서 고정이란?

인증서 고정은 보안 세션을 설정할 때 인증되거나 고정된 인증서만 허용하게 하는 보안 기술입니다. 다른 인증서를 사용하여 보안 세션을 설정하려는 시도는 거부됩니다.

인증서 고정 기록

인증서 고정은 원래 MITM(Man-in-the-Middle) 공격을 저지하기 위한 수단으로 고안되었습니다. 인증서 고정은 Google을 비롯한 여러 유명 웹 사이트에 대한 와일드카드 인증서를 공격자가 만들 수 있게 하는 DigiNotar CA(인증 기관) 손상이 발생한 2011년에 처음 유명해졌습니다. Chrome은 Google 웹 사이트에 대해 최신 인증서를 "고정"하도록 업데이트되었으며 다른 인증서가 제공된 경우 연결을 거부합니다. 공격자가 CA의 사기성 인증서 발급을 유도하는 방법을 찾았더라도, Chrome에서는 이를 여전히 유효하지 않은 것으로 인식하고 연결을 거부하게 됩니다.

Chrome 및 Firefox와 같은 웹 브라우저가 이 기술을 구현한 첫 번째 애플리케이션 중 하나였지만 사용 사례의 범위가 빠르게 확장되었습니다. IoT(사물 인터넷) 디바이스, iOS 및 Android 모바일 앱 및 다채로운 소프트웨어 애플리케이션 컬렉션에서 이 기술을 사용하여 Man-in-the-Middle 공격을 방어하기 시작했습니다.

몇 년 동안 인증서 고정은 좋은 보안 사례로 간주되었습니다. 퍼블릭 PKI(공개 키 인프라) 환경에 대한 감독으로 공개적으로 신뢰할 수 있는 CA의 발급 관행에 대한 투명성이 향상되었습니다.

애플리케이션에서 인증서 고정을 처리하는 방법

일반적으로 애플리케이션에는 주체 고유 이름, 지문, 일련 번호 및 공개 키를 비롯한 권한 있는 인증서 또는 인증서 속성 목록이 포함됩니다. 애플리케이션은 개별 리프 또는 최종 엔터티 인증서, 하위 CA 인증서뿐 아니라 루트 CA 인증서에 대해서도 고정할 수 있습니다.

애플리케이션이 허용 가능한 CA 목록을 명시적으로 지정하는 경우 인증 기관이 변경되거나 만료될 때 고정된 인증서를 주기적으로 업데이트해야 할 수 있습니다. 인증서 고정을 검색하려면 다음 단계를 수행하는 것이 좋습니다.

  • 애플리케이션 개발자인 경우 변경되거나 만료되는 CA에 대해 다음 참조를 소스 코드에서 검색합니다. 일치하는 항목이 있는 경우 누락된 CA를 포함하도록 애플리케이션을 업데이트합니다.

    • 인증서 지문
    • 주체 고유 이름
    • 일반 이름
    • 일련 번호
    • 퍼블릭 키
    • 기타 인증서 속성
  • Azure API 또는 다른 Azure 서비스와 통합되는 사용자 지정 애플리케이션이 있고 해당 애플리케이션이 인증서 고정을 사용하는지 확실하지 않은 경우 애플리케이션 공급업체에 확인하세요.

인증서 고정 제한 사항

인증서 고정 사례는 상당 수준의 인증서 민첩성 비용을 수반하기 때문에 많은 논란이 있습니다. 한 특정 구현 HPKP(HTTP 공개 키 고정)가 완전히 사용되지 않음

인증서 고정을 수행하는 방법에 대한 단일 웹 표준이 없으므로 사용량을 검색에서의 직접적인 지침은 제공할 수 없습니다. 인증서 고정에 부정적인 것은 아니지만, 인증서를 사용하도록 선택하는 경우 고객은 이 업무에서의 제한 사항을 인지해야 합니다.

다음 단계