-
[CS study] 2022.04.17CS 2022. 4. 17. 23:12
HTTP & HTTPS
HTTP(HyperText Transfer Protocol)
- 인터넷 상에서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약
- 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈 존재
HTTPS(HyperText Transfer Protocol Secure)
- 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약
- 텍스트를 암호화한다. 공개키 암호화 방식으로
대칭키: 암호화 복호화를 같은 키로 하는 것
공개키: 자신이 가지고 있는 고유한 암호키로만 복호화할 수 있는 암호키를 대중에 공개함
- A가 웹 상에 공개된 B의 공개키를 이용해 평문을 암호화하여 B에게 보냄
- B는 자신의 비밀키로 복호화된 평문을 확인, A의 공개키로 응답을 암호화하여 A에게 보냄
- A는 자신의 비밀키로 암호화된 응답 문을 복호화함
즉 정리해보자면
- 공개키로 암호화 -> 개인키로 복호화할 수 있음 : 정보 자체에 암호화가 필요할 때
- 개인키로 암호화 -> 공개키로 복호화할 수 있음 : 정보를 송신한 사람의 신원 정보 확인이 필요할 때(공인인증체계의 기본)
HTTPS 통신 흐름
- 애플리케이션 서버를 만드는 기업은 HTTPS를 적용하기 위해 공개키와 개인키를 만든다. 개인키를 이용해서 공개키를 만든다.
- 신뢰할 수 있는 CA 기업을 선택하고, 그 기업에게 내 공개키 관리를 부탁하며 계약을 함 (CA: 공개키를 저장해주는 신뢰성이 검증된 기업)
- 계약 완료된 CA 기업은 해당 기업의 이름, A서버 공개키, 공개키 암호화 방법을 담은 인증서를 만들고, 해당 인증서를 CA기업의 개인키로 암호화해서 A서버에게 제공
- A서버는 암호화된 인증서를 보유하게 됨
- A서버는 A서버의 공개키로 암호화된 HTTPS 요청이 아닌 요청이 오면, 이 암호화된 인증서를 클라이언트에게 건네줌
- 클라이언트가 index.html 파일을 달라고 A서버에게 요청했다 가정하면 HTTPS 요청이 아니기 때문에 CA기업이 A서버의 정보를 CA 기업의 개인키로 암호화한 인증서를 받게 된다.
- CA 기업의 공개키는 브라우저가 이미 알고 있다 세계적으로 신뢰할 수 있는 기업으로 등록되어 있기 때문에, 브라우저가 인증서를 탐색하여 해독이 가능한 것
- 브라우저는 해독한 뒤 A서버의 공개키를 얻게 되었다.
- A서버와 통신할 때는 얻은 A서버의 공개키로 암호화해서 요청을 날리게 된다.
- 이것이 SSL 인증서를 탑재한 HTTPS 통신
HTTPS도 무조건 안전한 것은 아님 ex) 신뢰받는 CA 기업이 아닌 자체 인증서를 발급한 경우 CA기업의 개인키가 해킹당하는 경우 등
https://ch-oi-story.tistory.com/96
[C/S 스터디 1일차] TCP와 UDP
OSI 7계층 중 전송계층에서 사용되는 TCP와 UDP에 대해 서술해보겠다. 그 전에, 간단히 통신에 있어서 OSI 7계층으로 굳이 나누어서 했을까? 라는 질문부터 해소하고 시작해보자. 왜 OSI 7계층이라는
ch-oi-story.tistory.com
https://hive-mind.tistory.com/69
HTTP란?
HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서
hive-mind.tistory.com
'CS' 카테고리의 다른 글
[CS study] 2022.05.11 (0) 2022.05.12 [CS study] 2022.05.10 (0) 2022.05.10 [CS study] 2022.04.22 (2) 2022.04.23 [CS study] 2022.04.20 (1) 2022.04.20 [CS study] 2022.04.19 (2) 2022.04.19