是否可以通过https发送未加密的邮件?例如,要求进行证书验证和授权,但不要加密通过套接字发送的实际数据吗?
答案 0 :(得分:20)
是的,TLS和SSL支持“无加密”模式。有问题的特定客户端和服务器是否配置为启用是一个单独的问题。
虽然不太可能,但服务器可以默认启用其中一个密码套件。更有可能的是,服务器默认启用弱密码套件(如“导出”级的基于DES的套件)。这就是为什么你应该仔细检查服务器的密码套件白名单,leave only a few trusted, widely-supported algorithms.
您可以使用TLS_RSA_WITH_NULL_SHA密码套件来保护流量的真实性和完整性,而无需加密。
这种情况下的“RSA”是指密钥交换算法,而“SHA”是指用于保护流量不被改变的消息认证算法。 “NULL”是加密算法,或者,在这种情况下,是缺乏加密。
重要的是要意识到流量虽然没有加密,但却捆绑在SSL记录中。客户端和服务器必须启用SSL。
如果您正在寻找通过SSL交换某些数据的降压解决方案,则会关闭SSL但应用程序流量仍在继续,这也是可能的,但请记住,它绝对没有为明文流量提供安全保护;它可以被攻击者篡改。因此,例如,使用SSL进行身份验证,然后单步执行“明确”协议以接收使用通过SSL协商的身份验证的命令将不安全。
答案 1 :(得分:5)
SSL / TLS规范定义了一个“NULL密码”,您可以将其用于此目的。大多数客户端和服务器软件都会因显而易见的原因而禁用它。
但是,如果您正在编写自己的软件,则可能会说服您的图书馆进行协商。
答案 2 :(得分:-1)
我认为你可以。
但这将是愚蠢的,你将失去认证的重点,让你自己暴露于可以拦截和改变你的数据包的攻击者。
答案 3 :(得分:-3)
不,协议不允许这样做。
您可以做的一个解决方案是通过https连接,验证连接,然后使用会话cookie删除与HTTP的后续连接。如果没有该cookie,请重定向回https,以便客户端始终通过它连接。
这可能与您无关,所以如果您提供有关您尝试解决的问题的更多信息,我们可以提供更多帮助。