개발 일기

HTTP와 HTTPS 본문

Tech/CS Foundations

HTTP와 HTTPS

flow123 2021. 10. 26. 10:00

출처: 얄팍한 코딩사전 

 

왜 HTTP 보다는 HTTPS (Hyper-text Transfer Protocol Secure) 가 권장될까?

 

(1) 내가 사이트에 보내는 정보들을 제 3자가 못 보게함 (보안성)

내가 네이버에 로그인한다고 가정해보자, HTTP 로 보낸다면 내 ID 와 PW 가 암호화가 되지 않은 상태로 보내진다. HTTPS는 네이버만 볼 수 있는 텍스트로 바꿔서 보내준다. 해커가 가로채서 어떤 데이터인지 누출되는 것을 방지한다.

(2) 접속한 사이트가 믿을 만한 건지 판단할 수 있는 기준 (신뢰)

기관으로부터 검증된 사이트만 주소에 HTTPS 허용 -> 수상한 사이트를 걸러준다.

 

HTTP?

 

인터넷에서 커뮤니케이션에 사용되는 형식 중 하나다.

예를 들어 내 컴퓨터 -> 네이버 서버에 정보를 보낼 때마다, 이건 HTTP 형식이야 하고 주소창에 명시를 해줘야 한다. 

그래야 네이버가 http 형식으로 해독하고, 그에 맞는 양식으로 응답을 보낼 수 있기 떄문이다.

 

 

SSL / TLS (SSL 의 업그레이드 버전)

 

SSL: 인터넷 상에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜.

공개키와 암호키를 이용해서 암호화, 복호화를 모두 할 수 있는 인증서 방식이다.

서버와 브라우저 사이에 안전하게 암호화된 연결을 만들게 도와주며, 서버 - 브라우저가 민감한 정보 주고 받을 때, 정보가 도난당하는 것을 막아준다.

 

 

네이버 로그인에서 SSL 이 어떻게 작용되는지를 알아보자.

출처: https://velog.io/@shkim1199/HTTP-VS-HTTPS

 

네이버에서 Public (말그대로 public 하게 공유됨)/private key (네이버만 갖는다) 를 둘다 제공한다. 

해커가 Public Key를 갖고 있더라도, 암호를 푸는 private key는 네이버만 갖고 있으므로 정보가 안전하게 지켜진다.

 

(1) 사이트 정보와 공개키를 인증기관(네이버) 개인키로 암호화해서 사이트 인증서 제작 

(2) 사이트로 인증서 발급 

(3) 인증 기관은 웹 브라우저에게 공개키 제공. 

(4) 브라우저에 내장됨. 

(5) 접속 요청 

(6) 사이트에서 발급받은 인증서를 전달함. 

(7) 인증기관의 공개키로 인증서 검증. 

(8) 사이트 정보와 공개키 획득. 

(9) 획득한 사이트 공개키로 대칭키를 암호화하여 전송. 

(10) 사이트 개인키로 해독해서 대칭키 획득. 

(11) 안전하게 전달된 대칭키 이용해서 암호문 주고 받음. 

 

 

출처

 

-얄팍한 코딩사전

https://www.youtube.com/watch?v=H6lpFRpyl14

-성훈님 발표

https://velog.io/@shkim1199/HTTP-VS-HTTPS

-https://aws-hyoh.tistory.com/38

(공개키, 개인키 등 KEY 에 대한 자세한 설명과 https 통신이 어떻게 이뤄지는지 시각화가 잘되어있음 )

-미닉스 김인성님 블로그 

'Tech > CS Foundations' 카테고리의 다른 글

JPA  (0) 2021.11.27
서버사이드 렌더링 vs 클라이언트 사이드 렌더링  (0) 2021.11.01
브라우저의 동작 방법  (0) 2021.11.01
Comments