어플리케이션

SSL Pinning 에 대해 알아보겠습니다

forward error correction Circle 2022. 11. 30. 10:40
반응형


SSL Pinning 이란?

SSL Pinning은 악의적인 사용자의 MITM(Man in the Middle) 공격을 예방하기 위해 사용되는 클라이언트 기법입니다. 클라이언트(유저)와 서버 간 통신 시 인증서 비교를 하여 인증서가 일치하지 않으면 통신이 되지 않도록 합니다. 

SSL/TLS 로 이루어진 암호화 통신은 중간자 공격 (Man in the Middle) 에 취약합니다. 최근 SSL Decryption 기능을 제공하는 Proxy 형태의 보안장비들이 나오며 중간자 공격 (Man in the Middle) 형태로 SSL 및 TLS 세션을 복호화 하여 내용을 검증하도록 하고 있습니다. 이 때 보안장비는 공격자와 마찬가지로 암/복호화에서 사용할 인증서를 임의로 교체하여 중간에서 데이터를 복호화 하여 검증하도록 구성되어 있습니다.

 
Client 와 Proxy 서버 간 Encryption Data 가 Plain Text 로 변경되었습니다.
위의 그림에서 화살표에 대한 의미는 다음과 같습니다.

 

구분 설명 방향
Client Hello  클라이언트 SSL 버전, 클라이언트 생성 난수, 세션 식별자, Cipher Suit 리스트 클라이언트 ▶ 서버
Server Hello 서버의 SSL 버전,서버 생성 난수, 세션 식별자, 클라이언트의 Cipher Suit 중 선택 서버 ▶ 클라이언트
Server Certificate 서버 인증서, 공개키  서버 ▶ 클라이언트
Certificate Request 서버에서 클라이언트 인증서 요청(생략 가능) 서버 ▶ 클라이언트
Server Hello Done 서버에서 필요한 내용을 모두 전송했음을 알림 서버 ▶ 클라이언트
Client Certificate 서버에서 클라이언트 인증서를 요청한 경우 인증서 송신(생략 가능) 클라이언트 ▶ 서버
Client Key Exchange 세션키 생성용 pre_master_secret 을 서버 공개키로 암호화하여 전송 클라이언트 ▶ 서버
Certificate Verify  클라이언트 인증서를 확인할 수 있도록 전자서명 발송, 서버에서 검증  클라이언트 ▶ 서버
Client Finish  서버에 Change Cipher Spec을 전송하고 Finished 알림 클라이언트 ▶ 서버
Server Finish 클라이언트에 Change Cipher Spec 전송하고 Finished 알림 서버 ▶ 클라이언트


HTTPS 통신 시 복호화 하기 전까지는 해당 사이트가 어떤 사이트인지 알 수 없기 때문에
인증서 교환을 통해 평문을 획득하여 어떤 사이트인지, 요청 내용 등에 대해 알 수 있습니다. 최종적으로 중간의 Proxy 서버 또는 공격자가 제공한 인증서를 기반으로 암호화 통신을 진행하게 되며 이를 통하여 Man in the Middle 에 노출되게 됩니다. HKPK란 위와 같이 침해된 인증서를 동반한 공격을 막기 위해 나왔습니다. 브라우저가 HPKP를 사용하는 웹사이트에 접속하면 브라우저는 특정 웹 서버에 어떤 공개 키가 사용되는지를 일정 기간 동안 기억할 수 있게 됩니다. 그 기간 동안 브라우저에서는 다른 모든 공개 키를 무시합니다.

 


HPKP(HTTP Public Key Pinning)

클라이언트가 서버와 SSL/TLS 암호화 통신에 사용할 인증서를 목적지 서버의 인증서로 고정(Pinning) 하는 방식을 HPKP라 합니다. 이방식은 침해된 인증서를 동반한 공격을 막기 위해 나왔습니다. 클라이언트가 목적지 서버의 인증서를 고정하면 중간에서 Proxy서버 또는 공격자가 제공한 임의의 인증서를 맞지 않는 인증서라 판단하여 거부할 수 있습니다. 


HPKP 의 장점 
특정 서버의 호스트를 확실히 알고 싶거나 인증서 침해에 대한 공격이 발생할 것이라 예상되는 환경에서 작업할 때 사용하게 됩니다. 


HPKP 의 단점
공격자가 특정 웹 서버를 침해하는 데 성공한다면, 해당 웹사이트 방문자들에게 악성 HPKP 헤더를 전송할 수도 있으며 사이트 운영자가 다시 한 번 해당 웹사이트에 대한 통제권을 가져온다고 해도 공격자의 HPKP 정책 때문에 브라우저들로 접근하는 게 여전히 불가능해질 수도 있습니다 또한 운영자가 HKPK를 적용할 때 실수를 하나만 해도 사용자들이 엉뚱한 키를 다운로드 받아 다른 모든 사이트들이 접속하지 못하도록 하는 등 커다란 피해 발생 가능성이 높습니다.

반응형