在Volley中签署HTTP请求

时间:2017-06-05 11:27:14

标签: android ssl https

有没有办法在Volley中签署http请求?

据我了解SSL连接。

  • 客户端打开连接
  • 服务器使用包含公钥的证书进行响应
  • 客户端存储服务器的公钥
  • 客户端创建请求并使用服务器的公钥对其进行签名
  • 服务器使用自己的私钥验证请求

如果服务器发送响应,客户端会使用服务器的公钥验证响应吗?

it('should have an img tag with src and alt properties', () => { const wrapper = shallow(<FeaturedProject />); const { alt, src } = wrapper.find('img').props(); assert.equal(wrapper.find('img').length, 1); assert.equal(alt.length, 1); assert.equal(src.length, 1); }); 如何适应这个过程?

2 个答案:

答案 0 :(得分:1)

据我所知,我认为你掌握了它的主旨。 SSL固定只是验证服务器响应提供的CA证书。

我认为这个网址是对的。也许它可以帮到你

SSL Pinning with Volley network library on Android

答案 1 :(得分:1)

不,它不会这样。没有签署HTTP请求。简而言之:

  • 客户端建立与服务器的TLS连接,涉及
    • 服务器向客户端发送证书
    • 验证此证书的客户端,即它是受信任的,与服务器名称匹配,并且服务器拥有属于证书的私钥。在此步骤中也将检查证书固定,即证书(或其公钥)是否与预期值匹配。
    • 后面是密钥交换,导致密钥加密和消息保护
  • 从那时起,所有交换的数据都被加密并受到保护以免被修改

TLS本身不知道HTTP,即不知道HTTP请求和响应是什么。它只能看到它保护的数据流。 HTTP请求和响应是此流的一部分,因此受到保护,但没有特定的HTTP请求或响应签名。