C# NetworkStream安全吗?

C# NetworkStream安全吗?,c#,.net,network-programming,C#,.net,Network Programming,我正在开发一个现有的C#.NET 4.5应用程序。它有一个组件,可以使用TcpClient和NetworkStreamRead和Write命令从大型机下载数据(我不知道具体是哪种类型的)。最初编写代码的开发人员已经离开了公司,审计部门现在正在质疑如何下载这些大型机数据集的安全性。原始开发人员的命名约定似乎表明正在使用FTP,但阅读TcpClient和NetworkStream上的文档时,没有提到用于实际传输数据的协议 我的网络经验非常有限,但我的理解是,TcpClient只提供网络连接,然后需要

我正在开发一个现有的C#.NET 4.5应用程序。它有一个组件,可以使用
TcpClient
NetworkStream
Read
Write
命令从大型机下载数据(我不知道具体是哪种类型的)。最初编写代码的开发人员已经离开了公司,审计部门现在正在质疑如何下载这些大型机数据集的安全性。原始开发人员的命名约定似乎表明正在使用FTP,但阅读
TcpClient
NetworkStream
上的文档时,没有提到用于实际传输数据的协议

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


所以我的问题是,
NetworkStream.Read
使用什么协议,它安全吗?如果不安全,什么是好的替代方案?

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

警告:如果您正在传输的数据在发送之前经过加密,那么您可以合理地宣称它是“安全的”…

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

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


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

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