我有兩臺運行相同應用的Android設備使用SSL自簽名證書和使用openssl生成並存儲在密鑰庫中的密鑰。 問題是私鑰庫必須以某種方式嵌入到應用程序包中,因此可供任何攻擊者使用。我相信這會讓攻擊者在會話中窺探並解密兩部手機之間的數據。兩個移動設備之間的安全連接:SSL密鑰不是'私人的'
我沒有使用或需要任何PKI的其他功能,我只是提供兩個密鑰庫,因爲SSL連接設置需要它們。
是否有一個安全的SSL密碼,不需要預定義的PKI並在運行時即時生成其自己的密鑰?
我調查了在運行時生成我自己的密鑰 - 創建密鑰很容易在Java中完成,但KeyStore.setEntry()需要一個X509證書鏈,而不僅僅是公鑰,並且Android不包含JCE代碼生成X509。我可以通過包含BouncyCastle(Android兼容版本稱爲SpongyCastle)庫來實現這一目標,但是這會增加我的應用程序包大小的開銷。
無法訪問互聯網上的第三方信任服務器,這兩個電話可能位於沒有互聯網接入的專用WLAN上。
作爲一個很好的獎金,我希望能夠相信應用程序正在與自己進行通信,而不是從PC上嗅探協議的人,但我認爲這不會成爲可能,因爲應用程序包內容將始終可用。