5일차 금 : OSI 7계층 프로토콜 http ssl ssh dhcp FTP 등

 

 

OSI 7계층 프로토콜  FTP  DHCP   DNS   HTTP   SSL   SNMP   STMP   SMB  ...

 

 

DHCP : 네트워크 설정을 자동으로 해주는 프로토콜

DHCP 원리

네트워크 어딘가에는 DHCP 서버가 있는데, 보내는 패킷 2개 + 받아야 할 패킷 2개가 필요하다

 

1. DHCP Discover : 브로드캐스트로 요청

2. DHCP Offer : 유니캐스트로 응답함

3. DHCP Request

4. DHCP Ack : 2번과 유사

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

DNS

DNS.pcap 분석하기 예제

 

DNS요청을 하는 클라이언트 및 서버의 ip / port 는?   192.168.0.114  /  53

 

DNS는 4계층 프로토콜로 무엇을 사용하는가?     UDP

 

DNS 요청한 주소들이 어떤 것들이 있는지 파악해보자

 

특별한 에러가 없는 경우 DNS 요청과 응답에 각각 몇 개의 패킷이 필요한지 확인하자 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

SSL : Secure Socket Layer

평문 통신을 암호화 해준다.

 

 

TLS :  transport layer security

 

 

암호화의 이해

일방향 암호화   rc4, MD4, MD5, SHA256, SHA512, SHA1024, sha2048

평문  >  암호화  =  암호문

 

해시 : 복호화 할 수 없다. 

패스워드 등 중요한 정보를 암호화 하는데 사용된다.

무결성 체크 등 에도 사용된다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

양방향 암호화

폄문 > 암호화 > 암호문 > 복호화 > 평문

 

키 : 암호화 , 복호화 할 때 사용하는 일정 길이의 문자열

 

대칭키 : 비밀키 , 세션키

평문을 키를 이용해서 암호화 하여 상대에게 '암호문, 키'를 보낸다.

상대는 받은 암호문을 키로 복호화하여 평문을 읽게 된다.

 

단점 : 키 전달 문제. ( 키를 어떻게 전달 할 것인가? )

DES , 3DES , AES

 

 

비대칭키 : 개인키 , 공개키

암호화에 사용하는 키와 복호화에 사용하는 키가 다르다.

 

개인키로 암호화 한 것은 공개키로 복호화가 가능하고,

공개키로 암호화 한 것은 개인키로 복호화가 가능하다

개인키는 본인만 알아야 하며, 공개키는 누구든지 가질 수 있다.

 

장점 : 키 전달 문제가 해결이 됨

단점 : 속도가 느림

 

 

RSA

상대방의 공개키로 암호문을 만들어 상대에게 보낸다. 상대는 본인의 개인키로 암호문을 복호화하여 평문을 읽는다.

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

SSL의 원리 >> 키 신뢰의 문제를 해결하기 위해 인증기관 이라는 개념을 가져옴.

인증기관이 인증해준 신뢰성있는 해당 사이트의 공개키를 '인증서(SSL)' 라고 한다.

 

G마켓에서 인증기관에게 우리 사이트의 인증서를 만들어 달라고 요청한다.

인증기관 에서는 G마켓의 공개키와 G마켓 사이트 정보를 받고, G마켓의 공개키에 인증기관의 개인키로 암호화하여 인증서를 발급해준다.

 

클라이언트는 G마켓에 접속을하면 G마켓의 인증서를 받게 되고, 클라이언트는 G마켓의 인증서를 인증기관의 공개키로 복호화 되는 것을 확인하고

신뢰할 수 있게 된다.   ( 인증기관의 개인키로 암호화 했기 때문에, 인증기관의 공개키로 해독이 된다. )

 

클러이언트는 임의의 대칭키를 만들고 G마켓의 인증서 (공개키) 로 암호화 하여 G마켓에서도 신뢰를 얻고 사이트를 이용할 수 있다.

( G마켓 에서는 G마켓의 공개키로 암호화된 클라이언트의 대칭키를  G마켓의 개인키로 해독 할 수 있다. )

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

FTP : 파일 전송 프로토콜

 

지원되는 인증방식

1. 서버에 등록되어 있는 계정 인증

2. 익명계정

 

 

 

 

Active Mode ( 기본 )

서버와 클라이언트 간의 명령은 21번 포트로,  업로드, 다운로드는 20번 포트로

20번 포트에서 서버에서 클라이언트로 먼저 접속을 하는게 특징.

 

하지만 최근에는 클라이언트가 사설IP ( 공유기 ) 를 사용하는 추세라서 자주 사용되지는 않는다

 

 

 

Passive Mode 

업로드와 다운로드를 할 때 20번 포트를 열지 않고 임의의 포트를 연다.

명령과 업로드 다운로드 모두 클라이언트에서 먼저 접속을 한다.

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

FTP.pcap 분석하기

1. SYN을 보내는 쪽이 클라이언트   ( 192.168.0.114 )    /    서버 ( 192.168.0.193 )  3 hand shake 하는중

1번 우클릭 , Follow - TCP Stream    TCP영역의 데이터만 보여준다.  

빨간색 = 클라이언트가 서버로 보내는 값 ( 요청 )    /    파란색 = 서버가 클라이언트로 보내는 값 ( 응답 )

 

PASV = 패시브모드로 변경하겠다

 

 

맨 밑 패킷 우클릭 - Follow - TCP Stream

패시브 모드로 바꾸고 난 뒤 7254번 포트에 접속 중 !!

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

http

인터넷 웹 서비스의 핵심 프로토콜

요청, 응답 형식으로 동작함

http 응답코드

100~199 단순한 정보

200~299 클라이언트의 요청이 정상적으로 처리됨

300~399 다른 url로 재이동

400~499 클라이언트의 요청이 불완전하여 다른 정보가 필요함

500~599 서버의 오류로 클라이언트의 요청 수행 불가

 

 

http. cap 분석하기

4번 패킷( HTTP ) 우클릭 - Follow - TCP Stream

 

 

 

쿠키 - 클라이언트에 저장되어 서버에서 활용하는 상태 정보

 

http 메소드

get

post

option : 서버에서 사용 가능한 메소드 정보 리스트 요청

put : 서버의 파일 업로드

delete : 서버의 파일 삭제

 

일반적인 웹 사이트의 경우

단, api 서버의 경우는 용도가 다름

+ Recent posts