天天看點

【幹貨】iOS 11 短信攔截功能初探

文/圖 錢盾反詐平台 刀勒

自古以來ios上的短信對各個app都是禁區,沒有一個app能夠擷取使用者短信的内容,這一現狀将在ios 11終結,在ios 11 beta 1出來以後,我們發現新增了sms fraud extension(惡意短信攔截插件),該插件在經過使用者的授權後可以用于攔截使用者的惡意短信。為了更好地保護老百姓的資金安全,錢盾反詐平台第一時間對這個功能做了分析。

效果示範:

【幹貨】iOS 11 短信攔截功能初探

效果說明:

• 開啟路徑還是比較長:通用->資訊->未知與垃圾資訊

• 被過濾的短信不是删掉,而是歸類于“過濾短信”這個分類裡

• 打開被過濾的短信内容,裡面有短信過濾插件的品牌展示

• imessage不能被過濾

• 隻有當短信的發送方不在聯系人清單裡的時候資訊app才會把資訊相關内容發給sms fraud extension

• 如果使用者安裝了多個sms fraud extension插件,同一時間隻能enable一個

• sms fraud extension可以擷取到的内容包括短信發送方和短信内容,不包含收件人手機号

實作機制:

【幹貨】iOS 11 短信攔截功能初探

資訊app(使用者)收到一條sms或者mms

資訊app将短信的發送号碼和短信内容發給sms fraud extension進行檢測

sms fraud extension可以使用本地資料進行離線檢測,也可以線上實時檢測。如果實時檢測的話,由于sms fraud extension沒有網絡請求的權限,隻能委托資訊app将短信相關内容發往sms fraud extension對應的背景server。

sms fraud extension背景server檢測短信的安全性并将結果傳回給資訊app

資訊app将伺服器結果轉發回sms fraud extension

sms fraud extension解析伺服器傳回内容,确定短信安全性,将action傳回資訊app

資訊app根據sms fraud extension傳回的action來決定放行或過濾該資訊

隐私保護:

結合蘋果的文檔來看,sms fraud extension可以拿到短信内容,當傳到伺服器之後伺服器也拿到了短信内容,但是蘋果通過以下幾個限制保證了該短信内容無法跟使用者對應起來:

• sms fraud extension寫入的本地存儲不能與containing app共享,也就是說containing app無法拿到短信相關内容并上傳或分析。

• sms fraud extension本身不可以發起網絡請求,與服務端的唯一互動必須委托資訊app來完成,資訊app在發起請求的時候不會攜帶任何使用者和機器相關的資訊。服務端拿到的唯一使用者環境相關資訊隻有ip,而單靠ip是無法跟使用者對應起來的。

• 資訊app發起請求時通路的url要求必須配置是存放在sms fraud extension的info.plist裡,這就保證了sms fraud extension和containing app都不能動态地修改該url,不能通過給每一個使用者配一個特殊的url的方式來跟蹤使用者。

結論:

從蘋果采取的隐私保護機制來看,sms fraud extension和其後端對應的伺服器可以擷取到使用者的短信發送方及短信内容,但是以目前的實作機制來看無法将短信内容對應到具體的使用者,是以是相對安全。

參考文檔:

<a href="https://developer.apple.com/documentation/identitylookup?changes=latest_minor">https://developer.apple.com/documentation/identitylookup?changes=latest_minor</a>

<a href="https://developer.apple.com/videos/play/wwdc2017/249/">https://developer.apple.com/videos/play/wwdc2017/249/</a>

繼續閱讀