SSL/TLS 握手过程:
网上找的一张图比较清楚
单项认证具体过程(C(客户端)和S(服务端)通信):
C>>S:(提供支持加密算法,加密算法有DES,RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA)发送消息给服务端。
S>>C:1,(根据C支持算法选出一组最安全的算法)我们选 DES-RSA-SHA这对组合
2,(同时把自己的证书给C) 这是我的证书你验证一下
C>>S:1,(依据本地保存的证书,来验证S传来的证书,如果有问题则断开并发出警告)
2,(产生一份秘密消息,将秘密消息进行处理,生成加密密钥,加密初始化向量和hmac的密钥)用加密的办法给你发消息了!
S>>C:(用自己的私钥将ClientKeyExchange中的秘密消息解密出来,然后将秘密消息进行处理,生成加密密钥,加密初始化向量和hmac的密钥,这时双方已经安全的协商出一套加密办法了)要开始用加密的办法给你发消息了!
C>>S:用协议好的加密算法加密数据
S>>C:用协议好的加密算法加密数据
SSL协议是用非对称密码算法来协商密钥,并使用密钥加密明文并传输的。