我需要加密將要發送/接收的數據,客戶端服務器,反之亦然。沒有SSLStream的加密連接?
由於我現在無法使用SSLStream,因此我正在尋找其他方法。
在思考我所擁有的替代方案時,我被困在如何將數據以無法讀取/攔截的方式發送到客戶端。
這裏是我鑫卡特這樣做的:
客戶端/服務器將有一個從字符串加載加密/解密從服務器接收到的數據的應用程序中的RSA私鑰。
初始連接請求後,服務器將發送一個會話ID以及一個內部AES密鑰/ iv。
從這裏開始,客戶端將使用RSA和AES進行通信。
我想從有經驗的人聽到一些新的想法或更好的方法做什麼,我需要在這裏它是:從客戶
發送加密數據到服務器,反之亦然,而無需使用SSLStream,但具有良好的安全性。
據我所知,擁有客戶端上的私鑰有風險,但我還沒有找到更好的解決方案。
你需要認證客戶端嗎?或者爲什麼你需要一個私鑰? – CodesInChaos 2012-03-20 16:34:29
CodeInChaos我需要私鑰,因爲這是我能想到的唯一方法,即發送加密的初始連接以獲取內部通信AES密鑰。否則,任何使用wireshark的人都可以抓住純文本的AES。我明白,他們可以竊取我的應用程序來獲取帶有證書的字符串,但隨後我可以通過混淆和其他方法使它們變得更加困難。 – Prix 2012-03-20 16:38:18
爲什麼您需要向客戶端分發私鑰?這違背了RSA的目的。爲什麼客戶端不能生成隨機密鑰對並連接到服務器,使用服務器的公鑰來加密連接? – 2012-03-20 16:38:30