Monthly Archives: February 2011

ssl和https协议详解

把这几天学习到的关于ssl和https协议的内容在这里分享一下,适合一些像我一样的网络协议初学者。

ssl协议的起源和历史我就不再多说了,就是那个Netscape 网景公司开发的,它的作用主要是提供了一种安全传输方式,我们知道网上有很多的时候需要我们去输入用户名和密码,那么假设我们自己的电脑防病毒还可以,但是用户名和密码肯定还是要通过互联网来传到服务器那里,这个步骤就要经过很多的路由等,如果明文传输,就可以在你的局域网内或者通过的路由中监听,窃取你的用户名密码。

SSL协议位于TCP/IP协议与各种应用层协议之间。当我们打开一个https的网页时,步骤如下:

1. 客户端通过SSL协议把服务器需要的客户端的SSL版本信息,加密算法设置,会话数据,发送给服务器。

2. 服务器通过SSL协议把自己的SSL的版本信息,加密算法设置,会话数据和其他通信需要的信息发给客户端。服务器也把服务器的证书发给客户端,另外如果客户端请求服务器资源需要客户端认证,服务器端就会请求客户端的证书。

3. 客户端使用这些服务器发来的信息认证服务器。如果服务器不能被认证,那么客户将被提示一个警告,并且通知客户不能建立加密和认证连接。如果服务器被成功认证,客户端将进入第四步。

4. 使用到目前为止的所有数据生成握手过程。客户端(和服务器合作之下)为会话创建一个pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字)。使用服务器的公共密钥加密(在第二步的服务器的证书中获得公共密钥),然后把这个加了密的pre-master secret发送给服务器。

5. 如果服务器请求客户端认证(在握手过程是可选项),客户端也需要标记一个特殊的数据包,客户端和服务器都知道的。在这个过程中,客户端发送一个通过pre-master secret加密过的标记的数据包和客户端自己的证书给服务器。

6. 如果服务器请求了客户端的认证,那么服务器就要尝试去认证客户端。(具体的看客户端认证细节)如果客户端认证不通过,会话将被终止。如果客户端被认证通过,服务器将使用私有密钥解密pre-master secret,然后执行一系列步骤生成master secret

7. 客户端和服务器端使用master secret去生成会话密钥。会话密码是在ssl 会话的时候对称密钥被用来加密,解密信息校验信息完整性的密钥。(检查会话过程中任何数据改变)

8. 客户端发送一个信息给服务器端,通知服务器端未来的信息将被会话密码加密,然后客户端发送一个单独(加密)信息指示客户端部分的握手会话已经完成。

9. 服务器发送一个信息通知客户端未来的会话信息将被会话密码加密,然后服务器发送一个单独(加密)信息指示服务器部分的握手部分已经完成

10. SSL握手结束,开始正式会话。客户端和服务器端使用对称会话密钥加密解密数据并且互相传送校验完整性。

11. 这是一个正常的操作过程和加密隧道。在任何时候,当内部或者外部触发条件(不是自动就是用户手动),任何一端就要从新协商会话,所有的流程将从新开始。

有几个问题我在学过之后一直在考虑:

1. 如果中间的路由从双方发送证书的时候就开始监听的话呢,是否就可以窃取内容了?

答:否,服务器那边有一个非对称密钥加密系统,首先他将公开密钥发送给客户端,客户端接收之后为会话创建一个pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字),然后用服务器发送过来的公开密钥加密,然后将加密后的内容发送给服务器,这两个阶段,如果有人监听,即使窃取到也没办法,首先公开密钥对所有人其实都是公开的,用公开密钥加密后的内容是非常非常难解密的,只有用服务器自己有的私有密钥解密才可以。服务器获取到46字节的随机数字之后,通过这个来对将来要发送的加密内容加密,而这个解密方法之后对应的那个客户端才知道,钥匙是通过公开密钥加密的,其他人都不知道,所有就保证了内容的安全性。

2. 我们自己建设的网站有时会使用没有正式证书的ssl加密,浏览器会提醒用户,默认建议关闭,证书是必要的吗?

答:经过认证的证书其实就是确保网站的真实性,还有一些专门的使地址栏显示为绿色的也都是确保网站的真实性,防止一些页面一模一样的钓鱼网站。

3. 用ssl协议之后,我们输入用户名密码就绝对安全了吗?

答:否,ssl协议只能保证server和client传输之间的安全,如果你的电脑有木马病毒,例如监听键盘,浏览器恶意插件等,ssl可管不了这些。。。还有如果server收到攻击,它的信息流失丢掉,这也不能保证的。

原创文章,转载请注明: 转载自yongxiu

本文链接地址: https://yongxiu.net/201102/24157.html

Yes Man

Yes Man 中文名《好好先生》,08年的一部电影,但是我最近才看,很好的一部电影,讲述的是一个已过而立之年的卡尔·阿伦(金·凯瑞 Jim Carrey 饰)虽然衣食无忧,但他的人生可谓失败透顶。三年前和妻子离婚,始终过着单身生活。他在银行工作,不过基本呈混吃等死、升迁无望的状态。生活中他拒绝和他人交往,反而更愿意窝在家里看电影,整个人生仿佛被灰色的浓雾所笼罩。在朋友的建议下,卡尔来到一家名为“好好先生”的机构作咨询,在导师泰伦斯(特伦斯·斯坦姆普 Terence Stamp 饰)的指引下,他尝试对生活中每一个问题都以肯定的方式回答。这小小的改变令卡尔的人生天翻地覆,荣誉、金钱、机遇、爱情接踵而来,正当他信心慢慢之时,却发现人生并非像他想得如此简单……

在这部电影的刚开始,其实我仿佛看到了我自己,Terrence Bundley说道:“You’re dead, Carl. You say “no” to life and therefore, you’re not living. You make up excuses to the people around you and to yourself. You’re stuck in the same dead-end job you’ve had for years. You don’t have a girlfriend. You don’t have anything close to a girlfriend. And you lost the love of your life because she couldn’t be with someone who didn’t live theirs. And on most nights you’re so bored and filled with ennui, you can’t even summon the enthusiasm necessary to masturbate. Am I right, Carl?”。

我发现我自己就和开始的主人公一样,say “no” to life, say “no” to everything,我在我的生活中总是拒绝很多的事情,我会对班级的聚会说no,我会对学校的活动说no,我会对一切的可能逃避公共活动说no,为什么?我也不知道。这样的生活是快乐的吗?我说为了以后的快乐,如果现在的快乐都抓不住为什么以后的快乐就会眷恋我。

看金凯瑞在后面的生活,看女主人公的生活:”You did things and had friends and sang in rock bands and made life happen”,他们会去随机履行,他们闯进关闭的演唱厅玩耍。。。金凯瑞开始学习驾驶飞机、学习韩语、学吉他、帮助流浪汉。也许这才是我想要的生活, ” The world’s a playground! You know that when you are a kid, but somewhere along the way everyone forgets it.”

又让我想起和朋友相聚的那些时光,在那些和朋友在一起的日子的尽情去疯狂才是我想要的生活,无论现在做了什么,人活了一辈子,不是为了以后能给儿女留一套房子,不是看着子孙满堂,看着他们的幸福。自己的幸福才是最高的幸福。

摘一段网友的评论:“你尽量不要去想很多事情,你要记得:你只需要做你现在能做的事情,至于那些让你烦恼的,都是你解决不了的。既然解决不了,就不要在这里花费时间。所以,把时间花在你能做的事情上 :学习、实践,这样,你将来一定有足够的能力去做,原来那些你解决不了的事情。如果,你把时间花在这些目前你解决不了的事情上 ,那么后果就是:你心情不好,你什么都不想做,你学习不好,工作不好,等等,一切都是深渊。如果,你现在做你能做的事情,让自己强大起来,那么结果就是:你啥都好了。”

所以我改了博客的副标题: make life happen, not just let it happen~

原创文章,转载请注明: 转载自yongxiu

本文链接地址: https://yongxiu.net/201102/14130.html

Microsoft 和 Nokia

其实早就有传言Nokia要和Microsoft合作了,当时我还不太相信,因为Nokia总有有一股固执的气息,如果和微软合作诺基亚不会得到太多的东西。

先说说诺基亚吧,作为手机市场的老大,自从把摩托罗拉远远的甩在后面,仿佛已经无人能撼动他的位置,但是2007年,呵呵,我记得当时我还是在高中2年级练习英语阅读的时候看到了一篇文章介绍苹果即将推出的产品iPhone,大大的屏幕,描述的全触屏,仅仅是外观,就足以震撼一下,让我幻想拥有这部手机时的模样。6月29日上市的时候,没几天我国央视就进行了一次的免费广告,吊足了大家的胃口,而后不断以谁谁接触了这款手机为荣耀。。。

其实我当时感觉没什么嘛,诺基亚什么的应该会马上推出类似的产品,毕竟财大气粗,但是当时是什么情况?当时的情况是诺基亚我记得好像没有触摸屏手机产品,一款都没有,反而是国内的山寨手机,做的各种各样的触摸屏,甚至运行windows mobile,即使是键盘的,也是触摸屏,有一个笔。

于是乎用户们进行了漫长的等待,直到08年一月份发布了5800xm,但是这款手机的定位我感觉是莫名其妙,先不说它的塞班系统和电阻屏幕,单是它的用户体验,根本不能和iPhone一代正面抗衡,诺基亚已经输在大家对其的印象上了。但诺基亚也在努力,最重要的是时间,已经落后差不多一年的时间。

08年6月诺基亚完全收购了塞班系统,试图进行突破,于是在接下来的塞班s60v5上进行一些修改,塞班5版确实进行了一些很大的变革,但是底层没有变化,塞班的老化已经凸显,开发者进行开发也是非常麻烦,接下来又有塞班3,经过这么长时间,诺基亚似乎终于有些觉悟,于是和Intel合作在Meego上,去年我也看到了放出的多段测试视频。到如今2011年,整整已经有近4年的时间了,4年过后,直到如今,诺基亚也拿不出一款用户体验足以抗衡iPhone一代的产品。

微软:同样,反应迟钝,这些大厂商有个共同特点,就是沉浸在自己的王者地位,不会居安思危,记得当时有采访文史蒂夫·鲍尔默问对iPhone的看法,鲍尔默笑着说,300美元那么贵,又没有键盘,不好。。。于是微软憋啊憋终于憋出个windows mobile 6.5。

但是,要记住,微软毕竟是微软,它如果去用心做一款产品绝对不会做的比其他人差,于是我们看到了wp7 的重大变革,和google相比,微软的最大失误就是把宝贵的时间浪费掉了,google在iPhone看到了一个时代的商机,顺水推出了android,和iPhone起码类似用户体验,简单的开发方式,以及凭借google的财力和影响力进行的最大化推广,google赢在了时间。

我不敢对诺基亚和微软合作作任何的预测,但是起码不会太差,两家世界顶级的公司合作的产品,拭目以待吧~

原创文章,转载请注明: 转载自yongxiu

本文链接地址: https://yongxiu.net/201102/11114.html