IT 기초/Security

[Security] [보안 매커니즘] 암호화 보안 프로토콜(SSL/TLS)

데이터 세상 2022. 5. 9. 19:49

SSL (Secure Socker Layer) / TLS (Transport Layer Security)

[Security] SSL

 

[Security] SSL

SSL 개념 Secure Socket Layer Netscape 사에서 웹 서버와 브라우저 사이의 보안을 위해 개발한 것 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트 인증하는데 사용 전송된 모든 데이터

yumdata.tistory.com

 

  • TLS 프로토콜은 SSL프로토콜에서 발전
  • TLS는 다양한 종류의 통신 보안을 제공하도록 설계된 암호화 프로토콜이며, HTTPS는 TLS 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜.
  • 두 당사자가 기밀성과 데이터 무결성이 보장된 상태로 서로 식별, 인증하고 통신할 수 있음
  • 인증서 기반 인증 지원 , 통신 구간 암호화, MAC(Message Authentication Code)
  • 최신 버전 : TLS v1.3 (보안성을 위해 최소한 TLS v1.2 이상 사용 권고 )

 

TLS Handshake Protocol 주요 내용

 

① 클라이언트 – 서버 간 통신에 사용할 암호 알고리즘 협상(Cipher Suite)

② 클라이언트는 서버 인증서가 신뢰 가능한지 검증 ( 서버의 공개키 신뢰 )

    (필요시) 서버는 클라이언트 인증서가 신뢰 가능한지 검증 ( 클라이언트의 공개키 신뢰)

③ 서버의 공개키를 사용하여 PMS(Pre-Master Secret) 값 암호화 전달 및 PMS 값 상호 공유

   -> 클라이언트&서버의 Nonce값과 PMS값을 통해 대칭키 생성

④ 생성된 대칭키로 암호화하여 데이터 교환

 

통신 구간 암호화

SSL/TLS 암호화 통신에 사용할 여러가지 알고리즘을 클라이언트와 서버 간 최종 협의, 안전한(보안 강도가 충분한) 알고리즘의 집합 즉 Cipher Suite 설정 필요

인증서 기반으로 안전하게 공유된 대칭키를 이용하여 데이터 암호화 전송

출처: https://www.kicassl.com/sslcert/sslcert/formSslCert.sg

 

인증서 기반 상호 인증 ( PKI , Public Key Infrastructure)

인증서를 사용하여 신원을 증명할 수 있음

중간자 공격( MITM : Man In The Middle Attack) 방지

 

출처: https://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication

서버 서명 인증 전자서명 전송 서버 -> 클라이언트로 서버의 공개 키와 CA의 전자서명 전송
서명 검증 수신한 공개 키와 CA 전자 서명을 CA의 공개 키로 복호화하여 검증
클라이언트 서명 인증 전자서명 전송 클라이언트 -> 서버로 클라이언트의 공개 키와 CA 전자서명 전송
서명 검증 수신한 공개 키와 CA 전자 서명을 CA 공개키로 복호화하여 검증

 

안전한 SSL/TLS 설계를 위한 고려사항

  • TLS v1.2 이상 사용 권고
  • 안전한(보안 강도가 충분한) Cipher suite 설정
  • 안전한 PKI기반 인증
    • 신뢰할 수 있는 주체에 의한 인증서 발급 (Chain of Trust)
    • 인증서의 무결성 및 유효성 검증(전자서명)
    • 인증서 개인키의 기밀성 및 무결성 보장
    • 안전한 인증서 및 개인키 관리(lifecycle) : 생성, 전송, 저장, 갱신, 파기, 복구

※ Chain of Trust

상위 계층의 인증서가 신뢰할 수 있는 기관이라면, 해당 인증서의 비밀 키로 암호화된 하위 인증서 또한 신뢰 가능하다고 간주한다.

 


References

반응형