본문 바로가기

Network

(8)
Telnet Over SSL/TLS 과 SSH 안녕하세요.얼마 전에 공부하다가 문득 이런 생각이 들었습니다. "나는 잘 알려진 포트 중에서 몇 개나 알고 있을까?" 그래서 위키백과의 TCP/UDP 포트번호 문서를 찾아보다가, 992번 포트를 발견했습니다. 이 포트를 사용하는 프로토콜은 Telnet Over SSL/TLS, 즉 SSL/TLS 위에서 동작하는 Telnet 프로토콜이었습니다.제가 알기론 Telnet은 과거에 원격 접속을 위해 사용되는 프로토콜이고, 통신 간 평문으로 전송되기 때문에 보안에 취약하다고 알고 있었습니다. 그래서 요즘은 암호화를 제공하는 SSH 프로토콜을 사용해 원격 접속한다고 알고 있었지요.  그런데 "SSL/TLS 위에서 동작하는 Telnet이라니, 그럼 SSH 랑 다른 게 뭐지?"라는 생각이 들었고 이를 데모로 구현하며 공..
암호화 방식과 암호화 알고리즘 안녕하세요.저번 글에서는 TLS의 연결 과정에 대해 알아봤습니다.이번 글에서는 암호화의 방식과 암호화 알고리즘에 대해서 알아보겠습니다. 암호화란?암호화(暗號化) 또는 엔크립션(encryption)은 특별한 지식을 소유한 사람들을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용하여 정보(평문을 가리킴)를 전달하는 과정이다.- 출처 : 위키백과 위키백과에서 확인할 수 있듯이, 알고리즘을 거쳐 정보를 읽기 힘들게 만드는 과정을 암호화 라고 합니다.그럼 여기서 말하는 알고리즘은 어떤 걸 의미할까요? 암호화 알고리즘은 거창한게 아닙니다. 암호화를 하기 위한 일련의 과정이지요.간단한 암호화 알고리즘을 살펴볼까요? 고대 로마의 황제인 율리우스 카이사르 때에 제정된 카이사르 암호를 예로 들어보겠습니다.카이사르 암..
TCP와 TLS의 동작 원리 #2 안녕하세요.저번 글에서는 TCP 프로토콜의 연결 수립 과정과 종료 과정에 대해 알아봤습니다.이번 글에서는 SSL/TLS에 대해 알아보고, SSL/TLS의 연결 과정에 대해 분석해 보겠습니다. SSL/TLS 란?SSL/TLS 는 Secure Socket Layer/Transport Layer Security의 약자입니다.오픈소스 소프트웨어인 OpenSSL이 구현한 SSL 1.0과 2.0 버전에서 취약점이 발견되어 SSL 3.0 이 개발되었고, 이를 기존 버전과 구분하기 위해 SSL 3.0 부터는 TLS 로 부르기로 했습니다.대부분 SSL이라는 이름에 익숙하다 보니 현재는 보안 프로토콜로 TLS로 사용함에도 불구하고 여전히 SSL 이라 부르는 사람이 많아졌고,  곧 보안계층 프로토콜을 SSL/TLS 통칭해 ..
TCP 와 TLS의 동작 원리 #1 안녕하세요.이번 글에서는 전송계층 프로토콜인 TCP의 Handshake에 대해 알아보겠습니다.다음 글에서는 패킷 분석 프로그램인 Wireshark 를 사용해 실제 연결 및 종료 과정을 알아보겠습니다.  이를 이해하기 위해 먼저 OSI 7 Layer 에 대해 간단히 알아보겠습니다. OSI 7 Layer  OSI 7 Layer 는 네트워크 통신의 단계를 나누어 다양한 네트워크 장비와 프로토콜 간 호환을 용이하게 하기 위해 만들어진 통신 모델입니다.각 계층은 역할과 책임이 있습니다. 예를 들어 3계층인 네트워크 계층의 책임은 송신지에서 수신지로 패킷을 전달하는 게 목적입니다.  패킷이 전송될 방향을 알려주고, 패킷이 너무 크다면 적절하게 나누어 전송하지요. 이전 글에서 살펴봤듯이, 대부분의 이더넷 네트워크에..
FTP 프로토콜의 Active모드와 Passive모드 이해하기 이번 문서에서는 FTP 프로토콜과 그 특징에 대해서 알아보겠습니다. FTP(File Tranfer Protocol) 이란?TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다.- 출처 : 위키백과 - FTP 프로토콜은 OSI 7 모델에서 애플리케이션 계층에 속하는 프로토콜로, 서버와 클라이언트 사이의 파일을 전송하기 위해 사용되는 프로토콜입니다. 원격지로 파일을 전송하는 FileZilla나 Cyberduck 같은 프로그램을 사용할 때, 이 FTP 프로토콜이 동작합니다.  FTP 프로토콜은 전송계층 하위 프로토콜로 TCP 프로토콜을 사용합니다.이때 TCP 패킷 헤더의 목적지 포트는 FTP 를 의미하는 20번과 21번이 사용됩니다. 그런데 뭔가 이상합니다. 대부분 우리가..
서브넷 마스크 쉽게 이해하기 이번 문서에서는 컴퓨터 네트워크를 공부할 때 빠지지 않고 등장하는 개념인 서브넷 마스크에 대해 알아보겠습니다. Subnet Mask서브넷 마스크는 IP 주소와 비슷한 방식으로 접두어의 길이를 표시하는 방법이다. 즉 32비트 길이의 접두어 길이만큼의 1로 시작해서, 나머지는 0으로 채우는 것이고, 4개의 숫자 형태로 표현하는 것이다.- 출처 : 위키백과 - 개념 한 줄 요약을 위해 위키백과의 설명을 빌려봤습니다만, 많이 생략되어 있어 처음 보는 사람은 이해가 어렵습니다.저는 어떤 개념이나 기술을 공부할 때 등장한 배경, 이유, 사용 사례 등을 찾아서 공부하는 편인데요, 서브넷 마스크는 어떤 이유로 등장했고, 어디에 사용되는지 알아보겠습니다. 그러기 위해서는 IP 주소에 대한 이해가 필요합니다.IP Addr..
MTU, 진짜 1500 Byte 일까? 이번 글에서는 네트워크 패킷의 Maximum TransMission Unit, 줄여서 MTU 에 대해 알아보겠습니다. MTU 란?컴퓨터 네트워킹에서, 레이어의 커뮤니케이션 프로토콜의 최대 전송 단위(maximum transmission unit, MTU)란 해당 레이어가 전송할 수 있는 최대 프로토콜 데이터 단위의 크기(바이트)이다.출처 : 위키백과 위키백과에서 설명하고 있는 대로, MTU는 해당 레이어가 전송할 수 있는 최대 프로토콜 데이터 단위의 크기 입니다. OSI 7 Layer 를 기준으로 3계층에서는 MTU, 4계층에서는 MSS(Maximum Segment Size)라고도 불립니다. 만약 보내려는 패킷이 MTU 보다 크다면 패킷을 여러 조각으로 나누어 보냅니다. 이런 행동을 Fragmentati..
L3 단의 부하분산, ECMP와 UCMP 이번 글에서는 L3 계층에서의 부하분산(이하 로드 밸런싱)을 가능하게 하는 ECMP와 UCMP 에 대해 알아보고자 합니다. 보통 로드밸런싱이라 하면 L4와 L7단의 프로토콜을 활용한 방법이 대표적이지만, L3 계층에서도 부하분산이 가능합니다. 로드밸런싱(Load Balancing)이란?로드 밸런싱이란 처리해야 할 일을 나누어 처리하는 것입니다. 비행기를 타기 전에 여행 짐을 위탁 수화물로 부칠 때,  여러 개의 창구에서 수속하는것과 같은 이치이지요.만약 창구가 1개라면 승객들은 한참 기다려야 짐을 부칠 수 있을 겁니다.하지만 대다수의 항공사의 경우 창구를 여러 개 두어 일을 처리합니다.  이와 마찬가지로 컴퓨터 공학에서도 어떤 일을 처리할 때 일을 분산시킵니다.이를 부하 분산(Load balancing)..