네트워크
-
HTTP 메세지란 무엇인가CS지식/네트워크 2021. 5. 24. 23:11
HTTP메세지는 HTTP를 통해 통신하는 클라이언트와 서버 사이에서 주고받는 데이터의 블록들이다. HTTP메세지는 클라이언트가 서버에게 보내는 요청 메세지와 서버가 클라이언트로 보내는 응답 메세지가 있다. 메세지는 시작줄, 헤더 블록, 본문 세 부분으로 이루어진다. 시작줄은 해당 메세지가 어떤 메세지인지 간략하게 서술하고 헤더 블록은 메세지의 속성을 말해주고 본문은 보내고자하는 데이터를 가지고 있고 생략이 가능하다. 요청 메시지의 형식은 응답 메시지의 형식은 으로 이루어져 있다. 각 부분에 대해 자세히 알아보자. - 메서드 메서드는 클라이언트 측에서 서버가 어떠한 동작을 해주기를 원하는지 알려주는 것이다. 대표적으로 사용되는 메서드는 아래의 표와 같다. - 요청 URL 요청 대상이 되는 리소스를 지정한 ..
-
11일차 - 웹 공격 기술 (2)CS지식/네트워크 2021. 5. 17. 22:51
1. 강제 브라우징 (Forced Browsing) 강제 브라우징은 웹 서버의 디렉토리에 있는 파일 중에서 공개 의도가 없는 파일이 열람되게 되어 공격에 노출되는 것입니다. 즉, 공격자가 공격 코드로 직접 공격하거나 함정을 걸어두어 정보를 빼내는 것이 아니라 웹 서버를 잘못 설정하거나 설계하여 발생하는 문제이다. 강제 브라우징으로 인해 다음과 같은 악영향을 받는다. - 고객 정보 등 중요 정보 누설 - 접근 권한이 있는 사용자에게만 표시하지 않는 정보 누설 - 링크되지 않은 파일 누설 공개하고 싶지 않은 파일의 URL을 숨기는 보안 대책을 사용하고 있는 경우, 해당 URL을 알게 되면 파일을 볼 수 있게 된다. 2. 세션 하이잭 (Session Hijack) 세션 하이잭은 공격자가 유저의 세션 ID를 입..
-
10일차 - 웹 공격 기술 (1)CS지식/네트워크 2021. 5. 14. 20:25
1. 웹 애플리케이션에 대한 공격 패턴 웹 애플이레케이션을 공격하는 패턴은 크게 능동적 공격과 수동적 공격으로 나뉜다. 각각 자세히 알아보자. 1) 능동적 공격 (active attack) 능동적 공격은 공격자가 직접 웹 애플리케이션에 접근하여 공격을 하는 것이다. 대표적인 공격으로는 SQL 인젝션과 OS 커맨트 인젝션 등이 있다. 2) 수동적 공격 (passive attack) 수동적 공격은 함정을 이용해 유저가 공격 코드를 실행시키도록 하는 공격이다. 이 경우에는 공격자가 직접 웹 애플리케이션에 접근할 필요가 없다. 대표적인 수동적 공격으로는 크로스 사이트 스크립팅(XSS), 크로스 리퀘스트 포저리(CSRF) 등이 있다. 수동적 공격을 이용한다면 인트라넷(특정 단체의 소속자만 사용하는 인터넷 환경) ..
-
9일차 - 웹 콘텐츠에서 사용하는 기술CS지식/네트워크 2021. 5. 11. 23:16
오늘은 웹에서 다양한 콘텐츠를 보여주기 위해 사용되는 여러 기술들을 배웠다. 웹 페이지를 표현하기 위한 언어 뿐만 아니라 데이터 송신을 용이하게 하는 XML이라 JSON에 대해서도 알 수 있었다. 1. HTML (HyperText Markup Language) 웹 페이지의 대부분은 HTML로 되어 있기 때문에 HTML에 대해 알아볼 필요가 있다. HTML은 웹 상에서 하이퍼텍스트를 보내기 위해서 개발된 언어이다. 여기서 말하는 하이퍼텍스트란 문서 시스템의 하나로서, 문서 중에 임의의 장소의 정보가 다른 정보에 링크되어 있는 문서이다. 마크업 언어는 문서의 일부에 특별한 문자열(HTML에서는 HTML 태그라고 부른다.)을 붙임으로써 문서를 수식하는 언어이다. 우리가 보고 있는 naver웹 페이지, goog..
-
8일차 - HTTP에 기능을 추가한 프로토콜CS지식/네트워크 2021. 5. 8. 22:22
오늘은 기존의 HTTP의 사양에 따른 병목현상을 예방하기 위한 것에 대해 배웠다. HTTP가 처음 개발되었을 때는 단순히 HTML을 전송하기 위한 목적이여서 오늘날에 와서 새로운 기능들을 대처하기에는 부족한 점이 많은 프로토콜이라는 생각이 들었다. 현재는 HTTP 1.1버전을 대부분 사용하지만 1.1버전의 부족한 점을 보완하기위해 2.0버전을 개발 중이라는 것도 알게 되었다. 1. SPDY SPDY는 HTTP의 병목현상을 해소하고 웹 페이지 로딩 시간을 절반 단축하려는 목표로 개발되고 있다. 병목현상은 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상이다. 기존의 HTTP를 사용하면 어떠한 원인으로 병목현상이 발생하는 것일까? - 1개의 커넥션으로 1개의 리퀘스트만 보낼 수 있다...
-
7일차 - HTTP 인증CS지식/네트워크 2021. 5. 6. 00:57
오늘은 HTTP가 제공하는 표준적인 인증 방법과 SSL 클라이언트 인증, 폼 베이스 인증에 대해 배웠다. 어제 배운 것에서 알 수 있듯이 HTTP는 통신 상대를 확인하지 않기에 약점이 존재한다고 하여 인증의 중요성을 강조했다. 어제는 SSL을 통해서 인증을 구현한다고 하여 HTTP 자체에 인증 방법이 없는 줄 알았는데 오늘 배우면서 제대로 알게 되었다. 1. 인증이란 우리는 누군가와 얘기를 할 때에 서로 알고 있거나 모른다면 통성명을 하여 누군지 알고 시작한다. 하지만 컴퓨터는 클라이언트가 누구인지, 서버가 누구인지 알 수가 없다. 그래서 인터넷을 통한 통신에서는 상대방인지 누구인지 알 수 있도록 정보가 필요하고 정보를 통해 확인된 실체가 정말 맞는지에 대한 확신이 필요하다. HTTP에서는 이러한 기능을..
-
6일차 - 웹을 안전하게 지켜주는 HTTPSCS지식/네트워크 2021. 5. 2. 23:10
오늘은 HTTP의 안전을 지켜주는 HTTPS에 대해서 배웠다. 평소에 주소를 보면 http인 경우도 있고 https인 경우도 있었는데 이것들이 무슨 차이가 있는지는 잘 몰랐다. 오늘 https를 배움으로써 궁금증을 해결할 수 있었다. 1. HTTP의 약점 지금까지 HTTP의 동작원리와 기능에 대해 배웠다. 클라이언트와 서버간에 통신을 할 수 있게 해주는 HTTP의 단점이자 약점은 무엇이 있을까? 1) 암호화 하지 않은 통신이기 때문에 다른 사람(통신에 참여하지 않은 사람)이 볼 수 있다. 암호화되어 있지않은 통신에 약점이 존재하는 이유는 TCP/IP 구조의 통신 내용은 전부 통신 경로 도중에 엿볼 수 있기 때문이다. 통신 경로 상에 있는 네트워크 기기나 케이블, 컴퓨터 등은 모두 자신이 소유하고 있지 않..
-
5일차 - HTTP와 연계하는 웹 서버CS지식/네트워크 2021. 4. 29. 22:34
오늘은 가상호스트에 대해 공부하고 클라이언트와 서버 중간에 중계 역할을 하는 프로그램 3가지에 대해 공부했다. 가상호스트에 대해 간단하게 무엇인지는 알겠지만 설명을 정확히 무엇이라고 하기에는 아직 부족하다.. 조금 더 가상호스트에 대해 공부해봐야겠다. 1. 가상 호스트(Virtual Host) 가상 호스트는 하나의 HTTP 서버에 여러 개의 웹 사이트를 실행할 수 있도록 하는 기술이다. 가상 호스트를 통해 물리적 서버는 1대이지만 가상으로 여러 대가 있느 것처럼 설정이 가능하다. 그러면 가상 호스트는 왜 필요할까? 우리는 웹 사이트를 접속할 때 www.naver.com과 같은 호스트 명이나 도메인 명을 자주 사용한다. 인터넷에서 도메인명은 DNS에 의해 IP 주소로 변환되어지고 리퀘스트가 서버에 도착한 ..