SNMP / SMTP - POP3, IMAP . PGP, S/MIME

2017. 7. 10. 17:31NetworkHacking/Network




<1> 간이 망 관리 프로토콜 ( Simple Network Management Protocol )

- IP네트워크 상의 장치로부터 정보를 수집 및 관리, 장치의 동작을 변경하는 데 사용하는 인터넷 표준 프로토콜

- 대표적인 장치에는 라우터, 스위치, 서버, 워크스테이션, 프린터, 모뎀 랙 등이 있다

- 네트워크 모니터링의 목적으로 네트워크 관리에서 널리 사용되어 진다

- 하나 이상의 관리 컴퓨터(매니저)는 컴퓨터 네트워크에서 호스트나 장치들의 그룹(에이전트들)을 감시하고 관리한다

- 에이전트( Agent ) : 허브, 라우터, 스위치, 브리지, 호스트 등등 ( 관리되는 장치에 탑재되는 서버 형태의 모듈들 )



[ SNMP 구성 ]


SNMP는 SMI , MIB 정보 구조를 설명하는 두개의 프로토콜과 함께 사용한다

SMI ( Structure of Management Information )

- MIB 객체와 모듈이 구성될 때 지켜야 할 규칙과 공통된 방식을 정의한다

MIB ( Management Information Base )

- 어떠한 장비가 가지는 정보 객체의 집합

=> SNMP프로토콜이 네트워크 장비의 현 상태를 변수로 옮기고 MIB는 SMI규칙에 따라 이 변수의 의미를 정의한다



[ 접근 권한 ]

SNMPv1 - 읽기 / 쓰기 / 읽고쓰기 / 접근금지

SNMPv2 - 계층적 5단계 구조로써 상위계층은 하위계층의 권한을 포함한다

* 5단계 생성 읽기 ( 읽기/쓰기/생성 )

* 4단계 읽고 쓰기 ( 읽기/쓰기 )

* 3단계 읽기 ( 읽기만 )

* 2단계 통지 전용

* 1단계 접근금지



[ SNMP 동작과정 ]


Manager는 Client에 위치하고 Agent는 Server쪽에 위치한다


1) Manager는 Agent에게 관리정보 요청 = GetRequest메시지 전달 ( Manager의 랜덤포트 -> Agent의 161번포트에 도착 )

2) Agent는 관리정보(MIB) 데이터를 Manager에게 전송 = Response메시지 전달 ( Agent 161 Port -> Manager RandomPort )

3) Manager는 해당 데이터를 통해서 관리역할을 수행한다 = Response 메시지 수신 후 처리


* GetRequest            Manager가 Agent에게 정보를 요청할 때 하나 이상의 변수를 요청한다 / 관리정보 검색 

* GetNextRequest      여러 개의 관리 객체를 순서적으로 연속하여 참조할 때 사용한다 / 관리정보 연속 검색

* GetBulkRequest       대형 변수 테이블을 한꺼번에 요청할 때 사용한다

* SetRequest             Manager가 객체(MIB data)의 값을 변경할 때 사용한다 / 변수 써넣기 or Agent의 변수 변경하기

* Response               Agent가 Manager의 요청을 응답할 때 사용한다


* InformRequest        지역 MIB를 묘사하는 여러 관리 노드 상호간의 메세지

* Trap                     Agent가 예외동작, 예상치 못한 장애등의 발생을 알린다

* Report                  Maganer들간에 어떠한 오류의 유형들을 보고한다 ( 현재는 미사용 )





<2> 간이 우편 전송 프로토콜 ( Simple Mail Tranfer Protocol ) = 전자메일

- 인터넷에서 이메일을 보내기 위해서 이용되는 프로토콜로써, TCP포트번호 25번을 사용한다

- 메일 서버간의 송수신뿐만 아니라, 메일 클라이언트에서 메일 서버로 메일을 보낼 때 사용되기도 한다


[ SMTP 동작과정 ]

Client -> Port 25 -> SMTP Server    // 메일의 해당 모든 데이터를 확인하는 ' 대화 ' 를 한다

SMTP Server -> 다른 수신 Server        // " 중계 " // SMTP서버와 수신자와의 거리가 멀 때

수신 Server -> Reciever ( 방식 : POP or IMAP )


2-1> POP ( Post Office Protocol )    보통 POP3를 가르킨다 ( POP3가 마지막 표준이다 )

응용계층 인터넷 프로토콜 중 하나로 원격서버로 부터 TCP/IP연결을 통해 이메일을 가져오는데 사용한다

클라이언트가 원격 서버에 접속해서 이메일을 클라이언트로 가져오면 서버에서는 이메일을 삭제한다 !


[ POP3 - 비동기화 ]


2-2> IMAP ( Internet Message Access Protocol )

응용계층 인터넷 프로토콜 중 하나로 원격서버로 부터 TCP/IP연결을 통해 이메일을 가져오는데 사용한다

POP과는 달리 이메일 메시지를 서버에 남겨 두어 서로 다른 클라이언트가 같은 이메일을 받아 올 수 있다

메일서버와의 통신 트래픽이 높고 가격이 비싼 단점이 있다


[ IAMP - 동기화 ]


2-3> POP3 vs IMAP


[ IMAP vs POP3 ]

IMAP ( 143/tcp )

- 클라이언트는 메시지를 서버와 클라이언트쪽 둘 다 저장할 수 있다 

- 클라이언트는 여러 개의 서버와 통신할 수 있다

- 서버는 여러개의 클라이언트와 통신할 수 있다 ( 동일한 이메일을 여러 사용자가 가져갈 수 있다 )


POP3 - ( 110/tcp )

- 클라이언트는 서버에서 단 한번만 이메일을 가져 갈 수 있다 ( 서버에서 해당 이메일을 삭제해버린다 )



<3> 전자우편에 대한 보안 위협 요소

E-mail 내용이 네트워크 전송과정에서의 외부로 유출

바이러스 프로그램이 첨부되어 전송

메일서버 및 E-mail프로그램의 취약점을 이용한 시스템 침입



<4> 전자우편 보안 / 암호화 프로토콜

인터넷의 전자우편을 암호화하여 제 3자가 알 수 없도록 하는 보안 프로그램


4-1> PGP ( Pretty Good Privacy )    표준

① 기밀성 제공 - 대칭키(IDEA) , 공개키(RSA) , 개인키(RSA) 사용

대칭키(세션키) : 전송메시지를 암호화해서 전송한다

공개키 : 세션키 암호화해서전송한다

개인키 : 디지털 서명을 암호화할 때 사용한다

② 인증 ( 메시지 인증 / 사용자 인증 ) 제공 - MD5 or SHA-x 함수사용

메시지 다이제스트를 생성하고 개인키로 암호화해서 전송 

③ 압축 - 서명한 뒤에 압축하여 공간절약 및 보안성을 올려준다

분할 - 메시지 크기와는 상관없이 PGP사용이 가능하다

* 공개키 분배 : Web of Trust , Key-ring


4-2> PEM ( Privacy Enhanced Mail )

PGP와 같이 메세지의 내용을 암호화하여 보안성을 높인다

PGP보다 구현은 어렵지만, 보안성이 상대적으로 뛰어나다


4-3> S/MIME ( Secure / Multipurpose Internet Mail Extensions )

메시지를 받는 사람이 받은 편지함에 표시된 메시지가 보낸 사람이 작성한 것과 정확히 일치하는 메시지이며, 특정 보낸 사람을 가장하는 사람이 아닌 실제 보낸 사람이 메시지를 보냈음을 확신할 수 있습니다

이를 위해 두 가지 보안서비스 ① 디지털 서명  메시지 암호화 를 제공한다


디지털 서명    : 인증 + 데이터 무결성    

( 개인키로 서명을 암호화해서 전송한다 = 나만이 서명을 할 수 있기 때문에 그 서명은 나의 것이라는 것이 증명된다 ) - 인증


메시지 암호화    : 기밀성 + 데이터 무결성 

( 받는 사람의 공개키로 메시지를 암호화해서 전송한다 = 받는 사람만이 그 사람의 개인키를 이용해서 복호화해서 메시지를 읽을 수 있다 ) - 기밀성


③ 공개키 분배 : X.509인증서나 CA 를 이용한다

* 전자 메시지 뿐만 아니라 MIME데이터를 전달하는 전송 메커니즘에서도 사용된다