http: 암호화되지않아 패킷을 중간에 스니핑당할 수 있음 → 해킹각..
https : 암호화 단계가 추가됨
- 해당 웹사이트에 보내는 정보를 훔쳐볼 수 없도록 할 수 있음
- 접속한 사이트가 신뢰성있는 사이트인지 확인할 수 있다.
- 로그인 정보같은 데이터를 암호화하여 외부에서 볼 수 없도록 한다.
암호 ↔ 복호
- 대칭키: 메시지를 보내는 측, 받는 측이 "같은" 암호화 방식을 사용한다. ⇒ 암,복호화에서 같은 키를 사용한다.
- 한계 : 암,복호화를 위해 대칭키를 갖고있어야하는데 해당 키를 갈취당하면 암호를 해석당할 수 있다. ⇒ 게임 오바-
- 비대칭키: 암,복호화키가 서로 다름, A키로 암호화, B키로 복호화해야함.
- 네이버가 A복호화 키를 갖고, B를 대중에게 공개 ⇒ B키로 암호화한 개인정보를 네이버로 보내면 네이버는 A키로 복호화함. 네이버 서버가 털리지 않는 이상 해킹할 수 없음.
- 피싱사이트 : 네이버에서 보내는 정보는 A키로 암호화되어있다, 네이버에게 받은 정보는 네이버의 공개키로만 복호화할 수 있다.
- 네이버 공개키 is real? ⇒ 해당 키를 인증하는 기관 CA이 키를 인증해줌.
CA 포함해서 연결 과정
- 클라이언트와 서버가 3-way handshake 방식으로 연결 수립
- 클라이언트가 서버로 랜덤 데이터를 생성해서 서버로 보냄
- 서버측에서 랜덤 데이터를 답변으로 보내면서 인증서를 포함해서 보냄
- 클라이언트는 이 인증서가 진짜인지 확인하기 위해 브라우저에 내장된 CA 정보로 확인
- 인증서 : CA의 개인키로 암호화 되어 있어서 브라우저의 CA의 공개키로 풀 수 있음
- 인증서에 있는 서버의 공개키로 서버에 접속할 수 있다
서버에 보내는 정보는 비대칭키 + 대칭키 혼합해서 사용
정보를 전송할 때마다 비대칭키로 암호화, 복호화 하는 건 부담
랜덤 데이터로 대칭 키를 만들어서 정보를 주고 받는다