【问题标题】:How to Choose Secure Transfer Protocol如何选择安全传输协议
【发布时间】:2012-12-09 17:59:10
【问题描述】:

我正在帮助设计一个需要在服务器上安全地传输和存储文件的应用程序。该应用程序是用 C# 编写的,但服务器是基于 Linux 的。我应该使用什么协议来传输和存储这些文件,最大为 2 GB?

我已经阅读了一些关于 sftp 和 ssh 的内容。这些有用吗?

【问题讨论】:

    标签: c# linux sftp


    【解决方案1】:

    如果您想要使用 .NET 以最少的组件轻松安全地传输 BIG 文件,您通常会希望使用 FTPES,也称为 通过显式 SSL 的 FTP,有时也称为“FTPS”或“FTP-ES”。这是唯一受纯 .NET 方法支持且无需第三方插件的版本。

    使用 SFTP 或通过SSH 进行的 FTP,与 FTPES 不同,您将不得不在您和您的客户之间手动交换密钥。您还需要第三方库来实现它,因为 .NET 没有 SFTP 的内置功能。

    如果你想编写一个使用 FTPES 的客户端,你所要做的就是使用 FtpWebRequest 并设置EnableSSL to true

    要避免什么:

    • 不要通过 Implicit SSL 使用 FTP。它已被弃用 在这一点上很多年,应该被认为已经过时了。

    • 不要只是 PGP 加密 文件,然后通过普通的旧 FTP 传输它们。使用普通的旧 FTP, 所有用户名和密码都以明文形式发送,这将 轻松让攻击者至少拦截您加密的 PGP 文件。

    【讨论】:

    • SSL 和 SSH 支持可比较的密钥长度,因此由于分层 PKI,总体而言 SSL 更加安全。
    • @EugeneMayevski'EldoSCorp:我的印象是,虽然证书密钥确实如此,但 SSH2 通常使用 256 位会话密钥,而不是 SSL 的 128 位会话密钥。我错了吗?
    • TLS 1.1 和 1.2 允许您使用 256 位密钥的 AES 和 Camellia 密码套件。此外,对于 SSH,256 位会话密钥也是相当新的。从技术上讲,这些协议系统中的任何一个都不会使它们中的一个在密码学上的安全性低于另一个(当然,任何一个都可能存在安全漏洞:)。由于这种非技术方面,例如密钥管理的便利性和撤销机制的存在,成为安全的关键因素。
    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 2016-09-30
    • 2023-03-22
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多