[英]Encryption and authentication for client-server application where clients are known
我想編寫一個安全的客戶端-服務器應用程序,其中只有少數(例如五個)客戶端通過TCP套接字與服務器交換數據。 事先已知所有客戶,並且可以離線共享密鑰等。
我想要三件事:
應該如何實現這樣的設置?
我的第一個想法是啟用SSL / TLS的套接字,但是考慮了一段時間之后,我覺得握手中的密鑰交換並不是我真正需要的。 同樣,整個證書頒發機構業務似乎需要解決,以解決自簽名證書的問題。
另一個選擇似乎是進行常規的套接字通信,並在兩端進行加密/解密和簽名。 類似於基於gpg的電子郵件設置,我可以為服務器和每個客戶端創建密鑰對,並確保服務器具有所有客戶端的所有公共密鑰,並且確保每個客戶端都有服務器的公共密鑰。 因為我可以將文件本地復制到每台計算機,所以可以認為這種密鑰交換是安全的。
還是我應該只對所有客戶端和服務器使用單個密鑰使用對稱加密?
我幾乎可以在網上找到所有關於“經典”設置的信息,其中服務器通過證書頒發機構(例如,類似於HTTPS的設置)向許多任意客戶端進行身份驗證。
我打算用Java編寫它,但實際上我認為我的問題與語言無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.