2009年9月26日 星期六

[轉貼]電腦一開就會洩密

科學人 2009/06/19
撰文/吉布斯(W. Wayt Gibbs);翻譯/王怡文】

(照片提供/科學人)


重點提要

■即使最嚴密的網路安全系統,也無法確保你的電子資料不被有心駭客竊取。

■研究人員已經證實,光是利用眼球反射的電腦螢幕影像或印表機發出的聲響,就能從中讀取資訊。

■這類攻擊難以防禦,而且無法追蹤。


透過貝克斯(Michael Backes)的星特朗望遠鏡觀看走廊另一端的筆記型電腦,螢幕上的18點字清楚得幾乎就像電腦放在我膝上一樣。我再度確認了一下,這台筆記型電腦不僅位於10公尺長廊的另一端,而且背向望遠鏡,而我看到的清晰影像來自旁邊桌上的玻璃茶壺反射的倒影。貝克斯在德國薩爾蘭大學研究室的實驗發現了值得注意的事情:很多東西都會將我們螢幕上的秘密反射到偷窺者的相機裡,眼鏡、咖啡杯、塑膠瓶、金屬飾品等,效果都不錯。貝克斯甚至在最近的研究中發現,電腦使用者的眼球,光是「看著資料」就會洩密。


除了螢幕影像的倒影之外,還有許多方式會讓我們的電腦資訊經由所謂的旁通道(side channel)洩漏出去,這種安全漏洞逃過了我們用來保護敏感資料的加密處理與作業系統。最近,研究人員示範了五種方法,不需在目標電腦上安裝任何軟體就能偷偷記錄資訊(例如按鍵)。技術高超的觀察者甚至可以藉由讀取網路交換器的發光二極體(LED)閃爍訊號,或是仔細分析螢幕發出的微弱電波頻率,擷取他人的資料,甚至利用某些印表機發出的噪音也能竊取資料。


除了少數機密軍事計畫之外,大多數資訊安全研究人員都忽略了旁通道攻擊,而著重在不斷強化加密系統與網路通訊協定的防禦力,然而那只能確保資訊在電腦或網路裡的安全。旁通道攻擊利用的是電腦與真實世界之間沒有保護的地帶:從鍵盤、螢幕或印表機附近,在資訊被加密之前或被轉換成人類可閱讀的形式之後竊取。這類攻擊也不會留下異常記錄或損毀檔案等竊密行跡,沒有線索能讓安全研究人員找出竊密發生的頻率。這些專家只能確定一件事:只要資訊露出弱點並且含有可觀的金錢或智慧價值,那麼早晚一定會有人試圖偷走它。


螢幕與鍵盤都會洩密

藉由旁通道偷取資訊的概念,比個人電腦還早問世。第一次世界大戰時,參戰國的情報單位就懂得互相竊聽對方的作戰指令,當時的野戰電話只有單線,回傳的電流是利用地表傳導,間諜將地下的桿子連接到放大器上,就能竊聽對話。1960年代,美國軍事科學家開始研究電腦螢幕放射出的無線電波,並推出代號「暴風雨」(Tempest)的計畫,發展電磁波屏蔽技術,至今仍用於政府和銀行的機密電腦系統。如果沒有暴風雨屏蔽技術,當普通陰極射線管螢幕將影像一行行掃描出來時,竊密者就能在附近的房間甚至鄰近建築物內接收該螢幕的電波,重新組合出影像。


許多人認為平面顯示器普及之後,就不用在意「暴風雨問題」了,因為面板使用的電壓低,而且並不是逐行掃描影像。然而,英國劍橋大學電腦實驗室的電腦科學家孔恩(Markus G. Kuhn)於2003年指出,平面顯示器螢幕也會從影像傳輸線輻射出數位訊號,包括筆記型電腦在內,這些放射出來的訊號能在好幾公尺外被人接收並解碼。螢幕每秒更新畫面60次以上,取平均值去除圖樣的共同部份之後,留下的就是改變的畫素,以及目標顯示器上任何肉眼可判讀的資料。


孔恩表示:「30年前,這種攻擊所需的電磁波分析設備,只有軍用品供應商才有,如今在任何設備充足的電子實驗室裡都能找到。儘管這些設備仍然很笨重,不過遲早會被做成筆記型電腦擴充卡。」


另一個類似的例子是,洛桑瑞士聯邦理工學院電腦科學研究生弗亞紐(Martin Vuagnoux)和帕西尼(Sylvain Pasini)發現,利用普通的電波監控設備也能隔牆接收按鍵訊號,這種攻擊不需依賴電源振盪,所以對於用電池供電的筆記型電腦(在機場航站就會看到一大堆)也有效。


2008年10月,弗亞紐和帕西尼將這項技術拍成影片,公佈在網路上。他們正在準備一份研討會論文,描述從隔牆接收到的電波訊號推算出按鍵訊號的四種方法,距離最遠可達20公尺,其中較新的一種方式精確率達95%,孔恩解釋:「判別鍵盤哪個鍵被按下的方法,就是輪詢矩陣電路的行與列。輪詢過程會放射出微弱電波脈衝,這些脈衝的時間座標就會透露是哪個鍵被按下。」他在10年前就曾提出其中一種方法(但未曾試過)。


2008年5月,美國加州大學聖巴巴拉分校維格納(Giovanni Vigna)領導的團隊,發表了第五種不需高檔電波接收器就能側錄按鍵的方式。他們只需一部尋常的網路攝影機,以及一種叫做「拍得清」(ClearShot)的聰明軟體,就可以分析手指在鍵盤打字的視訊,運用動態追蹤演算法搭配精密的語言學模型,即可推算出最可能打出的字。維格納指出,「拍得清」推算按鍵文字的速度,大約和人類打字一樣快,只是沒那麼精確。


表面上,似乎不可能有人會讓自己的網路攝影機這樣背叛自己,其實並非如此。利用網路攝影機側錄影像,大概就像誘騙使用者去點擊網頁上看似無害的連結那樣簡單,這種手法就叫「點擊綁架」(clickjacking)。2008年10月,白帽安全公司的葛羅斯曼(Jeremiah Grossman)和安全理論公司的韓森(Robert Hansen)詳細列出他們在許多網頁瀏覽器及Adobe Flash軟體所發現的程式漏洞。惡意網站利用這些漏洞就能控制電腦的麥克風和網路攝影機,側錄音訊和視訊。一不小心點擊到惡意連結,使用者就遭到監視了。


然而,貝克斯指出:「這些偷窺方法幾乎都是擁有特殊知識與設備的專家才能進行。而反射影像偷窺法的不同之處在於,只要花500美元買個望遠鏡,幾乎人人都能做到,這幾乎不可能完全防範。」


有「眼睛」盯著你

貝克斯是德國馬克士普朗克軟體系統研究所的研究員,他在進入學術界之前服務於蘇黎世IBM實驗室,當時就已經聲名遠播。他將大部份的時間花在研究密碼學背後的數學,不過每年都會和學生進行一項純為興趣的新計畫。今年他們撰寫電腦程式解讀點陣印表機的噪音(這種吵鬧的機器目前仍常用於航空業、銀行與醫院),將錄音內容翻譯成當時印表機正在列印的頁面。基於這項研究的成功經驗,貝克斯的團隊已試著用同樣的方法來對付噴墨印表機。貝克斯說:「噴墨印表機顯然困難得多,因為它相當安靜。」


2008年某一天,貝克斯走過辦公室時發現研究生們正忙著打字,又突然想到一個點子,可做為年度興趣計畫。貝克斯說:「真想知道他們這麼拚命是在做什麼?」他注意到有位學生桌上的茶壺有一小塊藍白相間的影像,原來那是電腦螢幕的倒影,於是蹦出了一個點子。他說:「隔天我跑去休閒用品店買了一支普通的家用望遠鏡(435美元),以及一部600萬畫素的數位相機。」


這套設備效果出奇得好。望遠鏡瞄準湯匙、酒杯、壁鐘的倒影時,就能清楚讀出字型大小適中的字。幾乎任何反光表面都管用,但曲面效果最好,因為它們能呈現出更寬廣的房間區域,因此偷窺的駭客不必尋找看得見螢幕倒影的最佳視點。不幸的是,我們每位電腦使用者臉上都鑲著接近球狀、高反射度的東西:眼球。我們能從盯著螢幕看的眼球讀取數位機密嗎?

2009年1月21日 星期三

Linux date

有用的Linux date設定方式
http://www.simplehelp.net/2008/12/18/the-linux-date-command/

# date +”%d/%m/%Y”
14/12/2008

You can also use spaces and commas. Here’s a pretty fancy example:

# date +”%A,%B %d %Y”
Sunday,December 14 2008

Say you’re writing a shell script to back up the logs form you server. You want the backup script to get the logs for the day before and back them up. Here’s how you can get the previous day’s date:

# date –date=”yesterday”
Sat Dec 13 12:04:03 IST 2008

Similarly, you can also get tomorrow’s date:

# date –date=”tomorrow”
Mon Dec 15 12:04:39 IST 2008

You can get last or next month’s date:

# date –date=”last month”
Fri Nov 14 12:06:23 IST 2008

# date –date=”next month”
Wed Jan 14 12:06:25 IST 2009

Pretty cool stuff, eh! You’re just getting started. You can customize the date you want more precisely than by day and week, and get the date five days ago or seven days from now:

# date –date=”5 days ago”
Tue Dec 9 12:08:26 IST 2008

# date –date=”7 days”
Fri Dec 21 12:09:23 IST 2008

You can even ask it more difficult questions such as:

# date –date=’next Saturday’
Sat Dec 20 00:00:00 IST 2008

Or something totally in the future:

# date –date=’2 years 3 months 4 day’
Fri Mar 18 12:12:16 IST 2011