是否可能通过https发送未加密的消息?例如,要求进行证书验证和授权,但不加密实际发送到套接字上的数据?
是否可能通过https发送未加密的消息?例如,要求进行证书验证和授权,但不加密实际发送到套接字上的数据?
是的,TLS和SSL支持“无加密”模式。具体的客户端和服务器是否配置启用这种模式是一个不同的问题。
虽然可能性很小,但有些服务器可能会默认启用其中一种密码套件。更有可能的情况是服务器会默认启用弱密码套件(例如基于“出口级”DES的套件)。因此,您应仔细查看服务器的密码套件白名单,并且只保留少数值得信任、广受支持的算法。
您可以使用TLS_RSA_WITH_NULL_SHA密码套件等来保护流量的真实性和完整性,而无需进行加密。
在这种情况下,“RSA”是指密钥交换算法,“SHA”是指用于保护流量免受篡改的消息认证算法。“NULL”是加密算法,或者在这种情况下,是缺乏加密。
重要的是要意识到,尽管流量没有加密,但它被捆绑在SSL记录中。客户端和服务器必须启用SSL。
如果您正在寻找一种降级解决方案,在该解决方案中,一些数据是通过SSL交换的,然后关闭SSL,但应用程序流量继续,则也可以实现,但请记住,它对明文流量提供绝对没有安全保障;攻击者可以篡改。例如,使用SSL进行身份验证,然后降级到“明文”协议以接收使用通过SSL协商的身份验证的命令将是不安全的。
我认为你可以。
但这样做很愚蠢,你会失去身份验证的重点,并使自己暴露于攻击者的攻击之下,攻击者可以拦截和更改你的数据包。
不,协议不允许这样做。
一个解决方案是通过https连接,验证连接,然后使用会话cookie断开后续的HTTP连接。如果没有该cookie,则重定向回https,以便客户端始终连接到它。
但这可能与您无关,如果您提供有关您要解决的问题的更多信息,我们可以提供更多帮助。