一对一免费咨询: 13913005726 025-66045668

对于互联网客户端应用来说,通过http与网站服务器进行通信是一个重要的手段。但是某些情况下,客户端需要访问或提交一些重要资源,而且不希望有人盗取这些接口调用,此时就需要考虑https协议了。目前https在web端已经非常普遍,比如邮箱、购物、银行交易等。

那么,什么是https,它到底有什么好处,客户端能不能使用https,实现方法又是怎样的呢?这篇文章就来简单回答一下这些问题。

一、什么是HTTPS?

首先来认识一下https:维基百科-HTTPS。简单理解,https是安全版的http,通过在TCP与http层之间加入SSL协议层陕西网站建设公司 保证通信方身份、数据通道和数据本身的安全性,https采用443端口。关于SSL参考:维基百科-SSL,简单来说SSL主要完成两件事情:身份认证和数据加密。打个比方,打电话的时候,如果通过某种方式确认通话双方的身份,而且电话通道是安全加密的,甚至双方交流都采用暗语,那么几乎没有第三者能窃取通话内容。现在我们可以确定地说,https协议是安全的。而对于明文的http,如果你想干点坏事成本不太高,比如最近比较火的12306,用Wireshark或Fiddler抓包再费点功夫解析一下,你完全可以写个客户端或浏览器插件自己抢票;网上流行的论坛自动刷评论软件也是这样做的。但在https面前,这些完全不用担忧。

二、HTTPS是怎样工作的?

最关键的步骤就是建立server和client的SSL安全连接通道,在网上找到一个非常好的图来描述这个步骤。

客户端对https的支持方案:

这里主要描述流程和逻辑,以及这样做的目的。我们可以看到整个过程分为四个公司网站建设阶段:

1,client建立TCP连接后,发送一个标志请求,双方交换一些与加密相关的信息。这个过程主要是为了协商加密算法。

2,server会紧接着将自己的证书发送给client,来完成client对server身份的认证。这里的证书可以理解为一种网络身份证,即由一些有资质的CA机构(如VeriSign)经过核实后颁发的证明文件,因此如果想让server支持https是需要花钱买数字证书的,同时windows等操作系统也已经提供了一套API来完成对证书合法性的检查(类似于去公安部分查证某人的身份)。

对于这一步,浏览器的标准做法是维护一个CA机构的列表(该列表用户可以干预),当验证证书时,如果是列表中的机构(或经其授权的机构,证书链)颁发的就为可信任证书。然后还会验证证书有效期、证书标明的域名和目前访问的域名是否一致、证书中的公钥能否解开证书数字签名等。对于其他应用客户端,由于已经明确知道server证书的域名等信息,因此可以将认证逻辑做的更加严格。如果客户端发现server认证失败,就断开连接。这样,就可以防止有人伪造server来骗取客户端连接和https请求,从而将https解密盗用接口。

需要明确的一个概念是,SSL的认证和加密之间没有必然联系,也就是说如果client不做认证,后续依然可以继续标准的SSL加密,和server进行https通信。可以这样理解,SSL将身份认证步骤独立出来,如果双方继续连接和握手过程,那么可以继续协商数据加密算法,完成后续的通信。此时对于通信双方来说,这次的数据通道和数据本身都是安全的,不会别第三者截取和解密。但是如果和你打电话的人不是你要的,虽然你说的是暗语,对方也能听懂,因为电话一开始你们俩就从一系列标准暗语里协商了一个来用,暗语只是用来防止第三者窃听。

3,如果server要求,client需要发送自己的证书,server完成对client端身份的认证。目的与第2步类似,但是一般很多server并不要求对client身份进行认证。

4,协商最终加密算法。client用服务器证书中的公钥加密一个随机串密码(pre-mastersecret),并将一个由之前协商算法计算而来的握手消息用pre-mastersecret加密,将这些一并发给server;server收到后,用对应的私钥解密pre-mastersecret,由于密钥只有server知道,因此其他人无法得到pre-mastersecret。server使用pre-mastersecret解密握手消息,并验证是否符合之前的协商规则。server和client通过相同的算法生成一个mastersecret,此后server和client之间用mastersecret作为初始密钥进行对称加解密通信。可以看出,双方先通过非对称加密方式生成对称加密所用的密钥,然后用该密钥进行对称加密通信。关于对称加开发购物网站密/非对称加密/公钥/密钥等概念,请自行google。

需要说明的是,上面四个阶段是从逻辑上区分的,实际SSL协商时client和server之间的数据交互可能有所穿插和合并。

通过以上建立起的SSL,保证了通信双方、通道和数据的安全性,后续的通信过程也足够安全。

三、客户端实现

实际上很多浏览器、邮箱等已经是支持https的客户端了。如果我们在开发过程中有客户端对https的支持需求,可以按照标准的https/ssl协议来实现,但是难度还是相当大的。幸好已经有开源的代码可以用了,那就是libcurl 黑龙江网站建设公司和 openssl。openssl封装了ssl标准,而libcurl也提供了对openssl的支持。这里是libcurl官方提供的一个调用ssl的samplecode:simplessl,关于libcurl和openssl开发的具体细节,大家可以google相关资料。


 


 南京牧狼文化传媒有限公司简介:


      牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!


  公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!


  为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!


  主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等


  合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯


  资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。



致力于为客户创造更多价值
13913005726 025-66045668
需求提交
电话咨询
在线咨询