前两天,编写了一个邮件自动发送程序。这两天,想看一下使用浏览器登陆邮箱的全过程。 下面是虚拟机登陆邮箱时,使用Ethereal的捕包结果。 虚拟机的地址为192.168.179.130 由捕包结果可知,邮箱登陆过程应该是这样的: -、 首先主机与ssl.mail.163.com(123.125.50.100)通信,具体过程如下: 本主机使用端口54460连接服务器(123.125.50.100)的443端口,发起三次握手。 主机向服务器使用TLS协议发送Client Hello消息。 (包含了自己可实现的算法列表和其它一些需要的消息) 服务器向主机发送Server Hello消息。 (这里面确定了这次通信所需要的算法,) 服务器向主机发送certificat,Server Hello Done的消息。 (发送ssl服务器的证书) 主机向服务器发送client key exchange消息。 (生成一个秘密消息,用SSL服务器的公钥加密后传过去) 服务器向主机发送change cipher spec消息, (新密钥交换完毕) 主机向服务器发送Application Data。 (发送经密钥加密的用户名以及密码等信息。*因为数据是加密的,捕包结果 不能明确显示数据内容,根据网上资料,传递的应该是form登录表 单内容) 服务器向主机发送Application Data 。 (返回检测用户名以及密码信息的结果,以及转向的页面。*因为数据是加密 的,所以此部分内容也是根据网上资料推测的。) 二,主机与mail.163.com(218.8.255.249)通信,请求页面。 本主机使用新端口54463连接服务器(218.8.255.249)的80端口, 发起三次握手。 然后向邮件服务器使用Get命令请求页面登陆过程结束。 ![]() 通过以上分析可知,在使用SSL登录邮箱时,用户名和密码都不是以明文传送的。 相关参考: 身份认证和访问控制实现原理 http://www.co./ca/Htm/menu-item-frame2-content10.htm 数字证书简介(很形象,很不错)http://wlh269./blog/733398 通过ip 反差域名(很不错,很强大):http://ip./ip.jsp?q=123.125.38.3&x=0&y=0 |
|