2024-05-28-화 수정
그 놈의 가을 외로움, 술, 친일독재잔당 검열 때문에 공부해서 정리한 내용을 다 날렸다. 간신히 기억에 의지해서 몇 글자 적어 본다. 인터넷을 검색하면 인터넷, 네트워크에 대해 나오겠지만 수준이 맞지 않으면 이해하긴 어려울 것이다. 이 글은 컴퓨터와 관계없는 이공계, 인문계, 일반인을 위해 정리하는 것이다. 이를 이해하면 친일독재잔당의 선동을 간파할 수 있을 것이다.
컴퓨터 전공하는 사람들은 OSI 7계층을 처음에 읽을 때는 무척 어렵게 느꼈을 것이다. 그런데 이런 추상적인 표현을 이해하려면 오히려 반대로 구체적인 것을 먼저 읽는 것이 좋다. OSI 7계층이란 서로 다른 업체에서 설계한 서로 다른 종류의 네트워크를 연결하기 위해서 서로가 지켜야 할 추상적인 권장 사항이라서 구체적인 네트워크를 모르면 이해하기 힘들다. 우리가 흔히 보는 네트워크로 OSI 7계층을 설명하겠다.
※ OSI = 개방형 시스템 간 상호 접속
(Open Systems Interconnection Reference Model = 열린 체계 상호 연결 참고 모델)
(Open Systems Interconnection Reference Model = 열린 체계 상호 연결 참고 모델)
0. 계층이란?
회사에서 사장, 이사, 부장, 과장, 대리, 사원, 노동자가 있는 것처럼 역할을 분담하는 프로그램(소프트웨어)과 하드웨어 계급이 있다. 상위 계층은 하위 계층을 이용해서 일을 처리한다. 예를 들어 이몽룡이 성춘향과 대화하기 위해서 종놈을 시켜 편지를 전달하는 경우를 상상하면 된다. 종놈이 종년을 만나 편지를 전달하면 종년은 편지를 성춘향에게 올리는 것이다. 종놈과 종년은 내용을 모르고 전달만 하고, 내용을 알고 대화하는 것은 성춘향과 이몽룡이다. 만약 중간에 잃어버릴 경우를 대비해서 편지를 암호화하기로 작정했다면 암호 전문가를 고용해서 중간에 암호문을 만들어 보낼 것이다. 그럼 이 일은 3계층의 협력 작업이 된다.
일단 설명을 이해하려면 위의 그림을 잘 기억하고 있어야 한다. 그림의 각 부분을 비유적으로 설명할 것이다. 그럼 전문적 이해는 못 해도 어떻게 동작하는지 알 수 있기 때문에 친일독재잔당과 국정원의 선동을 간파할 수 있다.
인터넷은 6각형의 그물망으로 표현했다. 복잡한 네트워크 연결을 단순화시킨 것이다. 보통 다른 그림에선 두루뭉술한 구름으로 표현한다. 마름모는 컴퓨터에 해당한다. 사각형은 허브라는 교환기다. 네트워크의 동그란 원은 라우터라는 교환기다.
허브란 바퀴의 중앙 부분을 말하는 것이고 정보가 여기 모였다가 흩어지기 때문에 붙은 이름이다. 라우터란 루트(길)을 찾아 준다고 해서 붙은 이름이다. 또는 발송담당, 경주마의 의미가 있다. 역참 제도에선 말이 달려 우편물을 전한다. 즉, 네트워크에서 어느 방향으로 데이터를 보낼 것인지 결정한다는 말이다. 게이트웨이(대문)는 지역(건물)의 LAN(지역 네트워크)에서 인터넷에 접속하는 지점을 말한다. 말 그대로 대문이다.
컴퓨터 A에서 서버 B까지의 이동 과정에서 거치는 사건들을 아래에서 대충 추적할 것이다.
인터넷은 6각형의 그물망으로 표현했다. 복잡한 네트워크 연결을 단순화시킨 것이다. 보통 다른 그림에선 두루뭉술한 구름으로 표현한다. 마름모는 컴퓨터에 해당한다. 사각형은 허브라는 교환기다. 네트워크의 동그란 원은 라우터라는 교환기다.
허브란 바퀴의 중앙 부분을 말하는 것이고 정보가 여기 모였다가 흩어지기 때문에 붙은 이름이다. 라우터란 루트(길)을 찾아 준다고 해서 붙은 이름이다. 또는 발송담당, 경주마의 의미가 있다. 역참 제도에선 말이 달려 우편물을 전한다. 즉, 네트워크에서 어느 방향으로 데이터를 보낼 것인지 결정한다는 말이다. 게이트웨이(대문)는 지역(건물)의 LAN(지역 네트워크)에서 인터넷에 접속하는 지점을 말한다. 말 그대로 대문이다.
컴퓨터 A에서 서버 B까지의 이동 과정에서 거치는 사건들을 아래에서 대충 추적할 것이다.
1. 물리 계층(1층)
이 층은 노동자에 해당하는 층이다. 노동자는 바로 옆 건물까지 데이터(0과 1의 나열)를 연결하는 역할만 한다. 다시 말해서 하드웨어 연결 규약을 말한다. 0과 1의 데이터는 유선 신호, 무선 신호, 광 신호로 전달할 수 있으니 하드웨어적인 규약이 필요함을 알 것이다. 직렬, 병렬, 아날로그, 디지털 등 통신 방식이 다양하니 서로 맞추어야 할 필요가 있다. 좀 더 구체적으로 말해서 PC에 꼽는 LAN Card와 연결 Cable의 규약을 말한다.
1층포장(내용이 뭔지 몰라도)
예를 들어 여기 신호는 단순한 숫자 0과 1을 대신하는 전기 신호이다. 고로 신호의 시작 지점을 찾는 것이 중요하다. 예고 없이 신호가 발신하기 때문에 항상 하드웨어는 귀를 열고 있어야 한다. 처음엔 0과 1의 반복 나열이 들어온다. 이건 뚜/삐~하는 예비신호이다. 이 신호를 통해 통신 속도를 맞춘다. 즉 상대의 말하는 속도를 파악하는 것이다. 그 다음에 내용의 처음을 알리는 특수한 패턴(예:꼴까닥)이 나온다. 그 이후부터가 데이터란 의미다. 이런 규칙을 프로토콜이라고 한다.
0과 1을 나타내는 신호는 전압(유선), 전파(무선), 빛(광섬유), 구멍, 기계적 요철 등 여러 가지 통로와 방법으로 전달된다. 0과 1을 나타내는 표현도 장단(길고 짧게, 모스 부호), 고저(높고 낮게, FM방식?), 강약(세고 약하게, AM방식?)으로 나타낼 수 있다. 예를 들어 뚜~는 1이고 뚜뚜는 0일 수 있다. 여기선 숫자 0과 1을 표현하고 전달/저장하는 것이 목적이다.
보통 보안이 중요한 국정원, 국가 기관, 은행, 대기업 등에선 인터넷과 내부 네트워크(LAN)를 물리적으로 구분한다. 다시 말해서 외부에서 해킹하려고 해도 네트워크 자체가 분리 되어 있으면 불가능하다. 간첩이 침투해서 직접 해킹하거나 내부 배신자가 없다면 불가능하다. 고로 이런 기관이 해킹 당했다고 할 경우 그건 내부 배신자일 가능성이 크다.
예를 들어 여기 신호는 단순한 숫자 0과 1을 대신하는 전기 신호이다. 고로 신호의 시작 지점을 찾는 것이 중요하다. 예고 없이 신호가 발신하기 때문에 항상 하드웨어는 귀를 열고 있어야 한다. 처음엔 0과 1의 반복 나열이 들어온다. 이건 뚜/삐~하는 예비신호이다. 이 신호를 통해 통신 속도를 맞춘다. 즉 상대의 말하는 속도를 파악하는 것이다. 그 다음에 내용의 처음을 알리는 특수한 패턴(예:꼴까닥)이 나온다. 그 이후부터가 데이터란 의미다. 이런 규칙을 프로토콜이라고 한다.
0과 1을 나타내는 신호는 전압(유선), 전파(무선), 빛(광섬유), 구멍, 기계적 요철 등 여러 가지 통로와 방법으로 전달된다. 0과 1을 나타내는 표현도 장단(길고 짧게, 모스 부호), 고저(높고 낮게, FM방식?), 강약(세고 약하게, AM방식?)으로 나타낼 수 있다. 예를 들어 뚜~는 1이고 뚜뚜는 0일 수 있다. 여기선 숫자 0과 1을 표현하고 전달/저장하는 것이 목적이다.
보통 보안이 중요한 국정원, 국가 기관, 은행, 대기업 등에선 인터넷과 내부 네트워크(LAN)를 물리적으로 구분한다. 다시 말해서 외부에서 해킹하려고 해도 네트워크 자체가 분리 되어 있으면 불가능하다. 간첩이 침투해서 직접 해킹하거나 내부 배신자가 없다면 불가능하다. 고로 이런 기관이 해킹 당했다고 할 경우 그건 내부 배신자일 가능성이 크다.
2. 데이터 링크 계층(2층)
물리 계층은 말 그대로 전기적으로 연결된 옆 기계까지 직접 전송을 담당한 것이니까 송신자 수신자 구분이 없다. 종놈과 종년에 해당하는 기능이다. 여러 컴퓨터가 연결 되었을 때 송신자와 수신자 구분을 해서 보내는 기능을 이 계층에서 담당한다. 성춘향과 이몽룡에 해당한다. 바로 중간에서 교환기, 중개소, 뚜쟁이 역할을 하는 것이 허브이다. 그래서 허브도 2계층까지 기능이 구현되어 있다. 이런 허브를 스위칭 허브라고 부르고 전화 교환기와 비슷하다. 주소를 보고 신호를 보낼 통로를 결정한다.
1계층의 0과 1의 나열을 일정한 단위로 나누게 된다. 예를 들어 8비트(바이트)라고 하면 0~255까지 숫자를 표현하게 된다. 이제 0과 1의 나열이 아닌 0~255의 숫자를 전달하게 되는 것이다. 그래서 디지털(숫자의) 세계라고 부른다. 여기에 오류가 발생했을 때를 대비해서 몇 비트를 더 붙여 오류 정정을 하도록 만든다. 이런 바이트 단위를 몇 개 단위로 전송하도록 약속한다. 비유하면 비트는 획이고, 바이트는 원고지 한 칸의 숫자이고, 200자 원고 단위로 전송하고 저장한다는 것이다. 이런 개념을 두고 페이지, 섹터, 블록, 클러스터 등 여러 이름으로 부른다. 전송이 끝나면 종료 신호(예:꿀꺽)를 보낸다.
1계층의 0과 1의 나열을 일정한 단위로 나누게 된다. 예를 들어 8비트(바이트)라고 하면 0~255까지 숫자를 표현하게 된다. 이제 0과 1의 나열이 아닌 0~255의 숫자를 전달하게 되는 것이다. 그래서 디지털(숫자의) 세계라고 부른다. 여기에 오류가 발생했을 때를 대비해서 몇 비트를 더 붙여 오류 정정을 하도록 만든다. 이런 바이트 단위를 몇 개 단위로 전송하도록 약속한다. 비유하면 비트는 획이고, 바이트는 원고지 한 칸의 숫자이고, 200자 원고 단위로 전송하고 저장한다는 것이다. 이런 개념을 두고 페이지, 섹터, 블록, 클러스터 등 여러 이름으로 부른다. 전송이 끝나면 종료 신호(예:꿀꺽)를 보낸다.
송신자, 수신자 구분은 MAC 주소라는 하드웨어 주소로 구분한다. 이것은 LAN Card에 박혀 있다. 만약 이 주소가 동일한 LAN Card가 같은 LAN 안에 있다면 충돌이 나서 통신(교통)이 꼬이게 된다. 1계층에서 보내는 숫자의 나열 중에서 앞부분에 송신자와 수신자 주소를 넣는다. 이 신호를 허브가 받아 주소를 해석하고 그 주소의 컴퓨터가 연결된 쪽으로 신호를 그대로 보낸다. 그럼 허브는 어떻게 주소를 다 외우고 있을까? 컴퓨터가 허브에 연결되면 자기 주소를 허브에 알려준다.
1층포장(2층포장<내용이 뭔지 몰라도>)
허브를 이용한 도청(해킹)이 가능하다. 2계층 허브는 교환기 역할을 하지만 1계층 허브는 방송기 역할을 한다. 즉, 한 곳에서 받은 내용을 모든 방향으로 방송하는 것이다. 1계층 허브가 원래 허브 기능이다. 그래서 네트워크 카드는 항상 귀를 열고 있다가 자신에게 온 것만 받아 위로 보낸다. 고로 2계층 허브 기능을 마비시키면 1계층 허브로 동작하게 된다. 그럼 도청이 가능해진다. 엉터리 MAC 주소를 무수히 허브로 보내면 허브가 뻗어 버리고 방송 장비가 된다. 또 다른 방법으로는 직접적으로 허브 포트에 신호 복사 장치를 꼽는 것이다.
비슷한 원리로 저장 장치인 하드디스크, CD, DVD 등에서도 1계층처럼 0과 1을 표현하고 저장하는 기능이 있고, 이를 숫자(0~255)로 바꾸고 이를 모아 덩어리(페이지/블록/클러스터/섹터)로 관리하며 그 위치(주소)를 관리하는 2계층 같은 기능이 있다. 이 2개 계층은 하드웨어적으로 구현되어 있고 7계층을 단순하게 3계층(상중하)으로 보면 1+2계층은 하위 계층에 속한다.
비슷한 원리로 저장 장치인 하드디스크, CD, DVD 등에서도 1계층처럼 0과 1을 표현하고 저장하는 기능이 있고, 이를 숫자(0~255)로 바꾸고 이를 모아 덩어리(페이지/블록/클러스터/섹터)로 관리하며 그 위치(주소)를 관리하는 2계층 같은 기능이 있다. 이 2개 계층은 하드웨어적으로 구현되어 있고 7계층을 단순하게 3계층(상중하)으로 보면 1+2계층은 하위 계층에 속한다.
3. 네트워크 계층(3층)
데이터 링크 계층만으로 지역 네트워크(LAN)가 된다. 이것들을 모아서 인터넷을 만들 수도 있겠으나 서로 설계가 다른 다양한 네트워크가 있어 직접 연결이 불가능하다. 그래서 하나의 계층이 더 추가 되었는데 그게 3계층이다. 여기선 송신자, 수신자 구분을 위해 IP 주소라는 것을 추가로 사용한다. MAC주소와 다를 것은 없다. 단지 소프트웨어적으로 붙인 주소라는 것이다. 비유를 하면 MAC 주소는 전화기에 박힌 번호이고, IP 주소는 전화번호에 해당한다. 전화기를 바꾸어도 같은 전화번호를 가지고 다니듯이 IP 주소도 그렇게 할당한 번호이다.
이제 인터넷으로 접속을 하기 때문에 LAN을 벗어나게 된다. 그래서 게이트웨이(대문)을 통과하게 된다. 이것을 통과하면 전혀 다른 네트워크 세계로 가게 된다. 고로 하드웨어적, 소프트웨어적인 번역이 필요하게 된다. 예를 들어 전기 신호에서 광 신호로 바꾸거나 통신 규칙을 적절하게 번역하는 것이다. 그 이후부터는 인터넷의 라우터를 거쳐 목표지점에 도달하게 된다. 라우터는 IP주소를 이해하기 때문에 3계층까지 구현되어 있다. 1계층 정보의 앞부분에 송신 수신 MAC 주소를 붙였듯이, 2계층이 전달하는 내용의 앞에 송신 수신 IP 주소가 붙어 있다.
비유하면 1계층에선 무조건 옆 건물로 편지 배달을 한 것이고, 2계층에서 봉투 겉을 보니 MAC 주소로 송수신자가 적혀 있는 것이다. 3계층에서 봉투를 뜯어 내용을 보니 거기 IP 주소로 송수신자가 적혀 있는 것이다. 허브와 달리 라우터는 여러 길로 편지를 배달할 수 있기 때문에 적절한 길을 선택해야 한다. 교통 상황이 좋은 쪽이거나 목표지점에 가장 빨리 도달할 수 있는 길을 선택하기 때문에 라우터는 전체 지도와 교통 상황을 알고 있어야 한다. 그래서 허브보다 복잡하다. 또한 편지가 도달하지 못 하고 인터넷을 방황하는 경우를 대비해서 수명을 정해 놓는다. 인접 라우터로 건너가면 수명이 1씩 줄어든다.
1층포장(2층포장<3층포장[내용이 뭔지 몰라도]>)
전화 보이스 피싱 사기처럼 인터넷의 IP 주소도 가짜로 기입할 수가 있다. 경찰이 보이스 피싱 사기범을 잡기 힘든 이유는 전화번호가 가짜이기 때문이다. 마찬가지로 자기 IP로 해킹하는 바보는 없기 때문에 북한으로 추정되는 IP라는 헛소리가 뉴스에 나오면 친일독재잔당과 국정원의 선동 뉴스라는 것을 알아야 한다. 이건 주로 노인, 주부, 하층민, 장사꾼 등 무식한 사람들을 속이기 위해 하는 짓이다.
※ 비슷한 것으로 전화 번호 도용하는 스미싱이란 것이 있다. 남의 전화 번호로 광고 문자나 악성 문자를 보내는 것이다. (나도 당해 봤지) 전화 번호도 이렇게 속일 수 있는데 IP 주소를 못 속이겠는가?
※ 비슷한 것으로 전화 번호 도용하는 스미싱이란 것이 있다. 남의 전화 번호로 광고 문자나 악성 문자를 보내는 것이다. (나도 당해 봤지) 전화 번호도 이렇게 속일 수 있는데 IP 주소를 못 속이겠는가?
IP주소도 전화번호처럼 앞자리는 지역번호(네트워크 번호)이고 뒷자리는 개인번호(PC 할당 번호)이다. 네트워크 번호로 지역을 추정할 수는 있는데 문제는 지역 네트워크 안에서 개인번호는 고정이 아니다. 우리가 PC 연결할 때마다 공유기가 IP주소를 할당해 주기 때문에 항상 같은 번호가 아니라는 것이다. 고정번호로 할 수도 있으나 관리가 힘들어서 보통 임의로 할당한다. IP주소가 부족하기 때문에 편법을 쓰기도 한다. 외부에서 보면 모든 PC가 같은 IP 주소로 보인다. 단지 포트 번호로 PC를 구분한다. 이 공유 IP + Port 번호를 지역 내부 IP로 번역한다.
휴대전화, IP주소, 일반전화 모두 경찰이 마음만 먹으면 즉석에서 위치 추적이 가능하다. 단지 IP주소는 그 지역 네트워크까지만 의미가 있고, 휴대전화는 중개타워 몇 백 미터 범위까지만 의미가 있다. 고로 정확한 위치 추적은 안 된다. 해킹을 하는 놈이나 보이스 피싱 하는 놈이 자기 번호로 할 리는 절대 없기 때문에 이건 뉴스를 보자마자 가짜임을 아는 것이다. 친일독재잔당과 국정원의 선동을 잘 기억하고 있다가 나중에 복수해야 한다. 복수를 하지 않고 성인군자처럼 계속 당하면 악당이 승승장구할 것이다.
보통 우리가 전화번호와 사람 이름을 연결하듯이 도메인 네임과 IP주소를 묶을 수 있다. 이 도메인 네임(www.zoto-korea.com)과 IP주소 사이의 번역을 해 주는 것이 DNS이다. 말하자면 114나 전화번호부 같은 역할을 하는 것이다. 이 DNS에 이름을 물어 보면 IP주소를 알려준다. 이 번역은 웹 브라우저가 알아서 해 주기 때문에 우린 신경 쓰지 않는다.
4. 전송 계층(4층)
앞의 계층만 있어도 충분한 것 아니냐고 생각할 수 있을 것이다. 이 계층은 말 그대로 전송을 책임진다. 무슨 말인고 하면 구체적인 예를 들어 TCP 같은 규약은 큰 데이터를 여러 조각으로 나누어 전송하기 때문에 상대가 받았는지 안 받았는지 확인도 하고 순서대로 다시 조립하는 역할도 한다. 일단 분해된 조각들은 인터넷으로 들어가면 여러 경로로 흩어져 전송되기 때문에 도달하는 순서가 뒤바뀔 수도 있고 일부 전송 실패가 될 수도 있다. 또한 PC에서 A, B, C 3개 프로그램이 각자의 데이터를 전송한다고 할 경우 이 프로그램들을 포트 번호로 구분한다. 고로 포트 번호, 패킷(꾸러미) 순서 등을 고려해서 조립해야 하는 것이다. IP주소가 건물 전체 전화번호라면 포트 번호는 그 속의 호실의 내선 번호라고 보면 된다.
1층포장(2층포장<3층포장[4층포장{내용이 뭔지 몰라도}]>)
또 다른 프로토콜(통신 규약 = 대화법)로 UDP가 있다. 이것 외에도 네트워크에 따라 다양한 프로토콜이 있는데 우리가 흔히 보는 예로 TCP/UDP를 든 것이다. UDP 경우는 방송용이다. 상대가 받았는지 안 받았는지 확인하지 않는다. 일방적으로 보내기만 한다. 고로 UDP를 사용해서 통신을 할 때는 프로그래머가 제대로 도달했는지 확인하는 기능을 추가해야 한다.
포트 번호는 프로그램을 구분하는 번호이다. 예를 들어 웹 브라우저가 사용하는 포트 번호가 정해져 있다. 인터넷에서 포트들의 의미를 검색할 수 있다. 이처럼 유명한 프로그램들은 지들이 장악한 포트번호가 있다. 그 외의 포트 번호는 임시로 사용하는 번호로 바이러스 같은 프로그램들이 이용할 수가 있다. 주인 허락도 없이 비밀 포트를 열어서 해커의 명령을 기다리고 있을 수 있다.
포트 번호는 프로그램을 구분하는 번호이다. 예를 들어 웹 브라우저가 사용하는 포트 번호가 정해져 있다. 인터넷에서 포트들의 의미를 검색할 수 있다. 이처럼 유명한 프로그램들은 지들이 장악한 포트번호가 있다. 그 외의 포트 번호는 임시로 사용하는 번호로 바이러스 같은 프로그램들이 이용할 수가 있다. 주인 허락도 없이 비밀 포트를 열어서 해커의 명령을 기다리고 있을 수 있다.
진정한 도청(해킹)을 하려면 이 계층에서 한다. 어떤 IP 주소에 어떤 Port 번호인지 나오기 때문에 여러 프로그램들의 마구 섞인 대화가 아닌 두 프로그램 사이의 대화를 도청할 수가 있다. 이 도청은 좀 어렵다. 남의 대화에 몰래 끼어들어서 엿들어야 하는데 쉽지 않다. 예를 들어 A가 B에게 보내는 내용을 내가 중간에 가로채서 대신 B에게 보내야 한다. 반대로 B의 응답도 중간에 가로채서 대신 A에게 보내야 한다. 이 때 끼어드는 타이밍이 중요하다. 이런 간첩을 프락시(프락치)라고 한다.
※프락치는 러시아어 발음
TCP의 대화 내용이란 것이 이런 식이다. (정확한 내용은 기억이 나지 않는다.)
A: “여보세요?”
B: “네!”
A: “자료 보내요?”
B: “네!”
A: 자료전송...
A: “전송 완료!”
B: “수신 완료!”
A: “끊어요?”
B: “네!”
그러니까 이런 대화 사이에 끼어들어야 한다. 운이 좋아야 한다.
TCP의 대화 내용이란 것이 이런 식이다. (정확한 내용은 기억이 나지 않는다.)
A: “여보세요?”
B: “네!”
A: “자료 보내요?”
B: “네!”
A: 자료전송...
A: “전송 완료!”
B: “수신 완료!”
A: “끊어요?”
B: “네!”
그러니까 이런 대화 사이에 끼어들어야 한다. 운이 좋아야 한다.
5. 세션 계층(5층)
세션이란 모임이란 뜻이 있다. 이것은 전화 연결처럼 상대와의 연결을 유지하는 것을 담당한다. 그런데 이 연결 유지 기능이 TCP에 있기 때문에 4계층과 5계층의 역할 구분이 모호하다. 4계층이 한 번에 한 사람만 말을 할 수 있는 일방통행 같다면, 5계층이 마치 양자가 동시 통화하는 것처럼 보이게 만들어 줄 수 있다. 2개의 포트를 열어서 하나는 듣기, 다른 하나는 말하기에 사용할 수도 있다. 세션 층이 여러 개의 포트를 동시에 사용하면 여러 사람의 대화도 가능할 것이다. 뭐 대충 그런 의미로 보이는데 이 계층을 대표하는 두드러진 특징이 없다. 대화방 만들 때 사용하나?
이렇게 3+4+5계층을 묶어 중간 계층이라고 하며, O/S 차원에서 소프트웨어적으로 기능을 제공한다. 비슷하게 하드디스크, CD, DVD 저장 장치에서 보면 O/S 차원에서 제공하는 파일 시스템과 유사하다. 파일의 목록(이름)을 관리하고, 여기엔 파일이 시작하는 페이지(블록/섹터/클러스터 등) 위치(주소)가 기록 되어 있다. 파일이 커서 여러 페이지에 기록 된다면 다음 페이지로 가라는 주소 연결이 쇠사슬처럼 이어진다. 여러 프로그램(고객)이 동시에 여러 파일을 쓰고 읽기 때문에 이를 구분해야 한다. 허나 여기까지도 송신/저장하는 내용은 여전히 숫자에 불과하다. 고객의 우편물 내용은 관심사항이 아닌 것이다.
이렇게 3+4+5계층을 묶어 중간 계층이라고 하며, O/S 차원에서 소프트웨어적으로 기능을 제공한다. 비슷하게 하드디스크, CD, DVD 저장 장치에서 보면 O/S 차원에서 제공하는 파일 시스템과 유사하다. 파일의 목록(이름)을 관리하고, 여기엔 파일이 시작하는 페이지(블록/섹터/클러스터 등) 위치(주소)가 기록 되어 있다. 파일이 커서 여러 페이지에 기록 된다면 다음 페이지로 가라는 주소 연결이 쇠사슬처럼 이어진다. 여러 프로그램(고객)이 동시에 여러 파일을 쓰고 읽기 때문에 이를 구분해야 한다. 허나 여기까지도 송신/저장하는 내용은 여전히 숫자에 불과하다. 고객의 우편물 내용은 관심사항이 아닌 것이다.
6. 표현 계층(6층)
예를 들어 우리 사장이 다른 사장에게 편지를 보낸다고 하자. 그럼 이사가 이 편지의 내용을 받아 암호화 하거나 압축을 할 수 있을 것이다. 다른 사람이 보지 못 하도록 말이다. 그런 후에 아래층으로 내려 보낼 것이다. 5층에선 여러 대화 통로를 만들어 대화를 시도할 것이다. 그럼 그 내용을 받은 4층에선 여러 조각으로 분해해서 전송할 것이다. 3층에선 그 조각을 목표지점에 배달 의뢰할 것이다. 2층과 1층은 직접 옆 기계(라우터/허브)로 배달을 담당한다.
표현 계층은 말 그대로 내용의 표현을 담당하기 때문에 문자 코드, 암호화, 압축을 담당한다. 예를 들어 문자 코드는 ASCII나 한글 코드(완성형)나 유니코드(utf-8, utf-16) 중에 어느 것인지, 암호 방법은 뭔지, 압축을 할 것인지 등이다. 이건 직접적으로 통신과 관련 있는 기능은 아니다. 마치 군대에서 통신 도청에 대비해서 암호를 사용하는 것과 비슷하다.
여기서부터는 단순히 숫자가 아닌 어떤 의미(문자/음악/사진 등)를 가지게 된다. 컴퓨터 속의 숫자(디지트)와 의미를 연결시키는 것이다. 암호책이라고 해야 할까? 숫자 99를 문자로 해석할 것인지, 음표로 해석할 것인지, 한 점의 색상과 명암으로 해석할 것인지는 여기서 결정한다.
표현 계층은 말 그대로 내용의 표현을 담당하기 때문에 문자 코드, 암호화, 압축을 담당한다. 예를 들어 문자 코드는 ASCII나 한글 코드(완성형)나 유니코드(utf-8, utf-16) 중에 어느 것인지, 암호 방법은 뭔지, 압축을 할 것인지 등이다. 이건 직접적으로 통신과 관련 있는 기능은 아니다. 마치 군대에서 통신 도청에 대비해서 암호를 사용하는 것과 비슷하다.
여기서부터는 단순히 숫자가 아닌 어떤 의미(문자/음악/사진 등)를 가지게 된다. 컴퓨터 속의 숫자(디지트)와 의미를 연결시키는 것이다. 암호책이라고 해야 할까? 숫자 99를 문자로 해석할 것인지, 음표로 해석할 것인지, 한 점의 색상과 명암으로 해석할 것인지는 여기서 결정한다.
7. 응용 계층(7층)
가장 높은 층으로 대화를 하는 당사자라고 보면 된다. 예를 들어 웹 프로그램(브라우저)에서 문서를 서로 전달한다고 해 보자. 그럼 서로 대화하는 방법(프로토콜)이 있을 것이다. 그게 HTTP이다. 예를 들어 서버에 “이런 문서 원합니다.”라고 메시지를 보내면 서버가 “여기 있습니다. 받으세요.”라고 대답할 것이다. 그런 대화법을 프로토콜이라고 하는데 웹에선 HTTP를 사용하는 것이다. 이 대화 내용은 6층으로 가서 부분적으로 암호화 되어 전송 된다. 보통 이 계층의 대화 내용(명령어)은 ASCII 문자 코드로 되어 있어서 사람이 읽어도 이해가 된다. 그러니까 7계층의 대화는 거의 사람의 대화와 비슷하다.
이렇게 6+7계층을 상위 계층이라고 부르고 보통 응용 프로그램에서 제공한다. 네트워크 통신, 하드디스크, CD/DVD의 저장 내용이 뭔지 알고 해석하는 것은 이 상위 계층에서 하는 것이다. 여기선 더 이상 숫자가 아닌 의미 있는 자료가 되는 것이다. 여기선 저장/전송 되는 파일을 하나의 연결된 내용물로 이해한다. 여기 상위 계층에선 한 권의 책으로 보이는 것이 중간 계층에선 분책이 되고 여러 경로로 전달 요청 한다. 하위 계층에선 직접 우편물을 들고 배달하는 것이다.
이렇게 6+7계층을 상위 계층이라고 부르고 보통 응용 프로그램에서 제공한다. 네트워크 통신, 하드디스크, CD/DVD의 저장 내용이 뭔지 알고 해석하는 것은 이 상위 계층에서 하는 것이다. 여기선 더 이상 숫자가 아닌 의미 있는 자료가 되는 것이다. 여기선 저장/전송 되는 파일을 하나의 연결된 내용물로 이해한다. 여기 상위 계층에선 한 권의 책으로 보이는 것이 중간 계층에선 분책이 되고 여러 경로로 전달 요청 한다. 하위 계층에선 직접 우편물을 들고 배달하는 것이다.
8. 해킹 vs 보안
대충 이런 식으로 7계층으로 역할 구분을 해서 동작을 하지만 4계층보다 높은 계층에선 계층 사이 경계가 명확한 것은 아니다. 해킹을 할 때는 4계층 아래쪽의 프로그램을 조작한다. 보통 해킹이라고 하면 도청처럼 정보를 훔치는 것을 말한다. 흔적을 남기지 않고 훔치기 때문에 해킹을 고급 기술로 본다. 반대로 시스템을 망가뜨리거나 방해하는 것은 테러에 속한다. 이건 해킹보단 쉽다.
8-1. DDos
DDos(Denial of Service attack = 서비스 거부 공격)는 과부하가 걸린 컴퓨터가 서비스 거부하는 기능을 이용한 공격이다. 그러니까 고의적으로 특정 서버에 무수히 많은 컴퓨터가 접속을 하면 그 컴퓨터가 제대로 응답을 할 수 없게 된다. 고로 서비스 거부가 발생한다. 이 무수한 컴퓨터를 좀비 컴퓨터라고 부른다. 바이러스 프로그램이 숨어 있다가 특정 시점에 동시에 특정 서버에 접속을 시도하는 것이다. 원리는 간단하다. 모두가 추석, 설에 자동차 끌고 도로로 나오는 것과 비슷하다. 도로가 마비된다. 입시 시험 후에 모두가 전화기를 들고 합격 여부를 확인하는 것도 마찬가지다. 그럼 전화망이 먹통된다. 여름에 모두가 동시에 에어컨을 키게 되면 그 순간 정전 사태가 벌어진다. 모두가 한 날에 은행 예금을 찾으러 가면 그 은행은 파산하게 된다. 이런 식의 공격은 정상적인 과정을 통해 일어나기 때문에 방어하기 힘들다. 당해도 누가 범인인지 알기 어렵다. 이 공격은 아이들이 문만 두드리고 도망가는 전법이라서 누가 두드렸는지 흔적도 남지 않는다. 문을 열면 아무도 없으니까.
8-2. Filewall
Firewall/파이어월/방화벽이라고 부르는 장치 또는 기능은 4계층에서 동작하는 방어막이다. 이건 게이트웨이(대문) 근처에 배치하는데 TCP/UDP의 Port 번호를 보고 차단하는 기능이 있다. 특정 프로그램들은 자기가 사용하는 포트 번호가 정해져 있다. 고로 그 포트 번호를 차단하면 그 프로그램은 외부와 통신이 불가능하다. 유명한 소프트웨어의 포트 번호는 이미 알려져 있다. 고로 바이러스는 이것을 피해 다른 포트를 사용할 것이다. 그런 포트들을 차단하면 바이러스는 주인의 명령을 받을 수 없다. 자기 PC의 방화벽 외에 웹브라우저로 게이트웨이 IP 주소를 접속하면 게이트웨이의 방화벽을 조절할 수 있다. 만약 서버를 외부에 노출시키려고 한다면 당연히 서버의 포트 번호를 열어야 한다. 서버 자신과 문지기 모두 말이다. 그래야 외부에서 접속할 수 있다.
보통 게이트웨이에 암호를 걸지 않기 때문에 프로그램이 게이트웨이를 해킹해서 DNS 주소를 엉뚱한 곳으로 바꿀 수 있다. 그러면 원하는 곳으로 못 가고 이상한 사이트에 접속하게 되는데 거기서 뭐라 속이면서 버튼을 누르라고 하여 바이러스를 다운로드 받아 심게 된다. 그럼 게이트웨이를 해킹하는 프로그램은 처음에 어떻게 설치할까? 어떤 웹사이트와 비슷한 이름의 사이트를 만들어 오타로 유인한 후에 뭐라 속여서 버튼을 누르게 만든다. 그렇게 설치 된 바이러스가 게이트웨이에 암호가 없으면 설정을 조작하는 것이다. 고로 정체를 알 수 없는 사이트에서 버튼 눌러 뭔가 다운로드 받을 때는 주의해야 한다.
8-3. Gateway
보통 게이트웨이에 암호를 걸지 않기 때문에 프로그램이 게이트웨이를 해킹해서 DNS 주소를 엉뚱한 곳으로 바꿀 수 있다. 그러면 원하는 곳으로 못 가고 이상한 사이트에 접속하게 되는데 거기서 뭐라 속이면서 버튼을 누르라고 하여 바이러스를 다운로드 받아 심게 된다. 그럼 게이트웨이를 해킹하는 프로그램은 처음에 어떻게 설치할까? 어떤 웹사이트와 비슷한 이름의 사이트를 만들어 오타로 유인한 후에 뭐라 속여서 버튼을 누르게 만든다. 그렇게 설치 된 바이러스가 게이트웨이에 암호가 없으면 설정을 조작하는 것이다. 고로 정체를 알 수 없는 사이트에서 버튼 눌러 뭔가 다운로드 받을 때는 주의해야 한다.
8-4. Proxy
Proxy/프락시/대리인은 Agent/에이전트/요원과 같은 말이다. 그러니까 간첩(프락치)이란 말이다. 얘는 A와 B라는 컴퓨터 사이에서 대리인 역할을 한다. 그러니까 A에겐 B처럼 보이고 B에겐 A처럼 보이는 것이다. 그래서 간첩이라고 부르는 것이다. A가 B에게 자기 정체를 숨기고 싶을 때 C라는 간첩을 이용할 수 있다. 또는 외부와 접속하지 않고 바로 같은 정보를 얻을 수 있어 속도 향상에 이용하기도 한다. C가 최근의 내용을 바로 알려 주기 때문이다. 또는 내용 검열에 이용한다. C가 내용을 보고 차단하는 것이다. 주로 7계층에서 동작한다. 7계층에서 봐야 모든 내용이 조립된 완전한 상태를 알 수 있기 때문이다.
※ 국정원 (아마 군대도) 경우는 불법적 명령이라도 따르도록 되어 있다. 그렇게 하는 사람만 쓰고, 그렇게 하도록 훈련 받으니까. 그렇게 안 하면 밥줄 끊어지니까. 그래서 명령을 내린 자가 나쁘니까 명령을 수행한 자에겐 책임을 묻지 않을까? 안 그렇거든. 법에선 다 처벌 한다. 항상 자살하는 건 명령을 따른 쪽이다. 꼬리 자르기라고 하지. 하급 공무원만 감옥 가게 된다. 제발 공무원들에게 불법 명령 내리지 말라고, 깽판썅놈도 문디 쪽발이 좃빨이 노예 자슥들아. 애들 불쌍하지도 않냐? 너희는 도대체 얼마나 많은 사람들을 죽이는 거니?
9. 무선 보안
무선 LAN은 블루투스, 휴대폰, 라디오, 무전기와 같은 무선 통신이기 때문에 공중파 방송과 같은 것이라서 도청이 가능하다. 그래서 내용 전송에 암호화 기술을 사용한다. 내부 유선 LAN과 무선 LAN이 연결 되어 있을 때는 무선 LAN을 통해 내부 유선 LAN에 침투할 수가 있다. 고로 무선 LAN에 암호를 걸어 두어야 한다. 황당하게도 PC나 휴대폰이나 암호를 걸라고 경고를 하지 않는다. 디폴트가 암호 없음이다. 그러니까 무지한 사용자가 암호를 걸지 않으면 무선으로 바로 옆에서 해킹할 수 있다.
자세한 내용은 모두 까먹었는데 이 정도만 알아도 대충 어떻게 동작하는지 이해할 것이다. 인터넷은 우편배달과 흡사한 방식으로 데이터를 전송한다. 고로 전송이 필요할 때만 연결하고 끊는다. 그런데 전화망은 실시간 전송이 필요하기 때문에 물리적 연결 상태를 유지한다. 다시 말해서 두 사람 사이의 도로는 대화 내용이 없어도 비워두는 식이다. 요즘 나오는 휴대폰의 LTE란 것은 사용하지 않는 도로를 다른 데이터 통신에 빌려 주는 방식이다. 그래서 데이터 통신 속도가 빠르다고 하는 것이다. 새벽에 빈 도로를 질주하는 것과 비슷하다. 인터넷과 전화망의 잡종이라고 해야 할까?
원전 해킹에 대해선 여러 가지 가능성이 있다. 정말 외국의 반핵 단체가 해킹했을 수도 있고, 아니면 국내 반핵 여론을 죽이기 위해서 국세충이 자작극을 벌인 것일 수도 있다. 북한 입장에서 이 시점에 남한 원전을 해킹하는 것이 무슨 이득이 있을까? 만약 이득이 있다면 남한 친일독재잔당이 북한 김씨세습독재에 협력 요청을 했을 수도 있다. 돈 줄 테니까 해킹 좀 해 달라고 말이다. 옛날에 친일독재잔당이 실제로 북풍 요청을 한 적이 있지 않나? 그러니까 남한 독재 잔당과 북한 세습 독재는 공생관계란 말이지. 둘 다 우리의 적이다. 흔히 알려진 죄수의 딜레마를 적용하면 다음과 같은 4가지 경우가 가능하다.
- 서로 적대적 → 양자 1당 독재 유지 (박정희가 원했던 구도이다.)
- 서로 협력적 → 통일 → 양자 권력 포기 (남북 국민이 원하는 구도이다.)
- 남한 퍼주기 + 북한 받기 → 남한 정권 교체
- 북한 퍼주기 + 남한 받기 → 북한 정권 몰락
고로 서로 암묵적으로 협력하여 적대적 관계를 유지하는 것이 서로(김씨세습독재, 친일독재잔당)에게 이익이다. 남북이 민주화 되지 않으면 통일은 없다.
그리고 원전에 대한 상식이다.
- 안전하지 않다. 대형 사고만 평균 8년마다 3번 터졌다. (체르노빌, 스리마일, 후쿠시마)
- 깨끗하지 않다. 다 쓴 연료가 방사성 붕괴 하는데 긴 건 반감기가 1만 년이 넘는다.
- 저렴하지 않다. 연료비만 싸고, 토지 구입, 건설, 유지, 핵폐기물 관리 다 비싸다.
원전을 쓰면 쓸수록 핵폐기물 계속 쌓인다. 화장실에 똥이 차면 치우기라도 하지. 얘는 치우지도 못 한다고. 러시아, 일본처럼 바다에 막 뿌려? 다 함께 나눠 마실까?
정보보안 전문가를 꿈꾸는 취업준비생 입니다. OSI7 Layer와 해킹에 관련되서 계념이 잘 이해가 안갔었는데 이글을 통해 많은 도움을 받고 갑니다. 감사합니다.
답글삭제고수..
답글삭제