2013년 4월 29일 월요일

안드로이드기반 초소형 인공위성 폰샛(PhoneSat)이 보내는 패킷은 어떤모습?

최근에 발사된 초소형 인공위성이 있습니다. 이 초소형 위성은 폰샛(PhoneSats)라고 하는 나노인공위성으로 스마트폰을 이용해 만들어진 것입니다. 그만큼 가격도 아주 저렴한데 개당 비용이 3,500 ~ 7,000 달러 정도 들었을 뿐입니다.

스마트폰이 인공위성에 매력적인 이유는 소형화라는 점 그리고 많은 사용자를 통해 검증된 제품이라는 점입니다. 금전적인 부분도 한몫합니다.
이번에 발사된 위성은 총 3개로 앞서 만들어진 2개의 스마트폰은 폰샛 1.0 으로 넥서스 원이 이용되었습니다. 단순히 사진 찍고 전송하는 정도의 기능만 수행했죠.  세번째 위성인 폰셋 2.0 은 구글-삼성이 만든 넥서스 S 입니다.
태양전지를 장착했고, GPS 수신시, 자이로스코프, 지구 자기장과 연동되는 마그네토커가 탑재된 고성능 이라고 합니다.

[그림] 출처 :  NASA Ames Research Center - (폰샛 1.0 입니다)



이번 폰샛도 데이터를 전송하기 위해 패킷을 전달합니다. 이 패킷은 아무추어 무선 주파수인 437.425MHz 로 전송되며 3개의 모든 위성은 AFSK(1200 bps) 모듈을 이용하고 AX.25 패킷이라고 합니다. 폰샛 1.0 은 주기적으로 28, 30 초 단위로 그리고 폰샛 2.0 은 25 초 단위로 전송한다고 하네요. 수신받은 패킷 내용은 다음 경로에서 확인할 수 있습니다.

http://www.phonesat.org/packets.php

이것도 패킷이니 그 구조가 있습니다. 한 예를 보면 다음은 폰샛 1.0의 상태 데이터 패킷입니다.


  • ID: 1byte, identifier of which satellite you have received from.
  • Restarts: number of restarts of the PhoneSat App.
  • Reboots: number of reboots of the phone.
  • Counter: number of packets sent since the beginning of the mission.
  • Phase1: number of packets sent during phase 1 (only health data).
  • Phase2: number of packets sent during phase 2 (health data and picture packets).
  • Time: unix time in seconds.
  • Voltage: battery Voltage in Volts.
  • Temp1: exterior temperature in Kelvin.
  • Temp2: interior temperature in Kelvin.
  • Accel: accelerometer value for X, Y, Z axes from the phone sensor in m/sec2.
  • Compass: magnetic field value for X, Y, Z axes from the phone sensor in nanoTesla.
  • Text: “hello from the avcs”.

ASCII85 로 인코딩 되어 있으며, 다음 예제를 한번 보시죠.

인코딩 된 데이터:
5l^lb"98E%&HDe3bQ%VN5l^mWlOr7g]g+go"@J?FW'ca*3.Lu/!'R5cl+nL4FMPBd!5T'D!5Pl?zzzzzzzz!,,q[Ci:G.Ec5e;FD,5.@<Q.%

디코드 된 길이:
112

디코드 포맷:
PhoneId Restarts Reboots Counter Phase1 Phase2 Time Voltage Temp1 Temp2 AccelX AccelY AccelZ CompassR CompassP CompassY Text
A, 4, 17, 460, 2881, 19179, 316935869, 3.0009775, 293.25513, 293.7439, -0.0, 0.08172209, -10.038197, -5.75, -8.75, -5.5625, hello from the avcs

세부적인 패킷 설명은 다음 경로입니다.

http://www.phonesat.org/packet_description.php

아래 그림은 실제 폰샛에서 촬영된 사진입니다.


저도 할수만 있다면 한번 수신해 보고 싶네요 :-)

[참고]
1. 나사 - PhoneSat: Smart, Small and Sassy
http://www.nasa.gov/offices/oct/home/PhoneSat_prt.htm
http://www.nasa.gov/directorates/spacetech/small_spacecraft/phonesat.html
2. 위키피디아
http://en.wikipedia.org/wiki/PhoneSat
3. PhoneSat
http://www.phonesat.org/
4. 안드로이드 기반의 인공위성, 우주에 가나 ?
http://www.packetinside.com/2011/01/blog-post_28.html

2013년 4월 26일 금요일

데이터 유실없이 디스크 파티션 크기 재 조정하기

몇일전에 디스크 전체를 파티션 하나로 잡고 리눅스를 설치하였습니다. 그런데 윈도우도 설치할 필요가 있어서 멀티부팅으로 해야 할 상황이 생겼습니다. 그러나 디스크는 전체가 이미 파티션으로 잡혀 있어서, 파티션 재조정을 하였습니다. (아무것도 없이 새로 설치한 것이라 다시 재 설치하면 되었지만 그게 귀챦았습니다 ^^ ) 데이터 유실 없이 간단히 할 수 있는 방법으로 Gparted 를 이용하는 것입니다. resize2fs 를 이용하기도 하나, GUI 기반으로 쉽게 이용할 수 있는 Gparted 를 추천합니다.

자리에 굴러다니는 Rescue 시디가 하나 있어서 부팅해 보았더니 gparted 가 있어서 실행하여 파티션을 Resize 시도하였습니다.


그런데 실패했습니다. 이상한 부분이 있긴 했었습니다. Ext4 파일시스템 인데 위 그림과 같이 Ext3 로 나오는 것이었습니다. 버전이 오래된 것이라 제대로 지원을 하지 않나 봅니다.

다시 Gparted 를 다운로드 받았습니다.

http://gparted.sourceforge.net/

저는 이게 ISO 부팅 으로도 파일을 지원하는지 몰랐는데, 있더군요 ^^
간단히 해당 시디로 부팅을 하고 보면 파일시스템도 Ext4 로 완벽하게 인식됩니다. 파티션 Resize 를 선택하고 용량을 줄이고 재조정을 끝냈습니다. 그리고 남은 파티션 영역쪽에 윈도우를 설치하여 멀티부팅을 할 수 있었습니다.


파티션 재조정이 필요한 경우에 gparted 를 떠올려 보세요. 윈도우 환경의 여러 도구들도 많지만, 리눅스 유저라면...

참고로, 데이터 유실이 발생할 수 도 있는 가능성이 있을수도 있으므로 백업을 받고 진행하는 것이 좋습니다. 혹시라도 모를 미연의 사태를 방지하기 위하여 ㅜㅜ

4월의 마지막 불타는 금요일 잘 보내세요 ^^

2013년 4월 22일 월요일

집에서 Passive 네트워크 탭(Tapping) 장비 만들기

네트워크 트래픽 데이터를 덤프할때 기업에서 많이 사용하는 방법중의 하나가 Tapping 하는 것입니다. Tapping 전용 장비를 이용해 흐르는 트래픽 데이터를 Transparent 하게 중간에서 엿 볼수가 있는 것이죠. 트래픽 양이 큰 경우에는 더 큰 대역폭이 필요해 지므로 가격은 계속 비싸지겠죠. 전용장비 이외는 시스템에서 여러개의 네트워크 인터페이스를 설치해 사용할 수 있는 방법도 있습니다. 즉, 자기가 게이트웨이인양 모든 트래픽이 자기를 거쳐서 나가게 되므로 해당 인터페이스에서 덤프를 뜨게 되면 모두 관찰할 수 있습니다. 여러 작업을 거쳐야 하므로 조금 귀챦은 일이 되겠죠.


이보다 더 쉬운 방법은 과거에 사용하던 더미허브를 이용하는 것이죠. 더미허브 어디다 꼽아도 해당 허브의 모든 트래픽을 관찰할 수 있습니다. 요새는 더미허브 자체도 잘 나오지도 않아서 오히려 구하기도 힘듭니다 :-)

집에서 한번 시도해 볼 수 있는 Tapping 을 만들어 놓은게 있더군요. 스노트 팀에서 비슷한 다이아그램을 그려서 공개해 놓은게 있었는데, 막상 누가 만들어 찍어 놓은 사진을 보니 그럴싸합니다. 아래는 전체적인 그림 입니다.


4개의 RJ-45 잭을 이용해 2개의 포트는 트래픽 입력, 출력으로 이용되고 나머지는 2개는 입력데이터가 다른 포트로 나가고 출력 데이터는 다시 다른 포트를 지나 흐르는 것입니다. 아래 그림이 실제로 만들어 놓은 것입니다.

혹시, 아래 그림과 같은 잭을 어디서 살 수 있나요? 아시는 분은 댓글좀 ^^ (우리가 흔히 쓰는 RJ-45 잭 하고는 형태가 조금 다르네요)



이렇게 해서 인바운드나 아웃바운드를 따로 모니터링을 할 수도 있습니다. TAP 1, 2 에 연결된 포트가 컴퓨터에 연결되고 각 인터페이스에 덤프를 뜨면 따로 볼 수 있게 됩니다. 함께 같이 본다면 다음과 같이

shell> ifconfig bridge create
shell> ifconfig bridge0 addm ed0 addm ed1 monitor up
shell> tcpdump -i bridge0

브릿지를 만들어 하면 됩니다. 조금 더 세부적인 내용은 아래 URL 을 참고하세요.
저도 시간되면 집에서 한번 만들어 봐야 겠네요 :-)
그러나 요새는 글 한번 쓰기도 쉽지 않아지네요. ㅋㅋㅋ

[참고]
1. http://thnetos.wordpress.com/2008/02/22/create-a-passive-network-tap-for-your-home-network/
2. 직접 만들어 본 Tapping 장비와 라즈베리파이 연결
라즈베리파이(Raspberry PI)가 네트워크 탭(Tapping) 장비로 변신한 이유

2013년 4월 10일 수요일

25개의 GPU 를 이용해 6시간안에 윈도우 패스워드를 깨트린다고 ?

패스워드 해쉬 크랙 관련하여 몇 개의 글을 포스팅 했었는데요, 작년12월에 나왔던 것을 이제야 하나 보게되었습니다. 재미있는 내용인데 그 내용인즉 25개의 GPU 를 이용해 윈도우 패스워드는 6시간 이내에 깨트릴 수 있다는 것입니다.

성능이 대단하죠? 초당 3500 억개를 연산할 수 있다고 합니다. MS 윈도우 제품중 NTLM 암호화 알고리즘을 사용하는 해쉬를 대상으로 한 것으로 패스워드 구성은 8 자 이내로 대문자/소문자, 숫자, 특수기호 등을 모두 포함한 것입니다. 이런 형태가 일반적으로 기업에서 사용하는 범주의 암호 형태이지요.

시스템은 5개의 4U 서버를 이용했고, 리눅스 기반으로 GPU 클러스트를 구성했습니다. 25개의 AMD Radeon GPU (HD7970, HD5970, HD6990, HD5870) 가 이용되었고 사용된 전략만도 7kW 라고 하네요.

한 컴퓨터에서 25개의 GPU 를 이용할 수 있는 없기 때문에 클러스트 구성을 한 것이고요 Virtual OpenCL 클러스트 플랫폼을 이용해 5개의 서버의 GPU 가 하나의 로컬 컴퓨터에 있는것 같이 구현한 것입니다. 패스워드 해쉬에 사용한 프로그램은 ocl-Hashcat Plus 로 GPU 를 지원하면서 무료로 이용할 수 있습니다.

이전에 테스트 하였던 컴퓨터는 Radeon HD6990 4개를 이용해 NTLM 해쉬에 대해 초당 880 억개를 했다고 하는데, 이전에 비하면 속도가 4배 가까이 증가한 것입니다. 일전에 링크드인 패스워드가 유출된 적이 있었습니다. 그 당시 그 패스워드 해쉬를 크랙하는데 650 만개의 패스워드중 90% 가 크랙되었다고 합니다. 그만큼 사용자들이 패스워드를 단순한 조합으로 사용하고 있다는 뜻이기도 합니다.

이전의 포스팅에서도 언급했듯이 패스워드를 사용시 어렵게 구성해야 합니다. 그러나, 현실은 쉽지 않죠 ^^
너무나 많은 사이트들에서 패스워드를 요구하다 보니 일일이 다 다르게 만들기도 힘들고 어렵게 하자니 외우기도 힘들어지고요. 그러다 보니 패스워드를 쉽게 만들어 사용하는 경우가 많은데, 이런 걸 보면 생각이 바뀌시지 않나요 ? :-)

[관련 포스팅]

2013년03월13일 15기가의 1,493,677,782 패스워드 단어 사전 공개 
2011년07월14일 분산 기반의 CPU/GPU 해쉬 크랙 프로젝트 'Durandal'
2010년09월15일 8자리 패스워드는 저리가~ 12자리 패스워드를 사용하자 
2010년11월23일 당신의 패스워드는 안전한가? 클라우드 기반 패스워드 크랙킹
2010년12월01일 자바스크립트기반의 분산 해쉬 크랙킹


[참고]
1. Password Cracking HPC, Passwords^12 보안 컨퍼런스
http://passwords12.at.ifi.uio.no/Jeremi_Gosney_Password_Cracking_HPC_Passwords12.pdf
2. ocl-Hashcat Plus
http://hashcat.net/oclhashcat-plus/
3. 관련 기사
http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/

2013년 4월 2일 화요일

다양한 프로토콜 패킷헤더 정보를 한눈에 정리한 엑셀파일

어느덧 벌써 4월이 성큼 다가왔습니다.  오늘은 여러분들에게 각종 프로토콜 헤더 정리가 잘된 엑셀 파일 하나를 공유합니다. 우연챦게 보게되었는데, 엑셀에 프로토콜 헤더를 깔끔하게 정리해 놓았더라고요.

서브넷, IPv4, IPv6 헤더, TCP, UDP, ICMP, ARP, DNS 등 헤더가 이쁘게 정리되어 있습니다. 그리고 Tcpdump, ngrep, ASCII 정보도 포함되어 있어요. 엑셀파일을 열어보면 다음 그림과 같습니다.




















해당 파일을 다운로드 받을 수 있는 곳은 아래와 같습니다 :

http://wiki.gnhlug.org/twiki2/pub/Www/IpReference/Packet_Headers_Subnet_Breakdown.xls

그럼, 참고하세요 :=)