![HTTP와 HTTPS, 그리고 HTTPS가 등장한 이유](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCW0yx%2FbtsLN4VMYVL%2Fg5VkKyubiPK3SlyNhYbofK%2Fimg.png)
1. HTTP(HyperText Transfer Protocol)의 문제점 HTTP는 OSI 7 계층의 애플리케이션 계층에서 사용되는 프로토콜이다. 따라서 애플리케이션 간에 데이터를 주고받기 위해 HTTP 프로토콜을 사용할 수 있다. HTTP는 클라이언트와 서버가 데이터를 주고받을 때 암호화되지 않은 평문을 전송하기 때문에, 네트워크 중간에서 스니핑을 통해 데이터를 가로챌 수 있다. 즉, HTTP는 통신 과정에서 평문을 주고받기 때문에 매우 취약하다는 문제점이 존재하다. 2. 그래서 등장한 것이 HTTPS HTTPS는 HyperText Transfer Protocol Secure이다. 이름에서 알 수 있듯이 기존의 HTTP 프로토콜에 보안 기능이 추가된 것이다. HTTPS는 HTTP와 달리 평문을 주고받..
![[네트워크] HTTPS 프로토콜에 대한 모든 것 (SSL 인증서 발급, 검증, ...)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcuk4dK%2FbtsLK1zCGAE%2FHppor9lMoX2gzP1i6yWUW1%2Fimg.png)
SSL(Secure Socket Layer)은 하이브리드 방식을 사용한다.SSL는 하이브리드 방식(대칭키, 공개키)을 사용한다. 대칭키의 경우 키를 공유하는 과정에서 스니핑으로 인하여 키를 탈취당할 수 있다는 위험성이 존재하고, 공개키의 경우 암호화/복호화가 오래 걸린다는 문제가 있다.하이브리드 방식은 송/수신 과정에서 암호화/복호화에 사용할 대칭키를 수신자의 공개키로 암호화하고, 수신자는 개인키를 사용하여 암호문을 복호화한다. 복호화하여 얻은 대칭키는 앞으로 있을 통신에서 데이터를 암호화 및 복호화 할 때 사용된다. HTTPS 프로토콜을 사용하기 위해서는 SSL 인증서를 발급받아야 한다.서버가 CA로부터 SSL 인증서를 발급받았다는 것의 의미는 CA로부터 신뢰할 수 있는 사이트임을 인증하게 되는 것이다..
![[네트워크] TCP 세션 종료, 4-way handshake](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbRN8X%2FbtsLLrqiXvn%2FgJncY2skIaSQoKQvko5ApK%2Fimg.png)
TCP/IP에서 두 호스트가 통신을 하기 위해서는 3-way handshake를 통해 TCP 세션을 맺어야 한다. 맺은 세션을 통해 데이터를 주고받기 때문에 TCP 프로토콜은 신뢰성 있는 프로토콜이라 부른다. 세션을 안전하게 종료하기 위해서는 각 호스트에 남아있는 모든 데이터를 전송한 후 연결을 종료해야 한다. 실제로 4-way handshake를 통해 남아있는 모든 데이터를 전송 후에 TCP 세션을 종료하게 된다. TCP 4-way handshake클라이언트 → 서버 FIN 세그먼트 전송세션을 종료하기 위해 FIN 플래그를 1로 설정한 세그먼트를 전송한다.서버의 FIN 세그먼트를 기다리는 FIN_WAIT 상태가 된다.서버 → 클라이언트 ACK 세그먼트 전송서버는 클라이언트로부터 FIN 세그먼트를 전송받..
![[네트워크] DNS(Domain Name System) 동작 흐름](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboSDOO%2FbtsLz3Yud5Q%2F3cskapU0xTLetjgmcgjRi0%2Fimg.png)
1. DNS(Domain Name System)DNS(Domain Name System)은 사람이 읽을 수 있는 도메인 주소를 기계가 이해할 수 있는 IP 주소로 변환하는 역할을 한다. 예를 들면, www.example.com으로 입력한 도메인 주소를 xx.xxx.xx.x IP 주소로 변환한다. 2. DNS 동작 흐름DNS 쿼리란 DNS 서버에 IP 주소를 묻는 행위이다. 사용자가 입력한 도메인 주소에 대한 실제 IP 주소를 찾는 행위이다. DNS 조회 과정은 클라이언트가 DNS 쿼리를 발생시키면 시작된다. 사용자가 DNS 쿼리를 발생시키면 도메인 주소에 해당하는 실제 IP 주소를 찾는다. 먼저, DNS 리졸버에 접근하여 캐시되어 있는 데이터가 존재하는지 확인한다. DNS 리졸버는 DNS 쿼리를 ISP..
![[네트워크] DHCP(Dynamic Host Configuration Protocol) 동작 흐름](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQXGDP%2FbtsLz9cyEWx%2Fzs4nlJ5aIl6wH494hAV4Ck%2Fimg.png)
컴퓨터 부팅 시점에는 IP 주소와 네트워크 정보를 가지고 있지 않다. 따라서 DHCP 서버로부터 인터넷을 사용하기 위한 정보들을 응답받는다. 고정 IP와 동적 IP고정 IP의 문제점은 설정 과정에서 오타가 발생하거나 이미 사용 중인 IP 주소를 사용하면서 충돌이 발생하는 것이다. 또한 컴퓨터를 사용하지 않는 상태에서도 IP 주소를 할당받기 때문에 주소 낭비로 이어진다. 반면에 DHCP를 설정하면 직접 주소를 설정하는 게 아닌 자동으로 설정된다. 또한 DHCP를 통해 할당받은 IP 주소는 영구적으로 사용하는 것이 아닌 임대를 받은 것이므로, 기간이 만료된 IP 주소는 반환하게 된다. 덕분에 IP 주소의 낭비를 줄일 수 있다. 1. DHCP 서버의 역할DHCP 서버는 IP 주소, 게이트웨이 주소, 서브넷 마..