序列化 - 如何保护序列化的JAVA对象?

时间:2012-07-10 15:48:39

标签: java serialization

如果通过网络发送序列化对象,如何保护序列化对象? 我怀疑黑客可能会打断/破解我的数据。

任何人都可以详细说明如何实现这个目标吗?

6 个答案:

答案 0 :(得分:6)

本演示文稿介绍了攻击者如何有效篡改Java序列化流:

  1. https://www.owasp.org/images/e/eb/OWASP_IL_2008_Shai_Chen_PT_to_Java_Client_Server_Apps.ppt

    如果服务器的类路径上存在易受攻击的类,则还存在注入意外行为并注入代码的风险。见文章:

  2. [Look-ahead Java反序列化] [3]

答案 1 :(得分:4)

java.crypto.SealedObject正是您要找的。

答案 2 :(得分:2)

你可以加密或散列它,但是java序列化格式是通过网络发送的一个很好的选择 - 更好的解决方案是JSON / XML(加密或用一些加密算法签名)

答案 3 :(得分:1)

如前所述,请查看加密,但更具体地说,请查看用于java中网络通信的hte SSL / TLS库。

http://juliusdavies.ca/commons-ssl/ssl.html

当Java中内置了非常强大的库时,无需尝试实现安全加密通信。

答案 4 :(得分:1)

在我看来,您可以使用SSLSocketSealedObject。但是,它会让你的事情变得有点沉重。但是,本文还介绍了其中一个选项。 http://www.ibm.com/developerworks/library/j-5things1/

答案 5 :(得分:1)

您可以使用签名对象和密封对象来保护序列化对象