개발자 성장 일지

HTTPS 너 뭐하는 친구니?

NEWDODORIPYO 2022. 5. 1. 16:37

HTTPS

Htper

Text

Transfer

Protocol

Secure

😎기존의 HTTP 사이트보다 안전하다는 뜻

 

안전하다는 건?

  • 사용자가 웹사이트에 보내는 정보를 다른 누군가 훔쳐보지 못하게 한다
  • 사용자가 접속한 사이트가 진짜인지 가짜인지 판별해 준다

어떤 원리인지를 알려면 대칭키 비대칭키 를 알아야 한다

대칭키

기존에 많이 사용되던 방식

메시지를 보내는 쪽과 메시지를 받는 쪽이 메시지를 암호화하고, 이를 다시 메시지로 바꾸는 즉 복호화 하는 같은 방식을 공유한다

상대방에게 보낼 때 메시지와 “키” 를 같이 알고리즘에 넣어서 암호화한 다음 보내고 받는 사람은 “키”값을 알아야 하고 그 “키”값으로 알고리즘을 거꾸로 돌려서 해독한다 이 과정을 복호화라고 함

서로 키를 가지려면 한 번은 키를 건네줘야 하는데 이때 누군가가 키를 훔쳐볼 수도 있다 이게 대칭키의 한계점

비대칭키<공개키>

비대칭키 또는 공개키라고 불림

A 와 B 키가 있고 둘은 한 쌍이다 하지만 서로 다르기 때문에 “비대칭키” 라고 불린다

A키로 암호화를 하면 B키로만 복호화를 할 수 있다 반대로 B키로 암호화를 하면 A키로만 복호화를 할 수 있다

보통 서버에서 비밀키(개인키) 다른 하나(공개키)를 대중에게 공개한다

공개키가 정품인지 어떻게 알지?

키를 인증해 주는 공인된 민간기업들 을 CA라고 부름

브라우저에는 이 CA들의 목록이 저장되어 있다

반가워 Handshake (악수) 하자

사용자는 서버를 처음부터 믿지 못하기 때문에 서로 탐색하는 과정을 거친다 그 과정을 handshake (악수) 라고 한다

사용자는 서버에게 무작위 데이터를

그걸 받은 서버는 무작위 데이터와 인증서를 사용자에게 보낸다

브라우저에 저장된 CA의 정보로 인증키가 진짜인지 확인한다 CA 리스트 중에 이 인증서가 해당하는 것이 없다면 경고창이 생긴다 “이거 우리가 공인한 HTTPS가 아닌데 괜찮아?” 라는 식으로 

 

HTTPS 참 쉽죠? 😘