2012-10-30 294 views
1

我們有一個ios應用程序最後 - 我們做了我們的密碼設置,但是我想在可執行文件本身中添加額外的安全檢查。如何獲取ios應用程序的簽名應用程序證書信息

我知道蘋果已經簽署了應用程序。如何在我的應用程序中獲取蘋果簽名信息?比如蘋果公鑰或者其他什麼?

+0

我假設這是用於盜版檢測?還是你有嚴格的安全期望,你的iOS應用需要滿足?您應該知道iOS是一個非常動態的平臺,您無法確保如此高的安全級別,而無需在內核級別的監視系統調用中運行自己的代碼並執行檢測。 – yfrancis

回答

1

你不應該試圖對蘋果公司的Fairplay DRM做出假設,假設你打算驗證它,沒有辦法讓你在沒有蘋果公司密鑰的情況下這樣做,但是還有其他一些我假設的篡改/盜版指標你正在尋找。

有幾種方法可以檢查您的應用是否被篡改。假設Apple的Fairplay DRM是安全的,那麼如果您檢測到您的應用程序未加密,很可能它已被篡改,並且更有可能是盜版。您可以檢查LC_ENCRYPTION_INFO段中的cryptid位(更多信息請見here)。但請記住,現在盜版工具的複雜程度要高很多,而且許多工具在運行時會修補cryptid值。您可能可以使用dyld_* API來檢查加載的庫,如果加載了黑客,您的應用程序可能已被盜用。他們當然可以改變圖書館的名稱,而你又回到原點。在應用程序運行時,它們始終可以更改磁盤上cryptid位的值,並在應用程序終止時將其切換回。

所以,當你有幾種探索途徑時,實際上,你無能爲力。蘋果試圖通過技術和法律措施來防止越獄,但他們失敗了。只要你可以越獄,你可以用這些方式篡改二進制文件。

+0

是啊我想檢查我的應用程序是否被證書info.when篡改我的應用程序午餐時,我可以檢查certifiacte信息並顯示提醒給用戶; – user1773004

+0

通過證書我認爲你真的只是要確保它的簽名和加密,在這種情況下,cryptid檢查將工作。但正如我所說的,即使這不能保證在你的進程中沒有其他代碼正在運行,因爲像DYLD_INSERT_LIBRARIES這樣的動態代碼插入。除非你想與海盜進行貓捉老鼠遊戲,否則這可能是最好的選擇之一。 – yfrancis

+0

據我所知,我的代碼已經用我的私鑰簽名,然後提交給蘋果商店,蘋果用userinfo加密應用程序,當用戶下載它時。我只是想保護從其他應用商店下載的應用程序。 – user1773004

相關問題