Applidium的研究人員最近發表了一個有趣的報告,是關於Siri使用的通訊協定。每一次使用者對Siri發出指令,iPhone 4都會將這指令的語音壓縮後送回Apple的伺服器來轉換成文字。然後,對應成iPhone可以理解的命令再送回手機。
這個通訊協定以HTTPS為基礎,想要攔截或是欺騙它需要有一個有效的SSL憑證給 guzzoni.apple.com或是想辦法讓設備認為你的憑證是有效的。然後還必須劫持DNS,讓手機認為那個你所控制的IP位址就是guzzoni.apple.com。這篇Applidium的文章解釋的非常清楚,所以就讓我們來談談可以做些什麼。
我先從正面、有創造性的事情開始。理論上,如果你有一個有效的iPhone 4S ID,那應該可以很容易的將Siri移植到任何設備。只要這個設備可以錄音,而且又裝了可和網路連線的應用程式就行了。這包括了筆記型電腦、平板電腦、智慧型手機、甚至冰箱和洗衣機。
你甚至可以建立自己的Siri伺服器來和已啟動Siri的設備交談。就可以應用在日常生活上,像是執行「開燈」、「關車庫門」等指令。這也可以跟工作整合:想像一下,將這系統和你的例行工作結合,可以讓你的工作流程照你的語音命令來執行。任何可以寫成腳本的事情都可以用Siri來執行。
不幸的是,也有可能拿來做一些不那麼善良的事情。比方說,我們假設攻擊者已經成功地在設備內加入了自己的憑證,而且也用某種方法控制了DNS的回應,而這二者都是要攔截Siri通訊的必要條件。
最可能出現的就是中間人攻擊(man-in-the-middle),可以截獲所有Siri接收的指令和回應。單單這麼做可能沒有用,但是你發給Siri的指令可能會得到違背你原意的動作。很快的,我們就可以很輕易的變更該有的回應,像是改變股市行情,或是想要打給某個聯絡簿上的同事,卻被置換了指令。所以可以將通話先接到不同的號碼,再轉發給原本你想聯絡的對象,然後記錄談話內容。這需要先能了解受害人的地址簿,但是對一個真正想要攻擊的人來說還是能做到的。
Apple有許多方法可以解決這個問題。最完整的作法就是使用一個盤問與回應(Challenge-Response)認證系統。要求伺服器的 SSL金鑰要能對應給定的金鑰ID,或是比較可行的,使用帶有編號的金鑰。無論是哪種方式,如果真的出問題的時候,只有Apple有能力去解決它。
@原文出處:Siri, Don’t Lie To Me
◎ 歡迎加入趨勢科技社群網站