因為一個兩年前就犯下的愚蠢行為所造成的安全問題 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/ 中的說明進行設定。

Ok, 我們看過了 Mobile Device 上應用 accelerometer technology 的應用,若是我們想實做同樣的技術在 Laptop, UMPC 或是 MID 上該如何作 ?

在 Thinkpad 上有個特色功能稱為 Active Protection System,基本上就是利用偵測加速度來達到保護硬碟的功能。透過這個功能,我們可以用來偵測筆記型電腦的傾斜狀態,在 Linux 上可以透過 HDAPS 驅動硬體並取得資料。

你可以透過 Yoni Rom, Patrick Kilian 與 Robert Love 所寫的 hdaps-gl 來動態顯示筆記型電腦的傾斜狀態。

雖說 Thinkpad 的加速度偵測只有二維 (BTW, 我的 Thinkpad X60 不知為什麼 X 軸, Y 軸是相反地),但是也足以玩很多把戲,像是防盜系統 (有人碰的電腦就自爆硬碟?!) 藉由搖晃切換桌面,或者像是 iPhone 一樣旋轉畫面為橫向、直向。甚至拿來玩滾小球遊戲 neverball 、或者直接把 X60 變成絕地武士的光劍!上回 Tatsuhiko Miyagawa 來台灣的時候也見過它展示透過 Thinkpad 使用 Google Maps 的 lighting talk,非常逗趣。

若是要在其他系統上實做這樣的功能,恐怕是得外加 acceleration sensing device 才行。極強的 hacker Till Harbaum (Twonky, NanoVM, LCD2USB, BlueZ 等開發者) 自己做了兩個版本的 USB TiltStick,可以分別偵測二維與三維的加速度。透過 USB 介面,可以接到 Nokia N8XX 系列設備或是個人電腦上,同時他也將軟體與驅動程式移植到 Maemo 平台。如此就可以在 Maemo 上玩些 Enigma 的小遊戲。

非常有趣是吧,雖然 Till Harbaum 提供了完整的電路圖,不過要自己找到元件跟焊接成功對我這種電子大外行實在困難。所以比較簡單的方法大概是直接買像是 Phidgets 提供的 Accelerometer 元件 了吧。:-)

若你使用 N95, N82 等手機,可能已經用過利用 Accelerometer technology (加速度感應器) 為基礎所開發的 rotateMe,rotateMe 基本是偵測你手機的持有方向,並自動選轉螢幕到橫向或直向,類 iPhone 的螢幕自動旋轉功能 (視訊展示)。

再找深受簽章之害得苦主時,看到 ShakeSMS,它基本是讓你在簡訊來時不需要動手指頭,只需要晃一晃就可以解鎖讀簡訊,甚至刪除,非常帥氣。有了這軟體只需要注意不要再來簡訊時跌跤,誤刪訊息即可。 XD

ShakeSMS 昨日已經正式釋出簽署過的版本,可以直接安裝。作者 Tony Ren 稍早也做了 FlipSilent (翻面靜音),讓你在手機來電鈴聲響起時,將手機翻轉,手機便自動切入靜音模式。非常有趣的應用。

自從去年在馬德里弄丟我的 X60 (1706-A78)後,就一直想透過 ThinkCare 找回我的電腦。畢竟尚有一年半的保固,且系統用了 TPM,竊賊大有可能跑回 ThinkCare 維修以解開密碼保護。

今日又在上線註冊了另外一台 Thinkpad X60,順道查一下是否有任何管道可以查詢維修紀錄。無意中發現 Lenovo 全面保障計畫,基本上它是一個針對特定機種的延伸保障計畫,此方案保障了

  • 液體潑瀉按鍵盤
  • 產品意外被跌撞
  • 電擊導致貨品線路損毀
  • 液晶螢幕意外損毀

等四項新買電腦最不想卻可能發生的倒楣事,保障時間是一年。一年內,萬一發生以上事項,只需要負擔最高 NTD 8500 (未稅) 的成本。

台灣的條款是不包含竊盜的。倒是我發現香港的 Lenovo「全面保障計劃」承保範圍居然是包含首年於香港被竊或遺失保障!(不含在香港境外發生的盜竊 / 遺失) 而且最高只需要負擔 HK$ 2000 的費用,真是令人羨慕的待遇阿!

前一陣子提到 SymbianSigned 的簽章服務暫停服務了好一陣子,原因是有大量的中國用戶透過工具軟體自動連線到 SymbianSigned 上申請金鑰,因此連線量與盜版行為大增。到了前幾周,在 SymbianSigned 調整的簽署的流程與模式後,網站的服務狀態才穩定下來。不過前一陣子系統暫停服務與各種註冊限制,已經嚴重的影響了一般軟體開發者的進度。更別網站暫停服務的挫折激怒了大量的終端使用者。

這其實是一個長期存在的問題,大部分的使用者再買了所謂 Smart Phone 後,總會新奇的想裝上各種軟體,無論是免費、中文化或被破解的軟體。這也就是使用者挑選較為昂貴的 Smart Phone 而非便宜的 Feature Phone 的原因,他們享受使用額外功能的樂趣。

然而,在 Symbian 平台上 (Nokia S60 系列手機為主流),安裝軟體往往不是一件容易的事情。因為平台的安全限制,來自 SymbianSigned 正面的說法是保護使用者,避免使用者無意中安裝了惡意軟體,且保護了開發者的著作財產權。實質的效果是,商業軟體開發者則必須負擔申請憑證的費用,等待壅長的送測時間。更別提其他的自由軟體/免費軟體開發者,他們根本無力負擔簽章的費用,而申請免費簽證的程序又過於複雜,於是成本便被轉嫁到使用者身上。使用者痛苦的跟著各種論壇上殘缺不全的指引,試著自己申請開發者憑證,以便可以簽署專供自己手機使用的免費軟體。

整個生態系統花費了大量的資源支持這種流程,完全是因為

This is approach is in line with agreed mobile industry recommendations.
Source:Open Signed Online vs Developer Certificate Q&A

行動通訊產業不願見到使用者有權自行安裝軟體到設備上,即使是使用者自己出錢買下。根據 OMTP Recommendations Papers ,這是業者的臠。

關於 Symbian Signed 的目前狀態,不彷參考 Nokia 高級技術專家路戈寧的說明 (簡報)。現在的簽署規則是除非你購買了 Publisher ID ,否則只能作 Open Signed Online ,且軟體 UID (Symbian 每一軟體有獨一的 UID) 只能在 Test Range 內,這代表只有測試版可以被簽署。因此你還是無法直接簽署使用 FreeWare,並自由的安裝在自己手機上。儘管說 60% 的 Symbian APIs 不需要簽章就可以用,但是幾乎不會有軟體只用這 60% 內的 APIs 阿。

自然使用者不會為此坐以待斃,中國的幾個主要手機論壇,都開始有人申請 Publish ID,並免費發送給論壇註冊會員,其中一個網站 OPDA 已經為此送出簽證給超過十萬台 Nokia S60 手機!而且申請人數持續上升中。另外有一群人則試著破解 ROM image 中的 swipolicy.ini,藉此允許安裝未簽署的軟體並提高使用者的的執行權限(Tutorial: Bypass Symbian Signed & Install UnSigned SISX/J2ME Midlets on Nokia S60 v3 with Full System Permissions)。

當使用者發現他們付出了更多費用,卻無法獲得預期的好處時,下次換機是否會直接換為 Windows Mobile, iPhoneAndroid 等相對開放的平台呢?或者 Android 與 iPhone 的強勢賣方力量會改變傳統的電信市場?

拭目以待。

2008 開放技術台灣高峰會 (Open Tech Summit Taiwan 2008) 預計於本週舉辦,根據目前的出席人員列表,有幾位我深為敬重的開發者會來台灣 (sort by letters)

當然國內的活躍開發者如 Jserv, pcman 等人也會出席。會議對話深度精彩可期,不過大約也需要足夠的背景知識與語言能力才能跟的上議程,希望不至於曲高和寡

主辦單位是 社團法人台灣數位文化協會 (ADCT)以及開放硬體策進會(Open Hardware Initiative)主辦。籌辦團隊是 Marek Lindner 等人,主題是 “Community” (社群)。希望可以透過此會議凝聚「社群」,主辦人希望開放給任何人對社群感興趣的人參與並加入社群。這基本上是一句廢話。根據我的認知、社群是

持有相同興趣的一群人 (group of people of the same religion, race, occupation, etc, or with shared interests) 摘至 21世紀英漢漢英雙向詞典

因此你大約對開放技術 (包含硬體、軟體) 感興趣或是 Open Mind 的人才會想加入。至於整個活動從頭到尾其實都頗令人一頭霧水,雖說目標是創造出一個合作無間或互補的環境,但是若你不認識相關主辦人,根本連報名聯絡的方式都不知道(現在已經更新了),更不用談「貢獻」。

何況社群原本就是政治詞,即使是一群人也是相同興趣但不同的目標的小圈圈出現,談「這次活動和以往國內活動最大不一樣的地方,是每個參與的人都盡自己的力量去貢獻」等共同分攤云云、開放社群的觀點未免太唱高調,過度貶低台灣本土社群。難道國內的社群運動都是單一組織人員用錢砸出來,毋需靠其他人的共同協助嗎?

主辦人之一的 Fred 寫了一篇 彼此需要的 Open Tech Summit Taiwan 2008, 開頭就為了鞭批台灣開放原碼社群的權力鬥爭亂象,痛斥國內冒用 “Open Source” 之名的邪惡廠商。不過本活動主要贊助者是華碩,也是利用自由軟體賺過水獲利的廠商之一阿。如此、如此的宣傳方式實在過度政治化。有點反胃。

只能說, Be Open Mind.

References: