如何验证自己系统里面的 https 请求能否被篡改
安全测试中,验证篡改请求的 https 请求通常涉及以下几个步骤: 1.验证证书的合法性:HTTPS 使用 SSL/TLS 协议来加密通信,确保数据传输的安全性。在建立连接时,服务器会发送证书给客户端,证书包含了服务器的公钥和其他相关信息。客户端需要验证证书的合法性,包括检查证书的有效期、颁发机构的可信度等。如果证书验证失败,可能意味着请求被篡改。 2.使用数字签名验证篡改:证书中的公钥用于加密会话密钥,确保数据传输的机密性。同时,证书也使用颁发机构的私钥进行数字签名,以确保证书的完整性和真实性。客户端可以使用颁发机构的公钥来验证数字签名,确保证书没有被篡改。如果数字签名验证失败,可能意味着请求被篡改。 3.使用哈希函数验证篡改:在传输过程中,如果请求被篡改,可能会导致请求的内容发生变化。为了验证请求的完整性,可以使用哈希函数对请求的内容进行计算,并将计算结果和请求中的哈希值进行比较。如果两者不一致,可能意味着请求被篡改。 4.使用完整性保护机制:除了上述验证方法外,HTTPS 还提供了一些完整性保护机制,如消息认证码 (MAC) 和加密哈希函数 (HMAC)。这些机制可以在传输过程中添加额外的校验和,确保请求的完整性和真实性。
按我个人理解,https 请求的安全性,核心在证书。内容如果发生了篡改,在没有官方私钥的情况下,是必须改证书才重新加密请求内容。
如果客户端没有进行 https 证书强校验,仅按照系统默认配置来进行证书有效性验证,有可能会出现中间人让系统信任自己的自定义证书后,进行请求篡改的。
fildder 拦截请求再篡改?
数据一般都有签名校验,不知道逻辑,只改请求参数是调不通接口的