본문 바로가기

LearningJavaScript

[HTTPS]

HTTPS

 

HTTPS = HTTP + Secure

인터넷에서 데이터를 주고받을 수 있는 통신 프로토콜인 HTTP에 보안기능이 추가된 것이 HTTPS다.

 

여기서 추가된 보안기능은 요청 내용을 한 번 암호화 시킴으로써, 해당 데이터에 대한 정확한 ㅓ키 값을 모르면 내용을 확인 할 수 없기 때문에 정보 유출 발생시 이를 한 번 더 보호해준다. 

 

특징: 인증서, CA, 비대칭 키 암호화

 

1. 인증서 (certificate)

데이터를 제공한 서버가 실제로 데이터를 보내준 서버인지 인증확인하는 용도이다. 또 인증서의 내용에 서버의 도메인 관련 정보가 있어, 데이터 제공자의 인증을 용이하게 해준다.

요청을 받는다면, 서버는 인증서와 함께 응답을 전송하고, 응답을 받은 클라이언트는 인증서에 작성된 도메인과 응답객체에 작성된 도메인을 비교해, 응답에서 확인한 도메인과 인증서에 작성된 도메인이 같다면, 데이터를 제공해준 서버가 확실하다는 것을 인지할 수 있다. 만약 중간에, 해커가 요청을 탈취해 서버인척, 클라이언트인척 정보를 탈취하는 제3자 공격이 발생한다면, 응답에서 확인한 도메인과 인증서에 작성된 도메인이 같지 않아 데이터를 제공해준 서버가 확실하다는 것을 보장할 수 없게됨에 따라 클라이언트에서 서버 제공자가 아닌 전혀 다른 데이터 제공자임을 알게된다.

 

2. CA (Certificate Authority) 공인 인증서 발급 기관

인증서를 발급하는 공인된 기관으로 앞서 말한 인증서를 발급해준다. 각 브라우저는 각자 신뢰하는 CA정보를 갖고 있기 때문에, 각 브라우저마다 인증서 차이가 있다. CA는 자격을 박탈 당할 수도 있다.

 

3. 비대칭 키 암호화

전혀 다른 키 한 쌍으로 암호화 및 복호화를 진행할 수 있다. 만약 A키를 이용해 암호화를 했다면, A키와 쌍인 B키로 복호화 해야한다. 따라서 HTTPS를 이용하는 서버는, 한 쌍의 키 중에 하나의 키는 숨기고, 다른 한 키는 클라이언트에 공개해 데이터를 안전하게 전송할 수 있다.

상세 과정은 다시 보기!!

 

 

 

 

 

 

 

 

 

'LearningJavaScript' 카테고리의 다른 글

[Cookie]  (0) 2020.12.09
[Hashing] [Encryption] [Salt]  (0) 2020.12.09
server가 왜 있어야할까?  (0) 2020.12.03
require 사용법  (0) 2020.12.03
오늘의 참고  (0) 2020.11.17