星期日, 1月 30, 2011

WPA

在 2003,由於 WEP 的缺陷而面臨沒加密機制可用狀況下,Wi-Fi 聯盟在 802.11i 標準制定無法如期完成前,緊急推出 WPA,也就是 TKIP (Temporal Key Integrity Protocol),作為將來較安全但較複雜 WPA2 前的過渡,部份 WEP 設備可透過韌體更新使用 WPA。

WPA 相對於 WEP 的改進如下:
  1. IV (Initialization Value) 增長為 48-bit,並由 TKIP Sequence Counter (TSC) 產生,強制每個封包不同。
  2. 延續使用 WEP 的 128-bit RC4 stream 加密,但不再是簡單的 IV 接上固定的 WEP key,而是每個封包重新由 48-bit source MAC address, 128-bit Temporal Encryption key (TEK) 及 TSC 混和產生。由於 TSC 每個封包不同,所以每個封包加密的 key 也不同,可避免 replay attacks。
  3. 每個 MAC SDU (上層封包) 多加了 64-bit Message Integrity Check (MIC),採用 Michael 演算法。
封包 PDU 格式






← RC4 加密 →
802.11 Frame headerIVResExt.
IV
Key
ID
Extended
IV
PayloadMICICVFCS

24b5b1b2b32b
64b32b
  • Ext. IV 表示有 Extended IV 欄位,及每個 MAC SDU 的 MIC
  • IV + Extended IV 的 byte 依序為 TSC1, d, TSC0, TSC2, TSC3, TSC4, TSC5,組合成傳送的 TSC。d 為 dummy byte 避免較弱的 TKIP key

Michael 演算法是 WPA 設計者在大多數舊的網路卡也能使用的條件下找到的最強的演算法,然而它可能會受到偽造封包攻擊。為了降低這個風險,WPA 網路每當偵測到一個企圖的攻擊行為時就會關閉 30 秒鐘。

WPA 個人版是用 pre-shared key (PSK) 的方式,可以輸入 8 ~ 63 個 ASCII 字元的密碼產生 256-bit 的 Pairwise Master Key (PMK),或是直接輸入 64 十六進位數字。密碼產生 PMK 是用 PBKDF2 演算法 (JavaScript),SSID 作為 salt,執行 HMAC-SHA1 4096 次 。

PMK 加上兩者 MAC address、supplicant nonce 及 authenticator nonce 經過 SHA-1 產生 Pairwise Transient Keys (PTK),包括 EAPOL-key Encryption Key, EAPOL-key Integrity Key, TEK, 及 MIC key,這些每次 association 會重新產生。

而企業版是用 802.1X 認證伺服器來散佈不同的鑰匙給各個用戶。

安全性
  • 暴力破解 (brute force attack) 弱密碼需要兩三天
  • 解出達 596 bytes 以下的封包的 keysteam,例如 ARP,插入假的 ARP 將封包導到其他地方
  • 一種新形式的攻擊可解出所有到 client 的封包,但關掉 QoS 可避免。
參考
  1. CSE571S: Network Security (Fall 2007)對網路安全有不錯的講解
  2. Wikipedia: Wi-Fi Protected Access
延伸閱讀

星期六, 1月 29, 2011

FON2100

La Fonera (FON AP) 的第一版
My Hacking (參考 sylphidsu's FON Hacking)
  1. 變回出廠的 firmware -- 果真要三次,我的出廠版本是 0.7.1 r1
  2. 打開ssh (La Fonera: nuovo hack per il firmware 0.7.1r1) -- 連上MyPlace,登入管理介面後,submit那兩個下載的html,然後就可以 ssh root@192.168.10.1 了 (預設密碼是 admin)
  3. 把 dropbear (ssh server) 加入預設會開的 service
    1. /etc/firewall.user  中把 port 22 那兩行 uncomment
    2. cp /etc/init.d/dropbear /etc/init.d/S50dropbear
  4. 重設internet
Firmware Upgrade
  • FON 的 image 是經過 RIPEMD-160 加密的,由 Pablo Martin 寫的 /bin/fonverify 確認後才會寫到flash (參考 Rex Tsai's Free your La Fonera)
  • 不想自動更新firmware的話
    1. mv /etc/init.d/N40thinclient /etc/init.d/thinclient
    2. /etc/crontabs/root 裡面 thinclient 那一行 comment 掉
  • thinclient script -- executed when boot and .... It will “ssh” into the download.fon.com:1937 to get the config scripts from FON.com. We can use dnsspoof and some program to make the router download some script we want it to run. (參考 Rex Tsai's Free your La Fonera)
RS-232
JTAG
ToDo
References
  1. Rex Tsai's Hacking Fonera
  2. sylphidsu's FON Hacking
比較
  • FON2200:也是 FON 1.0,但改善了散熱,天線接口多了擋板,變壓器也不同。
  • FON2201, FON 1.5, FON+:多了 LAN 介面,是用 Marvell 88E6060 擴充的
  • FON2202, FON 2.0:多 USB 介面
  • FON=5V*2A=10W, FON+=7.5v*1A=7.5W 應該可以用太陽能板

星期日, 1月 23, 2011

WEP

Wired Equivalent Privacy 意思是提供跟有線相當的隱私,主要是防止竊聽,附帶防止未經授權的存取。因有缺陷,2003 年由 WPA 取代,2004 年再由 WPA2 所取代。

雙方知道 WEP key,傳送端用 WEP key 加上一串亂數用來加密資料,傳送亂數跟加密資料。這個亂數稱為 Initialization Value (IV),有 24-bit。接收端用 WEP key 跟封包裡的 IV 就可以解密。不固定的 IV 讓 WEP key 較不容易破解。

WEP key 有下列長度。
  • 64-bit WEP (WEP-40): 24-bit IV + 40-bit key (10 位十六進位數字)
  • 128-bit WEP (WEP-104): 24-bit IV + 104-bit key (26 位十六進位數字)
  • 256-bit WEP: 24-bit IV + 232-bit key (58 位十六進位數字),部份機器有

封包格式



← RC4 加密 →
802.11 Frame header24-bit IVKey
ID
PayloadICVFCS
  • ICV (Integrity Check Value):Payload 的 CRC-32
  • 24-bit IV (Initialization Value):依不同實作方式可以每個封包用不同值。前面串 WEP key 形成 RC4 key,用來產生跟 Payload 加 ICV 等長的虛擬亂數,然後一起 XOR,稱為 RC4 加密
  • Key ID:範圍為 0 ~ 3,用來選 4 組 WEP key 其中一個,但一般只用一組。
  • 認證
    • Open System:開放認證,WEP 只用在後續的資料傳輸
    • Shared Key:WEP 用於認證,但反而變成弱點。採用 4-way challenge-response handshake:
      • client 送認證要求給 AP
      • AP 回送一個 clear-text 的 challenge.
      • client 用 WEP 加密 challenge 送回給 AP
      • AP 檢查是否對回送 positive 或 negative response.
  • 缺陷:WEP 是一個安全攻擊很好的訓練場地,幾乎所有地方都有弱點
    • IV collisions
    • 攻擊者故意讓 IV 相同,讓 WEP key 容易破解。
    • ...
延伸閱讀

星期六, 1月 22, 2011

RC4 加密

  • RC4 是一種廣泛使用的 stream cipher (串流密碼),用於 SSL/TLS, WEP, WPA 等,Wikipedia 有不錯的說明。
  • stream cipher 密文產生的方式是原本明文的資料跟一樣長的虛擬亂數一起 XOR;密文再跟一樣的虛擬亂數 XOR 就變回原來的明文,屬於對稱式加密演算法。「虛擬亂數」近似隨機,但不是真的隨機,虛擬亂數的值可完全由虛擬亂數產生器的初始值決定,也就是這一小段初始值就可以決定整個隨機亂數的值。所以只要知道虛擬亂數的產生方式及使用的初始值,就可以加密、解密。
  • 許多 stream cipher 或虛擬亂數是基於 LFSR 產生,很適合用硬體實現,但用軟體效率不好。而 RC4 是為軟體而設計的虛擬亂數產生器,只需要 byte manipulations。
  • RC4 有兩個演算法 -- key-scheduling algorithm (KSA) 及 pseudo-random generation algorithm (PRGA) -- 依序進行來產生虛擬亂數。RC4 的 key 一般 5 ~ 32 byte 間,KSA 先由 key 產生 256 bytes 的排列 -- S[256],PRGA 再產生所需要的虛擬亂數長度。Wikipedia 頁面有個 C 語言的範例,相當簡單,但相對地破解的運算也一樣簡單。

星期二, 1月 18, 2011

Linux 串流影音下載

mms (Microsoft Media Services):用 mimms
rtsp:mplayer -noframedrop -dumpfile out.rm -dumpstream rtsp://ooxx (未試過)

參考:[教學]在 linux 底下下載 mms, rtsp 影音串流檔

延伸閱讀:Streaming Media Protocols[HTTP,MMS,RTSP,PNM,RTMP]

median filter

median filter (nonlinear)
輸出最近 L 筆資料的中間值,對移除 impulse noise 效果很好,但常無法有效地減低寬頻雜訊。折衷方法是跟另一個線性的濾波器,例如 Hanning filter,結合使用。

其它文章:

星期一, 1月 17, 2011

locate

locate  或 mlocate 類似 find  的指令尋找特定的檔名,但使用事先建立的資料庫 /var/lib/mlocate/mlocate.db 來加快尋找速度。這個資料庫是在 /etc/crontab → /etc/cron.daily/mlocat 執行 updatedb.mlocate 每天更新一次,/etc/updatedb.conf 可設定資料庫的排除機制。

locate 對我似乎不太會用到,每天開機都會用 ionice 在 idle 時執行,但有時還是會讓機器變得很忙碌,於是我乾脆將 mlocate 移除。

星期五, 1月 07, 2011

Wake on LAN

只要 Ethernet 有一段「6-byte 0xFF + 重複 16 次的 6-byte MAC Address」資料,不管前後是什麼, 讓沉睡中支援 WoL 的機器收到,就會啟動喚醒動作。
  • 正確的 Ethernet frame 就可以通過 switch
  • 可以是 UDP 封包。TCP 不行,因為無法先建立連結。

星期日, 1月 02, 2011

Embedded Linux 根目錄

基本的目錄:
  • /:掛載到唯讀的 squashfs 檔案系統
  • /bin
  • /etc
  • /sbin
  • /dev
  • /lib
  • /proc:掛載 proc 檔案系統。kernel 可設為不支援 /proc
    • /proc/bus/usb:掛載 usbfs
  • /sys:掛載 sysfs。
  • /var:掛載使用記憶體的 tmpfs 或 ramfs 檔案系統,重開機會消失。
    • /var/log
    • /var/run
    • /var/tmp
  • /tmp:chmod 1777,檔案只能由建立者移除。symbolic link 到 /var/tmp
以下可以省略:
/home
/mnt
/opt
/root
其他 /usr 下的目錄如:man, src, local 等。
其他 /var 下的目錄如:cache, mail, spool 等。