2012-02-16 58 views
7

Mozilla聲稱有人可以坐在你的電腦上,並在15秒內獲得每個網站的密碼。我在第一次編寫Firefox擴展時學到了,我可以訪問用戶目錄中的任何文件(因爲它是用戶擁有的)。如果密碼被解密並寫在用戶目錄的某個位置,那麼它們可以在會話期間由惡意擴展程序或使用可訪問用戶目錄的網頁代碼的網站訪問。軟件安全設備在Firefox中使用的過程是什麼?確保站點密碼真正安全,不受這些惡意代碼的影響?Firefox的軟件安全設備如何保護密碼?

解密硬盤驅動器的密碼將是不安全的,因爲其他進程可以讀取它們。軟件安全設備是否將它們解密到用戶目錄?

如果沒有,那麼軟件安全設備是否只在內存中解密它們?如果是這樣,那麼另一個應用程序讀取軟件安全設備的應用程序空間的可能性是多少?

請說明。

描述過程不應該是一個祕密,因爲祕密是脆弱和弱點的表現,相反,真正安全的方法需要強力破解。關於加密過程的開放政策給予了更廣泛的受衆,這增加了更安全解決方案的可能性。

我提起這個問題,因爲它沒有在Mozilla網站上的軟件安全設備解釋或主密碼解釋中描述,讓我想知道我們是否真的使用該功能的安全。

回答

12

密碼存儲在用戶個人資料目錄中的SQLite數據庫signons.sqlite中。默認情況下,它們沒有真正加密 - 從這個文件中提取它們並且「解密」是微不足道的。爲了在這裏獲得一些安全性,用戶必須定義​​一個主密碼(在Firefox選項的安全選項卡上),這個密碼將用於加密數據庫中的密碼。如果已經完成,那麼從signons.sqlite提取密碼並不重要,必須猜測主密碼。

但Firefox需要解密密碼才能使用它們。如果某些瀏覽器代碼請求密碼(通過nsILoginManager),將出現主密碼提示 - 用戶需要輸入主密碼以允許解密其密碼。解密後的密碼永遠不會寫入磁盤,但瀏覽器(以及任何瀏覽器擴展)在此之後將能夠訪問它們。

Firefox不會阻止擴展訪問密碼,因爲它毫無意義。防止惡意擴展獲取密碼的唯一方法是避免首先安裝惡意擴展。即使nsILoginManager不在那裏,當密碼傳輸時,惡意擴展仍然可以嗅探與網頁的通信。或者它可以聽取您在輸入主密碼時輸入的內容。或者它可以僞造主密碼對話框並直接獲取主密碼。有很多可能性 - 應用程序不可能擊敗以相同特權運行的另一個應用程序。

PS:軟件安全設備用於證書,而不是密碼 - 完全無關。但它使用相同的主密碼,因此造成混淆的對話框。

+2

優秀答案 – 2012-02-16 11:51:58

+0

很高興在Mozilla上看到這個解釋。圖表也會有幫助。謝謝。這給主題帶來了一些亮光。 – user1213645 2012-02-16 15:24:31

+0

主要重點似乎是物理訪問保護。顯然比沒有保護更好。 我認爲我們不應該註銷更多的保護措施。隨着其他考慮和頭腦風暴,Firefox可能會更強大。 如果一個人每次導航到要求輸入密碼的頁面時都同意給出主密碼,這將有助於防止擴展和其他在線請求無限制地訪問所有密碼。用戶方面做了一些努力,但仍然很方便,因爲他們爲所有帳戶輸入了一個密碼。 – user1213645 2012-02-16 16:39:23