ios系統安全機制概覽

iOS通過以下幾種機制來保全整個系統的安全性:

 

一:系統結構

所有iOS設備中,系統與硬件都高度集成,從系統啓動、系統更新、應用的安裝、應用的運行時等多個方面來保全系統的安全,具體包括:

 

1:所有iOS設備在處理器內都集成有一段名爲Boot Room的代碼,此代碼被燒製到處理其內的一塊存儲上,並且只讀,可以認爲是完全可信的。系統啓動時,Boot Room通過蘋果的Apple Root CA Public證書對Low-Level BootLoader進行驗證,如果通過驗證,Low-Level BootLoader將運行iBoot,較Low-Level Bootloader高層次的Bootloader,如果這一步也通過,那麼iBoot將運行iOS的內核, XNU,系統開始運行。

以上這幾個步驟任一步驟無法通過,都將導致系統無法啓動,這樣,處理期內燒製的Boot Room保證了iOS系統只能在Apple自家設備上運行,而這些設備也將無法運行iOS之外的系統。

 

2:iOS設備的系統升級之後是不允許降級的(官方沒有提供接口)。這樣做的好處是系統的安全等級只會越來越高,二不會出現由於系統降級,已修復安全風險又暴露出來的問題。

iOS系統在升級過程需要聯網進行驗證,系統升級之前,設備會將LLB、iBoot、內核、鏡像,外加一個隨機的不可重複的值發送到蘋果的服務器進行驗證,服務器端對所有這些進行驗證,如果通過驗證,將會返回一個通過的結果,結果加入了與設備唯一相關的ECID。這樣做的好處是此值是無法重用的,只能對應與一臺設備,且只能使用一次。同過這種機制,保證了系統升級過程都是符合蘋果要求的。提高了較高的安全性。

 

3:所有運行在iOS上的代碼都是需要簽名的。蘋果自帶應用已經打上了蘋果的簽名,而第三方應用,則需要開發者賬號進行簽名,而開發者賬號都是通過蘋果官方實名審覈的賬號,從開發者源頭上控制了程序的安全性,也就是說,系統內所有運行的程序都是可信的,且知道來源的。這個簽名就是在Xcode code signing選項裏選擇的賬戶。

 

4:運行與iOS系統的第三方軟件都是運行與sandbox之內,每個第三方程序都有自己的獨佔的路徑,其只能訪問獨佔路境內的內容,其他程序的文件一般情況下無法訪問,如果要訪問,只能通過蘋果官方API,而不能自行操作文件。連個應用之間無法共享文件,如要互相通信,只能通過URL Schema或shared key chain。

另外,每個應用都有其運行權限,不同權限可進行的操作是不同的,將應用的權限限制在其需要的範圍內,而不賦予額外的權限。

 

二:數據的加密與保護

 

1:加解密是耗時耗能源的操作。而iOS內所有用戶數據都是強制加密的,加密功能不能關閉。所以,蘋果的AES加解密引擎都是硬件級的,位於存儲與系統之間的DMA內,所有進出存儲的數據都啊要經過硬件的加密與揭祕,這樣提供了較高的效率與性能。

加密揭祕使用的KEY主要來自unique ID(UID)以及Group ID(gid),UID與唯一設備相關,GID與某種特定型號的CPU相關,一臺設備的UID及GID全部被燒製到芯片內部,除了AES加密引擎,沒有其他方法直接讀取,能看到的只有使用UID及GID加密後的數據。這樣,不同設備的加密結果是不同的,同一套密文只能在加密的機器上進行解密。

除了GID及UID,其他加密使用的KEY全部來自系統自帶的隨機數生成器,具體使用的算法爲Yarrow。

 

2: iOS提供了名爲File Data Protection的數據保護方法。所有文件在加密時使用的key都是不同的,這些key被稱作的prefile key,存儲於metafile內。

prefile的訪問需要進行解密的key,這些key包括:

 

  1. File System Key: 系統安裝時生成的一個隨即的key
  2. Class Key,另一個key,與UID相關,如果用戶設置了鎖屏密碼,那麼此Class Key將的來源將同時包括鎖屏密碼。
只有有了這兩個key,一個文件的prefilekey才能被讀取出來,此加密的文件才能被揭祕,也就是說,當鎖屏之後,或存儲位於不同的設備之上,數據是無法讀取的。
File System Key還有一個重要作用,遠程刪除數據時,其實不用真正的刪除磁盤上的數據,只要刪除此key,那麼所有文件的prefile key 將不能訪問,也就是所有文件將無法讀取。
 
3:鎖屏密碼爲了防止暴力破解,增加了三個限制:
  1. 將其與uid綁定,也就是只能在該密碼生成的設備上進行嘗試,
  2. 兩次嘗試的間隔被強制設成80ms,機器暴力破解的時間將大大加長
  3. 增加選項,如果連續輸錯次數超過10次,可以選擇刪除設備內數據
4:Keychain。應用的小量極敏感數據,例如密碼,最好存儲與KeyChain內,而不是應用自己管理。

 

 

三:網絡安全

 

除了本地數據的保護,蘋果還對數據的傳輸提供了多種多樣的保護機制。蘋果提供了 可靠的、可信以及加密的連接。因爲iOS平臺限制了同時監聽的端口的數量,並將那些不必要的網絡組建,例如telnet,shell以及web server等,所以不需要防火牆的保護。

 

  1. SSL, TLS,蘋果提供了對SSL以及TLS的支持。CFNetwork則簡化了這些協議的使用。
  2. VPN,iOS內置的VPN客戶端,支持多種VPN服務器及認證方式。
  3. WIFI,提供了包括WPA2 Enterprise在內的多樣標準WIFI協議。
  4. 藍牙,iOS藍牙功能提供了多樣化的安全選擇
 

四:設備權限控制

 
針對企業用戶,iOS系統提供了多樣的安全策略,管理原可以根據需求對設備的安全特性進行多樣化的設置,包括密碼策略,數據保護策略,應用使用策略,遠程數據刪除等功能,給企業級用戶提供了高安全性以及極大的靈活性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章