聊一下 iOS 11 的短信过滤

2017-06-06 13:22:58 +08:00
 mornlight

iOS 11 加入了短信过滤,几个关键点:

  1. 这个功能在新的 IdentityLookup Framework 里。
  2. 只能拦截通讯录之外的来信。
  3. App 通过构建 filter extension 的方式进行过滤,系统会把短信发送方和短信内容发给 extension 询问结果,extension 会给出三种可能的回复:允许、过滤、不处理(信息不足不知道怎么处理)。这一步的处理逻辑都是预先在本地 extension 里写好的。
  4. 如果过滤结果是不处理,那么系统会将相关信息发送到你 App 的服务器进行查询,并将服务端的结果再返给 extension 进行决策。
  5. 出于隐私考虑,这个 extension 不能写回数据到它的 host app,就是说你的短信内容 app 里面是拿不到的,同时 extension 不能直接连接网络,只能通过系统帮你发送请求到服务端。
  6. 那么问题来了,服务端是别人的,怎么确保这一步的查询没有隐私问题?万一短信过来的是银行的验证码,extension 认为决策不了,系统就把验证码内容发到服务端去了,不会有风险吗?

官方文档: https://developer.apple.com/documentation/identitylookup

如果我的理解有误欢迎指出,谢谢~

8735 次点击
所在节点    iOS
22 条回复
mornlight
2017-06-06 13:25:45 +08:00
文档里的流程图:

QAPTEAWH
2017-06-06 13:27:30 +08:00
我觉的简单地给用户开放关键词(通配符、正则)过滤就行了..

什么“回.*退订”统统毙了。
mornlight
2017-06-06 13:31:33 +08:00
@QAPTEAWH #2 我也是这么想的,对我来说有关键词过滤就足够用了,并不需要把短信内容发到服务端进行决策。
KylinRoc
2017-06-06 13:34:33 +08:00
估计就是「 Query request 」这一步做了手脚吧,如果能直接测试看看 request 的内容就知道了。
xi_lin
2017-06-06 14:12:33 +08:00
等 server side 的文档出来看看吧,通篇都在讲隐私保护应该是设计了什么机制,但是没想明白应该怎么做才能不泄密。。。除非托管在苹果服务器上?
Tokin
2017-06-06 15:12:34 +08:00
然而 iCloud 不也是同步短信的吗?绕来绕去短信还是要到 Apple 的服务器- -
mornlight
2017-06-06 15:17:06 +08:00
@Tokin #6 Server associated with app,这个应该是 App 的服务器
Tokin
2017-06-06 17:00:57 +08:00
@mornlight 不是 iOS 开发,不是很懂,短信过滤不是系统级的么,除了系统自带的短信,还有别的 App 读取短信么?那 Server associated with app 难道指的是第三方 App 的服务器?疑惑。
mornlight
2017-06-06 17:04:45 +08:00
@Tokin #8 需要第三方 App 通过扩展的方式实现,跟电话拦截一样,这个 App 读不到短信的具体内容、来电的具体号码,只能事先把逻辑和数据写进去。服务端的问题也是我疑惑的地方。
Tokin
2017-06-06 17:08:32 +08:00
@mornlight 是不是开放接口给那些 XX 手机管家、卫士,他们提供短信过滤功能,然后用他们的服务器过滤。
如果不安装这些 app,则图一
如果安装,则图二
mornlight
2017-06-06 17:14:00 +08:00
@Tokin #10 任何 App 都能做啊,公开的接口。不安装带 extension 的 App 就没有过滤功能。Apple 不会只开放特定 API 给 Apple 官方以外的开发者,最多是审核时给大厂开后门。
Tokin
2017-06-06 17:16:33 +08:00
@mornlight 那就有点恐怖了,不过如果有个提示是否允许可能会好一些,比如新安装的 App 会提示是否允许联网,那加一个是否允许短信过滤的提示应该没问题,如果是静默过滤表示有点难以接受
mornlight
2017-06-06 17:22:08 +08:00
@Tokin #12 还没试,不知道。电话拦截必须用户主动在设置里打开才起作用。
sxyuqiao
2017-06-06 17:23:03 +08:00
mark 一下,或许是开发者把数据提交到苹果的服务器(比如每小时更新),然后在苹果服务器上进行处理?这样本地不需要频繁更新
mornlight
2017-06-06 17:27:54 +08:00
@sxyuqiao #14 提交到 Apple 服务器可能性不大,逻辑上走不通。
Coxxs
2017-06-06 17:37:49 +08:00
如果有对用户身份(收信人)做隐藏处理的话,第三方获取到信息后的安全风险还是比较低的。
haoyu0023
2017-06-06 21:40:45 +08:00
要是 短信 App 里能手动写关键词规则就好了。
yebingwei
2017-06-07 17:26:52 +08:00
服务器验证这块确实说的不明不白的,客户端他能保证 extension 不能记录短信数据,如果是产品服务器来弄,这个它还能保证的了服务器不存数据啊。
nobody123123
2017-06-07 20:11:27 +08:00
难道短信的原文不会穿给第三方服务器,回者去除了敏感的用户身份信息?总之,还是比较相信苹果对用户隐私保护的
nobody123123
2017-06-07 20:13:20 +08:00
@Coxxs 我猜测也是这样的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/366336

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX