암호화, 복호화 방식
- 키 : 키로 수학적 연산(암호화 알고리즘)를 하여 암호문 생성
- 대칭키 암호화
- 비대칭키 암호화(공개키)
대칭키
- 암호화 키 == 복호화 키
- 키를 안전하게 전달해야함(? 흠 그냥 데이터를...)
- 장점 : 적은 부하, 빠른 수행
- 단점: 안전X
비대칭키
- 암호화 키 == 복호화 키
- 공개키를 알아도 개인 키 유추 X, 역도 마찬가지
- 장점 : 안전
- 단점 : 높은 부하, 느린 수행

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

인증서
- 공개 키 인증서
- 공개 키와 공개키의 유효성을 입증하기 위한 전자문서
인증기관(Certification Authority,CA)
- 인증서의 발급, 검증, 저장과 같은 역할을 하는 공인기관
서명값
- 인증기관의 인증정보
- 인증서를 해쉬함수를 통해 해쉬값으로 변환한 뒤 CA 개인 키로 암호화한 값
서명값을 이용한 인증
- 1.인증서의 해쉬값을 CA 개인 키로 암호화하여 서명 값 생성
- 2.클라이언트에게 서명값과 인증서 전달
- 클라이언트가 공개된 공개 키로 서명값을 복호화한뒤 해쉬 값으로 변환된 인증서와 비교
- 만약 3번 과정에서 동일하다면 인증기관에서 인증서 암호화한게 증명되므로 인증서는 인증기관이 서명한 인증서임


HTTPS
- SSL/TLS 프로토콜을 활용한 프로토콜
- 안전한 HTTP통신
송수신 단계
- tcp 쓰리 웨이 헨드쉐이크
- TLS 헨드쉐이크
- 암호화된 메시지 송수신
TLS 헨드 쉐이크
- ClientHello(클라이언트 -> 서버)
-암호화된 통신을 위해 사전 협의해야 할 정보 제시 메시지
- TLs버전 ,해쉬함수 등등
- ServerHello(서버 -> 클라이언트)
-ClientHello에서 제시된 정보 선택
- 암호 스위트
-사용 가능한 암호화 방식과 해쉬함수를 담은 메시지(ClientHello,ServerHello)
- 서버가 certificate(인증서), certificateverfy(서명값)을 클라이언트에게 전달
- 클라이언트는 두 메시지를 활용해 검증
- Finished메시지를 끝으로 암호화된 통신 시작

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