https에서 사용하는 SSL Handshaking 방식 및 대칭 / 비대칭키 암호화 방식
·
CS/Computer Network
HTTP 서로 다른 시스템들 사이에서 통신을 주고 받게끔 하는 프로토콜로, 암호화 되지 않는다는 단점이 있음. HTTPS HTTP에 SSL을 사용하는 프로토콜로, SSL은 서버와 브라우저 사이에서 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버와 브라우저가 민감한 정보를 주고 받을때, 해당 정보가 도난당하는 것을 막아줌. Http Message Body를 암호화 함. HTTPS를 사용하는 이유 1. 보안성을 위해서. http 프로토콜은 암호화되지 않아서 해커의 공격을 받았을 때 사용자의 정보가 쉽게 노출될 수 있다는 우려가 있음. 그러나 https는 암호화 되어있기 때문에, 보안성이 http방식에 비해 우수함. 데이터가 중간에 가로채어서 수정되지 않음을 보장함. 2. https를 통해서 웹사이트의..
CORS란?
·
CS/Computer Network
CORS(Cross-Origin Resource Sharing)는 서로 다른 origin간에 리소스를 전달하는 방식을 제어하는 매커니즘으로, SOP를 위반할시 CORS이슈를 접하게 됩니다. 여기서 SOP(Same Origin Policy,동일 출처 정책)란 자바스크립트 엔진 표준 스펙의 보안 규칙으로 하나의 출처에서 로드된 자원이 호스트나 프로토콜, 포트번호가 일치하지 않는 자원과 상호작용하지 못하도록 요청 발생을 제한하고, 동일 출처에서만 접근이 가능한 정책입니다. CORS 이슈는 요청 브라우저에서 다른 도메인을 가지는 서버로 요청이 갈때 브라우저에서 발생하는 이슈이며, 이를 해결하기 위해서는 여러가지 방법이 있는데 다음과 같습니다. 1. 동일 출처로 이동 -> 같은 도메인, 같은 포트로 이동시키면 해..
RESTful이란?
·
CS/Computer Network
REST는 REpresantational State Transfer의 약자로, HTTP통신에서 어떤 자원에 대한 CRUD요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식입니다. 즉 웹에 존재하는 모든 자원에 고유한 URI를 부여해 활용하여 자원을 정의하고 자원에 대한 주소를 지정하는 방법이며, 이러한 REST 형식을 준수하는 시스템을 RESTful하다고 칭합니다. REST API는 Resource(자원), Method(행위), Representation(표현)으로 구성됩니다. - Resource (URI) : 서버는 Unique한 ID를 지니는 Resource를 가지고 있으며, 클라이언트는 이 Resource에 대한 요청을 보냅니다. 이러한 Resource는 URI입니다. ex..
쿠키와 세션의 차이
·
CS/Computer Network
HTTP프로토콜의 특징이자 약점을 보완하기 위해서 쿠키와 세션을 쓰곤 합니다. HTTP프로토콜 환경에서 서버는 클라이언트가 누구인지 확인해야 하는데, 그 이유는 HTTP프로토콜이 connectionless, statless 한 특성이 있기 때문입니다. connectionless(비연결성)란? 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어버리는 특징입니다. 이러한 비연결적인 상태를 유지하는 까닭은 HTTP는 인터넷 상에서 불특정 다수와 통신하기 때문에 서버에서 다수의 클라이언트와 연결을 계속 지속해야한다면 이에 따라 많은 비용이 발생하게 됩니다. 이를 줄이면 더 많은 연결을 할 수 있으므로 conectionless한 특징을 지닙니다. 물론 이 방식의 단점도 존재합니다. 서버가 클라이언트를 기억하..
HTTP 메서드와 그 역할
·
CS/Computer Network
HTTP 프로토콜은 TCP와 UDP프로토콜을 기반으로 하여 웹에서 사용하는 프로토콜로 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식을 의미합니다. HTTP 메서드는 그 중에서도 서버에 요청을 보내는 방법입니다. HTTP메소드 중 대표적으로 GET과 POST가 있습니다. GET요청은 서버에 존재하는 데이터를 요청하는 것입니다. 즉 클라이언트가 서버에 리소스를 요청할때 사용하는 것으로 캐싱 및 북마크가 가능하며 브라우저에 기록이 남습니다. URL에 쿼리스트링 형식으로 데이터를 전송하기 때문에 보안에 취약합니다. 멱등의 특성을 지니고 있는데 여기서 멱등이란 같은 요청이면 반환되는 모든 응답이 모두 동일함을 의미합니다. (CRUD에서 READ) POST는 클라이언트에서 서버로 리소스를 ..
HTTP와 HTTPS 그리고 SSL HandShake
·
CS/Computer Network
HTTP와 HTTPS 모두 인터넷의 웹 서버와 클라이언트의 인터넷 브라우저 사이에 문자를 전송하기 위한 통신규약으로 웹서버와 브라우저간 암호화된 연결을 설정하는 표준 보안 기술입니다. 다만 HTTP같은 경우는 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고 수정할 수도 있습니다. 이처럼 보안이 취약해질 우려가 있기 때문에 나온 것이 바로 HTTPS입니다. 중간에 보안 계층(응용계층과 전송계층 사이에서 동작하는 독립적인 SSL 프로토콜)을 거쳐서 패킷을 암호화하는 특징이 있습니다. 여기서 SSL이란 클라이언트와 서버 간의 통신을 제삼자가 보증해주는 문서로 클라이언트가 서버에 접속한 직후 서버는 클라이언트에게 이 인증서를 전달합니다. 그러면 클라이언트는 이 인증서를 보고 신뢰할 수 있는..
TCP 3 WAY, 4WAY HANDSHAKE
·
CS/Computer Network
TCP는 장치들 사이에 논리적인 접속을 성공시키기 위해 3 Way HandShake를 사용합니다. TCP 3 Way Handshake는 TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미합니다. TCP 3 way HandShaking의 과정은 다음과 같습니다. 1. 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냅니다. ex) Seq = 10, SYN 2. 서버는 SYN요청을 받고 클라이언트에 요청을 수락한다는 ACK 과 Syn flag가 설정된 패킷을 발송합니다. ex) Seq= 50, Ack= 11(Seq(10)에서 1을 더함), SYN,ACK 3. 클라이언트는 서버에게 ACK를..
OSI 7계층과 TCP/IP 4계층
·
CS/Computer Network
국제 표준화 기구인 ISO가 확립한 OSI 7계층은 개방화된 데이터 통신 환경에서 사용하는 계층적 구현 모델의 표준으로, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미합니다. 이렇게 OSI 7계층을 나눈 이유는 여러대의 컴퓨터가 데이터를 주고 받으려면 이들을 서로 연동할 수 있도록 표준화된 인터페이스를 지원해야하기 때문입니다. 또한 계층을 나누면 나중에 특정한 문제가 발생했을때 다른 계층은 건들지 않고 문제의 원인인 해당 계층에 대해서만 문제를 해결할 수 있기 때문입니다. OSI 계층의 구성은 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용계층인 총 7계층으로 이루어져 있습니다. 이를 계층별로 상세하게 설명하면 다음과 같습니다. 물리 계층 물리적 선로로 전송하기 위해서 전기적 신호..
브라우저에 www.naver.com을 입력하면 일어나는 일 - 2
·
CS/Computer Network
짜잔 2탄으로 돌아왔습니다! ARP란? Address Resolution Protocol 네트워크 계층 주소와 데이터 링크 계층 주소 사이의 변환을 담당하는 IP프로토콜입니다. 실질적으로 우리의 컴퓨터가 '랜카드'라는 물리적인 장치를 사용하여 네트워크에 연결되어 있기 때문에 네트워크 계층에서 데이터 링크계층으로 보낼때 MAC주소가 필요하게 되고 이를 위해 ARP프로토콜이 필요합니다! ARP로 목적지 IP의 MAC주소를 찾는 과정은 다음과 같습니다. 0. ARP통신이 발생한 경우 IP를 통해 호스트 내에 존재하는 ARP테이블을 먼저 조회합니다. 해당 테이블에서 목적지 주소를 얻지 못한 경우 다음 단계(1번)로 넘어갑니다. 1. 송신자는 목적지 물리주소가 필요하므로 물리주소 요청을 위해 ARP요청 패킷을 브..
takoyummy
'CS/Computer Network' 카테고리의 글 목록