⑴ 无法建立安全连接,因为此网站使用了不受支持的协议或加密套件。
把所有杀毒防护软件关闭,然后打开ie-工具-internet选项-安全-自定义级别-重置为(中低)-点击重置-确定,然后再打开银行网站,待浏览器上弹出安装activex控件时进行安装,重启IE再试试!
如果还不行的话,可以试试火狐等浏览器
⑵ WIFI用什么加密算法
目前,无线网络中已存在好几种加密技术,由于安全性能的不同,无线设备的不同技术支持,支持的加密技术也不同, 一般常见的有:WEP、WPA/WPA2、WPA-PSK/WPA2-PSK。
1、WEP安全加密方式
WEP(有线等效保密),一种数据加密算法,用于提供等同于有线局域网的保护能力。它的安全技术源自于名为RC4的RSA数据加密技术,是无线局域网WLAN的必要的安全防护层。目前常见的是64位WEP加密和128位WEP加密。
2、WPA安全加密方式
WEP之后,人们将期望转向了其升级后的WPA,与之前WEP的静态密钥不同,WPA需要不断的转换密钥。
WPA采用有效的密钥分发机制,可以跨越不同厂商的无线网卡实现应用,其作为WEP的升级版,在安全的防护上比WEP更为周密,主要体现在身份认证、加密机制和数据包检查等方面,而且它还提升了无线网络的管理能力。
3、WAP2
WPA2是IEEE 802.11i标准的认证形式,WPA2实现了802.11i的强制性元素,特别是Michael算法被公认彻底安全的CCMP(计数器模式密码块链消息完整码协议)讯息认证码所取代、而RC4加密算法也被AES所取代。
目前WPA2加密方式的安全防护能力相对出色,只要用户的无线网络设备均能够支持WPA2加密,那么恭喜,无线网络处于一个非常安全的境地。
(2)建立连接时认证加密扩展阅读
WPA/WPA2是一种最安全的加密类型,不过由于此加密类型需要安装Radius服务器,因此,一般普通用户都用不到,只有企业用户为了无线加密更安全才会使用此种加密方式,在设备连接无线WIFI时需要Radius服务器认证,而且还需要输入Radius密码。
WPA-PSK/WPA2-PSK是我们现在经常设置的加密类型,这种加密类型安全性能高,而且设置也相当简单,不过需要注意的是它有AES和TKIP两种加密算法。
⑶ 手机怎样创建,加密,使用wifi , 要详细的
手机设置——更多
里面会有个网络共享与便携式热点(可能名字会有不同,反正就是这意思)
打开
勾选便携式WI-FI热点就可以了
下面有个便携式WI-FI设置。你可以选择开放,就是没有密码别人可以任意连接你。也可以选择加密方式然后设置密码。
打开便携式WI-FI热点后,通知栏就会有特殊图标出现的。
⑷ 如何设置无线路由器使在用无线网络连接时需要输入密码
先跟你说一个比较简单比较常用的方法吧,基本用这个方法就可以了,建议你先把进入无线路由设置的网站的密码(和用户名)先改掉
WEP加密
1、启用WEP加密。
打开路由器管理界面,“无线设置”->“基本设置”:
“安全认证类型”选择“自动选择”,因为“自动选择”就是在“开放系统”和“共享密钥”之中自动协商一种,而这两种的认证方法的安全性没有什么区别。
“密钥格式选择”选择“16进制”,还有可选的是“ASCII码”,这里的设置对安全性没有任何影响,因为设置“单独密钥”的时候需要“16进制”,所以这里推荐使用“16进制”。
“密钥选择”必须填入“密钥2”的位置,这里一定要这样设置,因为新的升级程序下,密钥1必须为空,目的是为了配合单独密钥的使用(单独密钥会在下面的MAC地址过滤中介绍),不这样设置的话可能会连接不上。密钥类型选择64/128/152位,选择了对应的位数以后“密钥类型”的长度会变更,本例中我们填入了26位参数11111111111111111111111111 。因为“密钥格式选择”为“16进制”,所以“密钥内容”可以填入字符是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f,设置完记得保存。
如果不需要使用“单独密钥”功能,网卡只需要简单配置成加密模式,密钥格式,密钥内容要和路由器一样,密钥设置也要设置为“WEP密钥2”的位置(和路由器对应),这时候就可以连接上路由器了。
如果你比较有兴趣学习的话,还可以继续往下看
无线路由器加密有以下几种方法:
1.使用无线路由器提供的WEP,WPA等加密方式.WEP一般设置简单.
2.或者使用访问限制,同过MAC地址来限制连接,就是说在访问限制列表里输入MAC的机器,才能连接到你的无线路由器.
3.一种更简单的,就是关闭SSID广播,就是无法搜索到你AP的SSID,你只能手工的方式自己填入正确的SSID,才能连接!上述三个方法都可以,但安全性质最好的是通过MAC地址限制访问.设置都是在无线路由器完成.
下面将对这些加密方式详细介绍下:
一、先介绍下最简单的,关闭SSID广播,这样无线用户就搜索不到你的网络标识,可以起到限制其他用户的连接.具体设置:
a、路由器方设置,在关闭SSID广播时,你最好改变下SSID广播号,如果不改动的话,以前连过你网络的用户,还可以连接;
b、客户机设置:无线网络---属性----无线配置---"使用windows配置您的无线网络"--然后点"添加"--写上你设置的SSID名称.OK后,---再点属性,要确认"自动连接到非手选网络"的勾未打上,确定就可以----让你刚刚设置的SSID号排在最上方,因为SSID广播关闭后,是你的电脑无线网卡去搜寻路由器,在最上方,可以首先访问你的无线网络,且避免连接到其他的无线网络.(备注:如果这样还是上不去网的话,你可以点开无线网络的TCP/IP设置,写上内网的固定 ip,网关,DNS.一般网关,DNS都是你路由器的ip.)
二、MAC地址限制
2、单独密钥的使用。
这里的MAC地址过滤可以指定某些MAC地址可以访问本无线网络而其他的不可以,“单独密钥”功能可以为单个MAC指定一个单独的密钥,这个密钥就只有带这个MAC地址的网卡可以用,其他网卡不能用,增加了一定的安全性。
打开“无线设置”->“MAC地址过滤”,在“MAC地址过滤”页面“添加新条目”,如下界面是填入参数的界面:
“MAC地址”参数我们填入的是本例中TL-WN620G的MAC地址00-0A-EB-88-65-06 ,
“类型”可以选择“允许”/“禁止”/“64位密钥”/“128位密钥”/“152位密钥” ,本例中选择了64位密钥。“允许”和“禁止”只是简单允许或禁止某一个MAC地址的通过,这和之前的MAC地址功能是一样的,这里不作为重点。
“密钥”填入了10位AAAAAAAAAA ,这里没有“密钥格式选择”,只支持“16进制”的输入。
“状态”选择生效。
最后点击保存即可,保存后会返回上一级界面:
注意到上面的“MAC地址过滤功能”的状态是“已开启”,如果是“已关闭”,右边的按钮会变成“开启过滤”,点击这个按钮来开启这一功能。至此,无线路由器这一端配置完成!
顺便说一下怎样获取网卡MAC地址?可以参考我司网站“网络教室” 文档《路由器配置指南》相关内容,通过电脑DOS界面运行ipconfig/all这个命令会弹出如下类似信息,红线勾勒部分“Physical Address”对应的就是处于连接状态的网卡的MAC地址;
二、网卡TL-WN620G的配置
打开TL-WN620G客户端应用程序主界面——“用户文件管理”—>“修改”,会弹出用户配置文件管理对话框。首先是“常规”页填入和无线路由器端相同的SSID —— 本例为“TP-LINK”
然后点击“高级”页,红线勾勒部分注意选择认证模式,可以保持和无线路由器端相同,由于我们的路由器上选择了“自动选择”模式,所以这里无论选择什么模式都是可以连接的。
如果这个选项是灰色,就请先配置“安全”页面的参数,回过头再来这里配置;
接下来我们进入“安全”页
先选择“预共享密钥(静态WEP)”,然后点击“配置…..”按钮,进入设置共享密钥的界面:
上面用红线勾勒的参数说明一下:
1)、“密钥格式”必须选择“十六进制(0-9,A-F);
2)、总共需要填入两个密钥,密钥1对应的是路由器 “无线配置”->“MAC地址过滤”页面下设置的单独密钥,本例为64位长度的密钥AAAAAAAAAA ;密钥2对应的是路由器“无线配置”->“基本设置”页面下设置的公共密钥,本例为128位长度的密钥:11111111111111111111111111 。
3)、最后要选中“WEP密钥1”。(注意“WEP密钥1”后面的圆点)
4)、单独密钥和公共密钥的位置是不能更改的。
配置完成,连续点击两次“取定”回到客户端应用程序主界面,我们可以看到网卡和无线路由器已经建立了连接,如下图所示:
这时候我们进入路由器“无线设置”-“主机状态”,可以看到已连接的网卡MAC地址;在“主机状态”页面,表里第一个显示的是无线路由器的MAC地址;
希望可以帮到你!
⑸ 连接网络时,网络可以正常连接,但网络下方显示已加密,不可上网,这是什么原因
你这是连接无线网络上遇到的吧!连接到的别人的专用网络上了,是加密的,而且路由端没有连接Inter网,所以你有密码也上不了网。
⑹ TCP/IP在网络的实际应用
tcp:transport control protocol 传输控制协议,三次握手,面向连接,可靠传输ip:网络寻址协议,标识一个节点在网络上的地址和寻址方法tcp/ip协议还包括了数据段、包的封装和解封装,数据报的结构等等 实际运用:很多运用层的软件的通讯都需要TCP/IP比如ftp你要把服务器1.1.1.1的a文件传到2.2.2.2的客户机上1、服务器1.1.1.1开放ftp的服务2、2.2.2.2 发出请求,开启端口21(ftp的tcp端口)的连接3、双方基于tcp的各种传输机制协商传输细节,包括建立连接时的认证,加密,压缩等信息,建立连接后的的数据封装和解封装(数据分段,添加报头)4、建立连接后的转发路径寻址(1.1.1.1的数据怎么到达2.2.2.2)就是ip来完成的。5、可靠连接的定义是tcp协议的内容。
⑺ 请问,加密连接是什么意思
一种加密密钥服务器,用于经由网络向连接到所述加密密钥 服务器的远程设备提供加密服务,所述加密密钥服务器包括: 在所述加密密钥服务器上执行的安全网络接口引擎,所述安全网 络接口引擎用于: 建立与至少一个远程设备之间的安全网络通信信道; 解包从所述至少一个远程设备接收的安全的加密服务请求; 以及 打包并传输安全加密服务响应至所述至少一个远程设备;和 在所述加密密钥服务器上执行的加密服务引擎,所述加密服务引 擎与所述安全网络接口引擎双向通信,所述加密服务引擎用于经由所 述安全网络接口引擎提供由所述至少一个远程设备所请求的加密服务。
⑻ 怎样用手机给家里的无线网加密
手机是可以用来配置无线路由器的,具体步骤如下:
1、首先把路由器电源插上,从猫的网卡端口,用网线与路由器的WAN端口连接,此时路由器上的WAN灯就会闪烁,就证明已经有信号源了。
如果路由器已经配置过,可以跳过1、2两个步骤,直接进行无线密码设置。
经过以上设置,就为无线信号设置好了密码了。接下来就可以在手机的无线网络中,点击刚刚设置好的无线信号,输入填写的密码,点击连接。连接上之后就可以上网了。
⑼ 怎么才能打开加密的wifi说要经过认证才能登陆
尊敬的用户您好:
如何出现wifi需要认证,请按如下操作:
1.首先检查无线路由器是否正常工作,可以使用其他手机或者数码产品连接该 WIFI 信号,如果都能正常连接和正常上网,那么一般来说这个路由器是可以正常工作的。
2.手机开启了休眠状态关闭网络。
检查手机是否开启休眠状态下关闭网络的选项,手机过一段时间就会断开连接或者接收不到后台聊天软件的可能原因是误开启手机休眠关闭网络的功能。
3.长时间使用路由器,路由器可能会出现假死现象。重启无线路由器即可。
4.认证类型不合适。尝试更改路由器的认证类型,选择安全的 “WPA2-PSK” 类型模式要好,下面的加密算法最好选择 “AES”。
5.手机或路由器网络设置异常。考虑恢复路由器出厂设置和手机网络设置。
中国电信提供最优质的网络通讯服务,老友换新机,网龄抵现金,百兆宽带免费体验,超清电视iTV,电信活动可以直接通过电信营业厅或者实体营业厅查询。
中国电信提供最优质的网络通讯服务,电信活动可以直接通过电信营业厅或者实体营业厅查询。
⑽ https建立连接的的过程是怎么样的
您好,根据您所提出的问题,我整理出以下资料
HTTPS基本原理
一、http为什么不安全?
http协议没有任何的加密以及身份验证的机制,非常容易遭遇窃听、劫持、篡改,因此会造成个人隐私泄露,恶意的流量劫持等严重的安全问题。
国外很多网站都支持了全站https,国内方面目前网络已经在年初完成了搜索的全站https,其他大型的网站也在跟进中,网络最先完成全站https的最大原因就是网络作为国内最大的流量入口,劫持也必然是首当其冲的,造成的有形的和无形的损失也就越大。关于流量劫持问题,我在另一篇文章中也有提到,基本上是互联网企业的共同难题,https也是目前公认的比较好的解决方法。但是https也会带来很多性能以及访问速度上的牺牲,很多互联网公司在做大的时候都会遇到这个问题:https成本高,速度又慢,规模小的时候在涉及到登录和交易用上就够了,做大以后遇到信息泄露和劫持,想整体换,代价又很高。
2、https如何保证安全
要解决上面的问题,就要引入加密以及身份验证的机制。
这时我们引入了非对称加密的概念,我们知道非对称加密如果是公钥加密的数据私钥才能解密,所以我只要把公钥发给你,你就可以用这个公钥来加密未来我们进行数据交换的秘钥,发给我时,即使中间的人截取了信息,也无法解密,因为私钥在我这里,只有我才能解密,我拿到你的信息后用私钥解密后拿到加密数据用的对称秘钥,通过这个对称密钥来进行后续的数据加密。除此之外,非对称加密可以很好的管理秘钥,保证每次数据加密的对称密钥都是不相同的。
但是这样似乎还不够,如果中间人在收到我的给你公钥后并没有发给你,而是自己伪造了一个公钥发给你,这是你把对称密钥用这个公钥加密发回经过中间人,他可以用私钥解密并拿到对称密钥,此时他在把此对称密钥用我的公钥加密发回给我,这样中间人就拿到了对称密钥,可以解密传输的数据了。为了解决此问题,我们引入了数字证书的概念。我首先生成公私钥,将公钥提供给相关机构(CA),CA将公钥放入数字证书并将数字证书颁布给我,此时我就不是简单的把公钥给你,而是给你一个数字证书,数字证书中加入了一些数字签名的机制,保证了数字证书一定是我给你的。
所以综合以上三点: 非对称加密算法(公钥和私钥)交换秘钥 + 数字证书验证身份(验证公钥是否是伪造的) + 利用秘钥对称加密算法加密数据 = 安全
3、https协议简介
为什么是协议简介呢?因为https涉及的东西实在太多了,尤其是一些加密算法,非常的复杂,对于这些算法面的东西就不去深入研究了,这部分仅仅是梳理一下一些关于https最基本的原理,为后面分解https的连接建立以及https优化等内容打下理论基础。
3.1 对称加密算法
对称加密是指加密和解密使用相同密钥的加密算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信至关重要。
对称加密又分为两种模式:流加密和分组加密。
流加密是将消息作为位流对待,并且使用数学函数分别作用在每一个位上,使用流加密时,每加密一次,相同的明文位会转换成不同的密文位。流加密使用了密钥流生成器,它生成的位流与明文位进行异或,从而生成密文。现在常用的就是RC4,不过RC4已经不再安全,微软也建议网络尽量不要使用RC4流加密。
分组加密是将消息划分为若干位分组,这些分组随后会通过数学函数进行处理,每次一个分组。假设需要加密发生给对端的消息,并且使用的是64位的分组密码,此时如果消息长度为640位,就会被划分成10个64位的分组,每个分组都用一系列数学公式公式进行处理,最后得到10个加密文本分组。然后,将这条密文消息发送给对端。对端必须拥有相同的分组密码,以相反的顺序对10个密文分组使用前面的算法解密,最终得到明文的消息。比较常用的分组加密算法有DES、3DES、AES。其中DES是比较老的加密算法,现在已经被证明不安全。而3DES是一个过渡的加密算法,相当于在DES基础上进行三重运算来提高安全性,但其本质上还是和DES算法一致。而AES是DES算法的替代算法,是现在最安全的对称加密算法之一。分组加密算法除了算法本身外还存在很多种不同的运算方式,比如ECB、CBC、CFB、OFB、CTR等,这些不同的模式可能只针对特定功能的环境中有效,所以要了解各种不同的模式以及每种模式的用途。这个部分后面的文章中会详细讲。
对称加密算法的优、缺点:
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:(1)交易双方都使用同样钥匙,安全性得不到保证;
(2)每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。
(3)能提供机密性,但是不能提供验证和不可否认性。
3.2 非对称加密算法
在非对称密钥交换算法出现以前,对称加密一个很大的问题就是不知道如何安全生成和保管密钥。非对称密钥交换过程主要就是为了解决这个问题,使得对称密钥的生成和使用更加安全。
密钥交换算法本身非常复杂,密钥交换过程涉及到随机数生成,模指数运算,空白补齐,加密,签名等操作。
常见的密钥交换算法有RSA,ECDHE,DH,DHE等算法。涉及到比较复杂的数学问题,下面就简单介绍下最经典的RSA算法。RSA:算法实现简单,诞生于1977年,历史悠久,经过了长时间的破解测试,安全性高。缺点就是需要比较大的素数也就是质数(目前常用的是2048位)来保证安全强度,很消耗CPU运算资源。RSA是目前唯一一个既能用于密钥交换又能用于证书签名的算法。我觉得RSA可以算是最经典的非对称加密算法了,虽然算法本身都是数学的东西,但是作为最经典的算法,我自己也花了点时间对算法进行了研究,后面会详细介绍。
非对称加密相比对称加密更加安全,但也存在两个明显缺点:
1,CPU计算资源消耗非常大。一次完全TLS握手,密钥交换时的非对称解密计算量占整个握手过程的90%以上。而对称加密的计算量只相当于非对称加密的0.1%,如果应用层数据也使用非对称加解密,性能开销太大,无法承受。
2,非对称加密算法对加密内容的长度有限制,不能超过公钥长度。比如现在常用的公钥长度是2048位,意味着待加密内容不能超过256个字节。
所以公钥加密(极端消耗CPU资源)目前只能用来作密钥交换或者内容签名,不适合用来做应用层传输内容的加解密。
3.3 身份认证
https协议中身份认证的部分是由数字证书来完成的,证书由公钥、证书主体、数字签名等内容组成,在客户端发起SSL请求后,服务端会将数字证书发给客户端,客户端会对证书进行验证(验证查看这张证书是否是伪造的?也就是公钥是否是伪造的),并获取用于秘钥交换的非对称密钥(获取公钥)。
数字证书有两个作用:
1,身份授权。确保浏览器访问的网站是经过CA验证的可信任的网站。
2,分发公钥。每个数字证书都包含了注册者生成的公钥(验证确保是合法的,非伪造的公钥)。在SSL握手时会通过certificate消息传输给客户端。
申请一个受信任的数字证书通常有如下流程:
1,终端实体(可以是一个终端硬件或者网站)生成公私钥和证书请求。
2,RA(证书注册及审核机构)检查实体的合法性。如果个人或者小网站,这一步不是必须的。
3,CA(证书签发机构)签发证书,发送给申请者。
4,证书更新到repository(负责数字证书及CRL内容存储和分发),终端后续从repository更新证书,查询证书状态等。
数字证书验证:
申请者拿到CA的证书并部署在网站服务器端,那浏览器发起握手接收到证书后,如何确认这个证书就是CA签发的呢?怎样避免第三方伪造这个证书?答案就是数字签名(digital signature)。数字签名是证书的防伪标签,目前使用最广泛的SHA-RSA(SHA用于哈希算法,RSA用于非对称加密算法)数字签名的制作和验证过程如下:
1,数字签名的签发。首先是使用哈希函数对待签名内容进行安全哈希,生成消息摘要,然后使用CA自己的私钥对消息摘要进行加密。
2,数字签名的校验。使用CA的公钥解密签名,然后使用相同的签名函数对待签名证书内容进行签名并和服务端数字签名里的签名内容进行比较,如果相同就认为校验成功。
需要注意的是:
1)数字签名签发和校验使用的密钥对是CA自己的公私密钥,跟证书申请者提交的公钥没有关系。
2)数字签名的签发过程跟公钥加密的过程刚好相反,即是用私钥加密,公钥解密。
3)现在大的CA都会有证书链,证书链的好处一是安全,保持根CA的私钥离线使用。第二个好处是方便部署和撤销,即如果证书出现问题,只需要撤销相应级别的证书,根证书依然安全。
4)根CA证书都是自签名,即用自己的公钥和私钥完成了签名的制作和验证。而证书链上的证书签名都是使用上一级证书的密钥对完成签名和验证的。
5)怎样获取根CA和多级CA的密钥对?它们是否可信?当然可信,因为这些厂商跟浏览器和操作系统都有合作,它们的公钥都默认装到了浏览器或者操作系统环境里。
3.4 数据完整性验证
数据传输过程中的完整性使用MAC算法来保证。为了避免网络中传输的数据被非法篡改,SSL利用基于MD5或SHA的MAC算法来保证消息的完整性。 MAC算法是在密钥参与下的数据摘要算法,能将密钥和任意长度的数据转换为固定长度的数据。发送者在密钥的参与下,利用MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收者。接收者利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC值比较。如果二者相同,则报文没有改变;否则,报文在传输过程中被修改,接收者将丢弃该报文。 由于MD5在实际应用中存在冲突的可能性比较大,所以尽量别采用MD5来验证内容一致性。SHA也不能使用SHA0和SHA1,中国山东大学的王小云教授在2005年就宣布破解了 SHA-1完整版算法。微软和google都已经宣布16年及17年之后不再支持sha1签名证书。MAC算法涉及到很多复杂的数学问题,这里就不多讲细节了。
专题二--【实际抓包分析】
抓包结果:
fiddler:
wireshark:
可以看到,网络和我们公司一样,也采用以下策略:
(1)对于高版本浏览器,如果支持 https,且加解密算法在TLS1.0 以上的,都将所有 http请求重定向到 https请求
(2)对于https请求,则不变。
【以下只解读https请求】
1、TCP三次握手
可以看到,我们访问的是 http://www..com/ , 在初次建立 三次握手的时候, 用户是去 连接 8080端口的(因为公司办公网做了代理,因此,我们实际和代理机做的三次握手,公司代理机再帮我们去连接网络服务器的80端口)
2、CONNECT 建立
由于公司办公网访问非腾讯域名,会做代理,因此,在进行https访问的时候,我们的电脑需要和公司代理机做 " CONNECT " 连接(关于 " CONNECT " 连接, 可以理解为虽然后续的https请求都是公司代理机和网络服务器进行公私钥连接和对称秘钥通信,但是,有了 " CONNECT " 连接之后,可以认为我们也在直接和网络服务器进行公私钥连接和对称秘钥通信。 )
fiddler抓包结果:
CONNECT之后, 后面所有的通信过程,可以看做是我们的机器和网络服务器在直接通信
3、 client hello
整个 Secure Socket Layer只包含了: TLS1.2 Record Layer内容
(1)随机数
在客户端问候中,有四个字节以Unix时间格式记录了客户端的协调世界时间(UTC)。协调世界时间是从1970年1月1日开始到当前时刻所经历的秒数。在这个例子中,0x2516b84b就是协调世界时间。在他后面有28字节的随机数( random_C ),在后面的过程中我们会用到这个随机数。
(2)SID(Session ID)
如果出于某种原因,对话中断,就需要重新握手。为了避免重新握手而造成的访问效率低下,这时候引入了session ID的概念, session ID的思想很简单,就是每一次对话都有一个编号(session ID)。如果对话中断,下次重连的时候,只要客户端给出这个编号,且服务器有这个编号的记录,双方就可以重新使用已有的"对话密钥",而不必重新生成一把。
因为我们抓包的时候,是几个小时内第一次访问 https://www.bao.com 首页,因此,这里并没有 Session ID. (稍会儿我们会看到隔了半分钟,第二次抓包就有这个Session ID)
session ID是目前所有浏览器都支持的方法,但是它的缺点在于session ID往往只保留在一台服务器上。所以,如果客户端的请求发到另一台服务器,就无法恢复对话。session ticket就是为了解决这个问题而诞生的,目前只有Firefox和Chrome浏览器支持。
(3) 密文族(Cipher Suites):
RFC2246中建议了很多中组合,一般写法是"密钥交换算法-对称加密算法-哈希算法,以“TLS_RSA_WITH_AES_256_CBC_SHA”为例:
(a) TLS为协议,RSA为密钥交换的算法;
(b) AES_256_CBC是对称加密算法(其中256是密钥长度,CBC是分组方式);
(c) SHA是哈希的算法。
浏览器支持的加密算法一般会比较多,而服务端会根据自身的业务情况选择比较适合的加密组合发给客户端。(比如综合安全性以及速度、性能等因素)
(4) Server_name扩展:( 一般浏览器也支持 SNI(Server Name Indication))
当我们去访问一个站点时,一定是先通过DNS解析出站点对应的ip地址,通过ip地址来访问站点,由于很多时候一个ip地址是给很多的站点公用,因此如果没有server_name这个字段,server是无法给与客户端相应的数字证书的,Server_name扩展则允许服务器对浏览器的请求授予相对应的证书。
还有一个很好的功能: SNI(Server Name Indication)。这个的功能比较好,为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。一句话简述它的工作原理就是,在连接到服务器建立SSL连接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的CA证书。目前,大多数操作系统和浏览器都已经很好地支持SNI扩展,OpenSSL 0.9.8已经内置这一功能,据说新版的nginx也支持SNI。)
4、 服务器回复(包括 Server Hello, Certificate, Certificate Status)
服务器在收到client hello后,会回复三个数据包,下面分别看一下:
1)Server Hello
1、我们得到了服务器的以Unix时间格式记录的UTC和28字节的随机数 (random_S)。
2、Seesion ID,服务端对于session ID一般会有三种选择 (稍会儿我们会看到隔了半分钟,第二次抓包就有这个Session ID) :
1)恢复的session ID:我们之前在client hello里面已经提到,如果client hello里面的session ID在服务端有缓存,服务端会尝试恢复这个session;
2)新的session ID:这里又分两种情况,第一种是client hello里面的session ID是空值,此时服务端会给客户端一个新的session ID,第二种是client hello里面的session ID此服务器并没有找到对应的缓存,此时也会回一个新的session ID给客户端;
3)NULL:服务端不希望此session被恢复,因此session ID为空。
3、我们记得在client hello里面,客户端给出了21种加密族,而在我们所提供的21个加密族中,服务端挑选了“TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256”。
(a) TLS为协议,RSA为密钥交换的算法;
(b) AES_256_CBC是对称加密算法(其中256是密钥长度,CBC是分组方式);
(c) SHA是哈希的算法。
这就意味着服务端会使用ECDHE-RSA算法进行密钥交换,通过AES_128_GCM对称加密算法来加密数据,利用SHA256哈希算法来确保数据完整性。这是网络综合了安全、性能、访问速度等多方面后选取的加密组合。
2)Certificate
在前面的https原理研究中,我们知道为了安全的将公钥发给客户端,服务端会把公钥放入数字证书中并发给客户端(数字证书可以自签发,但是一般为了保证安全会有一个专门的CA机构签发),所以这个报文就是数字证书,4097 bytes就是证书的长度。
我们打开这个证书,可以看到证书的具体信息,这个具体信息通过抓包报文的方式不是太直观,可以在浏览器上直接看。 (点击 chrome 浏览器 左上方的 绿色 锁型按钮)
3)Server Hello Done
我们抓的包是将 Server Hello Done 和 server key exchage 合并的包:
4)客户端验证证书真伪性
客户端验证证书的合法性,如果验证通过才会进行后续通信,否则根据错误情况不同做出提示和操作,合法性验证包括如下:
证书链的可信性trusted certificate path,方法如前文所述;
证书是否吊销revocation,有两类方式离线CRL与在线OCSP,不同的客户端行为会不同;
有效期expiry date,证书是否在有效时间范围;
域名domain,核查证书域名是否与当前的访问域名匹配,匹配规则后续分析;
5)秘钥交换
这个过程非常复杂,大概总结一下:
(1)首先,其利用非对称加密实现身份认证和密钥协商,利用非对称加密,协商好加解密数据的 对称秘钥(外加CA认证,防止中间人窃取 对称秘钥)
(2)然后,对称加密算法采用协商的密钥对数据加密,客户端和服务器利用 对称秘钥 进行通信;
(3)最后,基于散列函数验证信息的完整性,确保通信数据不会被中间人恶意篡改。
此时客户端已经获取全部的计算协商密钥需要的信息:两个明文随机数random_C和random_S与自己计算产生的Pre-master(由客户端和服务器的 pubkey生成的一串随机数),计算得到协商对称密钥;
enc_key=Fuc(random_C, random_S, Pre-Master)
6)生成 session ticket
如果出于某种原因,对话中断,就需要重新握手。为了避免重新握手而造成的访问效率低下,这时候引入了session ID的概念, session ID的思想很简单,就是每一次对话都有一个编号(session ID)。如果对话中断,下次重连的时候,只要客户端给出这个编号,且服务器有这个编号的记录,双方就可以重新使用已有的"对话密钥",而不必重新生成一把。
因为我们抓包的时候,是几个小时内第一次访问 https://www.bao.com 首页,因此,这里并没有 Session ID. (稍会儿我们会看到隔了半分钟,第二次抓包就有这个Session ID)
session ID是目前所有浏览器都支持的方法,但是它的缺点在于session ID往往只保留在一台服务器上。所以,如果客户端的请求发到另一台服务器,就无法恢复对话。session ticket就是为了解决这个问题而诞生的,目前只有Firefox和Chrome浏览器支持。
后续建立新的https会话,就可以利用 session ID 或者 session Tickets , 对称秘钥可以再次使用,从而免去了 https 公私钥交换、CA认证等等过程,极大地缩短 https 会话连接时间。
7) 利用对称秘钥传输数据
【半分钟后,再次访问网络】:
有这些大的不同:
由于服务器和浏览器缓存了 Session ID 和 Session Tickets,不需要再进行 公钥证书传递,CA认证,生成 对称秘钥等过程,直接利用半分钟前的 对称秘钥 加解密数据进行会话。
1)Client Hello
2)Server Hello