7/8(암호화, 복호화)

퍼블릭 디벨로퍼·2025년 7월 8일

네트워크

목록 보기
17/18

암호화, 복호화 방식

  • 키 : 키로 수학적 연산(암호화 알고리즘)를 하여 암호문 생성
  • 대칭키 암호화
  • 비대칭키 암호화(공개키)

대칭키

  • 암호화 키 == 복호화 키
  • 키를 안전하게 전달해야함(? 흠 그냥 데이터를...)
  • 장점 : 적은 부하, 빠른 수행
  • 단점: 안전X

비대칭키

  • 암호화 키 == 복호화 키
  • 공개키를 알아도 개인 키 유추 X, 역도 마찬가지
  • 장점 : 안전
  • 단점 : 높은 부하, 느린 수행

세션키(짬뽕)

  • 대칭키를 공개키로 암호화, 암호화 된 대칭키를 개인 키로 복호화
  • 안전하게 키 전달
  • 빠른 대칭키 기반 암호화/복호화
  • 대칭키를 세션키라고 부름

인증서

  • 공개 키 인증서
  • 공개 키와 공개키의 유효성을 입증하기 위한 전자문서

인증기관(Certification Authority,CA)

  • 인증서의 발급, 검증, 저장과 같은 역할을 하는 공인기관

서명값

  • 인증기관의 인증정보
  • 인증서를 해쉬함수를 통해 해쉬값으로 변환한 뒤 CA 개인 키로 암호화한 값

서명값을 이용한 인증

  • 1.인증서의 해쉬값을 CA 개인 키로 암호화하여 서명 값 생성
  • 2.클라이언트에게 서명값과 인증서 전달
    1. 클라이언트가 공개된 공개 키로 서명값을 복호화한뒤 해쉬 값으로 변환된 인증서와 비교
  • 만약 3번 과정에서 동일하다면 인증기관에서 인증서 암호화한게 증명되므로 인증서는 인증기관이 서명한 인증서임

HTTPS

  • SSL/TLS 프로토콜을 활용한 프로토콜
  • 안전한 HTTP통신

송수신 단계

    1. tcp 쓰리 웨이 헨드쉐이크
    1. TLS 헨드쉐이크
    1. 암호화된 메시지 송수신

TLS 헨드 쉐이크

  • ClientHello(클라이언트 -> 서버)
    -암호화된 통신을 위해 사전 협의해야 할 정보 제시 메시지
  • TLs버전 ,해쉬함수 등등
  • ServerHello(서버 -> 클라이언트)
    -ClientHello에서 제시된 정보 선택
  • 암호 스위트
    -사용 가능한 암호화 방식과 해쉬함수를 담은 메시지(ClientHello,ServerHello)
  • 서버가 certificate(인증서), certificateverfy(서명값)을 클라이언트에게 전달
  • 클라이언트는 두 메시지를 활용해 검증
  • Finished메시지를 끝으로 암호화된 통신 시작

사진 출처 : https://www.youtube.com/watch?v=eawkp3G7VvY&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=46

profile
개발자되고싶어요

0개의 댓글