电梯里,宅客频道编辑听到两位程序员在聊天:
甲:“ 新闻说元旦之后,没上 HTTPS 的应用就不能提交AppStore了,元旦前得赶紧了!”
乙:“ 你早说啊,年底事这么多,离元旦就剩几天了。”
甲:“ Deadline是第一生产力,我这是给你增加工作动力。”
乙:“ 嗯,似乎很有道理的样子……谢谢哥。”
宅客频道编辑回去一搜索,发现确实有许多相关新闻。
正当雷锋网宅客频道打算写一篇有关苹果ATS安全功能的科普文时,却发现一个奇怪之处:
外面“传闻遍地”,但苹果商店官方并没有给开发者下发邮件通知,全面禁用HTTP这可是件大事,按照苹果的行事风格,不可能到现在还下发公告。
宅客频道预感:此事必有蹊跷!
苹果强制HTTPS,到底怎么回事?
根据雷锋网宅客频道的调查,事情还得从几个月前说起……
这一消息的最初来源于今天6月份,苹果开发者大会WWDC 2016 上,苹果首席安全架构师 Ivan 在会上演讲中提到(只是提到):
今天,我可以自豪的说,至2016年末ATS将成为所有应用程序上传到AppStore 的要求,这可以为用户和应用程序的网络通讯大大提升安全性。
然后外媒就将其解读为:苹果将对所有 AppStore上的 iOS 应用强制开启HTTP时代,最终期限就是2017年1月1日。(详见当时雷锋网(公众号:雷锋网)翻译的外媒报道:《苹果要求所有 iOS 应用在年底前默认使用 HTTPS 连接》)
ATS 是什么?和 HTTPS 有什么关系?
先来简单科普一下苹果ATS安全功能和HTTPS的关系,懂技术的童鞋可以跳过这一段。
HTTPS 就是 HTTP + SSL ,也就是在原本无加密的 HTTP 连接上开启了一层SSL加密,让原本近乎“裸奔”的数据能够以密文传输,从而提升数据在传输过程中的安全性。
ATS 则是苹果在 iOS 9 当中首次推出的一项安全功能,全称为App Transport Security 。在启用 ATS 之后,它会强制应用通过 HTTPS 连接网络服务, HTTP 连接会被过滤掉。
ATS功能是默认开启的,在实际情况当中,开发者们通常会图方便而将其关闭,然后继续使用不太安全的 HTTP 链接。
这大概和宅男们浏览大人网站时,杀毒软件跳出来说该网站不安全,90%的人都会毅然决然关掉杀毒软件继续欣赏的道理一样。
不过不可否认,HTTPS对于移动应用是很重要的安全措施,2015年就有相关报道称,高达九成的移动应用未使用HTTPS加密链接,存在巨大的安全隐患,关于ATS和HTTPS对于移动应用的作用,可参阅雷锋网此前报道:《 iOS 提高安全“门槛”:HTTPS,该升了吗?》
借机营销让消息迅速传播
由于使用HTTPS加密链接本身可以为用户的安全带来提升,因此当该消息被解读为“元旦节是最后期限”后,大多数声音都是为苹果这一措施点赞的,并没有太多人质疑消息本身的真实性。
随后,网上便开始出现大量的借机营销的软文,文章不但未考究消息真实性,甚至在其之上自我发挥,于是乎出现了“元旦过后没上HTTPS的应用无法使用”、“新应用无法提交”等字眼,文章套路大抵如下:
苹果要强制用HTTPS了,我家证书符合审核标准!
苹果要强制用HTTPS了,我家的证书便宜又好用!
苹果强制HTTPS倒计时!走过路过,千万别错过!
即使文章充满了营销气息,但依然有大量的网友信以为真,雷锋网宅客频道询问了几位开发者朋友,对方均对元旦之后全面强制HTTPS的消息深信不疑:
【来自微信聊天截图】
虽然这位 iOS 工程师也在纳闷,为何苹果这次没有公告和通知,但出于“宁可信其有,不可信其无”的考虑,他还是计划在元旦之前将 HTTP 连接全部改成 HTTPS。
真相只有一个,所以我给苹果打了个电话
按照常理,如果苹果真的在元旦之后全面强制使用HTTPS,那么好歹也应该告诉开发者,如果没用HTTPS会产生怎样的后果,然而事实并没有。
为了探寻事实的真相宅客频道来到了开发者论坛,发现已经有不少人开始讨论这个问题,而苹果官方人员给出的解释则是:
那么到底是什么变化:我们会收紧审核政策,即对于开发者添加的ATS例外(即http接口),要求提供一个“合理的解释”。之所以要增加这么一个“麻烦”,是为了避免开发者们都无脑地全局关闭ATS,使得ATS偏离其初衷,形同虚设。开发者将无法再无脑地全局关闭ATS,并且添加例外时需要提供合理的解释。
英文原文:What has changed is that App Review will require “reasonable justification” for most ATS exceptions. The goal here is to flush out those folks who, when ATS was first released, simply turned it off globally and moved on. That will no longer be allowed.
简单来说就是:开发者们将不能再无脑地关掉ATS功能,好歹你也要说两句理由。
然而当被问及什么才算是一个“合理的解释”时,对方却强调自己并不负责 App 审核,但是据他所知,目前苹果并没有就该问题发表过任何指导。
【截取自苹果开发者官方论坛】
于是,雷锋网宅客频道联系苹果开发者官方进行了电话咨询:
问:我在网上看到说2017年开始苹果会强制应用开启ATS,使用HTTPS链接,请问是真的码?
答:我们在WWDC苹果开发者大会上确实有提到该项安全措施,但是目前开发者中心并没有下发任何相关的具体规定。
问:意思就是说,如果我公司的APP没来得及在元旦上HTTPS,暂时也不会有任何影响?
答:是的,相关的标准建议您以苹果官方发布的公告或指导为准,如果有政策调整,我们会第一时间告知所有开发者……
挂断电话后,宅客频道收到了来自苹果官方的邮件,被告知苹果今天就此问题发布了最新公告:
iOS 9和 OS X v10.11的ATS功能要求应用程序在使用安全的HTTPS连接,提高网络用户的安全和隐私。在WWDC 2016我们宣布应用提交到App Store将需要支持ATS在今年年底。为了给你们更多的时间来准备,这个最终期限已经延长,当最新的截止日期确认后,我们会发布更新。
【截取自苹果开发者官网】
至此,真相大白,
元旦之后还没上HTTPS会发生什么? 答:什么也不会发生。
媒体有没有过度解读?答:也不算是,因为苹果他们自己承认说过这件事。
不过作者个人大胆猜测,当初 WWDC会上那个“最后期限”也许只是随口一说,不料遭遇媒体过度解读后才不得不承认,不然也不至于此前一直没有相关官方公告,直到今天(苹果全体员工23日就开始放圣诞长假了)才临时发出一个延期通知。
也不知道正火急火燎赶着在元旦之前上HTTPS的程序员们,看到这条消息后作何感想。
聊天记录再贴一遍: