Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • https和RSA

    post by onelong / 2014-9-19 21:01 Friday [java]

    最近突然想去了解一下https相关的知识。首先是理解了https的握手,客户端请求服务器时,可以得到公钥,得到公钥之后,客户端生成随机密码加密传给服务器,https使用非对称的加密方式,也就是使用公钥加密的数据,只有使用私钥才可以解密,这样可以保证密码交换的安全性。在握手的过程中当然要保证传输证书的时候不能被中间人篡改吧,所以在握手的过程中还需要一个机制保证数据的完整性。

    公钥加密,私钥解密。看到这句话,我又产生了疑问。客户端可以使用非对称加密传送给服务器,但是服务器给客户端传送数据难道是明文的?后来一番了解之后,原来是客户端把随机密码传送给服务器,也用作之后的加密通讯。了解到这里,我以为我已经很理解了。后来发现了如下的一句话:

    在算法设计上,非对称加密算法对待加密的数据长度有着苛刻的要求。例如RSA算法要求待加密的数据不得大于53个字节。

    看到RSA的限制,突然有个疑问,在通讯的过程中能使用非对称算法进行加密?第一个方面出于效率的思考,第二方面https传输数据的数据量是很大的,带着这个疑问继续探索。于是大胆的猜想:

    https在握手的时候使用了非对称加密完成密码交换,而在传输数据的时候使用了对称加密算法,如DES。思考到这,我发现我已经收获了很多,例如在罗西尼项目登录机制可以参考https握手过程,完成更高安全性http传输。

    后来也在百度上面找到了一些资料去支持自己的猜想。

    http://segmentfault.com/q/1010000000169524

    标签: https
    引用地址:
     

    我要评论