Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 从弱客户端提取公钥_Ssl_Public Key Encryption_Encryption Asymmetric - Fatal编程技术网

Ssl 从弱客户端提取公钥

Ssl 从弱客户端提取公钥,ssl,public-key-encryption,encryption-asymmetric,Ssl,Public Key Encryption,Encryption Asymmetric,假设我们有一个客户端,它使用非对称加密技术与服务器通信。这可以是SSL,也可以只是自定义加密 现在,如果我们假设客户端的源代码很容易反汇编,那么我们可以提取公钥并因此向服务器发送虚假消息吗? 为了避免这种情况?考虑到保持客户端的源代码安全是非常困难的。 TLS不像你想象的那样工作。客户端可以有证书,但用于保护给定TLS交换的加密密钥不是证书中的密钥。如果您能够访问证书(通常不与源代码捆绑在一起)和相关的私钥,那么您当然可以向任何服务器模拟客户端。这就是私钥必须受到保护的原因。@Farshid您是

假设我们有一个客户端,它使用非对称加密技术与服务器通信。这可以是SSL,也可以只是自定义加密

现在,如果我们假设客户端的源代码很容易反汇编,那么我们可以提取公钥并因此向服务器发送虚假消息吗?
为了避免这种情况?考虑到保持客户端的源代码安全是非常困难的。 TLS不像你想象的那样工作。客户端可以有证书,但用于保护给定TLS交换的加密密钥不是证书中的密钥。如果您能够访问证书(通常不与源代码捆绑在一起)和相关的私钥,那么您当然可以向任何服务器模拟客户端。这就是私钥必须受到保护的原因。@Farshid您是说SSL/TLS连接是否需要基于证书的客户端身份验证?@PatrickMevzek我可能误解了TLS,因为我只是简单地研究了一下。我不太清楚您所说的保护TLS交换的密钥是什么意思,它们不在证书中。如果我们在某个时候不使用这些密钥,加密是如何发生的?@Robert实际上,我正在研究一个用SSL/TLS保护的套接字连接,但因为这会降低连接的延迟,所以我宁愿只在需要时在客户端启用它,并在低延迟连接时禁用它。密钥是在交换过程中计算的。请参阅以获取底漆。在TLS的现代版本中,只使用临时密钥,所以证书中的密钥仅用于身份验证,而不是加密任何内容。您可以完全拥有TLS exchange,而无需任何证书。