【问题标题】:Is NetworkStream Secure?NetworkStream 安全吗?
【发布时间】:2018-04-09 06:17:36
【问题描述】:

我正在开发一个现有的 C# .NET 4.5 应用程序。它有一个使用TcpClientNetworkStream ReadWrite 命令从大型机下载数据的组件(我没有关于哪种类型的详细信息)。最初编写代码的开发人员已经离开公司,审计领域现在质疑这些大型机数据集如何下载的安全性。最初开发人员的命名约定似乎表明正在使用 FTP,但阅读TcpClientNetworkStream 上的文档,并没有提及用于实际传输数据的协议。

我的网络经验非常有限,但我的理解是TcpClient 只是提供网络连接,然后需要在 TCP 连接上运行某种应用程序协议(例如 FTP)来实际移动数据。

所以我的问题是,NetworkStream.Read 使用什么协议,它是否安全?如果不安全,有什么好的选择?

【问题讨论】:

  • NetworkStream 不使用任何协议(从某种意义上说,您的意思是有问题)。它只是从套接字读取\写入数据。而 TcpClient 使用的是 TCP,它没有任何内置的安全性。

标签: c# .net network-programming


【解决方案1】:

System.Net.Sockets.NetworkStream 本身没有任何固有的安全性。您可以通过建立连接并使用Wireshark 捕获流量来可视化这一点。

如果您需要保护您的数据,请查看SslStreamNegotiateStream,看看它们是否符合您对自定义客户端/服务器应用程序的需求。

或者,根据您的应用程序,您可以通过 HTTPS 提供数据集。如果您只需要保护数据集的完整性而不是机密性,您还可以在数据集中添加digital signatures,并在收到签名后检查这些签名。

【讨论】:

    【解决方案2】:

    NetworkStream 没有固有的安全性...您可以使用任何网络数据包查看器查看它正在读取的任何内容。

    警告:如果您正在流式传输的数据在发送之前已加密,那么您可以合理地声称它是“安全的”...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2010-11-20
      • 2019-12-07
      • 2016-03-06
      • 2010-09-26
      • 2020-04-22
      • 2013-10-09
      相关资源
      最近更新 更多