HTTPS (HTTP + Secure )

myung hun kang·2022년 11월 2일
0

지난번에 HTTP가 무엇인지 알아보았다.
간략히 다시 말하자면 HTML/CSS JS Img 같은 데이터를 서버와 클아이언트가 주고받기위해서 필요한 모두가 알아들을 수 있는 규칙! 이었는데

HTTPS 는 뭘까?
요즘 사이트들은 대부분 https:// 로 시작하는 것을 볼 수 있다.
크롬의 경우 이 부분이 잘려서 안보이지만 (주소창 클릭시 볼 수 있음) 그대신 자물쇠 모양이 있는 것을 볼 수 있다.

그렇다 HTTPS는 기존 HTTP에 보안 즉 Secure가 더해진 보다 더 안전한 규칙을 가진 사이트라는 것이다.

어디한번 살펴보자

대칭키 & 비대칭키

서버와 클라이언트가 데이터를 공유할 때 암호화해서 주고 받는 것이 HTTPS의 뽀인트인데 이는 이 두가지 종류의 키로 가능하다.

대칭키

대칭키

클라이언트와 서버가 같은 키를 공유하고 이를 가지고 주고받은 data를 해석하는 방식의 키

BUT 한쪽에서 이 키를 처음에 보내줘야 하기에 그 과정에서 data가 노출될 위험이 있다.

이것만으로는 부족하다는 뭐 그런 소리....
그래서 다음의 키도 같이 써야 완성이다.

개인 키와 공개 키 (비대칭키)

비대칭 키

클라이언트와 서버가 다른 모양의 키를 같는데 한쪽의 data를 해석하려면 꼭 반대편 키로만 가능한 방법이다.

보통 서버가 개인 키를 가지고 클라이언트들이 공개 키를 가져 클라이언트 들이 서버로 보내는 정보를 볼 수 없게 한다.

자 그럼 이 두가지 키를 가지고 맘 놓고 개인정보를 주고 받으면 될까?

세상은 호락호락하지 않다. 나쁜놈들은 어딜가나 넘쳐나는 법! 좀 더 조심할 필요가 있다.

Handsake 과정

  • Client 가 서버로 무작위 data를 보낸다
  • 서버도 답변으로 부작위 data와 서버 인증서를 보낸다.
  • Client는 이 인증서가 진짜인지 판별하기위해 개인 브라우저에 있는 CA들로 확인한다.

    CA : Certificate Authority 의 약자로 개인정보를 다루는 기업들이 믿을 만한 기업인지 확인해주는 단체이다.

이 인증서는 서버가 Client들에게 "우리를 믿고 정보를 공유해요!" 라는 증표로 서버 개인키로 Client의 요청에 공개키와 함깨 먼저 보내진다.

  • CA가 해석한 인증서 안의 서버 공개키를 가지고 Client들은 data가 해석이 되는지에 따라 신뢰성을 알 수 있다.
  • 인증이 되면 이제 이 키를 가지고 서버와 통신한다.

handsake과정

내용을 보면 아주 보안에 신경을 쓰는 첫 단추는 비대칭 키로 이후 안전한 사이트라는 인증이 되면 대칭키로 data를 주고 받는 것을 볼 수 있다.

이는 계속 비대칭 키만을 사용하면 컴퓨터가 data를 해석하는데 부담을 많이주기 때문에 처음만 사용하고 다음에는 대칭 키를 사용하는 것이다.



참고
얄팍한 코딩사전 - HTTPS란? https://youtu.be/H6lpFRpyl14

profile
프론트엔드 개발자입니다.

0개의 댓글