觀點

SSL救不了你拙劣的應用程式

2008 / 08 / 04
編輯部
SSL救不了你拙劣的應用程式
加密,無法修補不安全軟體所產生的漏洞。

安全從業人員都熱愛網路資料安全傳輸協定(SSL, Secure Sockets Layer),而且有很好的理由。它的設計良好,提供支援各種加密協議,而且它很容易重新組態,假使萬一遭到任何破解或是憑證過期。它是一個非常有用的工具,可以保護交易安全,當他們透過其它不安全管道時,例如網際網路。此外它所支援的憑證雙向認證(certificate-based bilateral authentication),也非常棒。當然,假如你真的有錢、有人力可維護的話。

若要說有任何問題,那就是SSL的執行太令人滿意,使人們認為它可滿足所有的需求,像一張超大的安全毯,讓每個抓著它的人就有安全感,他們忘記除了利用SSL之外,安全要做的還有很多。

Gene Spafford曾說過一句很棒的話:「在網際網路上使用加密,就好像派一部裝甲車傳輸信用卡資料,從一個居住在硬紙板箱子裡的人,傳到住在公園長椅上的某人」。現在聽起來他仍是對的。

雖然比起10年前,作業系統已經安全很多,我們也更善於修補它們,但是這樣還是不夠。最近,Dan Geer在資訊安全產業,發表了一個大規模的趨勢報告。資料是採自美國國家弱點資料庫(National Vulnerability Database),他用許多數據指出我們直覺知道的事:像是,攻擊者已經成功地將目標轉移至應用程式,利用簡單的工具就能進行跨網站指令碼攻擊(XSS, Cross-Site Scripting)與資料隱碼攻擊(SQL Injection)。

儘管我們知道這些事,而像是Microsoft和Oracle產業領導廠商,也對他們的產品作了安全上的改善,然而,軟體業者似乎就是不得要領。雖然有些網頁應用程式,顯示出它們通過Hacker Safe的資安認證標章,表示通過弱點探測,但是這些網站為數少之又少。

假如你去看一般的網頁應用程式,供應商的隱私政策有提及使用SSL的,或者有一個小巧的標章昭告著它的SSL廠商,那麼你是很幸運的。當你要使用某個網站,而且知道別人想在此探查你的信用卡號碼只是白費力氣,那是很令人開心的。但不幸地,這不能代表此應用程式真正安全,很可能安全做的很糟。

這就是為什麼獨立軟體供應商,必須把安全實施到他們的軟體開發生命週期中,並且將他們保管資料安全的做法更加透明化,讓使用者清楚易懂。假如身為安全從業人員,也是客戶的我們,開始對供應商施加壓力,促使他們開始生產更安全的軟體,這會是最好的結果。如果拿過去的經驗來看,從客戶的角度鞭策,作用會很大。從業人員可以發揮很大的影響力,尤其是從支援成本大幅減少的角度,但是真正會引起市場和銷售部門關注的,還是得從「客戶要求」的角度著眼。

幾年前,有人問Secure Coding一書的作者Mark Graff,他任職的公司什麼時候才會停止製造「這麼爛的軟體」,他回答,「你不想再買的時候!」過去,被惹惱的客戶迫使Microsoft開始著手可信賴運算計畫(Trustworthy Computing initiatives);將來仍然是惱怒的客戶迫使網頁應用程式廠商,開始嚴肅地看待安全問題。一切取決於我們去教育那些客戶,不只要讓他們知道他們所損失的是什麼、可以要求回來的有什麼,而是那個小小的鎖頭圖示(瀏覽器右下角),實在不足以確保他們的資料安全無虞。