본문 바로가기
네트워크 공부

대칭키와 비대칭키, 세션키, HTTPS

by 나노다 2025. 1. 13.

네트워크 안전성을 위한 기술 : 대칭키와 비대칭키

개요

네트워크 통신에서 주고 받는 데이터가 탈취돼 악용되는 상황을 방지하기 위해, 통신상의 안정성을 높이기 위한 기술로 암호화와 복호화를 활용!!

  • 암호화 encrypt : 원문 데이터를 알아보기 어려운 형태로 변경
  • 복호화 decrypt : 암호화된 데이터를 원문 데이터로 되돌림
  • 키 key : 무작위 데이터 덩어리, 이 키와 원문 데이터가 암호화 알고리즘을 거쳐 암호문이 됨

대칭키 암호화

“암호화와 복호화에 사용되는 키가 동일한 경우”

  • 하나의 키로 두 절차를 해결할 수 있기 때문에 통신 간 절차가 간소화되므로, 비교적 빠르고 간편하게 암호문을 주고 받을 수 있지만, 누구든 대칭키를 가진다면 데이터를 열어볼 수 있게된다는 큰 취약점이 존재한다!!
  • 게다가 대칭키 역시 일종의 데이터인지라 통신이 필요한데, 정작 키는 어떻게 보호할 것인지에 대한 딜레마가 존재한다!! 키를 안전하게 주고 받을 수 있다면, 그 방식을 데이터 자체에 적용하면 되는 게 아닌가?!

비대칭키 암호화

“암호화와 복호화에 사용되는 키가 다른 경우”

  • 한 쌍의 키를 각각 공개키, 개인키라 칭하고, 전자를 주고 받아 공유하며, 후자는 한쪽에서만 안전하게 보관한다!!
  • 공개키를 취득하더라도, 개인키를 탈취하지 못 하면 원문 데이터를 확인할 수 없기 때문에, 개인키 보호만 잘 된다면 훨씬 안전하다!!
  • 다만 암호와와 복호화에 별개의 키가 필요하기 때문에 통신 절차가 비교적 복잡해지고, 부하가 추가된다는 단점이 있다!!

세션 키

“대칭키 + 비대칭키”

1. 대칭키를 공개키로 암호화해서 공유 → 이때의 대칭키를 세션키라 칭함
2. 세션키로 데이터를 암호화해서 송신
3. 받은 암호문을 해독하기 위해 세션키를 개인키로 복호화
4. 복호화된 세션키로 암호문을 복호화해 원문 데이터 수신


인증서 Certificate

  • 일반적으로 공개키의 유효성을 입증하기 위한 전자 문서를 의미!!
  • 인증기관 CA에서 인증서를 발급하고, 검증하고, 저장해줌
  • 호스트 간 통신에 제 3자인 인증기관이 관여하게 되는 느낌
  • IdenTrust, DigiCert, GlobalSign 등이 대표적인 인증기관

 

서명 값 signature

  • 인증 기관이 공개키의 유효성을 보장하는 인증 정보

1. 인증서 내용을 해시 값으로 변환 → 이 값이 서명 값
2. CA의 개인키로 서명 값을 암호화
3. 인증서와 서명 값을 받은 호스트가 CA에서 공유하는 공개키를 확인
4. 공개키로 서명 값을 복호화해 얻은 해시 값과, 호스트에서 인증서를 해시화해본 값을 비교
5. 두 내용이 일치하면 인증 정보가 유효하다 판단!


HTTPS

SSL과 TLS를 통해 보안성이 강화된 HTTP

  • SSL Secure Sockets Layer
  • TLS Transport Layer Security

둘 모두 인증과 암호화를 수행해주는 프로토콜

 

HTTPS 메세지의 송수신 단계

1. TCP 3-way handshake (연결 수립)

2. TLS handshake

3. 암호화된 메세지 송수신

TLS 핸드셰이크
키 교환 및 인증서 및 서명 정보 통한 키 검증이 이뤄지는 단계
키 교환 단계에서 사용할 암호화 알고리즘과 해시 함수 목록을 함께 주고 받는데,
이 둘을 암호 스위트 `cipher suite`라 칭한다!!