SSL Pinning

비플페이에서 유지보수 하고 있는 ‘힛플러스 (현대자 임직원 전용앱)’ 취약점 점검 결과에서

SSL Pinning 이 적용되지 않아 네트워크 패킷 확인이 가능하다는 진단을 받았다.

일단 SSL Pinning이 뭔지 알아보자

1️⃣ SSL Pinning 이란?

SSL Pinning은 앱이 서버와 통신할 때, 사전에 앱 내부에 저장(pinning)해 둔 서버의 인증서(Certificate)와 공개키(Public Key) 정보와 실제로 서버로부터 받은 인증서 정보를 비교하여 신뢰성을 확인하는 메커니즘 이다.

2️⃣ SSL Pinning이 필요한 이유

일반적인 HTTP(SSL/TLS) 통신은 인증 기관(CA)의 서명을 받은 인증서를 신뢰한다. 하지만 다음과 같은 공격에 취약할 수 있다.

SSL Pinning은 마치 ‘이 사람이 우리가 아는 서버의 얼굴이야!’ 라고 앱에 사진을 심어주는 것과 같다.

앱은 CA의 서명 여부 뿐만 아니라, 미리 저장된 정보와 일치하는지를 추가적으로 확인하여 위협을 방지한다.

3️⃣ SSL Pinning의 주요 방식

주로 두 가지 방식이 사용되는데

  1. 인증서 Pinning (Certificate Pinning)
  2. 공개 키 Pinning (Public Key Pinning, 권장)