iOS App 裡的付費機制被攻破,駭客找到免費取得內容的方法

iOS App 裡的付費機制被攻破,駭客找到免費取得內容的方法

你會在免費的 iOS App 裡面付費取得更多內容嗎?例如取得更多遊戲關卡、取得遊戲裡面的點數、讓進階功能解鎖、取得更多精美圖片、取得更多文章等等。而這個機制在最近被攻破了,使用者可以免費取得要錢的內容,我們來看看這是怎麼回事。

在 iOS App 裡面付費取得更多內容的機制,Apple 官方稱之為「In-App Purchase」,相信不少使用者接觸了免費的 App,覺得是自己需要的,便花錢在 App 裡面購買更多內容,例如許多學習語言的 App 會提示使用者花錢購買更多課程。這樣的付費機制最近被駭客攻破,不需要越獄(JB),也沒有複雜的做法,一般使用者都能透過一些方式來免費取得要錢的內容,至於方法是什麼?小編並不知道,請大家把這件事當做新聞來看吧!

發現此方法的老兄名為 Alexey V. Borodin,而且還架了網站來協助 iOS 使用者做到這件事,目前大約有超過3萬筆的 App 內部購買行為,透過這個方法來免費取得要收錢的內容。

iOS App 裡的付費機制被攻破,駭客找到免費取得內容的方法

▲ 這是典型的 App 內建購買功能範例,你可以在這個遊戲 App 裡面付費取得所需的點數。(圖片來自 Temple Run 的畫面)

如何運作?

簡單說,Alexey V. Borodin 提出的方法既不是破解 iOS 本身的某種機制,也不是更改 App 的程式碼。大家可以參考下面由 Apple 官方所提供的流程圖,Borodin 以自行架設的伺服器取代了 Apple 用於「In-App Purchase」的伺服器,而 App 所發出的請求其實是由 Borodin 架設的伺服器來處理,這個假的伺服器回傳一個 receipt(小編在此先翻譯為「購買收據」),讓 App 以為使用者已經付了錢,也就是下圖的步驟8出了問題。App 認為使用者已經付費了,使用者當然可以取得所需的內容。

iOS 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 做出了回應,表示他們相當重視詐騙行為的報告,而且正在調查中。

資料來源:theNextWebApple

延伸閱讀:

10 項研究手機「幽靈震動」的恐怖數據,你是否也有同樣的現象呢?

第一張上傳到網際網路的照片,即將滿20年,外加背後的小故事

網路 Y 世代的新媽媽經:用科技產品養小孩、比你想的還要宅

恐怖的日常飲食!把食物含糖量換算成方糖有多少顆?

LIS
作者

我是李一詩,目前在T客邦負責經營開發者社群。

使用 Facebook 留言
Aafecce7039259eac61e8ad249c36fac?size=48&default=wavatar
2人給推

1.  果蠅╮(╯_╰)╭ (發表於 2012年7月16日 00:05)
蘋果很安全╮(╯_╰)╭
不會中毒╮(╯_╰)╭
不會中木馬╮(╯_╰)╭
不會被詐騙╮(╯_╰)╭
不會被駭╮(╯_╰)╭
請安心使用╮(╯_╰)╭
C09f5513383abf01194a6f46684b93fd?size=48&default=wavatar
2.  ss (發表於 2012年7月16日 00:38)
基本上 這不算被駭阿
我還以為是APPLE被破解了
樓上不知道在爽啥
基本上只要apple端在伺服器設定好加密的動作
這方式一下就不能用了
A52f568a63c48799c00e64c35f798199?size=48&default=wavatar
3.  Lemon (發表於 2012年7月16日 02:00)
我對Xcode比較熟悉,還是要聲明!

Apple對於IAP內購有設一個加密的認證,而開發者是可以自由選用要不要對IAP的認證進行加密。

當開發者停用這個功能時,IAP才會被破解;這也是為什麼有些IAP無法破解的原因。
765dceabbef1428dc1435b6bcd79ebb3?size=48&default=wavatar
1人給推

5.  JJ (發表於 2012年7月16日 08:07)
※ 引述《POWanwan》的留言:
> 发现问题才能解决问题,这未尝不是件好事

從此例可以看見非官方的人員有時其功力還比官方的人厲害(⊙ˍ⊙)
個人覺得 Apple 可以用重金獎勵能找到系統漏洞的人,相信到時會有一堆人搶著幫忙 Debug (≧▽≦)
Fefe744c2616613bd87c0fd759c65364?size=48&default=wavatar
6.  siuying (發表於 2012年7月16日 09:18)
類似破解早已存在,只是今次加入了假 DNS server 的元素(這也早已被其他破解所應用)。看上圖蘋果的技術文件中早注明了有 10-12 點的伺服器認證,只要做了對方自然不能如此輕易破解。

要注意的是用了以上方法,那不明來歷的 DNS 可偽裝任何網站,使用前請三思。。。
705966e027d0e5a71bec41df14d3e582?size=48&default=wavatar
7.  劉志宏 (發表於 2012年7月16日 12:15)
必須傳送Apple ID和密碼到假伺服器,所以公眾的
大量盜版是不可能的。但是如果私下集資或中小企業
架設假伺服器並購買一些熱門商品,我想就相當可行。
只買一次,大家共享,何樂而不為呢?

商品收據之所以不包含Apple ID根本不是隱私的問題,
我的Apple ID就是Gmail帳號,公開在我的網站上。
最重要的是因為這是Apple的資產,不讓開發者建立
自己的客戶名單才是根本原因。解決方法很簡單,把
每個Apple ID給予編號,再hash成亂七八糟的數字,
再寫在收據上。開發者收集到的是一些無意義的數字
,根本無法建立客戶名單就解決了。如此一來,不會
有同一收據大家共享的窘境了。
2f6bb678b51b68cc260636e6ba1e0829?size=48&default=wavatar
8.  太無恥了 (發表於 2012年7月16日 13:21)
這位大哥基本上根本不懂何謂資訊安全~!
基本上蘋果仍然是安全~
這只是一些小偷!用卑鄙的手法騙取蘋果跟辛苦開發app的˙人的錢~
不懂還在那邊裝懂~!
真可憐~
※ 引述《果蠅╮(╯_╰)╭》的留言:
> 蘋果很安全╮(╯_╰)╭
> 不會中毒╮(╯_╰)╭
> 不會中木馬╮(╯_╰)╭
> 不會被詐騙╮(╯_╰)╭
> 不會被駭╮(╯_╰)╭
> 請安心使用╮(╯_╰)╭
Andesign
9.  Andesign (發表於 2012年7月16日 13:41)
剛去測試~不需要用真正的Apple ID,任意email格式的東西都可以
你換dns後你的in app purchase會還原
基本上沒太大影響~充其量只是個私服
液態氮
1人給推

10.  液態氮 (發表於 2012年7月16日 14:09)
真不曉得有些人是在酸什麼的...
自己做不出來這種產品?
還是看不慣人家名氣高?
一套系統產品不是只靠一個人或者
一些人就可以完成的...
一個新時代的終端革命也不是只靠
一家公司或者一兩個User就可以革命的~
當你在不爽其他人的成就的時候
想想你自己做了什麼...
LIS
11.  LIS (發表於 2012年7月16日 14:12)
這一篇文章的留言比本文還精彩,感謝各位大大的補充。
705966e027d0e5a71bec41df14d3e582?size=48&default=wavatar
12.  劉志宏 (發表於 2012年7月16日 15:01)
※ 引述《太無恥了》的留言:
> 這位大哥基本上根本不懂何謂資訊安全~!
> 基本上蘋果仍然是安全~
> 這只是一些小偷!用卑鄙的手法騙取蘋果跟辛苦開發app的˙人的錢~
> 不懂還在那邊裝懂~!
> 真可憐~

Apple當然安全,反正是開發者的損失,又不是Apple的
損失。不過Apple的購買機制有問題,當然會嚇走一些
開發者,那才是Apple真正的損失。
038c6d03aeffec696529bbdc83f9ebe0?size=48&default=wavatar
13.  cccooler (發表於 2012年7月16日 19:21)
其他駭客表示:笨耶!講出去了就沒有免費的可以玩啦
B3b42315af060ac3c7a533ded7804112?size=48&default=wavatar
14.  ╮(╯_╰)╭ (發表於 2012年7月17日 11:07)
※ 引述《劉志宏》的留言:
> Apple當然安全,反正是開發者的損失,又不是Apple的
> 損失。不過Apple的購買機制有問題,當然會嚇走一些
> 開發者,那才是Apple真正的損失。
嚇走一些開發者?轉去Android嗎?
那才真是開發者的損失..
73dedbd968d73770a01581da82d178de?size=48&default=wavatar
16.  PoP (發表於 2012年7月17日 22:58)
※ 引述《劉志宏》的留言:
> ※ 引述《太無恥了》的留言:
> > 這位大哥基本上根本不懂何謂資訊安全~!
> > 基本上蘋果仍然是安全~
> > 這只是一些小偷!用卑鄙的手法騙取蘋果跟辛苦開發app的˙人的錢~
> > 不懂還在那邊裝懂~!
> > 真可憐~
>
> Apple當然安全,反正是開發者的損失,又不是Apple的
> 損失。不過Apple的購買機制有問題,當然會嚇走一些
> 開發者,那才是Apple真正的損失。
在 Apple 平台下,開發程式有一個好處是一致,官方有足夠的說明文件與完整的開發工具,且有問題的話上網大致上大家都有解 或 很快就得到解答

總之,嚇不走啦,在 Android 開發才真的痛苦
Fd3408f5b4c54f9af918da4edd7b7721?size=48&default=wavatar
17.  Frank (發表於 2012年7月18日 09:05)
蘋果當然有損失,不知道不要隨便發表評論
發表回應
謹慎發言,尊重彼此。按此展開留言規則