Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Php 客户端如何在ssl连接中生成公钥?_Php_Sockets_Ssl - Fatal编程技术网

Php 客户端如何在ssl连接中生成公钥?

Php 客户端如何在ssl连接中生成公钥?,php,sockets,ssl,Php,Sockets,Ssl,假设我有一个简单的客户端服务器php ssl应用程序。 -服务器生成私钥/公钥。 -服务器开始侦听套接字。 -客户端连接到套接字: stream\u socket\u enable\u crypto($socket,true,stream\u crypto\u METHOD\u SSLv3\u CLIENT) 它是如何工作的?客户端动态生成私钥/公钥并将其存储在内存中 对于浏览器https,同样的问题,浏览器也会这样做吗?动态生成私钥/公钥 一般来说:客户机从哪里获得密钥 服务器生成私钥/公钥

假设我有一个简单的客户端服务器php ssl应用程序。
-服务器生成私钥/公钥。
-服务器开始侦听套接字。
-客户端连接到套接字:
stream\u socket\u enable\u crypto($socket,true,stream\u crypto\u METHOD\u SSLv3\u CLIENT)

它是如何工作的?客户端动态生成私钥/公钥并将其存储在内存中

对于浏览器https,同样的问题,浏览器也会这样做吗?动态生成私钥/公钥

一般来说:客户机从哪里获得密钥

  • 服务器生成私钥/公钥
否。服务器已安装公钥和私钥

  • 服务器开始侦听套接字
否。服务器开始侦听某个端口。这是通过插座实现的

  • 客户端连接到套接字: 流\u套接字\u启用\u加密($socket,true,流\u加密\u方法\u SSLv3\u客户端)

它是如何工作的?客户端动态生成私钥/公钥并将其存储在内存中

不可以。客户端通常没有公钥或私钥,但如果有,它已经安装好了。客户端不需要这些基本SSL就可以工作

对于浏览器https,同样的问题,浏览器也会这样做吗?动态生成私钥/公钥

见上文。同样的答案

一般来说:客户机从哪里获得密钥

我认为,人们普遍误解SSL只使用公共/私有加密。没有。它使用对称会话密钥,由两个对等方独立协商和计算。PKI仅在SSL中用于相互验证对等方

在任何情况下,您关于在运行时“生成”公钥/私钥对的问题都没有意义。只有对等方已经拥有公钥时,密钥对才有用

你似乎读到了很多错误的信息。其中有很多,众所周知包括所谓的“Linux文档项目”。这方面的规范性参考是和继承人,Eric Rescoria也有一本关于SSL的优秀著作

  • 服务器生成私钥/公钥
否。服务器已安装公钥和私钥

  • 服务器开始侦听套接字
否。服务器开始侦听某个端口。这是通过插座实现的

  • 客户端连接到套接字: 流\u套接字\u启用\u加密($socket,true,流\u加密\u方法\u SSLv3\u客户端)

它是如何工作的?客户端动态生成私钥/公钥并将其存储在内存中

不可以。客户端通常没有公钥或私钥,但如果有,它已经安装好了。客户端不需要这些基本SSL就可以工作

对于浏览器https,同样的问题,浏览器也会这样做吗?动态生成私钥/公钥

见上文。同样的答案

一般来说:客户机从哪里获得密钥

我认为,人们普遍误解SSL只使用公共/私有加密。没有。它使用对称会话密钥,由两个对等方独立协商和计算。PKI仅在SSL中用于相互验证对等方

在任何情况下,您关于在运行时“生成”公钥/私钥对的问题都没有意义。只有对等方已经拥有公钥时,密钥对才有用


你似乎读到了很多错误的信息。其中有很多,众所周知包括所谓的“Linux文档项目”。这方面的规范性参考是和后续版本,Eric Rescoria也有一本关于SSL的好书。

进一步补充,服务器证书允许客户端对服务器进行身份验证,而客户端证书也允许服务器对客户端进行身份验证。套接字通常是指IP地址和端口号的组合。客户端和服务器使用对称加密。但它们使用非对称加密共享对称密钥。所以两者都需要私钥/公钥来启动SSL会话,对吗?@corvax不,它们不“使用非对称加密共享对称密钥”。这是另一个城市神话。他们独立计算。正如我在回答中所说的。它从未被传输,也从未被加密过。不,正如我刚才所说,它们不需要公钥和私钥来启动SSL会话。客户端计算预主密钥并将其发送到服务器,该密钥可能使用服务器的公钥进行加密,但这只是一个密钥对的一次使用,根据选择的密码套件,还可以使用其他方法。要进一步添加,服务器证书允许客户端对服务器进行身份验证,而客户端证书也允许服务器对客户端进行身份验证。套接字通常是指IP地址和端口号的组合。客户端和服务器使用对称加密。但它们使用非对称加密共享对称密钥。所以两者都需要私钥/公钥来启动SSL会话,对吗?@corvax不,它们不“使用非对称加密共享对称密钥”。这是另一个城市神话。他们独立计算。正如我在回答中所说的。它从未被传输,也从未被加密过。不,正如我刚才所说,它们不需要公钥和私钥来启动SSL会话。客户端计算预主密钥并将其发送到服务器,该密钥可能使用服务器的公钥进行加密,但这只是一个密钥对的一次使用,根据选择的密码套件,还可以使用其他方法。