ssl中有两个BIO,一个是读方向的,另一个是写方向的,也就是rbio和wbio,一般情况下它们是同一个bio,这是因为一般而言的ssl是在tcp上建立的,而实际上它也可以建立在管道或者内存缓冲区等任意的文件描述符上,只要你提供一个正确的证书,openssl就可以完成连接,而不管下面是一个tcp连接还是说下面只有两个管道,ssln_server/client_method里面的回调函数完成了这一切,但是必须注意的是,ssl下面的通道必须是可靠的并且按序的通道,如果用了udp,那么必须在udp和ssl连接之前自己解决可靠按序连接问题。
a.数字信封,用一个接受方的公钥加密一个对称密钥,接受方接收了以后用私钥解密对称密钥,然后用对称密钥解密数据,实际上直接用公钥加密数据也是可以的,但是用对称密钥速度更快
b.ssl的握手过程,可以使用非rsa的无证书方式进行握手,握手的意义就是协商一个对称加密密钥,因此可以用DH算法来协商,而不一定要用rsa
c.IKE没有服务方和客户端的区别,因为IP层是无连接的
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1271995