IT技术博客大学习 共学习 共进步

SSL Proxy

kernelchina blogs 2011-12-18 21:58:08 浏览 5,044 次

    以前写过一篇SSL Proxy的小的分析,在最近一次讨论中发现我还是了解的不够细致,这里描述的细致一些。

    首先是定义一下应用场景:

    SSL Client<--------------------------->SSL Server

    首先是标准的SSL Client和Server进行通信。

    SSL Client<-------------->MITM<------------->SSL Server

    需求是:在其间加入中间人,劫持会话,生成两个SSL会话,从而可以获取明文数据,同时符合SSL标准,同时不用Client明确关注到中间人。

    业界有两种实现:

    1.SSL Forward Prxoy -- 正向代理

    即代理Client。中间人生成自签名证书,Client要明确相信中间人的证书,这样中间人就不必将Server的证书发送给Client。

    2.SSL Reverse Proxy -- 反向代理

    即代理Server,要求Server的证书必须明确的配置在中间人上,这样中间人可以完全承担Server的加解密的功能。

    从技术角度讲,潜在的还可以将Client的证书配置到中间人上,但是这是无法操作的。

    即使是业界的实现也有一些局限:

    1.两种实现所共有的局限是:Server不能对于Client进行身份验证,因为Client的私钥无法获取。

    2.正向代理的另一个局限是,由于中间人是自签名证书,如果Client实现一定要验证Server证书合法性,则无法实现会话的劫持。

建议继续学习

  1. SSL证书的分类(按功能) (阅读 10,163)
  2. nginx 使用 ssl (阅读 7,564)
  3. 解决linux下安装ssl后,apache重启时需要密码 (阅读 6,384)
  4. 通过ssldump来分析ssl协议过程 (阅读 3,904)
  5. SSL窃听攻击实操 (阅读 3,765)
  6. 给Nginx配置一个自签名的SSL证书 (阅读 3,543)
  7. Linux下自行颁发SSL证书 (阅读 2,763)
  8. SSL多域名绑定证书的解决方案 (阅读 2,763)
  9. [Android]用WebView访问证书有问题的SSL网页 (阅读 2,747)
  10. lihttpd ssl 配置 (阅读 2,262)