profile image

L o a d i n g . . .

article thumbnail image
Published 2023. 1. 26. 21:27

IP?

Internet Protocol 의 약자로 인터넷 상에서 데이터를 주고받기 위한 통신규약. 

 

IPv4

- 0~255의 숫자가 네 마디로 구분되는 방식

- 0.0.0.0 ~ 255.255.255.255까지를 주소로 사용하며 대략 42억개의 주소를 표현할 수 있다.

 

IPv6

- 스마트폰, 태블릿, 스마트워치 등 다양한 모바일 기기가 만들어지면서 IPv4방식의 주소가 고갈되고있어 생긴 방식

- 0~F로 표현하는 16진수를 4자리 숫자 8개로 표현하며 거의 무한 개라고 할 수 있다.

 

공인IP

네이버에서 검색한 내 공인ip

- 지구상 어느것과도 중복 되지 않는 고유 IP주소로, 인터넷 서비스 제공업체(ISP)에의해 회사나 개인에게 부여된다. 다른 어떤 IP와도 중복되지 않기 때문에 웹사이트 같은 서버를 찾기 위한 용도로 사용된다. 

- 외부에 공개된 주소이므로 검색 엔진에서 IP를 검색해 확인할 수 있다.

 

 

사설 IP 주소

- IPv4방식의 공인 IP 주소가 부족해지며 기기에 서로 다른 주소를 할당할 수 없기 때문에 생긴 개념.

- 가정이나 회사 사무실에서 쓰는 여러 기기에 공유기를 통해 각각을 구분할 수 있는 주소를 할당한다.

- 사설IP 주소는 로컬IP, 가상IP라고도 불린다.

 

 

고정 IP 주소

- IP주소가 영구적으로 할당되어 변경되지 않는 주소.

- IPv4체계에서는 사용가능한 IP 주소가 한정되어 있어 모든 사용처나 기기에 IP를 고정적으로 부여하는대신 일정 주기마다 IP를 회수해 필요한 곳에 다시 나눠준다.

- 고정IP는 인터넷 사이트와 같이 변경되는 안되는 사용처나 기기 위주로 사용한다. (예: 웹사이트나 API같은 기능을 서비스하는 서버)

- 고정 IP를 사용하지 않으면 외부에 알려진 IP가 다른 사이트에서도 사용 될 가능성이 있어 기업이나 기관에서는 고정 IP를 사용한다.

 

유동 IP 주소

- 기기에 고정적으로 부여하는 대신 남은 IP를 골라 그때그때 사용할 기기에 할당하는 방법이다.

- 고정IP에 비해 비용면에서 경제적이며 정기적으로 변동되기때문에 보안측면에서도 유리하다.

- 일반적인 클라이언트 용도에 적합하다.

 

 

 

 

 

 

 

 

 


도메인과 DNS

도메인?

우리는 네이버나 티스토리를 이용할 때 http://125.209.222.141 또는 http://211.249.222.33을 입력하지 않는다.

대신 기억하기 쉬운 naver.com 또는 h-owo-ld.tistory.com을 입력한다. 이렇게 IP 주소를 이름처럼 사용할 수 있는 것을 도메인 이라고 부른다.

 

도메인은 대행업체를 통해 구입한다. 대표적으로 가비아, 후이즈, AWS 등이 있으며 업체마다 가격과 옵션은 상이하므로 적합한 구매처를 찾아 필요한 기간만큼 구입해서 사용할 수 있다.

 

도메인은 사람이 보다 쉽게 IP주소를 사용하도록 돕는 역할을 할뿐 내부적으로 도메인에 해당하는 IP주소를 변환해 경로를 안내하는건 DNS가 한다.

 

DNS?

Domain Name System또는 Domain Name Server의 약자로 전세계의 도메인과 각각의 도메인에 연결된 IP주소들이 저장되어 있는 곳이다.

- 사용자가 브라우저 주소창에 URL을 입력하면 브라우저는 DNS에 IP주소를 요청한다.

- DNS는 해당 도메인에 맞는 IP주소를 찾아 브라우저에 전달한다.

- 브라우저는 해당하는 IP주소의 웹 서버에 연결한다.

 

 

 


HTTP? HTTPS?

HTTP(HyperText Transfer Protocol)

- 클라이언트의 요청과 서버의 응답으로 구성된 방식이다.

- 서버-클라이언트 모델을 따르는 HTTP는 Connectionless, stateless 특성을 지닌다.

  Connectionless(비연결성): 클라이언트가 서버에게 요청을 한 후 응답을 받으면 연결이 끊긴다. 즉, 클라이언트와 서버가 연결되어있지 않아 리소스가 계속 사용되지 않고 일회성으로 발생한다. 다만 이러한 특징때문에 매번 요청에 대해 새로운 연결을 해야하므로 '오버헤드(처리를 위해 들어가는 간접적인 처리시간&메모리)'가 발생하는 단점 또한 존재한다

- 웹 서버 및 웹 브라우저 상호간 데이터 전송을 위한 응용계층 프로토콜이다.

- 1989년 팀 버너스 리(Tim Berners Lee)에 의해 처음 설계되었으며, WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 했다.

- HTTP 메시지는 ASCII로 인코딩된 텍스트 정보이며 여러 줄로 되어 있다.

- 암호화 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에 제3자가 정보를 조회할 수 있는 위험이 있다.

- 80번 포트를 사용한다.

 

HTTP의 구조

- 응용계층 프로토콜(애플리케이션 프로토콜)로 TCP/IP 위에서 작동한다.

- Method, Path, Version, Headers, Body 등으로 구성된다.

 

 

 


HTTPS(Hyper Text Transfer Protocol Secure)

- HTTP에 데이터 암호화가 추가된 프로토콜이다.

- 도메인 소유주는 CA라 불리는 인증기관 중 하나로부터 유료 또는 무료로 인증서를 발급받는다.

- 서버와 주고받는 데이터가 암호화되기 때문에 웹사이트에 추가적인 보호를 제공한다.

- HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화를 지원하고 있다.즉, 개인 데이터를 훔치거나, 해킹하거나 보기 어렵도록 작동한다.

- 구글은 2018년에 SSL을 의무화하면서 SSL/TLS 인증서가 설치되지 않은 웹사이트에 패널티를 부여하기 시작했다. 크롬은 SSL 인증서가 없는 웹사이트는 '안전하지 않은 웹사이트'로 표시한다. 따라서, 인증서가 없는 HTTP는 SEO에 직접적인 영향을 받게된다.

 

 

HTTPS 통신과정

SSL Handshake: 통신을 하는 브라우저와 웹 서버가 서로 암호화 통신을 시작할 수 있도록 신분을 확인하고, 필요한 정보를 클라이언트와 서버가 주고받는 과정이 악수와 비슷하여 붙여진 이름

대칭키: 하나의 키로 데이터를 암/복호화 한다. 하나의 키로 하기때문에 노출시 보안에 치명적인 문제가 발생한다. 경제적이다.

비대칭키: 공개키/개인키(비밀키, 비공개키)로 암/복호화 한다. 공개키로 데이터를 암호화하면 개인키로만 복호화가능, 개인키로 데이터를 암호화하면 공개키로만 복호화가 가능하다. 보안성이 좋지만 구현이 어렵고 암복호화 속도가 느리다.

- HTTPS는 대칭키와 비대칭키 암호화를 모두 사용하여 빠른 연산속도와 안정성을 얻는다.

- HTTP 연결과정(Hand-Shaking)에서는 먼저 서버-클라이언트간 세션키를 교환한다. 여기서 말하는 세션키는 요청-응답 데이터를 암호화 하기 위해 사용하는 대칭키이며, 데이터 간 교환에는 빠른 연산 속도가 필요하므로 세션키를 대칭키로 만들게된다. 문제는 이 세션키를 서버-클라이언트간에 어떻게 교환하는 것인가 인데, 이 때 비대칭키가 사용된다.

=> 처음 연결을 성립하여 안전하게 세션키를 교환하는 과정에서 비대칭키를 사용하며, 이후에 데이터를 교환하는 과정에서 빠른 연산 속도를 위해 대칭키를 사용한다.

 

 

 

 

 

HTTPS 발급과정

 

 

 

참고 

- 혼자 공부하는 얄팍한 코딩지식(고현민 저) 한빛미디어

- https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

 

 

 

 

 

 

 

 

반응형
복사했습니다!