'공부'에 해당되는 글 93건

  1. 2012.07.16 [Matthieu]win64(32)dd.exe 5
  2. 2012.07.15 [Windows]Runas.exe
  3. 2012.07.14 WEP 암호화 알고리즘 취약점 1
  4. 2012.07.11 WPA2 Vulnerability Hole196 2
  5. 2012.07.05 Well Known Port
  6. 2012.07.05 CCNA 1
  7. 2012.07.05 데이터 복구와 파일 카빙의 차이점
  8. 2012.07.05 [PaulTew]Timelord
  9. 2012.06.29 [802.11] 802.11i (detailed)
  10. 2012.06.29 [802.11] 802.1x(detailed v2) 1

win64(32)dd(이하, windd)는 공개용 윈도우 메모리 덤프 프로그램 중 가장 많은 윈도우 버전을 지원하는 동시에 가장 훌륭한 기능을 지니고 있는 프로그램이다.


windd는 32비트용 win32dd와, 64비트용 win64dd가 존재한다.




[Figure 1 - Windd 디렉토리]



windd의 기본적인 로우 메모리 덤핑 방법은 다음과 같다.


Win32(64)dd.exe -f [저장 경로와 파일 명]


ex) win64dd.exe -f C:\testdump.dmp



[Figure 2 - 메모리 덤핑 프로세스]



대체로 8기가의 메모리에 40%의 유징이면 1~2분 가량 소요된다.



[Figure 3 - Windd -help]



win64(32)dd는 제작자 Mattieu Suiche의 블로그인 www.msuiche.net, 또는 http://sourceforge.net/projects/windd에서 받을 수 있다.



'공부 > Forensics' 카테고리의 다른 글

[Sysinternals]PsList.exe  (1) 2012.07.16
[Windows]Netstat.exe  (0) 2012.07.16
[Windows]Runas.exe  (0) 2012.07.15
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
Posted by extr
:

[Windows]Runas.exe

공부/Forensics 2012. 7. 15. 22:02 |

라이브 리스폰스에서 가장 중요한 작업 중 하나는 휘발성 데이터를 수집하는 작업이다.


만약 대상이 되는 컴퓨터가 관리자 권한이 아닌 일반 유저 권한이라고 하면 일반적으로 관리자 권한이 필요한 포렌식 툴의 사용에 있어 상당한 제한이 있을 것이다.


그렇다고 로그아웃을 한 뒤, 관리자 계정으로 로그인을 한다고 하면 그 또한 휘발성 데이터에 상당한 영향을 끼칠 것이므로 절대 하지 않는 것이 좋다. 관리자 권한 획득은 반드시 현재 로그온 되어있는 사용자 세션에서 이루어져야만 한다. 


이러한 문제점을 해결하기 위해서 runas를 사용한다.


[Figure 1 - Runas.exe]


사용 방법은 다음과 같다.


Runas.exe /user:[관리자 계정 명] [실행할 프로그램 명]


ex) Runas.exe /user:extr c:\nc.exe



Runas를 통해 실행된 프로그램은 Figure 2와 같이 인증절차를 받게된다.



[Figure 2 - Runas.exe]




[Figure 3 - Runas -help]


'공부 > Forensics' 카테고리의 다른 글

[Windows]Netstat.exe  (0) 2012.07.16
[Matthieu]win64(32)dd.exe  (5) 2012.07.16
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Posted by extr
:

1999년의 IEEE 802.11무선 LAN 표준에 규정된 WEP(Wired Equivalent Privacy) 암호 방식을 무선 구간에서 전송되는 MAC 프레임들을 40비트 길이의 WEP 공유 비밀 키와 임의로 선택되는 24비트의 Initialization Vector(IV)  로 조합된 총 64비트의 키를 이용한 RC4 스트림 암호 방식 이다. 이러한 WEP에 의한 단말과 AP간 암호를 위하여 먼저 쌍방은 동일한 패스워드 문장으로부터 생성되는 4종류의 장기 공유 키를 자동 생성한다. 이 4개의 고유 키는 2비트의 KeyID로 각각 구분된다. 이후, 4개의 공유 키 중 하나를 선택하여 MAC 프레임에 대한 WEP 암호시 사용한다.


전송되는 MAC 프레임을 보면 암호화된 데이터뿐만 아니라 암호화시 사용된 IV(Initialization Vector : 3byte 길이의 RC4 암호용 IV값으로써 매 프레임마다 임의로 선택되거나 1씩 단순 증가 됨), KeyID(2bit의 길이를 가지며 송신측이 선택한 4가지의 WEP 비밀 키 중 하나의 KeyID 값을 명시하며, 이 키 ID는 세션 연결 후 변경되지 않음) , ICV(Integrity Check Value : 평문 데이터 영역에 대한 무결성 보호를 위한 값으로 WEP에서는 CRC(데이터의 신뢰성을 검증하기 위한 에러 검출 방법의 일종)-32가 쓰임) 값도 함께 수납된다. 그 결과 원래 MAC 프레임에 8byte가 더해진다.




WEP 암호화 방식은 64bit 암호화 방식인 40bit WEP와 WEP2인 128bit 암호화 방식인 104bit WEP가 있다.



1. 암호 및 복호절차

WEP는 대표적인 스트림 암호화 방식(평문을 1bit, 1byte 또는 word단위로 암호화 하는 방식)인 RC4 방식을 채택하여 사용한다.


WEP에 적용된 RC4 스트림 암호화 방식은 쌍방간에 미리 결정된 40bit 또는 104bit 길이의 WEP Key와 초기화 벡터(IV)를 이용하여 연속된 Key Stream을 생성하고 이것을 전송할 평문과 XOR(exclusive OR)연산을 수행하여 암호문을 생성하는 방식이다.





1.1.  암호화

WEP의 Packet frame 암호화 절차의 구성을 보면 그림 2와 같다. 






다음은 WEP 암호화 프로토콜의 암호화 절차이다.

1. MAC 데이터 부분에 대한  CRC-32계산의 결과 값인 32bit 길이의 Integrity Check Value(ICV)를 얻어 페이로드 끝에 추가한다. 

2. 3byte의 Initialization Vector(IV)를 랜덤하게 생성한다.

3.  seed(IV의 값과 WEP의 키 값을 머지(Merge)한 64bit의 길이로 구성된 키값) 값을 RC4 Pseudo Random Number Generator(PRNG)에 입력하여 키스트림을 생성한다.

4. ICV값이 더해진 평문과 키 스트림을 XOR하여 암호문을 생성한다.

5. 평문으로 구성된 IV 값을 추가하여 전송한다.


이와 같은 방법으로 WEP는 암호화를 진행하며 스트림 암호화 특성상 속도가 빠르고 구조가 간단하다.




1.2. 복호화

복호화는 암호화 유사한 방식으로 이뤄지면 Key stream을 암호화된 DATA에 XOR를 해주면 복호화가 된다.





암호문의 복호화 절차는 다음과 같다.


1. 평문으로 전달된 IV 값과 WEP 비밀키를 조합하여 키 스트림을 생성한다

2. 암호화 문과 키 스트림을 XOR하여 복호화 하며 평문과 ICV값을 획득한다

3. 복호화된 평문의 ICV’값과 복화된 데이터에서 나온 ICV값과 비교를 하여 같지 않다면 전송중에 에러가 발생한 경우로 단말기에 다시 재전송 요청을 한다.



2.  WEP의 문제점과 Break 원리


WEP는 보안상에 몇가지 문제점이 있다. 그 중에서도 Weakness IV의 문제점이 있으며 이 Weakness IV문제점을 이용한 FMS(Fluhrer, Mantin, Shamir) 공격 기법은 현재까지 알려진 가장 효율적인 방법이다.


2.1. 오프라인 브르투포스 공격(전수 조사 공격)

이 공격 방법은 WEP뿐만 아니라 모든 암호 시스템에 대해서 할 수 있는 공격 방법이다. 다만 이 공격 방법이 실질적인 효과가 있는지 여부의 문제이다.


WEP의 경우는 몇 개의 패킷을 캡쳐한 뒤 가능한 모든 키를 이용해 그 패킷을 복호화 해보는 방법이다. 그리고 복호화한 패킷의 체크섬을 계산하여 원본 체크섬과 비교하여 일치하면 그 키는 올바른 키일 가능성이 매우 높다. 일반적으로 2개 이상의 패킷에 대해서 확인해 보는 것이 더 정확하다. 일부의 경우 서로 다른 두 키로 복호화한 메시지가 체크섬이 같을 경우가 있기 때문이다.


다음은 브르투포스 공격의 시간적 연관 관계표이다.



Bit길이

키의 총계

성능

시간

40bit

1099511627776

10,000/s

3년 이상

200,000/s

1년 이상

104bit

20282409603651670423947251286016

200,000/s

불가



104bit의 경우는 천문학적인 숫자로 현실성이 없으며 40bit의 경우 Tim Newsham의 기법에 의해 21비트까지 줄일 수 있다. 그것은 대부분의 40bit Key와 AP(Access Point)에서 사용하는 비밀번호 기반 키 생성 알고리즘의 약점을 공격하는 효율적 크래킹 방법으로 이 키를 크랙하는데 걸리는 시간은 1초에 10,000개의 크랙할 수 있다고 가정할 경우 단 몇 분 또는 최신 컴퓨터에서는 몇 초에 가능하다.



2.2. 키스트림 재사용

WEP의 잠재적 문제점 중 하나는 키스트림을 재사용한다는데 있다. 다음과 같은 방법으로 이용하여 Key 값을 모르는 상태에서도 암호문을 복호화 할 수 있다.


2개의 평문{ P1, P2}에 대하여 동일한 키 스트림(ks)에 의해 생성된 암호문을 각각(C1, C2)라 하고, 이들을 해커가 수집하였다고 하자. 이 암호문은 다음과 같이 생성된 것이다.


C1 = P1 ⊕ ks

C2 = P2 ⊕ ks


해커는 평문과 이를 암호화할 때 사용한 키 스트림은 모르고 있다. 하지만 수집된 2개의 암호문에 대하여 다음과 같이 서로 XOR하면 평문을 서로 XOR한 결과 값과 같다.


C1 ⊕ C2 = (P1 ⊕ ks) ⊕ (P2 ⊕ ks) = P1 ⊕ P2


해커가 두 개의 암호문과 첫 번째 암호문에 대한 평문을 알고 있다면, 두 번째 암호문은 쉽게 복호화될 수 있다. 즉, 평문 P1을 알고 있다면 P2를 찾을 수 있다.


(C1 ⊕ C2) ⊕ P1 = P2


위의 방법을 이용하여 암호문을 쉽게 복호화 할 수 있다.


IV는 이러한 공격을 막기 위해 고안된 것으로 만약 IV가 없다면 모든 패킷은 동일한 스트림으로 암호화 될 것이며 쉽게 복호화 할 수 있다. 그러나 각 패킷마다 서로 다른 IV가 쓰인다면 각 패킷별 키스트림도 서로 다를 것이다.


WEP에 쓰인 IV의 길이는 24bit이며 IV가 무작위로 선택된다고 가정할 때 통계적으로 약 5000 개의 패킷을 사용 할 때마다 키스트림이 재사용이 된다. 이 것은 Birthday Paradox의 이론을 이용한 것이다. 공격자는 이렇게 재사용되는 IV를 찾았다면 두 암호문을 XOR 연산 한 뒤 평문 구조를 추측하여 원본 평문들을 찾아 낼 수 있다. 그리고 두 평문 중 하나를 알고 있다면 다르편 평문은 간단히 XOR연산으로 알아낼 수 있다.



2.3. IV-기반 복호화 사전 테이블

공격자가 캡쳐한 암호문의 평문을 알아내는데 성공했다면, 그 암호문을 만드는데 사용된 IV에 해당하는 키스트림도 알아낼 수 있을 것이다. 이 키스트림은 같은 IV를 사용하는 다른 패킷을 복호화하는데도 쓰일 수 있다. 그래서 오랜 기간동안 키 스트림 재사용 공격을 하면 가능한 모든 IV에 대한 키스트림 테이블을 만들수 있다. 가능한 모든 IV의 수는 224이며 각 IV별로 1,500byte의 키스트림을 저장한다면 전체 테이블 저장 공간은 약 24Gigabyte로도 충분할 것이다. 이렇게 테이블을 만들어 놓으면 암호화된 패킷을 매우 쉽게 복호화 할 수 있지만 현실적으로 이 공격 기법은 너무 시간이 많이 걸린다는 점에서 현실성이 없어 사용하기엔 부적절한 방법이다.


2.4. IP Redirection

암호화된 패킷을 복호화하기 위한 또다른 방법으로 AP를 이용하는 방법이다. 일반적으로 AP는 인터넷에 연결돼 있는 경우가 많아 IP Redirection 공격이 가능 할 수 있다. 공격자는 암호화된 패킷을 캡쳐한 다음 그 패킷을 복호화하지 않은 채로 목적지 주소를 공격자가 제어하는 컴퓨터의 IP주소로 변경하는 방법이다. 이렇게 수정된 패킷을 무선 AP로 전송하면 공격자가 제어하는 컴퓨터 IP로 보내진다.


이러한 공격이 가능한 이유는 CRC32 체크섬 알고리즘이 키를 필요로 하지 않는 선형 함수이기 때문이며 이것은 패킷을 수정하더라도 체크섬을 유지하는 방법이 존재한다.


이 공격은 출발지와 목적지의 IP주소를 공격자가 미리 알고 있다는 가정하에 가능한 경우이다. 공격자는 표준 내부 네트워크 IP주소 지정법을 이용하여 추측 하는 방법과 IV 콜리젼을 이용한 키스트림 재사용 공격을 이용하여 IP주소를 알아 낼 수 있는 방법 등이 있다.


공격자가 목적지의 IP 주소를 알아 냈다면 그 주소를 원하는 IP주소와 XOR를 수행한다. 그 다음 이 결과 값에 암호화된 패킷에 있는 값과 XOR하여 암호화된 패킷의 목적지의 IP 주소를 변경한다. 그리고 전체 체크섬을 그대로 유지하기 위해 출발지 주소를 수정하여 CRC32 체크섬을 유지한다. 이렇게하면 공격자가 원하는 목적지로 패킷을 전송 할 수 있으며 공격자는 복호화된 평문을 받아 볼 수 있다.


여기서 출발지 IP 주소와 목적지의 IP주소를 이진수로 변환하여 XOR하여 암호문에 XOR해주는 방법은 매우 간단하며 여기에선 CRC32 체크섬을 유지하는 것이 가장 중요하다. 다음은 CRC32의 체크섬을 유지하는 방법이다.


출발지 주소 : 192.168.2.57

목적지 주소 : 192.168.2.1

공격자 제어 컴퓨터 : 123.45.67.89 라고 가정한다면

출발지 IP = 192.168.2.57

SH = 192 ∙ 256 + 168 = 50344

SL = 2 ∙ 256 + 57 = 569


목적지 IP=192.168.2.1

DH = 192 ∙ 256 + 168 = 50344

DL = 2 ∙ 256 + 1 = 513


공격자 제어 IP = 123.45.67.89

AH = 123 ∙ 256 + 45 = 31533

AL = 67 ∙ 256 + 89 = 17241


체크섬은 NH + NL – DH – DL 만큼 변하게 되며 이 값을 패킷의 어딘가에서 빼줘야 한다. 패킷의 출발지 주소를 이미 알고 있고 출발지 주소를 바꾼다고 해도 문제가 되지 않기 때문에 출발지 주소의 16비트 워드를 바꿔 주면 된다.


S’L = SL – ( NH + NL – DH – DL )

S’L = 569 – ( 31533 + 17241 – 50344 – 513 )

S’L = 2652


이렇게 바뀐 출발지 주소는 192.168.10.92가 된다. 이렇게 바뀐 주소를 암호화된 패킷에 반영하면 CRC32 체크섬을 유지 할 수 있다. 위와 같은 방법으로 공격자는 복호화된 패킷을 캡쳐할 수 있다.



2.5. FMS 공격


Fluhrer, Mantin, Shamir(FMS) 공격은 WEP 공격에 가장 많이 쓰이는 방법으로 이 공격법은 AirSnort 등의 툴을 통해 널리 알려졌다. 이 방법은 RC4의 키 스케줄링 알고리즘과 IV 사용법의 약점을 이용한 방법이다.


IV값 중에는 키스트림의 첫번째 byte에 비밀키에 대한 정보를 노출시키는 Weakness IV가 있다. 패킷을 암호화할 때 IV는 계속 바뀌지만 이 비밀키는 바뀌지 않고 그대로 계속 쓰인다. Weakness IV를 사용하는 충분한 패킷을 수집했다면 키스트림의 첫번째 byte를 알고 있다면 이 비밀키를 알아낼 수 있다. 802.11b 패킷의 경우 첫번째 byte는 SNAP(Subnetwork Access Protocol의 약자로 이더넷에서 자료의 유형을 명시하기 위해 사용되는 프레임) 헤더에 속해 있고 이 SNAP 헤더의 첫번째 byte는 거의 모든 경우에 0xAA이다. 이것을 암호화된 패킷읜 첫번째 byte에 0xAA 연산하면 키스트림의 첫번째 byte를 알아낼 수 있다.


이제 Weakness IV를 찾으면 비밀키를 알아낼 수 있다. WEP에서 쓰이는 IV는 24비트, 즉 3byte이며 Weakness IV는 (A+3, N-1, X)와 같은 형태로 되어 있다. 여기에서 A는 공격 대상 스트림의 특정 byte이고, N은 256(RC4는 256법/modulo연산(나머지 연산을 의미하며 256법이란 모든 숫자를 256으로 나누고 그 나머지 값을 결과로 취한다는 뜻) 을 수행하기 때문)이며, X는 임의의 값이다. 공격 대상이 키스트림의 0번째 byte라면 Weakness IV는 (3, 255, X)의 형태를 띄고 총 256개의 값을 가질 수 있다.(X는 0~255임). FMS 공격의 중요한 점은 키스트림 byte는 순차적으로 공격을 수행해야 하기 때문에 0번째 byte를 알아야만 1번째 byte를 공격할 수 있다.


위 방법의 알고리즘은 매우 간단하며 KSA의 A+3단계까지 수행한 다음 S[0], S[1]의 값이 지난 단계에서 수정 되었는지 확인 하며 수정이 되었다면 작업을 중단하고 다른 Weakness IV를 선택해서 같은 방식으로 진행을 한다. 그렇지 않다면 J값과 S[A+3]의 값을 첫번째 키스트림 byte에서 빼주면 K[A]번째 키 값을 얻을 수 있다. 이렇게 계산하여 이 값이 올바른 확률은 5%이며 이 작업을 여러번(X값이 서로 다른 Weakness IV를 선택) 수행하면 올바른 키 값을 구할 수 있다. 약 60개의 IV를 시도하면 올바른 키를 얻을 확률을 50% 이상으로 높일 수 있으며 일단 키 byte 값을 얻어냈다면 전체 과정을 계속 반복하여 그 다음 키 byte를 얻을 수 있고 이 과정을 여러번 반복하면 전체 키를 얻을 수 있다.


대략적인 공격 순서는 다음과 같다.


1. 충분한 Weakness IV를 수집

2. Weakness IV에서 A번째인 IV를 선택

( 키의 0번째 byte 값을 모를경우 A =0이 됨 )

3. 첫번째 키스트림 byte을 추출

4. 키 스케줄링 알고리즘(KSA)의 A+3단계까지 수행

5. 첫번째 키스트림 byte 값 - J - S[A+3]는 K[A]번째의 키 값임

6. S[0], S[1]이 지난 단계에서 수정 됐는지 점검

(수정이 됐다면 작업을 중단하고 다른 Weakness IV를 사용, j > 2경우 수정됨)

7. 다음 A번째 키 값을 같은 방법으로 여러번 수행하여 전체 키값을 구할 수 있음


마지막으로 위 공격 알고리즘의 예제이다.


RC4에서는 256법/module로 사용했지만 예제에서는 설명의 편이를 위해 16법/module를 사용하며 모든 배열은 256byte가 아닌 16byte(4비트로 구성됨)이 사용된다.


첫번째 키스트림


byte =  9

A  = 0

IV  =  3,15,2

Key  =  1,2,3,4,5

Seed  = IV와 키를 결합한 값


K[] = 3 15 2 X X X X X 3 15 2 X X X X X

S[] = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15


공격자는 Key를 모르며 K배열에는 현재 알고있는 값(IV)만이 저장돼 있다. 그리고 S 배열은 0에서 15까지 값이 순차적으로 저장돼 있으며 J는 0으로 초기화 되어 KSA의 처음 3단계가 수행된다.


KSA 1단계 :

 I = 0

 J = J + S[I] + K[I]

 J = 0 + 0 + 3 = 3

 S[I]와 S[J] 바꿈


K[] = 3 15 2 X X X X X 3 15 2 X X X X X

S[] = 3 1 2 0 4 5 6 7 8 9 10 11 12 13 14 15


KSA 2단계 :

 I = 1

 J = J + S[I] + KI]

 J = 3 + 1 + 15 = 3

 S[I]와 S[J] 바꿈


K[] = 3 15 2 X X X X X 3 15 2 X X X X X

S[] = 3 0 2 1 4 5 6 7 8 9 10 11 12 13 14 15


KSA 3단계 :

 I = 2

 J = J + S[I] + K[I]

 J = 3 + 2 + 2 = 7

 S[I]와 S[J] 바꿈


K[] = 3 15 2 X X X X X 3 15 2 X X X X X

S[] = 3 0 7 1 4 5 6 2 8 9 10 11 12 13 14 15


A=0일 때 A+3을 수행하였다. Key[A] = 첫번째 키스트림 byte 값 - J - S[A+3]이며 그 결과 0번째 키 byte 값은 Key[0] = 9 - 7 - 1 = 1이 된다. 이 시점에서 J가 2미만이 아니기 때문에 다음 단계를 계속 진행 할 수 있다.


여기서 구한 0번째 키 byte는 다음 byte(1번째 byte)를 알아 내는데 쓰일 수 있으며 키의 1번재 byte를 알아내는 경우에는 IV가(4,15,X)의 형태를 띄며 KSA를 4단계까지 진행해야 한다. IV(4,15,9)를 사용할 경우 키스트림의 첫 byte는 6이 된다.


첫번째 키스트림


byte  =  6

A = 0

IV  =  4,15,9

Key  =  1,2,3,4,5

Seed  = IV와 키를 결합한 값

K[] = 4 15 9 1 X X X X 4 15 9 1 X X X X

S[] = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15



KSA 1단계 :

 I = 0

 J = J + S[I] + K[I]

 J = 0 + 0 + 4 = 4

S[I]와 S[J] 바꿈


K[] = 4 15 9 1 X X X X 4 15 9 1 X X X X

S[] = 4 1 2 3 0 5 6 7 8 9 10 11 12 13 14 15



KSA 2단계 :

 I = 1

 J = J + S[I] + K[I]

 J = 4 + 1 + 15 = 4

 S[I]와 S[J] 바꿈


K[] = 4 15 9 1 X X X X 4 15 9 1 X X X X

S[] = 4 0 2 3 1 5 6 7 8 9 10 11 12 13 14 15



KSA 3단계 :

 I = 2

 J = J + S[I] + K[I]

 J = 4 + 2 + 9 = 15

 S[I]와 S[J] 바꿈


K[] = 4 15 9 1 X X X X 4 15 9 1 X X X X

S[] = 4 0 15 3 1 5 6 7 8 9 10 11 12 13 14 2



KSA 4단계 :

 I = 3

 J = J + S[I] + K[I]

 J = 15 + 3 + 1 = 3

 S[I]와 S[J] 바꿈


K[] = 4 15 9 1 X X X X 4 15 9 1 X X X X

S[] = 4 0 15 3 1 5 6 7 8 9 10 11 12 13 14 2


A = 1 일때 A+3을 수행한 결과 Key[1] = 6 - 3 - 1 = 2로 올바른 키 byte를 알아 냈다. 여기에서는 X 값은 올바른 키 byte를 얻어내기 위해 의도적으로 선택한 값이다. 실제 키 byte를 알아내려면 여러 X값을 사용해서 결과를 뽑아 낸 뒤 통계적으로 분석하여야 올바른 키 값을 구할 수 있다.




3. FMS를 이용한 WEP 공격 절차


마지막으로 FMS공격 기법을 이용한 공격 절차는 설명한다. 위 공격 잘차는 AT&T 연구소의 기술 보고서 TD-4ZCPZZ(“Using the Fluhrer, Mantin, and Shamir Attack to Break WEP”)를 인용하여 설명하였다.


3.1. Packet 수집

특별한 몇몇의 단말기는 무선 네트웍으로부터 전송된 모든 데이터를 수신할 수 있는 기능이 있다. 우리는 이런 단말들을 이용하여 WEP로 암호화된 패킷 수집이 가능하다.


여기에는 다양한 종류의 소프트웨어 프로그램이 있는데 이런 프로그램을 통틀어 스니핑(Sniffing) 툴이라 부르며 이런 프로그램은 802.11 패킷을 캡쳐와 디코드(해독)를 할 수 있는 기능이 들어 있다. 대표적인 프로그램으로 NAI’s “Sniffer”, Wildpacket’s “AiroPeek”와 Open Source Woftware인 Ethereal 등등이 있다.


WNIC(Wireless Network Interface Card)로는 Intersil Prism, Aironet과 Orinoco Chipset 등등 Sniffing 기능이 지원되는 칩셑이 장착된 단말이 필요하다.


TomsNetworking의 How to Crack WEP – Part 2: Performing the Crack의 자료에 따르면 64bit의 WEP key를 크랙하기 위해서는 50,000 ~ 200,000 IVs 패킷을 수집해야하며 128bit WEP key를 사용할 경우는 200,000 ~ 700,000 IVs가 필요하다.


일반적인 상황에서는 충분한 패킷을 수집해 IVs 값을 얻기위해서는 많은 시간이 걸린다. 수집 시간을 단축하기 위해서는 몇몇의 방법이 쓰이는 가장 간단한 방법으로 무선 단말기에 Ping flooding 방법이 있으며 Aireply라는 툴을 이용하여 트래픽을 증가시키는 방법이 등등이 있다. 이와 같은 방법을 활용하여 우리는 WEP Crack하기 위한 충분한 IVs 값을 단시간에 수집할 수 있다.



3.2. IVs 값 추출

기본적인 공격에는 특별한 형태의 IVs만 필요하며 다른 패킷을 WEP 크랙에 영향을 주지 않는다. 필요한 IVs만 선별적으로 추출하여 공격을 더 수월하게 만들 필요가 있다.


현재는 몇몇의 프로그램은 이 과정을 자동 수행해 WEP를 크랙해주는 프로그램이 있다. 공격자는 이런 툴을 이용하여 별도의 IVs 추출 과정을 생력한다.



3.3.  Weakness IV를 이용한 비밀키 추측하기

공격절차에 대한 자세한 사항은 3.5의 FMS 공격을 참조한다. 여기에서는 비밀키 추측 절차만 나열한다.


1. 3.2에서 수집한 Weakness IV에서 A번째인 IV를 선택

( 키의 0번째 byte 값을 모를경우 A =0이 됨 )

2. 첫번째 키스트림 byte을 추출

3. 키 스케줄링 알고리즘(KSA)의 A+3단계까지 수행

4. 첫번째 키스트림 byte 값 - J - S[A+3]는 K[A]번째의 키 값임

5. S[0], S[1]이 지난 단계에서 수정 됐는지 점검

  (수정이 됐다면 작업을 중단하고 다른 Weakness IV를 사용, j > 2경우 수정됨)

6. 다음 A번째 키 값을 같은 방법으로 여러번 수행하여 전체 키값을 구할 수 있음



2005.11.18 유현수





'공부 > Network' 카테고리의 다른 글

NetBIOS Suffix  (0) 2012.07.19
UNC(Universal Naming Convention)  (0) 2012.07.17
WPA2 Vulnerability Hole196  (2) 2012.07.11
Well Known Port  (0) 2012.07.05
CCNA  (1) 2012.07.05
Posted by extr
:

WPA2란?


기존 WEP 보안 취약점이 발견되면서 임시 보안 표준으로 WPA를 사용하였다. 그러다 WPA2가 나옴으로써 이를 보안 표준으로 대체하였다. 이는 802.11i의 주요조건을 충족하며, 802.1x를 통한 인증 부문과 AES(Advanced Encryption Standard) 암호화 부문으로 나뉘어 있다. Wi-Fi Alliance가 2004년 9월부터 인증하기 시작했으며, 2006년 3월 이후부터 Wi-Fi로고 획득을 위해 반드시 필요한 항목이 되었다.





Hole196이란, 내부자 공격에 의해 보안된 무선 네트워크를 노출시키는 WPA2 보안 프로토콜의 취약점이다. 


이 취약점은 Airtight Networks 사의 보안 연구원에 의해 발견되었으며, IEEE 802.11 표준 제 196페이지 마지막 줄에 존재하는 WPA2 프로토콜에 취약점이 존재한다고 하여, 취약점의 이름을 ‘Hole 196’으로 명명하게 되었다.






이 취약점의 핵심은 WPA2를 사용하는 네트워크에 인증된 모든 사용자끼리는 GTK를 공유한다는 것인데, 사실 정상적인 동작에선 AP가 GTK를 사용하여 모든 데이터 트래픽을 암호화하여 전송하기 때문에 수신자는 트래픽을 복호화 해야만 한다.





하지만, 이 취약점은 악의적인 내부 인가자가 다른 인가자의 Station을 스캔하여 송신된 데이터를 스니핑 또는 암호화된 데이터를 복호화 할 수 있으며 악성코드를 주입시켜 손상을 줄 수 있는 치명적인 결점이 존재한다.


또, 이는 인증 및 암호화 과정에서의 문제점이 아닌 프로토콜 자체의 취약점이기 때문에 해당 표준을 적용한 802.11 Architecture(AP 또는 컨트롤러)는 이 취약점을 지니고 있으며 표준의 문제점으로 WPA2뿐만 아니라, WPA에서도 위험하다.


한마디로 말하자면, 이 취약점은 WPA2 보안이 적용된 내부 네트워크(인가된 사용자만이 GTK를 알 수 있기 때문)에선 그 보안이 무의미하다는 뜻이다. Hole 196은 위에서도 언급했지만, 프로토콜 자체의 취약점이기 때문에 해당 표준을 적용한 무선 랜(독립 AP 또는 컨트롤러)은 해당 취약점을 지니고 있다.


이 글을 읽고 있는 당신이 만약 내부자 공격에 민감하다면, 아마 내부자 공격을 방어할 수 있는 최대한의 조치를 취해놓았을 것이다. 하지만, 이 취약점은 아직 막을 방법이 없으며, 내부자에 의해 민감한 데이터(지적 재산권, 금융 정보, 기업기밀 등)의 외부 유출을 초래할 수 있다.



Hole 196 취약점은 다음과 같은 공격으로 인해 악용될 수 있다.


1. ARP Poisoning 또는, MITM(Man-In-The-Middle)공격

2. 인가된 다른 사용자에게 악성코드 주입

3. DoS 공격


위 같은 공격을 WPA2를 사용하는 환경에선 악의적인 내부자가 조작된 패킷(AP와 송신자 MAC주소를 조작)을 다른 인가자의 GTK를 이용해, 패킷을 암호화하여 전송할 수 있다.


ARP Poisoning을 예로 들어보자.




GTK에는 ARP Request 메시지를 추가할 수 있다. 이를 이용하여, ARP Request에 공격자의 가짜 Gateway 주소를 포함시켜 브로드캐스팅 하게 되면 모든 Station은 공격자의 MAC 주소를 Gateway 주소로 ARP 테이블에 매핑하게 된다.이 공격은 유선 네트워크상에선 IDS 또는 IPS에 의해 감지가 되거나 차단될 수 있다. 


하지만, WPA2환경에서 ARP Spoofing 공격을 할 땐, 악용된 GTK 패킷 자체가 암호화되어 전송하기 때문에 이를 막을 방법이 아직까지는 존재하지 않는다. 



그리고 이러한 ARP Spoofing 공격은 단지 예시일 뿐, 실제로는 DoS, DNS Spoofing, exe Weakness 등의 취약점등을 GTK를 이용하여 더 강력하고 정밀한 공격이 가능하다.




이를 방어하기 위해선 ARP Poisoning을 탐지하는 소프트웨어를 설치하면 되지만, Station마다 일일이 설치해야 한다는 불편함이 존재하며, 모바일 운영체제(Android, IOS, Windows Mobile 등)를 사용하는 Station에서는 지원이 되지 않는 단점이 있다.


그리고, Hole196 취약점을 기반한 다른 공격기법들이 위에서 봤던 것 처럼 여러 있기 때문에 이를 모두 막는 것은 거의 불가능하다. 

또한, Hole196 취약점을 이용한 공격 자체가 무선 환경에서 이루어지기 때문에 유선 네트워크 기반의 IDS/IPS, Firewall, ARP Poisoning 감지 장치에서는 감지가 되지 않는 특징이 존재한다.


그리고 안타깝게도 이 취약점은 클라이언트를 격리시키거나, PSPF(클라이언트 간 통신 차단)를 설정해도 이를 우회할 수가 있다.


그렇다면 애초에 AP가 클라이언트를 격리하거나 Station간의 통신을 금지시키면 해결되는 것인가? 그것 역시 아니다.

앞의 위험성에 대한 페이지에서도 언급한 것처럼 클라이언트 격리 또는, PSPF도 우회할 수 있기 때문이다.

악의적인 내부 인가자가 계속해서 암호화된 Spoofed GTK 패킷을 네트워크의 다른 Station(Victim)에게 보냄으로써 공격자의 Station으로 데이터 트래픽이 포워딩 되게 할 수 있는데, 이를 이용해 유선 네트워크에 가짜 게이트웨이를 설치하고 Poisoning된 ARP Cache를 인가된 사용자(station)에게 보냄으로써 모든 데이터 트래픽을 가로채, 클라이언트 격리를 우회할 수 있기 때문이다.

현재의 WPA2 프로토콜 표준에 따르면 GTK는 각각의 클라이언트에 AP가 4 Way Handshaking을 통해 할당되는데, 무선 랜 벤더들이 이러한 GTK를 무작위로 생성하게끔 패치를 하면 방어할 수 있다.

또한, 오늘날의 컨트롤러 기반 무선 랜은 아예 GTK를 사용하지 않게 무선 컨트롤러를 ARP Proxy 대신 AP를 사용함으로써 브로드캐스트 트래픽의 전송을 해제할 수 있다.

지금으로썬, WIPS(무선 침입 방지 시스템)를 사용하여 보안 프로토콜의 취약점을 보호하는 것이 확실한 방법이다. 하지만, WIPS 장비를 도입하는 것은 금전적으로 힘든 점이 있다. 

결론적으로, WIPS가 없으면 취약점으로부터 보호받기가 어렵다는 것을 알 수 있다..
그러니 최소한의 보안을 위해, 모든 기업 및 정부 기관에선 WIPS를 도입하여 Hole196에 대응하는 것이 최선이라고 생각한다.




참고 자료

[1] http://www.airtightnetworks.com/
- WPA-Too-Hole196-Defcon18-Presentation
- WPA2-Hole196-vulnerability-FAQs
[2] http://www.airtightnetworks.com/webinars
[3] http://www.idg.co.kr/newscenter/common/newCommonView.do?newsId=62209

'공부 > Network' 카테고리의 다른 글

UNC(Universal Naming Convention)  (0) 2012.07.17
WEP 암호화 알고리즘 취약점  (1) 2012.07.14
Well Known Port  (0) 2012.07.05
CCNA  (1) 2012.07.05
[802.11] 802.11i (detailed)  (0) 2012.06.29
Posted by extr
:

Well Known Port

공부/Network 2012. 7. 5. 17:01 |

잘 알려진 포트(well-known port)는 특정한 쓰임새를 위해서 IANA에서 할당한 TCP 및 UDP 포트 번호의 일부이다. 일반적으로 포트 번호는 다음과 같이 세 가지로 나눌 수 있다.

  • 0번 ~ 1023번: 잘 알려진 포트 (well-known port)
  • 1024번 ~ 49151번: 등록된 포트 (registered port)
  • 49152번 ~ 65535번: 동적 포트 (dynamic port)

대부분의 유닉스 계열 운영 체제의 경우, 잘 알려진 포트를 열려면 루트 권한이 있어야 한다.

이 번호는 강제적으로 지정된 것은 아니며, IANA의 권고안일 뿐이다. 가끔 각 포트 번호를 그대로 사용하지 않고 다른 용도로 사용하기도 한다. 이 경우, 트로이 목마와 같은 프로그램들이 악의적인 목적으로 포트를 변경하여 사용하는 경우도 있다.

포트설명상태
0/udp예약됨; 사용하지 않음공식
1/tcpTCPMUX (TCP 포트 서비스 멀티플렉서)공식
7/tcpECHO 프로토콜공식
7/udpECHO 프로토콜공식
9/tcpDISCARD 프로토콜공식
9/udpDISCARD 프로토콜공식
13/tcpDAYTIME 프로토콜공식
13/udpDAYTIME 프로토콜공식
17/tcpQOTD (Quote of the Day) 프로토콜공식
19/tcpCHARGEN (Character Generator) 프로토콜공식
19/udpCHARGEN 프로토콜공식
20/tcpFTP (파일 전송 프로토콜) - 자료 포트공식
21/tcpFTP - 제어 (명령) 포트공식
22/tcpSSH (Secure Shell) - ssh scpsftp같은 프로토콜 및 포트 포워딩공식
23/tcp텔넷 프로토콜 - 암호화되지 않은 텍스트 통신공식
25/tcpSMTP (Simple Mail Transfer Protocol) - 이메일 전송에 사용공식
37/tcpTIME 프로토콜공식
37/udpTIME 프로토콜공식
49/udpTACACS 프로토콜공식
53/tcpDNS (Domain Name Server)공식
53/udpDNS공식
67/udpBOOTP (부트스트랩 프로토콜) 서버. DHCP로도 사용공식
68/udpBOOTP (부트스트랩 프로토콜) 서버. DHCP로도 사용공식
69/udpTFTP공식
70/tcp고퍼 프로토콜공식
79/tcpFinger 프로토콜공식
80/tcpHTTP (HyperText Transfer Protocol) - 웹 페이지 전송공식
80/udpHTTP (HyperText Transfer Protocol) - 웹 페이지 전송공식
88/tcp케르베로스 - 인증 에이전트공식
109/tcpPOP2 (Post Office Protocol version 2) - 전자우편 가져오기에 사용공식
110/tcpPOP3 (Post Office Protocol version 3) - 전자우편 가져오기에 사용공식
113/tcpident - 예전 서버 인증 시스템, 현재는 IRC 서버에서 사용자 인증에 사용공식
119/tcpNNTP (Network News Transfer Protocol) - 뉴스 그룹 메시지 가져오기에 사용공식
123/udpNTP (Network Time Protocol) - 시간 동기화공식
139/tcpNetBIOS공식
143/tcpIMAP4 (인터넷 메시지 접근 프로토콜 4) - 이메일 가져오기에 사용공식
161/udpSNMP (Simple Network Management Protocol)공식
179/tcpBGP (Border Gateway Protocol)공식
194/tcpIRC (Internet Relay Chat)공식
389/tcpLDAP (Lightweight Directory Access Protocol)공식
443/tcpHTTPS - HTTP over SSL (암호화 전송)공식
445/tcpMicrosoft-DS (액티브 디렉터리, 윈도 공유, Sasser-worm, Agobot, Zobotworm)공식
445/udpMicrosoft-DS SMB 파일 공유공식
465/tcpSSL 위의 SMTP - Cisco 프로토콜과 충돌비공식, 충돌
514/udpsyslog 프로토콜 - 시스템 로그 작성공식
540/tcpUUCP (Unix-to-Unix Copy Protocol)공식
542/tcp상용 (Commerce Applications) (RFC maintained by: Randy Epstein [repstein at host.net])공식
542/udp상용 (Commerce Applications) (RFC maintained by: Randy Epstein [repstein at host.net])공식
587/tcpemail message submission (SMTP) (RFC 2476)공식
591/tcp파일메이커 6.0 Web Sharing (HTTP Alternate, see port 80)공식
636/tcpSSL 위의 LDAP (암호화된 전송)공식
666/tcpid 소프트웨어의  멀티플레이어 게임공식
873/tcprsync 파일 동기화 프로토콜공식
981/tcpSofaWare Technologies Checkpoint Firewall-1 소프트웨어 내장 방화벽의 원격 HTTPS 관리비공식
993/tcpSSL 위의 IMAP4 (암호화 전송)공식
995/tcpSSL 위의 POP3 (암호화 전송)공식


출처 - 위키 백과(http://ko.wikipedia.org/wiki/%EC%9E%98_%EC%95%8C%EB%A0%A4%EC%A7%84_%ED%8F%AC%ED%8A%B8)

'공부 > Network' 카테고리의 다른 글

WEP 암호화 알고리즘 취약점  (1) 2012.07.14
WPA2 Vulnerability Hole196  (2) 2012.07.11
CCNA  (1) 2012.07.05
[802.11] 802.11i (detailed)  (0) 2012.06.29
[802.11] 802.1x(detailed v2)  (1) 2012.06.29
Posted by extr
:

CCNA

공부/Network 2012. 7. 5. 13:34 |



CCNA-sisco 계열자격증 소개

 


+ 개요

컴퓨터 네트워킹 전문가 양성을 목표로 발표된 시스코의 기술 공인 프로그램인 CCC 중 하나로 네트워크 설치 구성 운영 능력을 공인하는 자격이다.

CCNA(Cisco Certified Network Associate) 자격은 SOHO(small office/home office) 시장에 필요한 초급 단계의 네트워킹 지식을 갖고 있음을 의미하는 자격이다.

CCNA/WAN 스위칭 인증(Cisco Certified Network Associate)은 WAN 스위칭형 네트워크에 대한 기초 및 지식정도를 나타낸다. CCNA/WAN 스위칭 인증이 있는 네트워크 기술자는 WAN 스위치(IPX, IGX, BPX, AXIS Shelf 및 모뎀)를 설치 할 수 있다.

CCNA 자격은 3년 간 유효하다. 상위 등급으로 올라가거나 Professional 등급에서 자격을 갱신하면 관련 CCNA 자격도 자동으로 갱신된다.

국내에서는 지역별로 국제자격증 시험센타,  캐드뱅크, 핸디소프트, 트레이닝파트너스, 삼성멀티캠퍼스 등에서 수시로 시험을 볼 수 있고, 총 65문항에 105분간 영어로 출제된다.

시험 후 바로 합격 여부를 알 수 있으며, 응시료는 과목당 150달러 정도. 외국계뿐 아니라 국내 네트워크 관련 기업의 취업에도 유리하다.



+ 과목코드 : 영문시험 
                    
640-507 CCNA Exam

+ 과목코드 : 총 65문항 

+ 문제유형 : 다지선다형, Drag & Drop, 단답형 주관식(1~2문제)

+ 시험방식 : 일반형(어뎁티브 테스팅 아님) 이나, 한번 푼 문제는 이전 문제로 되돌아가 
                    다시 풀 수 없음

+ 시험비용 : 과목당 US 150달러(약 20만원으로 시험장에 따라 응시료의 차이가 있다)


+ 시험일정 : (시험장마다 차이가 있으므로 사전에 전화로 확인하도록 한다)

     정

          간

-일요일

일반적으로 10:00 ~ 21:00 사이로 시험 시간이 정해져 있음

공휴일

시험 없음. 단 핸디소프트는 사전 공지된 연휴를 제외하고는 응시 가능



+ 시험시간 : 105분 (기본 75분 + 추가 30분 : 비 영어권 국가일 경우)

+ 합격점수 : 849점 합격(1000점 만점)

+ 시험발표 : 시험 종료 후 즉시 확인 가능

+ 시험일정 : (시험장마다 차이가 있으므로 사전에 전화로 확인하도록 한다)

+ 기      타 : 합격시 자격증은 4~6주 후에 ID카드, 기타 안내서 등과 함께 등록자의 주소로 배달



+ CCNA 2.0 시험의 출제 범위(100%기준)

Bridging/ Switching

OSI Reference model and Layered Communication

1.0  Static VLANS

2.0  Spanning tree

3.0  Switching modes / methods

4.0  PPP

1.0  Layer definitions
2.0  Encapsulation / De-capsulation
3.0  Layer Functions
4.0  Connection Oriented models
5.0  Connectionless models
6.0  Model benefits

Network and WAN Protocols

Routing and Network Management

1.0  TCP/IP
2.0  Novell IPX

LAN Design

Physical Connectivity

Cisco Basics

Internetwork Operating System (IOS)

Network Basics



과목 코드 640-407인 CCNA 1.0 버전의 시험은 폐지되었으며, 현재 과목 코드 640-507 의CCNA 2.0 버전의 시험이 시행되고 있다.

 - 한번 문제를 풀고 난 다음에는 이전 문제로 되돌아가 다시 풀거나 수정할 수 없으므로  신중히 결정해야 한다.

- 시험의 변경 및 취소는 토, 일, 공휴일을 제외한 응시 3일전까지만 가능하다. 이를 위반할 경우에는 시험을 치르지 않아도 응시료를 납입해야 하며,미납시에는 향후 모든 시험장에서 시험 응시가 불가능하다.

- 자격 인증 유효 기간은 3년이며 인증을 유지하기 위해서는 3년마다 재인증을 위한 시험을 치뤄야 한다.





출처 : http://cafe.daum.net/HoyaLOVE, http://www.itbanks.net/

'공부 > Network' 카테고리의 다른 글

WPA2 Vulnerability Hole196  (2) 2012.07.11
Well Known Port  (0) 2012.07.05
[802.11] 802.11i (detailed)  (0) 2012.06.29
[802.11] 802.1x(detailed v2)  (1) 2012.06.29
[802.11] WNetwork Security Protocols(3) - Network Layer Secure Protocol[IPSec]  (1) 2012.06.29
Posted by extr
:

데이터 복구(Data Recovery)란,  저장 장치에 존재하는 파일 시스템이 손상되지 않았거나, 손상이 되었더라도 복구를 할 수 있을 정도여서 쉽게 파일을 복구할 수 있는 반면


파일 카빙(File Carving)은 파일 시스템을 기반으로 하는 Data Recovery와 다르게 파일 시스템의 도움을 받지 않고 파일들의 시그니쳐, 논리 구조, 형식 등에 의존하여 전체나 일부분을 복구하는 것을 말한다.




[Data Recovery]





[File Carving]


'공부 > Forensics' 카테고리의 다른 글

[Matthieu]win64(32)dd.exe  (5) 2012.07.16
[Windows]Runas.exe  (0) 2012.07.15
[PaulTew]Timelord  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Sysinternals  (0) 2012.05.07
Posted by extr
:

[PaulTew]Timelord

공부/Forensics 2012. 7. 5. 11:32 |








Timelord




BIOS 시간 및 시차 계산, 다양한 시스템 시간 암복호화가 가능합니다.





'공부 > Forensics' 카테고리의 다른 글

[Windows]Runas.exe  (0) 2012.07.15
데이터 복구와 파일 카빙의 차이점  (0) 2012.07.05
DLL(Dynamic Link Library)  (1) 2012.05.07
Sysinternals  (0) 2012.05.07
Windows Vista/7 Recycle.bin 분석  (1) 2012.01.10
Posted by extr
:

 

802.11i 보안에 관해 한번 작성해보았습니다.

 

이 역시 뭐...마소...델...인텔 등등 여러 군데를 구글링하고..책보고 해서...나온..ㅋ..결과물입니다..

 

중요한 액기스만 썻으니ㅋ_ㅋ 잘봐주시고 잘못된 부분이 있으시면 지ㅋ적ㅋ 부탁드립니다

 

--------------------------------------------------------------------------

 

 

802.11i의 개요

 

802.11i 이란, 무선 랜의 합리적인 가격과 편리성에도 불구하고 WEP등의 취약한 보안이 문제가 되고있었는데

 

이 문제를 해결하기 위해 2004년 7월에 새롭게 등장한 무선 랜 보안 표준이다.

 

이는 사용자 인증, 데이터 무결성, 키 관리, 암호화 등의 방식들과 EAP등의 검증된 보안 기술들이 포함되어 있어,

 

보다 강력한 암호화 기능과 인증을 제공한다.

 

802.11i은 AP와 Station간의 인증과 키 교환 및 BSS 내의 무선 구간에서의 통신 보호를 위해 상이한 암호 키와 메세지 무결성 키에 의해 보호되는

 

신뢰성 있는 아주 튼튼한 무선 보안 망, 즉 RSN(Robust Security Network)을 구축하여 보호한다.

 

 

 

802.11i 표준 암호화 알고리즘

 

이는 무선 구간 데이터 보호를 하기 위한 방법을 뜻한다.

 

알고리즘 종류에는 station과 AP 사이에서 설립된 암호 키를 사용하는 TKIP과, CCMP 알고리즘이 있다.

 

 

 

1. TKIP(Temporal Key Integrity CBC-MAC Protocol)

 

=> TKIP 암호화 알고리즘은 기존 WEP를 확장하는 방법으로, 하드웨어를 교체하는 번거로움 없이 소프트웨어 업그레이드만으로 사용할 수 있도록 

 

구현되어 있으며, 메세지 무결성 코드인 MIC를 프레임에 포함시키고, WEP를 이용해 암호화를 하여 각 데이터 프레임마다 WEP에 적용되는 키가

 

변경되도록 설계되어 있다. 즉, 패킷 하나하나 마다 암호 키를 변경하여 암호화를 적용시켰다고 할 수 있다.

 

아래의 그림은 TKIP 알고리즘의 암 · 복호화 과정을 보여준다.

 



 

 

 

2.CCMP(Counter mode with CBC-MAC Protocol)

 

CCMP 알고리즘이란, counter mode with cipher-block chaining with message authentication code(CTR-CBC-MAC) 프로토콜이라고 하기도 하며,

 

CCM Mode(Counter mode with CBC-MAC Mode)를 사용하는 AES(Advanced Encryption Standard) 암호 알고리즘을 사용한다.

 

이는 AES 암호화가 그대로 포함되어 있어, 매우 강력한 보안성을 지니고 있다.

 

아래의 그림은 CCMP 알고리즘의 암 · 복호화 과정을 보여준다.

 




 

 

 

 

802.11 표준 인증 방식

 

사용자를 어떤 방식의 인증으로 엑세스 포인트에 연결시킬 것인지 정의한다.

 

이는 사용자 인증뿐만 아니라 station과 AP 사이에 교환하게 될 session key의 master key를 생성하는 키 관리 방식을 구분하기 때문에

 

섞여있는 인증과 키를 통틀어 AKM(Authentication Key Management) 방식이라고 부르기도 한다.

 

 

1.802.1x

 

802.1x는 다양한 인증 방식(프로토콜)을 제공하며 포트를 이용한 인증 접근 방식을 통해 포트 접근 제어 기능을 정의하고 있다.

 

이러한 포트 접근 제어 기능을 통해 인증과 무선 구간 보안에 필요한 PMK(Pairwise Master Key), 일명 마스터 키를 전달할 수 있는데,

 

이 마스터 키를 이용하여 일대일 대칭 키인 PTK(Pairwise Transient Key)교환을 하여 포트 제어를 수행하게 된다.

 

 

2.사전 공유 키 : PSK(Pre-Shared Key)

 

별도의 인증 서버는 없지만, 대신 키 값을 사전에 정의하여 Station과 AP에 입력하여 사용하는 인증방식이다.

 

이는 인증서버 설치의 부담이 있는 SOHO 또는 가정에서 활용 가능한 방식이다.

 

 

- 선인증(Pre-Authentication) 방식 및 마스터 키(PMK) 관련 정보의 캐시(cache) 기능 도입

 

선인증이란, 현재 접속되어 있는 AP 뿐만 아니라 근접한 모든 AP에게 인증을 요청하여 미리 다수의 AP들의 인증을 받아 놓는다는 것이다.

 

결과적으로, 목표 AP는 직접 접속되어 있지 않은 Station과 관련 PMK를 캐시에 저장하며, Station은 나중에 핸드오프(hand-off : AP 전이라고 생각하세요)

 

될 가능성이 있는 목표 AP에게 미리 인증 받음과 동시에 동일한 PMK를 캐시에 저장하게 되는 것이다.

 

그리고 결과적으로 생성된 PMK와 Station과의 관계는 PMK 식별자(PMKID : PMK IDentifier)로 확인할 수 있다.

 

 

 

802.11i 표준의 키 교환 방식

 

세션 키를 어떻게 하면 안전하게 전달할 수 있는지, 어떻게 하면 효율적으로 전달할 수 있는지에 따라 3가지로 분류된다.

 

 

1.일대 일(Unicast) 통신

 

하나의 Station과 하나의 AP가 통신하는 것을 의미한다.

 

통신 보호용 대칭 키인 PTK(Pairwise Transient Key) 교환을 위한 4 Way-Handshaking 방식을 사용한다.

 

 

2.일대 다(Broadcast) 통신

 

다수의 Station과 하나의 AP가 통신하는 것을 의미한다.

 

통신을 위해 필요한 그룹 키인 GTK(Group Transient Key) 교환을 위한 GKH(Group Key Handshake) 방식이다.

 

 

3.Station 대 Station

 

동일한 BSS 내에 존재하는 2개의 Station이 통신할때 사용하는 단말 대 단말 키(STA to STA Key) 교환을 위한 STAKey Handshake 방식이다.

 

 

 

 출처 - 옛날 블로그 2011/04/30 03:21

Posted by extr
:

인텔..마소..등등ㅋ 여러 인터넷에 떠돌아 다니는 자료들을 한꺼번에 정리 해보았습니다.

 

오탈자도 있고..잘못 설명된 부분도 있는 부분을 고치고 보강해봣어요 ㅋ

 

혹시 잘못된 것이 있으면 따끔하게 지적 부탁드립니다 ㅋ_ㅋ

 

-----------------------------------------------------------------------------------------------

 

802.1x란, 인증을 통해 무선 802.11 네트워크 및 유선 이더넷 네트워크를 보호하는 포트 기반의 접근 프로토콜이다. (이 글에선 802.11만 다룹니다)

 

이는 무선 사용자가 네트워크 접근을 위해 802.1x 인증을 하여 승인이 된다면 AP에서 가상 포트가 열려 통신이 허용된다.

 

하지만, 승인받지 못했다면 가상포트를 사용할 수 없어 통신이 차단되는 메커니즘을 지니고 있다.

 

 

802.1x 인증을 위해선 세 가지 요소가 필요하다.

 

 



 

바로 인증을 요청하는 스테이션(=supplicant)과,

 

인증 프록시 역할(중계을 해주는 매체)을 해주는 AP(=Authenticator).

 

그리고 인증 데이터베이스가 저장되어있는 인증 서버(=RADIUS Authentication Server)가 그 필요요소이다.

 

 

802.1x의 인증 프로세스는 다음과 같다.

 

 

1. station이 802.1x 인증이 적용되어있는 AP에게 연결 요청을 한다.(EAP가 사용된다)

 

2. AP는 station의 인증 요청 패킷을 RADIUS Server로 보낸다. 이 패킷에는 station의 인증 정보(예: ID/PW)가 담겨 있다.

 

3. RADIUS Server가 데이터베이스와 비교하여 인증결과가 참이 되면 동의하는 패킷을 AP에게 보낸다.

 

4. AP는 Station에게 동의 패킷을 받고, 통신(접근) 권한을 가지게 된다.

 

 

여기서 station이 어떤 EAP 인증을 사용하느냐에 따라서 그 보안 강도 또한 달라지게 된다.

 

그렇다면 EAP란 무엇인가?

 

EAP(Extensible Authentication Protocol)란, 점대점 통신 규약(PPP)에서 규정된 인증 방식으로 확장이 용이하도록 고안된 프로토콜이란 의미이다.

 

이 EAP는 단지 station과 RADIUS 서버 사이에 인증 정보를 전달하는데 사용되며 어떤 EAP유형을 사용하느냐에 따라 그 보안 강도가 달라지는데,

 

그 중 가장 널리 이용되는 EAP 유형은 다음과 같다.

 

----------------------------------------------------------------------------------------------------------------------------

 

EAP-MD5 (Message Digest 5)

 

=> 빠른 구축을 할 수 있는 패스워드 기반 MD5 인증은 상호인증 없이 단방향 인증만을 수행하기 때문에 보안상 취약한 특징을 가지고 있다.

   (일방적으로 인증을 하기 때문에 station은 AP를 무조건 신뢰하게 된다. 때문에, Rogue AP가 존재할 경우 문제가 발생할 수 있다.)

 

 

EAP-TLS (Transport Layer Security)

 

=> 현실적으로는 거의 쓰이지 않고, 금융기관같은 철두철미한 보안이 필요한 곳에서 사용된다.

    서버와 클라이언트의 인증서를 필요로 하는 상호 인증을 수행하며, 연결된 후의 보안을 생각해 Dynamic WEP를 사용한다. 

 

 

EAP-TTLS (Tunneled Transport Layer Security)

 

=> TLS를 터널링하여 클라이언트측 인정서에 대한 요구를 없앰으로써 TLS에 있던 인증서에 대한 번거로운 문제를 해결하였다.

    이 역시 상호 인증을 수행하며 동적 WEP를 사용한다.

 

 

EAP-FAST (Flexible Extensible via Secure Tunneling)

 

=> 이는 Cisco에서 개발했으며, 번거로운 인증서를 사용하는 대신 RADIUS Server 에서 PAC라는 보호 액세스 자격 증명 방식을 사용하여 인증

한다. 이는 동적 WEP를 사용하며, Rogue AP 탐지 기능이 존재한다.

 

 

PEAP (Protected Extensible Authentication Protocol)

 

=> 이 방식은 클라이언트 인증서가 필요로 하지 않는다는 점에서 TTLS과 동일하다.

 

 

LEAP (Lightweight Extensible Authentication Protocol)

 

=> 가장 먼저 개발된 방식으로, 과거엔 Cisco 장비만 호환이 되는 방식이였지만, 최근에는 호환 확장 프로그램을 통해 호환성이 좋다고 한다.

   이는 인증서를 요구하지 않고 Dynamic WEP만을 사용하기 때문에 강력한 암호 사용을 요구한다.

 

----------------------------------------------------------------------------------------------------------------------------

 

이러한 종류가 있다.

 

지금껏 쓴 내용을 요약하자면, 802.1x란 인증을 통해 네트워크를 보호하는 포트 기반의 접근 프로토콜이며,

 

전송되는 인증 정보를 보호하기 위해 EAP가 사용된다고 할 수 있다.

 

 

 

 


출처 - 옛날 블로그 2011/04/29 04:09

Posted by extr
: