微信小程序隐私技术保护:HTTPS&授权确认
微信隐私保护指引
【微信隐私保护指引】据微信派公众号消息,近期,微信进行了版本更新,所有进入iOS 6.5.16 、Android 6.5.14最新版本微信的用户在首次登入微信时,会收到一条必读消息《微信隐私保护指引》。点击“了解更多”可进一步阅读详细的《指引》内容,其中,主要公示了微信一直以来保护用户隐私的宗旨和细则。用户首次注册或登录新版本微信时,会弹出《微信隐私保护指引》,用户仅需阅读并点击同意即可正常登录使用微信,不会产生其他任何影响。若点击“不同意”可能影响正常登录及使用微信。
那么微信小程序是如何通过技术手段保护用户隐私呢?
一、授权确认,信息曝露少
授权确认,信息曝露少
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用,体现了“用完即走”的理念。但是进入小程序,仍然会有小程序本身需要的登录信息和程序要读取微信账户的账户信息,
在实际的小程序开发中,往往需要用户授权登陆并获取用户的数据,快速对接用户系统。就是所谓的获取授权收集openid,调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话**(session_key)等。
openId : 用户在当前小程序的唯一标识
unionId : 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionId是相同的。详情登录微信开放平台(http://open.weixin.qq.com) 。
在微信小程序开发中,unionId等敏感数据则被加密在encryptedData,于是需要以下流程来解密敏感数据,从而获取unionId等信息
openid是用来验证用户身份,每个接入微信的应用(公众号、app)就像一个独立的商场,用户使用这些应用就像逛商场,商场会用会员卡识别用户,类似的,微信根据商场名字为每个用户生成了专属的会员卡(openid)。每张会员卡只能在对应的商场才能使用,,比如,你不能拿着中百的卡去沃尔玛积分,这是一种安全的授权方式,如果没有这个会员卡(openid),直接暴露微信号,就想到相当于拿着身份证去逛商场一样,所以,丢失一个会员卡号远比丢失身份证号更安全。
小程序获取openid,创建session,用于用户信息传输加密,第一用户公开信息的获取通过微信官方的接口得以保证,已获取的信息的安全性由该软件的开发者来保证。
二、HTTPS安全链接,防窃取
HTTPS安全链接,防窃取
HTTP明文协议是不安全的传输协议,无法进行服务器端真实身份校验,也不能为传输数据提供加密保护,通过HTTP协议传输的数据时刻处在被窃听、篡改、冒充的风险中。HTTPS传输协议在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密,确保数据传输到正确的服务器端,并防止中间人窃取传输数据。
为什么要接入 HTTPS—HTTP 的安全风险,很显然,HTTP 和人们生活及经济利益密切相关,遗憾的是,它不安全。这里潜藏着巨大的安全隐患。这些隐患又集中表现在如下两方面:
1、隐私泄露
由于 HTTP 本身是明文传输,用户和服务端之间的传输内容都能被中间者查看。也就是说 你在网上搜索、购物、访问的网点、点击的页面等信息,都可以被「中间人」获取。由于国人大多不太重视隐私的保护,这里的风险比较隐性,伤害后果也不太好定量评估。已知的一些比较严重的隐私泄露事件包括:
1)QQ 登陆态被不法分子窃取,然后在异地登陆,进行广告和欺诈行为。
2)用户手机号和身份信息泄露。
3)用户网上行为泄露。比如搜索了一所医院,很快就会有人打电话进行推广(非效果广告)。
2、页面劫持
隐私泄露的风险比较隐蔽,用户基本感知不到。但另外一类劫持的影响就非常明显非常直接了——页面劫持,也就是直接篡改用户的浏览页面。有很多页面劫持很简单粗暴,直接插入第三方广告或者运营商的流量提示信息。但也有一些劫持做得比较隐蔽,换成 HTTPS 访问,就没有这个工具页面,显然是被劫持了。
3、劫持路径及分类
那劫持到底是如何产生的呢?从技术上来讲比较简单,在内容经过的地方进行监听篡改就行了。但要想把整个劫持的产业链条摸清楚,需要深入黑产内部,比较困难。有一点可以肯定的是,劫持大部分都是在中间的网络节点发生的,又叫「中间人」(MITM, man in the middle)。由于信息传输都需要经过上述的「中间人节点」,它们又拥有信息的读写权限,如果信息没有加密,也没有校验,那么想要查看隐私,篡改页面,对于「中间人」来说可谓是轻而易举。
那劫持又有哪些主要的分类呢?根据劫持路径划分的话,主要三类:
DNS 劫持,客户端劫持和链路劫持。 根据我们的不完全统计,业务遇到的绝大部分劫持 (90%)都属于链路劫持。
HTTPS 是解决链路劫持的核武器
HTTPS 为什么能很好的解决链路劫持呢?主要是三大武器:
1)身份认证—防假冒,防抵赖
每次建立一个全新的 HTTPS 连接时,都需要对身份进行认证,确保用户访问的是正确的目的网站。
2)内容加密—防窃听
内容加密意味端对端的通信内容全都是密文,中间人无法直接查看到明文,HTTPS 所有的应用层内容都是通过对称加密来实现加密和解密的。
3)一致性校验—防篡改
通过对数据和共享**的 MAC 码来防止中间者篡改消息内容,确保数据的一致性。
目前全球互联网正在从HTTP向HTTPS的大迁移,Chrome和火狐浏览器将对不采用HTTPS加密的网站提示不安全,苹果要求所有APP通信都必须采用HTTPS加密,微信小程序强制要求服务器端使用HTTPS请求,正是顺应了互联网安全的趋势。
所以说,微信小程序的保护隐私做得非常好,完全不用担心。
版权说明:本文图文来源于网络,由小程序商店(store.dreawer.com)整理编辑,转载请注明出处。