【问题标题】:Serialize/Encrypt/Transmit Web Form Data to Web Service将 Web 表单数据序列化/加密/传输到 Web 服务
【发布时间】:2010-07-15 17:53:08
【问题描述】:

我有一个 ASP.NET 1.1 表单,它在 DMZ 内的一个面向公众的站点上收集数据。数据由可序列化的类表示。我的问题是我需要对数据进行序列化、加密并将其传输到运行在内部服务器上的 Web 服务 - 然后服务逻辑应在将 XML 写入共享文件夹之前对数据进行解密和反序列化。

有人能指出我正确的方向吗?最直接的方法是什么?

【问题讨论】:

    标签: asp.net xml web-services serialization encryption


    【解决方案1】:

    是否可以使用 SSL 来保护内部服务器上的 Web 服务?这似乎可以提供您需要的保护。

    如果您没有 SSL,您将需要 serialize the class to XML 然后对其进行加密。然后解密为序列化的 XML 格式。然后您可以deserialize 在共享上创建的 XML 文件。

    加密的编程相当简单,因为您有一个要加密和解密的 XML 字符串。挑战在于加密算法的选择和加密密钥的存储。您应该阅读symmetricassymetric 加密。如果密钥暴露,那么攻击者可以轻松解密您的数据。使用文件权限严格控制访问。

    最简单的选择是使用对称密钥并将密钥存储在两端。那里有很多examplesdocs

    【讨论】:

    • 是的,我可以使用 SSL 从 DMZ 到内部服务器 - 大概我可以使用我们自己的 CA 来实现这一点。实际上,不需要反序列化,可以将其作为 XML 文件放在文件夹中。我使用什么数据类型将序列化对象传递给 Web 服务?
    • 您自己的 CA 就足够了,但保护您的证书等类似于保护加密密钥。有人可能会不同意,但我会说,如果您只是需要通过网络获取它,只需将 XML 作为字符串传递。您可能会通过尝试对服务进行建模以匹配您想要传递的 XML 数据来增加一些开发时间。
    • Brian,您能否详细介绍一下“保护您的证书”?谢谢:)
    • 基本上要小心存储它们的位置,并确保只有必需的用户才有访问权限。我见过开发人员粗心大意,把这样的关键文件留在其他人可以访问的目录中。
    • 感谢布赖恩 - 标记为答案并为爱尔兰工程公司投了赞成票 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多