- Mobile Application Penetration Testing
- Vijay Kumar Velu
- 423字
- 2021-07-16 12:46:43
Changes in iOS 8 and 9
Apple introduced the concept of access control and authentication policies for applications in iOS 8 and higher for file and keychain data protection. This screen capture from the Apple security guide provides an overview of how file and keychain data protection are placed:

Network-level security
All data traversals over the network are protected using encryption technologies for VPN, applications, Wi-Fi, Bluetooth, Airdrop, and so on.
A majority of inbuilt applications, such as Mail and Safari, use Transport Layer Security by default (TLS version 1.0 to 1.2). Some important classes for a well-developed app include the CFNetwork
class, which disallows SSLv3 connections. Also note the NSURLConnection
and NSURLSessionCFURL
APIs being used.
Apps that are compiled for iOS 9 automatically ensure that app transport security is enforced.
Application-level security
Apple's close watch on app security allows plenty of layered approaches to protecting apps, using code signing, isolation mechanisms, and ASLR and stack-level protection.
Application code signing
The iOS app code-signing mechanism is similar to the one we saw in Android. However, iOS will not allow any application that is not signed by App Store. Each and every app installation will run through code signature checks during runtime.
The following diagram from the Apple developer community website (https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/AppSigning.html) illustrates how app code signing is performed using Xcode:

The purpose of app signing is to verify whether the application that is being installed and run on your device originated from the company or person that it claims to have. However, app signing in iOS involves digital identification, which includes a developer-signed public key with a private key. Once the code is signed with the keys, it is eligible to be installed on the device. Only signed applications can be installed on a device Apple issues a set of credentials that can be used by the developers called code sign identity.
The iOS app sandbox
The sandboxing techniques used in Android and iOS are pretty much similar. iOS apps always run in a sandbox during installation time, and the sandbox is exclusively controlled by iOS in order to limit the app's access to various resources, such as files, hardware, preferences, and so on. By design the entire app is installed in its own sandbox directory, which would be the home for that particular app and its data.
The following screenshot from Apple's developer website (https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html) describes how app sandboxing techniques are implemented in iOS:

Apps can have unrestricted access without the sandbox mechanism, which is a possibility if the device is jailbroken.
- 漫話大數據
- 大數據技術基礎
- Building Computer Vision Projects with OpenCV 4 and C++
- Developing Mobile Games with Moai SDK
- 業務數據分析:五招破解業務難題
- 數據化網站運營深度剖析
- 大數據營銷:如何讓營銷更具吸引力
- 數據驅動設計:A/B測試提升用戶體驗
- Microsoft Power BI數據可視化與數據分析
- 菜鳥學SPSS數據分析
- 算法設計與分析
- AndEngine for Android Game Development Cookbook
- 大數據計算系統原理、技術與應用
- 成功之路:ORACLE 11g學習筆記
- 數據會說話:活用數據表達、說服與決策