你會在免費的 iOS App 裡面付費取得更多內容嗎?例如取得更多遊戲關卡、取得遊戲裡面的點數、讓進階功能解鎖、取得更多精美圖片、取得更多文章等等。而這個機制在最近被攻破了,使用者可以免費取得要錢的內容,我們來看看這是怎麼回事。
在 iOS App 裡面付費取得更多內容的機制,Apple 官方稱之為「In-App Purchase」,相信不少使用者接觸了免費的 App,覺得是自己需要的,便花錢在 App 裡面購買更多內容,例如許多學習語言的 App 會提示使用者花錢購買更多課程。這樣的付費機制最近被駭客攻破,不需要越獄(JB),也沒有複雜的做法,一般使用者都能透過一些方式來免費取得要錢的內容,至於方法是什麼?小編並不知道,請大家把這件事當做新聞來看吧!
發現此方法的老兄名為 Alexey V. Borodin,而且還架了網站來協助 iOS 使用者做到這件事,目前大約有超過3萬筆的 App 內部購買行為,透過這個方法來免費取得要收錢的內容。
▲ 這是典型的 App 內建購買功能範例,你可以在這個遊戲 App 裡面付費取得所需的點數。(圖片來自 Temple Run 的畫面)
如何運作?
簡單說,Alexey V. Borodin 提出的方法既不是破解 iOS 本身的某種機制,也不是更改 App 的程式碼。大家可以參考下面由 Apple 官方所提供的流程圖,Borodin 以自行架設的伺服器取代了 Apple 用於「In-App Purchase」的伺服器,而 App 所發出的請求其實是由 Borodin 架設的伺服器來處理,這個假的伺服器回傳一個 receipt(小編在此先翻譯為「購買收據」),讓 App 以為使用者已經付了錢,也就是下圖的步驟8出了問題。App 認為使用者已經付費了,使用者當然可以取得所需的內容。
當然,iOS 裝置的使用者要修改機器裡面的 DNS 設定,才能讓 App 在發出購買請求時,導向 Borodin 的伺服器。Borodin 所提供的服務需要一些 receipt(購買收據),為了提供這個非法的服務,已花了數百美元來測試和產生這些之後會用到的 receipt(購買收據)。
其實 Apple 也知道會有人利用假伺服器來騙過 App,所以也提供了讓 App 可以確認購買收據是來自真正的 Apple 伺服器的方法,但 Borodin 剛好利用了這一點,讓 App 認為假伺服器所傳回的購買收據是真的。
但這個方法有個問題是,當使用者要重新下載之前已購買的內容時,也要透過 Borodin 的伺服器才行。但這應該不是個問題,因為非法取得的內容本來就不應受到保護。
Apple 要採取的行動
根據 TheNextWeb 的分析,這一套方法可行,是因為購買收據上面只有一般性的資訊,包括:App 名稱、購買項目和一些辨識用的位元資訊,但購買收據上面沒有記載是那個帳號或是那個機器買的,所以當 A 用戶的購買收據被攔截以後,駭客就可以拿來給 B 用戶使用,讓 App 以為 B 用戶也真的買了 App 所提供的付費內容,這也是為什麼 Borodin 要自己花錢做測試,以取得不同 App 的購買收據。另外一個問題是,許多 App 和 Apple 伺服器在交換資訊時,是沒有加密的,所以相關資訊才會被有心人士攔截。
因此 Borodin 表示,如果 Apple 要解決這個漏洞的話,就必須在購買收據上記載購買人的帳號或唯一性資料,但同時也可能引發隱私問題的爭議。
另一個可能的解決之道是,在開發者和 Apple 之間設定只有雙方才知道的秘密資訊,而這些秘密資訊不會用於交易的過程,而且在 App 和 Apple 伺服器交易的過程也要使用更強的加密方式,以免被有心人士所攔截,想出其他的破解方法。
在這個事件中,Apple 做出了回應,表示他們相當重視詐騙行為的報告,而且正在調查中。
資料來源:theNextWeb、Apple
不會中毒╮(╯_╰)╭
不會中木馬╮(╯_╰)╭
不會被詐騙╮(╯_╰)╭
不會被駭╮(╯_╰)╭
請安心使用╮(╯_╰)╭
我還以為是APPLE被破解了
樓上不知道在爽啥
基本上只要apple端在伺服器設定好加密的動作
這方式一下就不能用了
Apple對於IAP內購有設一個加密的認證,而開發者是可以自由選用要不要對IAP的認證進行加密。
當開發者停用這個功能時,IAP才會被破解;這也是為什麼有些IAP無法破解的原因。
> 发现问题才能解决问题,这未尝不是件好事
從此例可以看見非官方的人員有時其功力還比官方的人厲害(⊙ˍ⊙)
個人覺得 Apple 可以用重金獎勵能找到系統漏洞的人,相信到時會有一堆人搶著幫忙 Debug (≧▽≦)
要注意的是用了以上方法,那不明來歷的 DNS 可偽裝任何網站,使用前請三思。。。
大量盜版是不可能的。但是如果私下集資或中小企業
架設假伺服器並購買一些熱門商品,我想就相當可行。
只買一次,大家共享,何樂而不為呢?
商品收據之所以不包含Apple ID根本不是隱私的問題,
我的Apple ID就是Gmail帳號,公開在我的網站上。
最重要的是因為這是Apple的資產,不讓開發者建立
自己的客戶名單才是根本原因。解決方法很簡單,把
每個Apple ID給予編號,再hash成亂七八糟的數字,
再寫在收據上。開發者收集到的是一些無意義的數字
,根本無法建立客戶名單就解決了。如此一來,不會
有同一收據大家共享的窘境了。
基本上蘋果仍然是安全~
這只是一些小偷!用卑鄙的手法騙取蘋果跟辛苦開發app的˙人的錢~
不懂還在那邊裝懂~!
真可憐~
※ 引述《果蠅╮(╯_╰)╭》的留言:
> 蘋果很安全╮(╯_╰)╭
> 不會中毒╮(╯_╰)╭
> 不會中木馬╮(╯_╰)╭
> 不會被詐騙╮(╯_╰)╭
> 不會被駭╮(╯_╰)╭
> 請安心使用╮(╯_╰)╭
你換dns後你的in app purchase會還原
基本上沒太大影響~充其量只是個私服
自己做不出來這種產品?
還是看不慣人家名氣高?
一套系統產品不是只靠一個人或者
一些人就可以完成的...
一個新時代的終端革命也不是只靠
一家公司或者一兩個User就可以革命的~
當你在不爽其他人的成就的時候
想想你自己做了什麼...
> 這位大哥基本上根本不懂何謂資訊安全~!
> 基本上蘋果仍然是安全~
> 這只是一些小偷!用卑鄙的手法騙取蘋果跟辛苦開發app的˙人的錢~
> 不懂還在那邊裝懂~!
> 真可憐~
Apple當然安全,反正是開發者的損失,又不是Apple的
損失。不過Apple的購買機制有問題,當然會嚇走一些
開發者,那才是Apple真正的損失。
> Apple當然安全,反正是開發者的損失,又不是Apple的
> 損失。不過Apple的購買機制有問題,當然會嚇走一些
> 開發者,那才是Apple真正的損失。
嚇走一些開發者?轉去Android嗎?
那才真是開發者的損失..
> ※ 引述《太無恥了》的留言:
> > 這位大哥基本上根本不懂何謂資訊安全~!
> > 基本上蘋果仍然是安全~
> > 這只是一些小偷!用卑鄙的手法騙取蘋果跟辛苦開發app的˙人的錢~
> > 不懂還在那邊裝懂~!
> > 真可憐~
>
> Apple當然安全,反正是開發者的損失,又不是Apple的
> 損失。不過Apple的購買機制有問題,當然會嚇走一些
> 開發者,那才是Apple真正的損失。
在 Apple 平台下,開發程式有一個好處是一致,官方有足夠的說明文件與完整的開發工具,且有問題的話上網大致上大家都有解 或 很快就得到解答
總之,嚇不走啦,在 Android 開發才真的痛苦