Network 8

Telnet Over SSL/TLS 과 SSH

안녕하세요.얼마 전에 공부하다가 문득 이런 생각이 들었습니다. "나는 잘 알려진 포트 중에서 몇 개나 알고 있을까?" 그래서 위키백과의 TCP/UDP 포트번호 문서를 찾아보다가, 992번 포트를 발견했습니다. 이 포트를 사용하는 프로토콜은 Telnet Over SSL/TLS, 즉 SSL/TLS 위에서 동작하는 Telnet 프로토콜이었습니다.제가 알기론 Telnet은 과거에 원격 접속을 위해 사용되는 프로토콜이고, 통신 간 평문으로 전송되기 때문에 보안에 취약하다고 알고 있었습니다. 그래서 요즘은 암호화를 제공하는 SSH 프로토콜을 사용해 원격 접속한다고 알고 있었지요.  그런데 "SSL/TLS 위에서 동작하는 Telnet이라니, 그럼 SSH 랑 다른 게 뭐지?"라는 생각이 들었고 이를 데모로 구현하며 공..

Network/L7 2024.09.12

암호화 방식과 암호화 알고리즘

안녕하세요.저번 글에서는 TLS의 연결 과정에 대해 알아봤습니다.이번 글에서는 암호화의 방식과 암호화 알고리즘에 대해서 알아보겠습니다. 암호화란?암호화(暗號化) 또는 엔크립션(encryption)은 특별한 지식을 소유한 사람들을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용하여 정보(평문을 가리킴)를 전달하는 과정이다.- 출처 : 위키백과 위키백과에서 확인할 수 있듯이, 알고리즘을 거쳐 정보를 읽기 힘들게 만드는 과정을 암호화 라고 합니다.그럼 여기서 말하는 알고리즘은 어떤 걸 의미할까요? 암호화 알고리즘은 거창한게 아닙니다. 암호화를 하기 위한 일련의 과정이지요.간단한 암호화 알고리즘을 살펴볼까요? 고대 로마의 황제인 율리우스 카이사르 때에 제정된 카이사르 암호를 예로 들어보겠습니다.카이사르 암..

Network/L4 2024.09.09

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 통칭해 ..

Network/L4 2024.09.07

TCP 와 TLS의 동작 원리 #1

안녕하세요.이번 글에서는 전송계층 프로토콜인 TCP의 Handshake에 대해 알아보겠습니다.다음 글에서는 패킷 분석 프로그램인 Wireshark 를 사용해 실제 연결 및 종료 과정을 알아보겠습니다.  이를 이해하기 위해 먼저 OSI 7 Layer 에 대해 간단히 알아보겠습니다. OSI 7 Layer  OSI 7 Layer 는 네트워크 통신의 단계를 나누어 다양한 네트워크 장비와 프로토콜 간 호환을 용이하게 하기 위해 만들어진 통신 모델입니다.각 계층은 역할과 책임이 있습니다. 예를 들어 3계층인 네트워크 계층의 책임은 송신지에서 수신지로 패킷을 전달하는 게 목적입니다.  패킷이 전송될 방향을 알려주고, 패킷이 너무 크다면 적절하게 나누어 전송하지요. 이전 글에서 살펴봤듯이, 대부분의 이더넷 네트워크에..

Network/L4 2024.09.06

FTP 프로토콜의 Active모드와 Passive모드 이해하기

이번 문서에서는 FTP 프로토콜과 그 특징에 대해서 알아보겠습니다. FTP(File Tranfer Protocol) 이란?TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다.- 출처 : 위키백과 - FTP 프로토콜은 OSI 7 모델에서 애플리케이션 계층에 속하는 프로토콜로, 서버와 클라이언트 사이의 파일을 전송하기 위해 사용되는 프로토콜입니다. 원격지로 파일을 전송하는 FileZilla나 Cyberduck 같은 프로그램을 사용할 때, 이 FTP 프로토콜이 동작합니다.  FTP 프로토콜은 전송계층 하위 프로토콜로 TCP 프로토콜을 사용합니다.이때 TCP 패킷 헤더의 목적지 포트는 FTP 를 의미하는 20번과 21번이 사용됩니다. 그런데 뭔가 이상합니다. 대부분 우리가..

Network/L7 2024.08.30

서브넷 마스크 쉽게 이해하기

이번 문서에서는 컴퓨터 네트워크를 공부할 때 빠지지 않고 등장하는 개념인 서브넷 마스크에 대해 알아보겠습니다. Subnet Mask서브넷 마스크는 IP 주소와 비슷한 방식으로 접두어의 길이를 표시하는 방법이다. 즉 32비트 길이의 접두어 길이만큼의 1로 시작해서, 나머지는 0으로 채우는 것이고, 4개의 숫자 형태로 표현하는 것이다.- 출처 : 위키백과 - 개념 한 줄 요약을 위해 위키백과의 설명을 빌려봤습니다만, 많이 생략되어 있어 처음 보는 사람은 이해가 어렵습니다.저는 어떤 개념이나 기술을 공부할 때 등장한 배경, 이유, 사용 사례 등을 찾아서 공부하는 편인데요, 서브넷 마스크는 어떤 이유로 등장했고, 어디에 사용되는지 알아보겠습니다. 그러기 위해서는 IP 주소에 대한 이해가 필요합니다.IP Addr..

Network/L3 2024.08.22

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..

Network/L3 2024.08.14

L3 단의 부하분산, ECMP와 UCMP

이번 글에서는 L3 계층에서의 부하분산(이하 로드 밸런싱)을 가능하게 하는 ECMP와 UCMP 에 대해 알아보고자 합니다. 보통 로드밸런싱이라 하면 L4와 L7단의 프로토콜을 활용한 방법이 대표적이지만, L3 계층에서도 부하분산이 가능합니다. 로드밸런싱(Load Balancing)이란?로드 밸런싱이란 처리해야 할 일을 나누어 처리하는 것입니다. 비행기를 타기 전에 여행 짐을 위탁 수화물로 부칠 때,  여러 개의 창구에서 수속하는것과 같은 이치이지요.만약 창구가 1개라면 승객들은 한참 기다려야 짐을 부칠 수 있을 겁니다.하지만 대다수의 항공사의 경우 창구를 여러 개 두어 일을 처리합니다.  이와 마찬가지로 컴퓨터 공학에서도 어떤 일을 처리할 때 일을 분산시킵니다.이를 부하 분산(Load balancing)..

Network/L3 2024.08.11