WPA/TKIP is vulnerable ?!

最近 802.11 無線網路協定中所使用的加密演算協定 WPA 傳出了一些消息,一說可以利用常見的圖形處理硬體加速破解運算速度,另外則是說德國的學術單位研究出 WPA/TKIP 中使用的弱加密方式,足以用以塞入短封包攻擊。

首先是 Slahsdot 上提到俄國的資訊安全公司 Elcomsoft 釋出了一款商業軟體 ElcomSoft Distributed Password Recovery,這款軟體的最大特色是可以利用 NVIDIA圖形處理器來加速猜密碼的時間,根據 Elcomsoft 的網頁說明,運算速度可加快二十倍到百倍。若是搭配大量的硬碟、主機與顯示卡,的確是有機會快速破解 WPA (WPA2)/PSK 阿。

不過 Elcomsoft 號稱有專利申請中,不過社群中早已有人實做可以在 Linux, MacOS 上執行的版本,叫做 pyrit (對,他是 Python 寫的)。最新的開發進度與消息可以在 pyrit blog 上找到。

Slashdot 上另外一則消息,則是說德國的 Erik Tews 與 Martin Beck 成功的「破解」WPA/TKIP 加密方式,即將在 PacSec 會議上發表。不過事實是,他們利用了 TKIP 的弱驗證碼演算法與 802.11e 的漏洞,於是可以將小封包如 ARP 封包重新送入網路中。這個技術並沒有取得無線網路使用的密碼,而入侵者也無法盜用該無線網路。

詳細的說明可以參考原始的論文 - Practical Attacks against WEP and WPA,應用程式 tkiptun-ng 也可於 aircrack-ng 網站上下載。ArsTechnicaGlenn Fleishman 寫了十分詳盡的技術說明 - Battered, but not broken: understanding the WPA crack

November 17th, 2008 at 11:28 pm | Comments & Trackbacks (0) | Permalink


該換 ssh keys 了

因為一個兩年前就犯下的愚蠢行為所造成的安全問題 DSA-1571-1 / CVE-2008-0166 ,你必須儘快更新所有曾經在 Debian 上透過 libssl0.9.8 (0.9.8c-1 或之後版本) 所產生的金鑰。

這個問題是當初為了修正透過 valgrind 檢查記憶體時所產生的錯誤訊息,因此拿掉了程式碼中的一行,該行恰巧是用以設定產生亂數 (RNG) 的種子,如此一來造成所有透過 libssl 產生亂數的密碼都是可以被預測的。結果就是加密金鑰很容易被猜到。修正方式就是再加回該行。不過此次更新也一併修正了 CVE-2007-3108CVE-2007-4995,因此應該直接升級到新版 openssl 較為保險。

影響的系統包含所有 Debian 為基礎的系統,如 Ubuntu (USN-612-1) 等。影響的軟體範圍包含所有的使用 libssl0.9.8 產生的金鑰。若你使用 etch 請確認 openssl 版本高於 0.9.8c-4etch3, sid 與 lenny 則是 0.9.8g-9

在更新完 openssl 後,你應該重新產生或轉換舊的弱金鑰 (weak keys)。首當其衝的是 ssh ,因為是最容易被攻擊而取得系統權限的軟體。Debian 與 Ubuntu 各提供工具以供用戶自行檢查。

Ubuntu 提供的一個小工具 ssh-vulnkey 可以幫你檢查單機上的 ssh user key 與 host key 是否是有風險。此工具可於新版的 openssh-client 取得,ssh-vulnkey 目前只在 Ubuntu 的套件庫中。

ssh-vulnkey 是一個 以 C 開發的 native program,速度比 dowkd.pl 快上一些。你可以於 Debian 或 Ubuntu 新版的 openssh-client 取得。(Debian 上的 openssh 版本於 1:4.3p2-9etch1 之後)

Debian 使用者可以使用 Florian Weimer 所開發的 dowkd.pl,載點位於

下載之後,請透過以下指令驗證檔案無誤

$ gpg --recv-keys 02D524BE
gpg: requesting key 02D524BE from hkp server pgp.mit.edu
gpg: key 02D524BE: duplicated user ID detected - merged
gpg: key 02D524BE: public key "Florian Weimer (HIGH SECURITY KEY) " imported
gpg: public key 5E13C7DB is 715511958 seconds newer than the signature
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   2  signed:  38  trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: depth: 1  valid:  38  signed:  28  trust: 6-, 12q, 0n, 6m, 14f, 0u
gpg: depth: 2  valid:  14  signed:  14  trust: 2-, 4q, 0n, 2m, 6f, 0u
gpg: depth: 3  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 2f, 0u
gpg: next trustdb check due at 2008-12-13gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
$ gpg --verify dowkd.pl.gz.asc
gpg: Signature made Tue May 13 22:09:19 2008 CST using RSA key ID 02D524BE
gpg: Good signature from "Florian Weimer (HIGH SECURITY KEY) "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: C8D3 D9CF FA9E 7056 3F32  FA54 BF7B FF04 02D5 24BE

確認檔案正確後,將其解開

$ gunzip dowkd.pl.gz

指令的用法很簡單,它可以用來檢查金鑰檔、host keys、user keys.

$ perl dowkd.pl help
usage: dowkd.pl [OPTIONS...] COMMAND [ARGUMENTS...]

COMMAND is one of:

  file: examine files on the command line for weak keys
  host: examine the specified hosts for weak SSH keys
  user: examine user SSH keys for weakness; examine all users if no
        users are given
  help: show this help screen

OPTIONS is one pf:

  -c FILE: set the database cache file name (default: dowkd.db)

dowkd currently handles OpenSSH host and user keys and OpenVPN shared
secrets, as long as they use default key lengths and have been created
on a little-endian architecture (such as i386 or amd64).  Note that
the blacklist by dowkd may be incomplete; it is only intended as a
quick check.
$ perl dowkd.pl host kalug.linux.org.tw
# kalug.linux.org.tw SSH-2.0-OpenSSH_4.3p2 Debian-9
# kalug.linux.org.tw SSH-2.0-OpenSSH_4.3p2 Debian-9
kalug.linux.org.tw: weak key
kalug.linux.org.tw: weak key
$ perl dowkd.pl user
/home/chihchun/.ssh/id_rsa.pub:1: weak key

若你發現掃描結果中有 “weak key” 字樣,應該儘速重新產生該金鑰。

對於 Host Key 的作法是在該伺服器上執行以下指令,如此便會產生新的 host keys

# rm /etc/ssh/ssh_host_*
# dpkg-reconfigure openssh-server

若 authorized_keys 或 private keys 為弱金鑰,則請刪除他們,升級 openssh 至新版後,再重新以 ssh-keygen 產生金鑰。若你知道怎麼使用 authorized_keys,大約就知道如何重新產生 ssh keys,細節不詳述。

以上是 ssh keys 處理方式,至於其它影響的軟體,請持續參考 http://www.debian.org/security/key-rollover/ 中的說明進行設定。

May 14th, 2008 at 5:32 pm | Comments & Trackbacks (1) | Permalink


WKnock Project

WKnock 是由 Laurent Oudot 在 2005 年的 Black Hat EuropeWLAN and Stealth Issues 議程公開的計畫。非常的有趣的概念,可以防止無線網路訊號被偵測到,如此可以防止被 WarDriving 時被發現有 Wireless Access Point 存在,有效避免被路人盜用或完全的隱藏偷藏在別人公司裡的無線小後門

雖然無線網路介面可以將 ESSID Broadcast 關閉,但是介面還是會送 Beacon,雖然沒有 ESSID,還是可以讀到 BSSID,因此非常容易被偵測到有 AP 存在 。WKnock 的基本的概念是平時都將無線網路介面設定為 RF Monitor 模式,並且聽取其他人的 Probe Request,只有再正確的 ESSID 出現時,才啟動該無線網路介面。因此無法透過一般的無線網路工具偵測到該 AP 的存在。(當然,如果連上了網路而啟動了該介面,系統還是會送 Beacon,如此還是有機會曝光的)

April 5th, 2008 at 8:05 pm | Comments & Trackbacks (0) | Permalink


網頁掛馬問題研究

昨日 (2/19) 的工商日報頭版 (發現過去一年整天做些低等技術的東西而停止注意產業資訊,因此又開始恢復每天讀兩份以上平面報紙並書寫的習慣) 是調查局發佈的「網頁掛馬」攻擊新聞稿。看似警告民眾網路有毒,千萬別亂逛亂抓陳冠希的性愛照,不過新聞稿下方還刻意的引用刑法第 235條散布猥褻物品罪,感覺嚇阻散佈色情照片的味道大於病毒警示阿。

據說鳥人大大的說好話,看好圖說法,萬一不小心見到的新版的性愛照,請先丟給阿碼科技的 Armorize Special Forces 團隊掃一掃喔。因為幾篇新聞中提到調查局這次的數據都是出自阿碼科技,調查局透過HackAlert™系統長期監控台海網站,這次類似的網站大約有180個,有許多網站到目前為止都還有裝有惡意程式。(阿碼科技尚很佛心的提供了 HackAlert 系統免費申請帳號試用) 新聞中並提供了幾個示範網址

  • htxp://72.167.132.171/chen_photo.html
  • hxtp://se.97ai.com/html/42/62969.shtml
  • hxtp://ww2.spooots.com/index.html

» Continue Reading

February 21st, 2008 at 2:43 am | Comments & Trackbacks (4) | Permalink


破解 Windows 之撥接密碼

為了某些原因需要到處為人安裝 Wireless Access Point, 有些人總是把 ISP 的撥接密碼直接紀錄在電腦中,久而久之就忘記了。偏偏為了安裝網路設備,必須把寬頻的帳號密碼都設定起來,為了避免無法設定的尷尬狀況,只好想辦法破解復原撥接密碼。

» Continue Reading

February 20th, 2008 at 9:48 pm | Comments & Trackbacks (1) | Permalink


備份 Firefox 密碼

過去有把各種密碼寫下存在某個密碼管理軟體中的習慣,隨著每日參訪的網站越來越多,已經無暇停下慢慢的剪下貼上密碼,於是乎密碼都直接擺在 Firefox 的 Password Manager. 使用 Firefox 的 master password 加上對主目錄的 AES 加密,倒是不擔心密碼洩漏。

» Continue Reading

January 28th, 2008 at 5:10 pm | Comments & Trackbacks (0) | Permalink