惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
雷峰网
雷峰网
I
InfoQ
罗磊的独立博客
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
H
Help Net Security
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CERT Recently Published Vulnerability Notes
WordPress大学
WordPress大学
T
Tenable Blog
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - Franky
A
Arctic Wolf
T
Threatpost
Scott Helme
Scott Helme
C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
Security Latest
Security Latest
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
S
Schneier on Security
Latest news
Latest news
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com

Oragekk's Blog

OpenSpec 技术分享:用规格驱动 AI 编程 ChatGPT&Codex订阅教程 一个 waline 评论系统bug引发的思考 Jenkins 远程触发构建踩坑记 Git SSH 密钥配置 初识Rust vuepress-plugin-meting2 谷歌发布多平台应用开发神器Project IDX!PaLM 2加持 Vue常见优化手段 Vue2响应式原理解析 Dart 中的并发 Flutter 工作原理 如何利用GitHub Action提交URL到搜索引擎 提交URL到搜索引擎(百度、Bing、Google) GitHub Actions 使用介绍 素材设计 前端-Q&A 浏览器的事件循环 你不知道的 CSS 之包含块 CSS 属性计算过程 Vercel deploy忽略指定分支 评论插件 Waline 之邮件通知配置 公开API 终端究极美化iTerm2+Pure 使用Bing API提交网站URL Flutter 基础大集合 关于本站 关于本站 关于我 Markdown 展示 使用n命令管理node版本 幻灯片页 ReactNative State(状态) ReactNative开发环境配置,ES6语法介绍 ReactNative介绍 更优雅强大的终端ZSH 神经网络模型训练 YYCache优秀的缓存设计 WebViewJavascriptBridge NSError WCDB漫谈 优雅的实现TableViewCell单选 初探机器学习框架CoreML 深入理解swift中闭包的捕捉语义 ijkPlayer 集成 iOS 配置https iOS timelineLogistics iOS Cookie的配置及使用 WKWebView拦截URL WKWebView使用及自适应高度 textfield限制输入字符 评论系统从多说迁移到disqus指南 利用Runtime进行快速归档 Cell的accessoryType属性标记单元格之后,出现的重用问题 通过UserAgent判断设备 AFNetworking A memory leak 一人一句宋词 OC 中的枚举类型 iOS - Image compression algorithm iOS程序启动原理(下) iOS程序启动原理(上) NSOperatioin TableView性能优化 Runloop Test Three ways to call Update Cocoapods 1.1.1 减小iOS-App或者静态库体积 Jekyll旧站回忆 JavaScript ES6 CommonJS,RequireJS,SeaJS 归纳笔记 Unix/Linux 扫盲笔记
iOS 10.3 keychain 重大更新
Oragekk · 2017-03-14 · via Oragekk's Blog

转载自微信公众号《Mrpeak 杂货铺》

Paste_Image.png
Paste_Image.png

iOS 10.3 还未正式发布,beta 版中一个关于 keychain 特性的小修改,就已经引起了广泛的关注。

改动如下

  • 如果 App 被删除,之前存储于 keychain 中的数据也会一同被清除。
  • 如果使用了 keychain group,只要当 group 所有相关的 App 被删除时,keychain 中的数据才会被删除。

这一改动,虽未经官方公布。但已在论坛帖子里得到了 Apple 员工的确认,原文如下:

This is an intentional change in iOS 10.3 to protect user privacy. Information that can identify a user should not be left on the device after the app that created it has been removed.

It has never been a part of the API contract that keychain items created by an app would survive when the app is removed. This has always been an implementation detail.

If a keychain item is shared with other apps, it won’t be deleted until those other apps have been deleted as well.

心存侥幸的人可能会觉得这只是正常的 API 调整,会有新的存储机制做替补。在我看来,这种可能性极低。正如上面这段英文所述,Apple 这一改动是基于用户隐私的考虑,改动之后,开发者将没法再根据设备号来追踪设备的唯一性。结合最近 JSPatch 这类热更新机制被禁来看,Apple 近期似乎在用户隐私和安全方面有相当的规划和动作。

Apple 对于开发者的每次动作都有让人无法反驳的立场,用户隐私当然很重要。谈论其合理性其实并没有什么意义,因为这不会影响最终结果,我们只能拥抱变化,早作准备。

这次改动影响究竟有多大呢?没用到 keychain 特性还好,如有涉及,其影响可能比大部分人想象的要大,以下是我所能预知的一部分:

重装需登录

无法追踪设备,用户删掉一个 App,之后再重装就只能手动登录一次了。

很多 App 都有类似的功能,重装的时候不需要再次登录,比如 WhatsApp,知乎等,这对用户体验更好一些。这种用户场景下,App 的本意虽然不是追踪用户设备,但很不幸,开发者已经不能判断是否为同一设备的再次登录了。

基于设备的免费试用功能无法实现了

有不少 App 的试用功能都是基于账户或者基于设备的,基于设备的会更多一些,因为如果是基于账户,在同一个设备上更换账户还不算太麻烦,而用户更换设备的成本更高。但新版本 keychain 更改之后,用户如果删掉 App 重装,开发者无法判断试用功能是否已经试用过了。

这种基于设备的免费试用场景也不少,比如一些可以免费试用 7 天的 VPN App。

短信费用上升

这方面的影响就是直接和真金白银挂钩了。

现在不少基于熟人社交的 App 都是以用户的手机号为 ID 注册的,每次注册都要花费一条平台的短信费用。不少 App 为了节省费用,在用户删除重装之后登录的场景,都是直接从 keychain 读出以前的登录信息,绕过短信验证直接登进去的。iOS 10.3 之后,就无法再绕过了,必须在重装时再花一条短信的钱来验证用户。

不要小看了这一条短信的费用,对于财大气粗的大公司来说还好,但对于锱铢必较的创业团队来说,这些额外的开销就是一笔冤枉钱了。

总结

对于跟踪用户和设备,Apple 的管控越来越严,从最初的设备 ID,到 Mac 地址,到今天 keychain 的调整。每一次看似一个小的更改,影响面却很广。不知道大家是否有使用 keychain 来做持久化存储方案,是否会因为这次调整受到影响,如果不能跨越 App 的生命周期,真不知道 keychain 还有什么存在的意义,各位要早作准备了。