HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法. 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的.而 ECDHE 算法具有前向安全,所以被广泛使用. 我在上一篇已经介绍了 RSA 握手的过程,今天这一篇就「从理论再到实战抓包」介绍 ECDHE 算法. 离散对数 ECDHE 密钥协商算法是 DH 算法演进过来的,所以我们先从 DH 算法说起. DH 算法是非对称加密算法, 因此它可以用于密钥交换,该算法的核心数学思想是离散对数.