Https 암호화
HTTPS는 HTTP가 SSL/TLS 프로토콜을 사용하여 암호화된 통신을 하는 방식이다.
HTTP가 SSL/TLS 위에서 동작하게 되며, 헤더는 암호화되지 않지만, body는 암호화된다.
HTTPS의 통신과정을 알아보기 전에
대칭키와 공개키에 대한 개념이 필요하다.
🔑 대칭키란?
공개키, 개인키를 동일한 대칭키를 통해서 암/복호화하는 과정이다.
때문에 대칭키가 유출된다면 암호화된 데이터도, 쉽게 복호화할 수 있기 때문에 위험하다.
장점 : 암호화와 복호화 연산이 빠름
단점 : 대칭키가 유출될 경우, 암호화된 데이터가 쉽게 복호화될 수 있어 보안에 취약
🔑 비대칭키(공개키)란?
암호화는 공개키로하되, 복호화는 개인키를 통하기 때문에, 클라이언트가 공개키로 암호화하여 데이터를 보내면, 서버는 자신이 보유한 개인키로 복호화하게 되어 안전하다.
공개키는 누구에게나 공개가능
장점 : 공개키로 암호화된 데이터는 개인키로만 복호화 가능, 보안 강화
단점 : 연산 속도가 느리고 비용이 많이 듦

Hash를 사용한 보관
클라이언트는 https로 암호화된 비밀번호를 전송하게 된다.


그러나, 해커가 레인보우 테이블에 특정 비밀번호의 해시값을 따로 저장해두는 경우가 있다.

🤔 레인보우 테이블이란?
레인보우 테이블의 기본 아이디어는 해커가 미리 계산한 해시 값과 데이터베이스에서 찾은 해시 값을 비교하여 원본 비밀번호를 알아내는 것
이때, salt를 써서 랜덤으로 생성된 값을 해시 비밀번호에 붙여 보관하게 되면, 보안을 강화할 수 있다.

[참고자료]
Https 와 ssl
https://www.youtube.com/watch?v=0cfUVrQW_yg