gpt4 book ai didi

ssl - Cipher 用于浏览器使用的请求数据加密

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:31 28 4
gpt4 key购买 nike

使用 Digicert's SSL mechanism explanation我已经了解数据在浏览器和服务器之间是如何加密的,以下是我的理解。

  1. 浏览器将向服务器发送请求以获取一些资源。服务器检查请求的协议(protocol)是否为 HTTPS,如果是,则它将在响应中发送其证书(此证书已由某个 CA(证书颁发机构,如 Digicert)签署)。
  2. 浏览器将通过验证其有效 CA 池中的签名机构来检查证书是否有效。
  3. 如果浏览器发现此证书是由有效的 CA 签名的,那么它会生成一个 session key 并使用证书中的公钥对其进行加密。
  4. 浏览器会将此加密的 session key 发送到服务器,服务器将解密 session key ,然后将确认发送回浏览器,该确认将使用 session key 加密。
  5. 以上步骤完成SSL 握手,然后浏览器和服务器之间开始安全通信。

问题:
根据我的上述理解,以下是我找不到答案的问题:

  1. 浏览器将生成一个 session key 并使用服务器的公钥对其进行加密。但浏览器将使用哪种加密算法(或通常称为 Cipher)?
  2. 一旦 SSL 握手完成,所有通信都将使用对称 session key 进行加密,但在此同样,浏览器将使用哪种加密算法(或通常称为 Cipher)?
  3. 浏览器使用的加密算法是否以任何方式取决于从服务器收到的证书?
    • 或者对于浏览器完成的所有加密,将使用相同的算法或密码。
  4. 如果我错了,请纠正我,算法或密码信息也存在于证书中?这些信息如何被推送到证书中?
    • 在生成证书时,我是否需要告诉我使用哪种算法、多少位加密、填充等?

基于以上回答,我将有一个最重要的问题 - 假设我将我的服务器私钥提供给某人,以便他可以监控我的服务器的 SSL 流量,那么除了向他提供私钥之外,我还需要做些什么需要照顾。我是否需要告诉他我在服务器上使用的算法或密码?

最佳答案

密码套件的选择一般遵循以下步骤:

  1. 客户端/浏览器/用户代理在握手期间向服务器建议支持的密码套件列表。该列表按客户偏好排序。
  2. 服务器查看其支持的密码列表并选择使用客户端最喜欢的密​​码。
  3. 如果服务器维护密码套件首选项(Apache:SSLHonorCipherOrder、nginx:ssl_prefer_server_ciphers、Lighttpd:ssl.honor-cipher-order 等),则它会从其列表中选择客户端支持的第一个密码(client偏好不被尊重)。

** 某些服务器和 SSL 实现可能有特殊条件限制对某些客户端使用密码套件,即使客户端指示支持密码套件(以解决客户端 SSL 实现中存在的已知错误)。例如,https://community.qualys.com/message/22681#22681

关于ssl - Cipher 用于浏览器使用的请求数据加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31836372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com