스터디/network - 6

  1. 2012.03.03 클라우드 서비스 종류
  2. 2011.03.20 무선 네트워크 보안 WEP, WPA, WPA2 원리와 한계
  3. 2011.01.27 TCP 헤더 (TCP Header)
  4. 2011.01.18 TCP와 UDP에 대해 공부해보자! (3)

출처 -  http://elrua999.tistory.com/2876

이번에 교과부에서 대학에서 사용금지시킨 클라우드서비스 종류 생각보다 많네 안쓰던것도 있고
2012.03.03 23:40. RSS feed. Trackback 0 came from other blogs. Leave a Response.
Posted in 스터디/network. Top

댓글을 달아 주세요


 요즘 무선랜보안에 한창 관심이 쏘인다, 원래부터 공유기를 사게되면서 공부하고 싶었지만 기회는 없었다.
몇 일전에 넷북과 무선랜카드를 구입하게 된 이후로 한번 받게되면 크랙 실습을 해 보고자 그 전에 공부할려고 한다.

출처 - http://www.hardnara.com/kimsnetwork/print.php?no=454






 
무선 네트워크 보안
3. 무선 네트워크 보안

WEP (Wired Equivalent Privacy )

Wired Equivalent Privacy (WEP)는 무선 LAN 표준을 정의하는 IEEE 802.11 규약의 일부분으로 무선 LAN 운용간의 보안을 위해 사용되는 기술이다.
무선 LAN은 운용간에 전파를 이용하기 때문에, 전선이나 장비에 물리적으로 접근해야만 통신 내용을 도청할 수 있는 유선 통신과는 달리 외부의 침입에 의한 정보 유출의 가능성이 높다. 이를 보완하기 위해 고안된 기술이 WEP이다.


구현 원리

WEP는 무선 LAN에 연결된 어댑터와 액세스 포인트가 서로 주고받는 데이터를 64(40+24)비트 혹은 128(104+24)비트로 암호화함으로써 보안성을 강화시킨다. 이 때 암호화에 사용되는 키 값은 기기상호간에 일치하는 것이어야 한다. 이에 더해 데이터 송수신의 무결성을 위해 CRC-32 체크섬을 이용한다.


사용 범위와 보안상 한계

정보 유출의 위험이 크지 않은 일반 가정이나 공중 시설 등에서는 WEP 기술을 이용하지 않는 경우(이 경우에는 모든 데이터가 암호화되지 않아 전파 수신가능 거리에 있는 사람은 누구나 전파를 수신해 데이터의 내용을 확인할 수 있다)가 많다.
또한 WEP에 사용되는 암호키의 값이 노출되는 경우에는 누구나 통신의 내용을 해독해서 볼 수 있다는 단점이 있으며, 암호키의 값을 모르는 경우에도 널리 알려진 방법을 통해 누구나 데이터의 내용을 해독할 수 있는 취약점이 존재한다.
이러한 WEP 기술 자체의 보안 취약점 때문에 기업 등 보안을 중요시하는 곳에서는 이를 대체하는 WPA나 IEEE 802.11i 등의 다른 무선 LAN 보안 기술을 사용하는 것이 일반적이다.
 

WPA - PSK : Wi-Fi Protected Access - Pre Shared Key

무선랜을 구축할 때 암호화 방식을 사용하는 경우는 크게 세 가지로 나누어 볼 수 있다. 오픈 시스템 인증 방식에 WEP 암호화를 사용하지 않는 경우와  오픈 시스템 인증 방식에 WEP 암호화를 사용하는 경우, 그리고 마지막으로 쉐어드 키 인증 방식에 WEP 암호화를 사용하는 경우이다.
이 세 가지 방식은 보안에 매우 취약하며, WEP 키를 알아내는 방법 또한 많이 알려져서 위험에 노출되어 있는 상황이다.

오픈 시스템 without WEP encryption

오픈 시스템은 글자 그대로 인증이 없는 경우(즉, Null Authentication)이다.
인증 없이 접속하고 사용하는 데이터는 암호화를 하지 않는 구성이 바로 이 구성이다. 이러한 구성의 장점은 네트워크 성능이 가장 좋으며 사용자가 구성하고  사용하기에 가장 편리하다는 데 있다.
대부분의 경우 장비의 기본 셋팅만으로도 동작을 하며 사용자 편리P 주소만 설정해 주면 된다.
단점으로서는 보안이 떨어진다는 점이다.
이 구성을 공격하는 방법과 프로그램에는 여러 가지가 있으며 또한 공격 방법들이 상대적으로 단순하고 쉬워서 절대로 권장할 수 없는 구성이다.


오픈 시스템 with WEP Encryption40/104bit

오픈 시스템 인증은 인증이 별도로 없기 때문에 누구나 AP에 접속할 수 있지만 WEP 인크립션(Encryption)을 통해 데이터를 암호화하므로 WEP 키를 알지 못하면 통신이나 도청이 불가능하다. 그러나 최근에 발견된 WEP 알고리즘의 취약점으로 인해 WEP 키를 암호화된 데이터 트래픽만 가지고 알아낼 수 있는 기법들이 다양하게 알려지고 있다.


쉐어드 키 인증 (with WEP Encryption 40/104bit)

쉐어드 키 인증은 사용자가 AP에 접속 시 미리 설정한 WEP 키를 알아야만  인증을 하도록 하는 방법이다. 이러한 방법은 원래의 목적대로라면 오픈 시스템보다 보안성이 높아야 하지만 알고리즘의 취약점으로 인해 오히려 보안성이 떨어진다.
쉐어드 키 인증 알고리즘은 단순한 챌린지 리스폰스(Challenge-Response)  인증 방식을 응용한 것으로 리플레이(Replay) 공격이나  딕셔너리(Dictionary) 공격을 방어하는 수단이 갖춰져 있지 않다.
따라서 굳이 WEP 알고리즘의 취약점을 공격하지 않아도 인증 패킷만 스니핑을  해도 손쉽게 WEP 키를 알아낼 수 있는 것이다. 일단 WEP 키를 알아낸 후 AP에 접속하면 암호화 역시 동일한 키를 사용하므로 쉽게 내부 사용자와 같은 권한을 취득할 수 있다.


WPA - PSK (Wi-Fi Protected Access - Pre Shared Key)의 사용 배경, 동작 원리

기존의 WEP 암호화 방식은 취약한 보안으로 인해 기업환경에서는 거의 사용이 불가능해진 상태이다. WEP 알고리즘은 IV(Initialization Vector)의 평문전송, 키 스트림의 단순성, 고정키 사용에 따른 RC4 키 갱신 부재 등으로 인해 키 길이에 상관없이 그 보안기능이 취약하다고 판명되었다.
사용자들이 WEP 사용에 인색한 이유는, 대부분의 무선랜 제품들이 "WEP 사용안함"을 기본 설정으로 출고되기 때문에, 사용자들 역시 이 기능을 "사용함"으로 설정하는 걸 잊은 채(혹은 귀찮아서) 그냥 내버려 둔다는 게 첫 번째이며, 두 번째는 WEP 설정시 연결이 잘 안된다거나, 초보자들의 경우  여러 가지 옵션(ASCII, Hexadecimal, PassPhrase등)이나 키 입력 과정의 복잡함이 그 이유였다.
WPA는 옵션이나 키 입력의 방식이 WEP방식 보다 간단하여 설정하기 더욱  편리해 졌다.
WPA는, 대칭벡터(IV : Initialization Vector)라 불리는 WEP 헤더의 취약점 (고정 암호키 방식)을 해결하기 위해 그 대응책으로 개발되었다.
데이터 암호화를 강화하기 위해 TKIP(Temporal Key Integrity Protocol)과  AES(Advanced Encryption Standard)라는 IEEE 802.11i 보안 표준을 사용한다.
 

TKIP(Temporal Key Integrity Protocol)은 순서 규칙이 있는 48비트 초기화  벡터(WEP에서는 24비트 초기화 벡터)를 이용하는데, 이것은 키 재사용 및 재생 공격을 방지했다. 또한 WEP 취약 키 공격을 막아주는 패킷 당 키 혼합 기능과, 패킷 위조 공격을 막아주는 암호 체크섬 키 기능이 있다.
 

AES(Advanced Encryption Standard)는 128, 192, 256 비트 등의 가변 키 크기를  가지는 수학적 암호화 알고리즘을 사용한다. 암호화된 데이터는 AES 알고리즘의  키 없이 원래 데이터로 되돌리기가 거의 불가능하기 때문에 타인이 데이터를 송신하는 전파를 수신하더라도 기밀이 유출되는 사태를 막을 수 있다.

즉, 무선 통신상의 전송내용을 암호화하는 암호키가 기존 WEP에서는 고정되어 있던 것과 달리, WPA는 암호키를 특정 시간이나 일정 크기의 패킷 전송 후에 자동으로 변경시키기 때문에 해킹이 불가능하다는 것이다. 또한, 암호키 생성 진행과정이 매우 정교하고 키 갱신이 매우 신속하게 이루어지기 때문에, 암호를 해독하기 위한 충분한 데이터를 모으기가 불가능하다.
시스템 성능에 영향을 주지 않으며 소프트웨어 업그레이드를 통해 이용 가능 하여 SOHO 사용자들에겐 WPA-PSK라는 특정 모드로, 기업과 같이 인증서버 없이도 강력한 보안을 제공한다.
종합해 보면 인증 방법들의 보안성의 우수한 순위가 다음과 같이 정리 된다.

오픈 시스템(WEP사용안함) < 쉐어드 키 인증 < 오픈 시스템(WEP사용함) < WPA - PSK


WPA2 암호화

WPA2는 AES 알고리즘이 적용되는 데, 사실상의 산업 암호화 표준으로 DES와 3DES를 대체하고 있다. 계산이 필요한 집약적인 AES는 하드웨어 보조를 필요로 하는데, 이는 구형 무선랜 장비에서 발견되곤 한다. WPA2는 데이터와 MIC를 암호화할 수 있는 CTR(Counter Mode)와 인증, 보존을 위해 CBC-MAC(Cipher Block Chaining Message Authentication Code) 프로토콜을 사용한다.
WPA2의 MIC는 WEP와 WPA와는 달리 802.11 헤드 내 변하기 쉽지 않은 필드에 대한 데이터 보존을 제공하며, 체크섬과 유사하다. 이것은 패킷이 암호 정보를 절충하거나 패킷을 해독하기 위한 개발이 재연되는 것을 막는다. MIC 계산은 128비트 IV(Initialization vector)를 사용한다. IV는 128비트의 결과를 생성함으로써 일시적인 키와 AES로 암호화된다.
이후에 알고리즘은 결과상의 배타적인 OR과 다음의 128비트의 데이터를 수행한다. 이러한 계산의 결과는 AES와 TK로 암호화되고, 이후에 배타적인 OR은 그것과 다음의 128비트의 데이터에서 수행된다. 마지막 단계는 802.11 페이로드에서의 모든 128 블록이 소모될 때까지 되풀이된다. 동작의 마지막에는 첫 번째의 64비트가 MIC를 생산하기 위해 사용된다.
카운터 모드 암호화 알고리즘은 데이터와 MIC를 암호화한다. 이 알고리즘은 MIC IV와 유사한 128비트의 카운터 프리로드로 시작되지만 데이터의 길이 대신 1까지 초기화한 카운터 가치를 사용한다. 이에 따라 다른 카운터는 각각의 패킷을 암호화하는데 사용된다.
첫 번째 128비트는 128비트 결과를 산출함으로써 AES와 TK를 이용해 암호화된다. 배타적인 OR은 이 결과상에서 수행된다. 첫 번째 128비트 데이터는 첫 번째 128비트의 암호화된 블록을 만들어 낸다. 카운터 프리로드 가치는 점점 증가하고, AES와 데이터 암호화 키로 암호화된다. 이 후 배타적인 OR은 그 결과와 다음의 128비트 데이터 상에서 수행된다. 마지막 단계에서는 모든 128비트 블록이 암호화될 때까지 반복된다.
최종 카운터 가치는 MIC로 AES와 XORed를 사용해 암호화되고 0으로 세팅되고, 그 결과는 암호화 프레임으로 덧붙여진다. 일단 MIC는 CBC-MAC를 이용해 계산되며, 데이터와 MIC는 암호화된다. 이 정보는 802.11 트레일러에 덧붙여 CCMP 패킷 넘버 필드와 802.11 헤더에 사전 고정되며, 이후 발송된다.
WPA2 암호화는 역으로 작동된다. 카운터 가치는 암호화에서 사용된 동일한 알고리즘에서 비롯된다. 그 가치와 802.11 페이로드의 암호화 비율은 해독된 데이터와 MIC에서의 결과인 TK와 카운터 모드 해독 알고리즘으로 해독된다. 데이터는 MIC를 다시 계산하기 위해 CBC-MAC 알고리즘을 통과한다. 가치가 맞지 않는다면 패킷은 제거된다. 만약 그렇게 되면 해독된 데이터는 클라이언트와 네트워크 스택으로 보내진다.

2011.03.20 15:29. RSS feed. Trackback 0 came from other blogs. Leave a Response.
Posted in 스터디/network. Top

댓글을 달아 주세요


출처 - http://no1rogue.blog.me/30095914392

* TCP 헤더 (20 Bytes ~ ) - 4 Level Layer

- 송신처 포트

; 2바이트. 송신(발신)지의 포트(Port) 번호 정보를 가지고 있다. 포트 번호는 요즘 같은 멀티프로세싱 환경에서 해당 패킷이 어떤 어플리케이션(프로그램)에서 사용하는지 구분하기 위해 사용된다. 대표적인 예로 익스플로러와 같은 웹 브라우저는 주로 80번(HTTP)를 사용한다.

=> Well-Known Port 번호

- 수신처 포트
; 2바이트. 수신(목적)지의 포트 번호 정보를 가지고 있다. 

- 일련 번호(Sequence Number) - 송신 데이터의 일련 번호
; 4바이트. 해당 패킷의 맨 앞 위치의 데이터가 송신 데이터의 몇 번째 바이트에 해당하는지 송신측에서 수신측에 전달하기 위한 번호 데이터. 답으로 아래의 ACK 번호를 수신 측에서 송신측에 전송해주면 송신측의 데이터가  제대로 전달되었는지 확인하는 용도로 쓰인다. 

- 인지 번호 (ACK<아크>, Acknowledgement Number) - 수신 데이터의 일련 번호
; 4바이트. 데이터가 몇 바이트까지 수신측에 도착했는지 수신측에서 송신측에 전달하기 위한 번호 데이터. 이 번호로 송신측의 데이터가 수신측 제대로 전달되었는지 확인하여 송신측에서 재전송 여부를 판별하게 된다. 

- 데이터 오프셋
; 4비트. 데이터 부분이 어디서부터 시작하는지 나타내는 데이터. 데이터의 시작이 헤더의 끝도 되므로 헤더의 길이로 해석해도 된다. 4바이트 단위이므로 이 값에 4를 곱해야된다. 보통 5(0101)값을 가진다.

- 예약(Reserved)
; 6비트. 아직은 사용하지 않는다.

- 컨트롤 비트 <플래그>

+ URG

 > 긴급 포인터 필드의 유효 여부

+ ACK

 > 수신 데이터의 일련 번호 필드의 유효 여부. 보통 데이터가 수신측에 제대로 전달되었음을 의미.

+ PSH

 > Flush 동작에 의해 송신된 데이터임을 나타낸다.

+ RST

 > 접속을 강제로 종료하고 이상 종료시 사용된다.

+ SYN

 > 송신측과 수신측에서 일련 번호를 서로 확인할 때 사용. 이 것으로 접속 동작을 나타냄.

+ FIN

 > 연결 끊기를 나타낸다.

- 윈도우
; 2바이트. 수신측에서 송신측에 윈도우 사이즈<수신 확인을 기다리지 않고 묶어서 송신할 수 있는 데이터양>을 통지하기 위해 사용한다. 

- 체크섬
; 2바이트. (TCP헤더와 데이터의) 오류 유무를 검사하기 위한 것.

 

2011.01.27 14:09. RSS feed. Trackback 0 came from other blogs. Leave a Response.
Posted in 스터디/network. Top

댓글을 달아 주세요

[네트워크 강의/네트워크 강좌/TCP 강의/UDP 강의]

안녕하세요, 아마 제 생각으로는 이번 강의가 오늘 올리는 마지막 강의일듯 합니다.

네트워크 기초에 대해 전반적으로 공부하고 싶었는데 이제 이번 강의가 마지막이 될듯 합니다.
이번 강의만 올리고 다른 블로그에 좋은 강의가 있길래 그 강의를 보면서 복습 차 공부를 더 하고
혹시나 제가 보기에 진짜 좋다고 생각되면 제 티스토리에 허락하에 스크랩해오겠습니다 ^^ ;

물론 네트워크 강의 게시판에 쓰는 마지막 강의라는 소리는 아닙니다. ^^
혼잣말이 좀 많아요, 강의 시작하겠습니다!

먼저 간단한 내용을 앞서 설명드리겠습니다. 일정 프로그램으로부터 전송할 데이터, IP 주소와 포트 번호를 전달받은 운영체제 내에는
TCP/IP 소프트웨어가 있습니다. 이 소프트웨어는 TCP 계층과 IP 계층으로 나뉩니다.


TCP 계층은 사진에서 보이듯이 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol) 프로토콜 두 개로 구분됩니다.
TCP는 신뢰성 프로토콜이며 UDP는 비신뢰성 프로토콜 입니다. 다음 단락부터 이 둘의 자세한 내용에 대해 설명해보겠습니다.

TCP(Transmission Control Protocol) 는 신뢰성이 요구되는 프로토콜 입니다.
무슨말이냐하면 보내는 쪽(송신측) 받는 쪽(수신측)의 연결이 정상적으로 된 것을 확인 후 데이터의 전송이 이루어 집니다.

TCP 통신을 전화에 비유해보자면 A 가 전화를 걸면 B 가 전화를 받습니다. 그리고 A 가 말을 걸면 B 가 대답을 합니다.
이렇게 통신이 이루어집니다. 상대방의 IP, PORT 모두 알고있어야 연결요청이 가능하며 상대방이 수신을 해야지만 연결이 되는 방식,
데이터의 도착 유무를 내부적으로 확인하며 도착하지 않았으면 재요청을 하는 메커니즘이 존재하지만 속도면에선 느리다.

UDP(User Datagram Protocol) 는 신뢰성이 요구되지 않는 프로토콜 입니다.
그러니깐 송신측과 수신측의 연결을 거치지 않고 일방적으로 데이터를 전송합니다. 응답 또한 따로 받지않습니다.

UDP 통신은 데이터를 먼저 생성하고 상대방과 자신의 주소(IP, Port)만 기록하고 전송합니다. 그러나 UDP는 상대방이 받았는지
안 받았는지 확인이 불가능하지만 데이터만 보내므로 속도면에서는 빠릅니다.

아래 접혀있는 사진은 TCP, UDP 클라이언트와 서버간의 소켓 연결방식 입니다.


혹시나 틀린 내용 있다면 지적 감사히 받겠습니다.
단, 비하발언이 있는 태클은 사정하겠습니다.

읽어주셔서 감사합니다~ ^^

[네트워크갤] TCP와 UDP에 대해 공부해보자!
2011.01.18 22:56. RSS feed. Trackback 0 came from other blogs. Leave a Response.
Posted in 스터디/network. Top

댓글을 달아 주세요

  1. 비밀댓글입니다

    2011.01.18 23:51  ×  +
  2. Re. BlogIcon 완소풉

    댓글 감사합니다~ ^^

    2011.01.19 00:26  ×
  3. 자유팀노즈

    간단하게 TCP/UDP 에 대한 설명 감사합니다 그림으로 설명하니 더욱더 이해가 빠르군요. 대체로 왜 크래커들이 UDP 경로방식으로 DOS,DDOS 공격을 하는지도 알겠군요. UDP는 연결을 거치지 않고 일방적으로 바로바로 데이터가 보내지니 말입니다. 하지만 이걸 알고 악용을 한다면 문제겠저.. 정상적인 데이터가 아니고 쓰레드데이터(정크패킷)이라면요..

    2011.06.28 20:36  ×  +