CS 공부/네트워크
리소스 게이트웨이 - CGI
게이트웨이의 가장 일반적인 형태인 애플리케이션 서버는 목적지 서버와 게이트웨이를 한 개의 서버로 결합한다. 애플리케이션 서버는 HTTP를 통해서 클라이언트와 통신하고 서버 측에 있는 애플리케이션 프로그램에 연결하는 서버 측 게이트웨이다. 애플리케이션 서버는 게이트웨이의 애플리케이션 프로그래밍 인터페이스를 통해서 요청을 서버에서 동작하고 있는 애플리케이션에 전달한다. 애플리케이션 게이트웨이에서 유명했던 최초의 API는 공용 게이트웨이 인터페이스(CGI)였다. CGI는 특정 URL에 대한 HTTP 요청에 따라 프로그램을 실행하고, 프로그램의 출력을 수집하고, HTTP 응답으로 회신하는데 웹 서버가 사용하는 표준화된 인터페이스 집합이다. 공용 게이트웨이 인터페이스 CGI 애플리케이션이 서버와 분리되면서 펄, ..
보안 게이트웨이
HTTP/HTTPS 서버 측 보안 게이트웨이 기업 내부의 모든 웹 요청을 암호화함으로써 개인 정보 보호와 보안을 제공하는데 게이트웨이를 사용할 수 있다. 클라이언트는 일반 HTTP를 사용하여 웹을 탐색할 수 있지만, 게이트웨이는 사용자의 모든 세션을 암호화할 것이다. HTTPS/HTTP: 클라이언ㅌ 측 보안 가속 게이트웨이 HTTpS/HTTP 게이트웨이는 보안 가속기로 유명하다. 이 HTTPS/HTTP 게이트웨이는 웹 서버의 앞단에 위치하고, 보이지 않는 인터셉트 게이트웨이나 리버스 프락시 역할을 한다. 이 게이트웨이는 보안 HTTPS ㅌ트래픽을 받아서 복호화하고, 웹 서버로 보낼 일반 HTTP 요청을 보낸다. 이런 게이트웨이는 원 서버보다 더욱 효율적으로 보안 트래픽을 복호화하는 암호화 하드웨어를 내장..
게이트웨이
게이트웨이 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스 게이트웨이는 리소스와 애플리케이션을 연결하는 역할을 한다. 애플리케이션은 게이트웨이에게 요청을 처리해달라고 할 수 있고, 게이트웨이는 그에 응답할 수 있다. 게이트웨이는 요청을 받고 응답을 보내는 포털 같이 동작하는데, 동적인 콘텐츠를 생성하거나 데이터베이스에 질의를 보낼 수 있다. 클라이언트 측 게이트웨이와 서버 측 게이트웨이 웹 게이트웨이는 한쪽에서는 HTTP로 통신하고 다른 한쪽에서는 HTTP 가 아닌 다른 프로토콜로 통신한다. 게이트웨이는 클라이언트 측 프로토콜과 서버 측 프로토콜을 빗금(/)으로 구분해 기술한다. 게이트웨이가 HTTP 클라이언트와 NNTP 뉴스 서버 사이에 있으면 HTTP/NNTP 게이트웨이가 된다. 서버 측 ..
DNS 에 대한 이해
오늘 회사에서 다급하게 전화가 와서 "웹 서버 접속을 막아주세요."라고 했다. 난 당연하게 그냥 개발용 웹서버를 막아달라는 줄 알고 8080 포트를 닫아버렸다. 그런데 도메인과 연결된 IP를 타고 tomcat 설정을 통해 접속이 가능했다. 난 뭘 한 거지? 사실 완전히 틀린 말은 아니었을 거다. 어쨌든 "개발용" 웹 서버 접속은 막았으니까. 다만 문제는 그 이후다. DNS에 대한 얘기를 하고 있는데 난 완전히 엉뚱하게 Tomcat 설정을 만지작 거리고 있었다. 도메인과 IP 연결을 끊어야 하는데 계속 애꿎은 웹서버만 만지작 거린 거다... 나중에 해결되고 나서 혼자 헛소리를 하는 날 보면서 다른 분들은 얼마나 답답했을까... (웹 서버 접속을 막아달란 요청은 당연하게도 모든 IP, Port를 통한 접속을..
NAT Gateway란
DB의 경우 Private IP를 이용하여 외부에서의 접근을 차단하는 형태로 구성한다. 그런데 만일 외부의 접속을 허용해야 하는 경우가 발생하면 어떻게 해야 할까? Public IP를 부여한다면 외부에 노출되므로 보안에 취약하게 된다. 이때 사용하는 것이 NAT Gateway와 Bastion Host 기술이다. 이 둘은 사설망의 구조를 유지시켜주면서 외부와 조건적으로 데이터 통신이 가능하게 해 준다.(Bastion Host은 다음에 자세히 알아보자.) NAT Gateway(Network Address Translation) 네트워크 주소 변환은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 도애 트래픽을 주고받는 기술을 말한다. 대표적으로 사설 IP를 외부..
HTTPS 동작 방식
쓰는 이유 HTTPS는 SSL/TLS 보안 계층 위에서 HTTP가 작동하도록 한다. 그렇다면 왜 이렇게 하는 것일까? 간단히 말하면 보안 때문이다. HTTP는 클라이언트와 서버 간의 데이터를 주고받을 때 공격자가 데이터를 가로채기 쉬웠다. 암호화가 되지 않은 채 데이터를 전송하기 때문이다. HTTPS는 서버와 클라이언트가 주고받는 텍스트를 암호화한다. 또한 클라이언트는 접속하려는 서버가 신뢰할 수 있는 서버인지 판단할 수 있다. 원리 SSL 프로토콜은 SSL 인증서를 사용해 작동한다. SSL 인증서는 클라이언트와 서버 간의 통신을 제 3자가 보증해 주는 전자화된 문서이다. 이 인증서를 통해 암호화를 한다. 이 방식을 좀 더 살펴보자. CA는 서버의 공개키와 서버키를 암호화하여 보관한다. 암호화할 때는 공..
세션과 JWT
세션과 JWT는 모두 인가에 관한 보안 기술이다. 그렇다면 인가란 무엇일까? 1. 인가란? 인가란 사용자에게 특정 리소스나 기능에 액세스 할 수 있는 권한을 부여하는 프로세스를 말한다. 대표적으로, 서버에서 특정 파일을 다운로드할 수 있는 권한을 부여하거나, 개별 사용자에게 관리자 권한으로 애플리케이션에 액세스 할 수 있는 권한을 부여하는 경우가 여기에 해당된다. 2. 세션 2.1 정의 세션은 일정 시간 동안 같은 사용자(웹 브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이다. 여기서 일정 시간이란 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료함으로써 연결을 끝내는 시점을 뜻한다. 정리하자면 방문자가 웹 애플리케이션에 접속해 ..