V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
mornlight
V2EX  ›  iOS

聊一下 iOS 11 的短信过滤

  •  
  •   mornlight · Jun 6, 2017 · 9479 views
    This topic created in 3252 days ago, the information mentioned may be changed or developed.

    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 replies    2017-06-07 20:35:28 +08:00
    mornlight
        1
    mornlight  
    OP
       Jun 6, 2017
    文档里的流程图:

    QAPTEAWH
        2
    QAPTEAWH  
       Jun 6, 2017
    我觉的简单地给用户开放关键词(通配符、正则)过滤就行了..

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