공부/CS

[네트워크] 대칭키, 비대칭키 그리고 Https

leejinwoo1126 2021. 11. 21. 18:22
반응형

HTTP(HyperText Transfer Protocol)

인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약

 

HTTPS(HyperText Transfer Protocol Secure)

인터넷 상에서 정보를 암호화하는 SSL 프로토콜(보안 이슈로 TLSv1.3 사용)을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTPS는 텍스트를 공개키 암호화 방식으로 암호화 함

 

HTTPS 를 사용한다는 것은 두가지 의미를 가진다. 

  • 신뢰있는 사이트 보증
  • 서버와 클라이언트 간에 정보 교환시 암호화 통해 제 3자 노출 방지

 

대칭키(Symmetric Key) vs 비대칭키(=공개키, public key) 방식

  대칭키 (개인키,비밀키) 비대칭키 (공개키)
방식 송신key == 수신 key 송신 key ≠ 수신 key
장점 암호화, 복호화 시간 짦음 key 관리 용이(N=2n)
key 배포 문제 x
단점 - key 보안문제, 분배문제 o
- 사용자 ↑ , 키관리 어려움↑ (N = n(n-1)/2)
암호화, 복호화 비용 증가
활용 기업/개인간 평문 암호화 DES,SEED,AES알고리즘 전자서명,금융거래등 불특정 다수를 위한 서비스 RSA 알고리즘

 

용어 참 헷갈린다.

  • 비밀키(대칭키,개인키) 의 경우 서버와 클라이언트가 동일한 키를 사용하기 때문에 처리 속도가 빠르나, 키 노출시 보안 문제와 키 배포 및 관리가 어렵다는 단점 있음
  • 그래서 나온 공개키(비대칭키) 의 경우 공개키로 암호화하고 서버에서 개인키로 복호화 하기때문에 보안성 향상, 키 배포/관리 문제 없으나 암호화/복호화 알고리즘이 복잡하여 처리 비용 증가
  • 그리고 HTTPS의 경우 두 방식을 혼합해서 사용함

※ 인증서 검증이 되지 않는 경우 브라우저에 "신뢰할 수 없는 사이트 표시" 출력됨 (브라우저에 검증된 CA 목록있다함)

∴ 서버 인증은 비대칭키 방식, 서버와 클라이언트간의 데이터 교환은 대칭키 방식

참고

얄팍한 코딩사전 - HTTPS가 뭐고 왜 쓰나요? (Feat. 대칭키 vs. 비대칭키)

https://sdesigner.tistory.com/85
https://wayhome25.github.io/cs/2018/03/11/ssl-https/

반응형