V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mornlight
V2EX  ›  iOS

聊一下 iOS 11 的短信过滤

  •  
  •   mornlight · 2017-06-06 13:22:58 +08:00 · 8591 次点击
    这是一个创建于 2515 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

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

    22 条回复    2017-06-07 20:35:28 +08:00
    mornlight
        1
    mornlight  
    OP
       2017-06-06 13:25:45 +08:00
    文档里的流程图:

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

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