HTTP
서로 다른 시스템들 사이에서 통신을 주고 받게끔 하는 프로토콜로, 암호화 되지 않는다는 단점이 있음.
HTTPS
HTTP에 SSL을 사용하는 프로토콜로, SSL은 서버와 브라우저 사이에서 안전하게 암호화된 연결을 만들 수 있게 도와주고,
서버와 브라우저가 민감한 정보를 주고 받을때, 해당 정보가 도난당하는 것을 막아줌.
Http Message Body를 암호화 함.
HTTPS를 사용하는 이유
1. 보안성을 위해서. http 프로토콜은 암호화되지 않아서 해커의 공격을 받았을 때 사용자의 정보가 쉽게 노출될 수 있다는 우려가 있음.
그러나 https는 암호화 되어있기 때문에, 보안성이 http방식에 비해 우수함.
데이터가 중간에 가로채어서 수정되지 않음을 보장함.
2. https를 통해서 웹사이트의 신원을 확인할 수 있음. 해당 사이트를 사용자가 신뢰할 수 있는지 인증기관을 통해 보장받을 수 있음
3. 구글은 https웹 사이트에 가산점을 주기 때문에, SEO 최적화를 위해서 필수불가결한 선택.
SSL이란?
웹 서버와 웹 브라우저간의 보안을 위해 만든 프로토콜
공개키 / 개인키 대칭키 기반으로 사용함.
대칭키 암호화 방식
암호화, 복호화를 하나의 대칭키로 수행하는 것.
중간에 해커가 가로채면 해당 키로 복호화를 진행할 수 있기 때문에 보안성이 떨어짐.
비대칭키(공개키) 암호화 방식
공개키, 개인키 방식으로 암호화, 복호화를 하는 방식.
데이터 암호화 시에는 공개키를 사용하고,
복호화시에는 개인키를 사용함.
공개키 방식에서는 개인키로만 복호화 할 수 있기 때문에, 해커가 중간에 공개키를 가로채도 복호화할 수 없다는 장점이 있음.
단, 대칭키 방식보다 암호화 연산이 더 소요되어 비용이 크다.
=> SSL은 상호보완적인 대칭키방식과 비 대칭키 암호화 방식을 섞어서 씀.
SSL 방식
SSL은 공개키 방식으로 대칭키를 전달함. 이 대칭키를 활용하여 암호화와 복호화를 진행하고, 서버와 브라우저간 통신을 진행함.
컴퓨터 A와 B가 통신할 때 다음과 같이 동작함.
1. A에서 B로 접속 요청함.
2. B는 A에게 공개키를 전송함
3. A 는 자신의 대칭키를 B에서 받은 공개키를 통해 자신의 개인키를 암호화 함.
4. 암호화한 대칭키를 B에게 전달함
5. B는 자신의 개인키로 대칭키를 복호화하여 복호화한 대칭키를 얻어낼 수 있음.
얻은 대칭키를 활용하여 A와 B는 안전하게 통신함.
CA 발급과 SSL통신 과정
1. 서비스 제공 업체 사이트에서 인증기관에게, 사이트 정보와 사이트 공개키를 제출함
2. 인증기관측에서는 받은 공개키와 사이트 정보가 유효한지 검사후, 이것을 자신의 개인키인 인증기관 개인키로 서명함.
서명을 하고 나면 예상한대로 사이트 인증서가 생성되고, 이를 사이트에게 전달함.
3. 인증기관은 사용자에게 인증기관 공개키를 전달함. 사용자가 인증기관으로부터 받은 인증기관 공개키는 사용자 브라우저에 내장된다.
4. 사용자가 사이트 접속을 요청(Client Hello) 하면, 사이트는 자신의 신뢰를 보장받기 위해 사이트 인증서(ServerHello, Certificate,ServerHelloDone)를 전달함.
5. 사용자는 브라우저에 내장되어있는 인증기관 공개키로 사이트 인증서를 복호화하여 사이트 공개키와 사이트 정보를 얻음 (ChangeCipherspec)
6. 이렇게 얻은 사이트 공개키로 사용자는 자신의 대칭키를 암호화함.
7. 암호화한 대칭키를 사이트에 전달함 (ClientKeyExchange, Finished)
8. 사이트는 자신의 개인키로 사용자로부터 받은 대칭키를 복호화 하여 사용자의 대칭키를 얻음. (ChangeCipherSpec, Finished)
+) 이전에 작성했던 블로그 추가 글 참고
https://takoyummy.tistory.com/103
'CS > Computer Network' 카테고리의 다른 글
CORS란? (0) | 2021.07.25 |
---|---|
RESTful이란? (0) | 2021.07.18 |
쿠키와 세션의 차이 (0) | 2021.07.11 |
HTTP 메서드와 그 역할 (2) | 2021.07.04 |
HTTP와 HTTPS 그리고 SSL HandShake (0) | 2021.06.28 |