2011-10-03 66 views
0

Alice希望從Bob知道敏感資源的位置。鮑勃親切地告訴愛麗絲這個位置,但愛麗絲怎樣才能確定鮑勃的身份?保護源的身份

Bob是一個OpenBSD服務器,數據的來源是一個Python/C++應用程序。

我的想法是:

Alice知道Bob的公鑰。

Alice用Bob的公鑰對隨機字符串進行加密,並將其發送給Bob。

鮑勃恢復隨機字符串,並散列它。 Bob發送敏感資源以及散列。

這種方法的問題是:我可以安全地在Bob(服務器)上存儲私鑰嗎?怎麼樣?有更好的解決方案嗎?

回答

1

如果鮑勃沒有私鑰,那麼鮑勃還有什麼獨特的知道它可以用來識別自己?如果你不能相信鮑勃保證其私鑰安全,無論你做什麼,都會被沉沒。

如果花費額外的資金是值得的,你可以做的一件事就是擁有另一臺不在線的機器(稱爲Cipherclerk),只能與Bob通信,並且只能進行某種通信。 Cipherclerk擁有私鑰,並用它來解密Bob的東西。然後,即使鮑勃被遠程攻陷,至少私鑰也不會受到影響。

對您的想法的一個改進是讓Bob使用Alice的隨機字符串作爲對稱密鑰來加密資源。

+0

這可以以某種方式通過在Bob上運行不同的用戶或虛擬化操作系統來實現嗎?任何值得閱讀的好教程? – Mascarpone

+1

那麼,如果Bob正在運行,那麼Bob上的任何虛擬機也會被運行。另一方面,如果Bob本身在虛擬環境中運行,那可能會限制對Bob的妥協。 –

0

如果有人可以在中間人攻擊中安裝一個人,這種方法是完全不安全的。馬洛裏,這次襲擊可以簡單地將敏感信息剝離出來,用她的代替,然後轉發給艾麗絲。

解決方案是使用TLS或SSH。無論哪種情況,都要確保Alice有鮑勃的公鑰或密鑰指紋。這是一個廣泛使用的解決方案,並且假設沒有人可以更改Alice存儲或讀取數據bob存儲的數據。