눈송이의 개발생활

[Network]대칭키와 공개키 본문

Computer Science/Network

[Network]대칭키와 공개키

꾸지새미언니

HTTPS

  • SSL(보안 소켓 계층) 사용
  • HTTP 자체를 암호화 하는 것 
    • HTTP 메시지 body 암호화 ⭕. HTTP header 암호화 
  • 데이터 암호화해서 보안상 안전
  • 검색 엔진 최적화(SEO)
    • Google은 https 웹사이트에 가산점 줌 → 검색했을 때 빈번하게 노출
    • AMP(가속화된 모바일 페이지) 만들 때 https 사용해야 함

SSL/TLS

  • 웹 서버와 웹 브라우저 간의 보안을 위해 만들어진 프로토콜
  • 공개키/개인키 + 대칭키 기반으로 사용
  • 왜 필요?
    • 전달되는 데이터를 외부의 공격자로부터 보호하기 위해서
  • 암호화, 해시화, 디지털 인증서 3가지 기술 조합해서 사용 → 보안 위협에 대항

 

대칭키

  • 암호화/복호화에 사용되는 키가 동일 → 암호화/복호화 easy
  • 하나의 비밀키를 클라이언트와 서버 모두 같이 사용
  • 비밀키 하나만 알아내면 암호화된 내용 해독 가능
  • ex) SEED, AES, DES, 3DES, ARIA, ChaCha20 등

 

🔵장점

  1. 암호화/복호화 계산 시간 빠름 → 대용량 data 암호화에 적합
  2. 기밀성 제공

🔴단점

  1. 무결성, 인증, 부인방지 보장 
  2. 키 교환하는 중 탈취 될 가능성 
  3. 사람이 증가할수록 관리해야할 키 개수 ⬆️(전부 따로따로 키 교환하기 때문)

공개키(= 비대칭키)

  • 서로 다른 키로 암호화/복호화 수행
  • 오직 개인키로만 공개키 복호화할 수 있기 때문에 아무나 공개키 가져도 
  • 대칭키보다 암호화 연산 시간이 오래 걸려 비용이 큼
  • 개인키 + 공개키 사용 (key pair)
    • 한 쪽 키에서 다른 쪽 키를 도출할 수 없음
  • ex) RSA, DH/DHE, ECDH/ECHDE 등

 

🔵장점

  1. 키 분배할 필요  (공개키가 이미 공개되어있기 때문에)
  2. 기밀성, 인증, 부인방지 기능 제공

🔴단점

  1. 대칭키 암호화 방식에 비해 속도가 느림

 

 

1️⃣ 공개키(Public Key)로 정보 암호화하는 경우

  • 공개키 : 누구나 알 수 있도록 공개된 키
  • 어떤 정보를 특정 사용자에게 보낼 때 해당 사용자의 공개키를 사용해 정보 암호화
  • 공개키로 암호화 되어있는 건 개인키를 갖고있는 수신자만 해제 가능

순서

  1. B(수신자) 공개키&개인키 쌍 생성
  2. 공개키 등록, 개인키는 본인이 소유
  3. A(송신자)가 B의 공개키 받아옴
  4. A가 B의 공개키 이용해서 데이터 암호화
  5. 암호화된 데이터 B에 전송
  6. B는 암호화된 데이터 B의 개인키로 복호화 (개인키는 B만 갖고 있어서 복호화 B만 가능)

2️⃣ 개인키(Private Key)로 정보 암호화하는 경우

  • 개인키 : 자신만 갖고 있는 키
  • 어떤 정보를 특정 사용자에게 보낼 때 자기 자신의 개인키를 사용해 정보 암호화
  • 중간에 가로채면 해당 사용자의 공개키를 이용해 복호화 가능
  • "누가 데이터를 보냈냐"에 초점을 두는 방식
  • 데이터 제공자의 신원이 보장되는 전자서명 등의 공인인증체계의 기본

 

 

  대칭키 방식 공개키 방식
한 개의 비밀 키 공개키 + 개인키 (key pair)
키 관리 비밀리에 보관 개인키는 비밀, 공개키는 배포
교환 어려움, 위험함 매우 쉬움
키 전송 문제
속도 빠름 느림
암호화 할 수 있는 평문 길이 제한 없음 제한 있음
기밀성
무결성 부분 가능 (인증서 불가능) ⭕ (인증서와 함께)
인증 부분 가능 
부인 방지



 

참고
https://sectigostore.com/blog/types-of-encryption-what-to-know-about-symmetric-vs-asymmetric-encryption/
https://youtu.be/wPdH7lJ8jf0
https://gaeko-security-hack.tistory.com/123

 

Comments