HTTPS整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

服务器
确认加钥 解析返回证书中的公钥 利用公钥加密生成会话密钥
2、发送会话密钥 握手结束
确认密钥
3、密文通信
HTTPS的握手过程(即上图): 1.浏览器将自己支持的一套加密规则发送给网站。 2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式 发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等 信息。 3.浏览器获得网站证书之后浏览器要做以下工作: a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否 与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小 锁头,否则会给出证书不受信的提示。 b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机 数的密码,并用证书中提供的公钥加密。 c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密, 最后将之前生成的所有信息发送给网站。 4.网站接收浏览器发来的数据之后要做以下的操作: a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息, 并验证HASH是否与浏览器发来的一致。 b) 使用密码加密一段握手消息,发送给浏览器。 5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时 握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对 称加密算法进行加密。
移动端的表现(iOS): 前提:我们使用的成熟的第三方网络库(AFNetworking)
1、直接访问HTTPS的API,请求出错: 报错提示:”error:Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)” 这是一个SSL层面上错误,由于客户端没有证书验证,所以请求报错 2、忽略证书验证,请求成功: 代码设置:AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.securityPolicy.allowInvalidCertificates = YES; 这是允许证书无效,跳过握手,进行https的请求,成功获取返回信息。 3、进一步提高安全性,设置证书,请求成功: 代码设置:先在项目中添加证书, manager.securityPolicy.allowInvalidCertificates = NO; [manager.securityPolicy setPinnedCertificates:@[certData]]; [manager.securityPolicy setSSLPinningMode:AFSSLPinningModeCertificate]; 这是保证身份验证的成功,然后进行https的请求,成功获取返回信息
我们系统采用基于ssl加密传输协议的HTTPS请求,并维护一套基于HASH算 法MD5的token令牌机制,从而极大程度上增加了系统的安全性。 Token是客户端与服务器API请求的令牌,通过后台提供基于用户信 息和HASH算法MD5生成的secret,客户端再生成随机数组合secret重 新MD5生成的token。在每次的API请求中都会携带此token值,来保 证请求的安全性,由于2边都知道解析的规则,每次请求中,服务 器可获取到用户的信息,客户端可验证请求数据的有效性。
Token机制
客户端
Https传输
服务器
相比于无状态的Http协议传输,信息都是明文传输的。而Https传输 在ssl层上,由于请求的发起需要握手的身份认证,保证的安全性; 同时经过对称加密的数据,需要客户端和服务器双方私钥公钥才能 解析,从而确保了数据不会泄密和被篡改。
客户端
1、https请求,握手开始
HTTPS的介绍: HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是 以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL 层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
HTTPS的原理: HTTPS在传输数据之前需要客户端(移动端,浏览器等)与服务端(网 站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密 码信息。 TLS/SSL协议是一套加密传输的协议,加密,对称加密以及HASH算法。 HTTPS与HTPP的区别: • https协议需要到ca申请证书,一般免费证书很少,需要交费。 • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输 协议。 • http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是 443。 • http的连接很简单,是无状态的 。 • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。
相关文档
最新文档