[英]How to secure Kryonet (SSLSocketChannel)
我有一個要保護的使用Kryonet的可運行游戲服務器+客戶端系統。 我已經閱讀了很多有關Kryo和Kryonet的源代碼,也了解了有關java.nio(SocketChannels和SSL)的一些知識。 我對使用Java進行加密有足夠的了解,但是我不確定使用SSL進行Kryonet和SocketChannel時是否理解所有概念。
您可以使用河豚對在Kryonet中發送的對象進行加密,但是我看不出這是安全的嗎? 我的意思是,所有客戶端都必須使用相同的對稱密鑰,因為您不必分別加密客戶端連接,而是要在服務器上進行序列化,因此所有客戶端都需要相同的密碼,而不再是該密碼了嗎?
然后,我查看了將Kryonet源更改為使用SSLSockets的過程,但是我看到Kryonet使用非阻塞IO,從我使用SSLSocket而不是Socket讀取的內容中,使用SocketChannels不好嗎? 這是我真的很茫然的地方,不確定是否值得付出努力,所以我希望對Kryonet和SocketChannels有更深入了解的人能對我有所幫助。 確保Kryonet的安全似乎似乎是不可能的,但我真的不想在我的項目中切換到這一點,因此非常歡迎任何建議!
沒錯,即使您解決了密鑰分發問題,僅加密也不是安全的,除非Kryonet從對等身份驗證開始也做SSL所做的所有事情。
Java中沒有SSLSocketChannel
。 您必須自己使用SocketChannel
和SocketChannel
的舊版SSLEngine
來完成所有艱苦的工作,實際上需要博士學位。 正確駕駛。
有關我的許多關於SSLEngine
的帖子,請參見jsse標記passim,在此不再贅述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.