UNI-Ukshin Hoti
Seminar Essay
Theme: IOS
Mentor: Prof.Sanela Lutvić
Student: Raisa Nurković Cimerke mi zjbne! Prizren,2016
CONTENT:
Introduction…………………………………………………….…...3 General Overview………………………………………………..…4 IOS App Security…………………………………………………...6 Home Screen on IOS………………………………………………8 Folders in IOS……………………………………………………....9 IOS Processes……………………………………………………..10 Literature……………………………………………………………11
INTRODUCTION iOS is a mobile operating system developed and distributed by Apple Inc. It was originally released in 2007 for the iPhone, iPod Touch, and Apple TV. iOS is derived from OS X, with which it shares the Darwin foundation. iOS is Apple's mobile version of the OS X operating system used in Apple computers. This tutorial has been designed for software programmers with a need to understand the iPhone and iPad application development on iOS using Objective C programming. Before proceeding with this tutorial, you should have a basic understanding of Computer Programming terminologies. A basic understanding of any of the programming languages, especially Objective C programming language, will help you learn the concepts of iOS programming faster. 1
1“ http://www.tutorialspoint.com/ios/ios_tutorial.pdf”
General Overview iOS, which was previously called iPhone OS, is a mobile operating system developed by Apple Inc. Its first release was in 2007, which included iPhone and iPod Touch. iPad (1st Generation) was released in April 2010 and iPad Mini was released in November 2012. The iOS devices get evolved quite frequently and from experience, we find that at least one version of iPhone and iPad is launched every year. Now, we have iphone5 launched which has its predecessors starting from iPhone, iPhone 3gs, iPhone 4, iPhone 4s. Similarly, iPad has evolved from iPad (1 st Generation) to iPad (4th Generation) and an additional iPad Mini version. The iOS SDK has evolved from 1.0 to 6.0. iOS 6.0, the latest SDK is the only officially supported version in Xcode 4.5 and higher. We have a rich Apple documentation and we can find which methods and libraries can be used based on our deployment target. In the current version of Xcode, we’ll be able to choose between deployment targets of iOS 4.3, 5.0 and 6.0. The power of iOS can be felt with some of the following features provided as a part of the device. Maps Siri Facebook and Twitter Multi-Touch Accelerometer
GPS High end processor Camera Safari Powerful APIs Game center In-App Purchase Reminders Wide Range of gestures.
The number of users using iPhone/iPad has increased a great deal. This creates the opportunity for developers to make money by creating applications for iPhone and iPad the Apple's App Store.
IOS App Security
2
Apps are among the most critical elements of a modern mobile security architecture. While apps provide amazing productivity benefits for users, they also have the potential to negatively impact system security, stability, and user data if they’re not handled properly. Because of this, iOS provides layers of protection to ensure that apps are signed and verified, and are sandboxed to protect user data. These elements provide a stable, secure platform for apps, enabling thousands of developers to deliver hundreds of thousands of apps on iOS without impacting system integrity. And users can access these apps on their iOS devices without undue fear of viruses, malware, or unauthorized attacks. App code signing Once the iOS kernel has started, it controls which user processes and apps can be run. To ensure that all apps come from a known and approved source and have not been tampered with, iOS requires that all executable code be signed using an Apple-issued certificate. Apps provided with the device, like Mail and Safari, are signed by Apple. Third-party apps must also be validated and signed using an Apple-issued certificate. Mandatory code signing extends the concept of chain of trust from the OS to apps, and prevents third-party apps from loading unsigned code resources or using selfmodifying code. In order to develop and install apps on iOS devices, developers must register with Apple and join the Apple Developer Program. The real-world identity of each developer, whether an individual or a business, is verified by Apple before their certificate is issued. This certificate enables developers to sign apps and submit them to the App Store for distribution. As a result, all apps in the App Store have been submitted by an identifiable person or organization, serving as a deterrent to the creation of malicious apps. They have also been reviewed by Apple to ensure they operate as described and don’t contain obvious bugs or other problems. In addition to the technology already discussed, this curation process gives customers confidence in the quality of the apps they buy. iOS allows developers to embed frameworks inside of their apps, 2 http://www.tutorialspoint.com/ios/ios_tutorial.pdf”
which can be used by the app itself or by extensions embedded within the app. To protect the system and other apps from loading third-party code inside of their address space, the system will perform a code signature validation of all the dynamic libraries that a process links against at launch time. This verification is accomplished through the team identifier (Team ID), which is extracted from an Apple-issued certificate. A team identifier is a 10-character alphanumeric string; for example, 1A2B3C4D5F. A program may link against any platform library that ships with the system or any library with the same team identifier in its code signature as the main executable. Since the executables shipping as part of the system don’t have a team identifier, they can only link against libraries that ship with the system itself.3
3 https://www.apple.com/business/docs/iOS_Security_Guide.pdf
Home Screen on IOS The home screen (rendered by and also known as "Spring Board") displays application icons and a dock at the bottom of the screen where users can pin their most frequently used apps. The home screen appears whenever the user unlocks the device or presses the "Home" button (a physical button on the device) whilst in another app. Before iOS 4 on the iPhone 3GS and newer, the screen's background could be customized with other customizations available through jail breaking, but can now be changed out-of-the-box. The screen has a status bar across the top to display data, such as time, battery level, and signal strength. The rest of the screen is devoted to the current application. When a passcode is set and a user switches on the device, the passcode must be entered at the Lock Screen before access to the Home Screen is granted.
4
4 “https://en.wikipedia.org/wiki/IOS#Devices”
Folders in IOS With iOS 4 came the introduction of a simple folder system. When applications are in "jiggle mode", any two (with the exception of Newsstand in iOS 5 and iOS 6, which acts like a folder) can be dragged on top of each other to create a folder, and from then on, more apps can be added to the folder using the same procedure, up to 12 on iPhone 4S and earlier and iPod Touch, 16 on iPhone 5, and 20 on iPad. A title for the folder is automatically selected by the category of applications inside, but the name can also be edited by the user. When apps inside folders receive badges, the numbers shown by the badges is added up and shown on the folder. Folders cannot be put into other folders, though an unofficial workaround exists that enables folders to be nested within folders. iOS 7 updated the folders with pages like on the SpringBoard. Each page can hold nine apps, and the Newsstand app is now able to be placed into a folder.5
5“https://en.wikipedia.org/wiki/IOS#Devices”
IOS Processes IOS processes are essentially equivalent to a single thread in other operating systems-IOS processes have one and only one thread each. Each process has its own stack space, its own CPU context, and can control such resources as memory and a console device (more about that later). To minimize overhead, IOS does not employ virtual memory protection between processes. No memory management is performed during context switches. As a result, although each process receives its own memory allocation, other processes can freely access that same memory. IOS uses a priority run-to-completion model for executing processes. Initially, it might appear that this non-preemptive model is a poor choice for an operating system that must process incoming packets quickly. In some ways, this is an accurate observation; IOS switching needs quickly outgrew the real-time response limitations of its process model, and in Chapter 2, “Packet Switching Architectures,” you’ll see how this apparent problem was solved. However, this model still holds some advantages that make it a good fit for support processes that remain outside the critical switching path. Some of these advantages are as follows: • Low overhead - Cooperative multitasking generally results in fewer context switches between threads, reducing the total CPU overhead contributed by scheduling. • Less complexity for the programmer - Because the programmer can control where a process is suspended, it’s easy to limit context switches to places where shared data isn’t being changed, reducing the possibility for side effects and deadlocks between threads. 6
LITERATURE 6“ http://cdn.ttgtmedia.com/searchNetworking/downloads/InsideIOS.pdf”
http://www.tutorialspoint.com/ios/ios_tutorial.pdf https://www.apple.com/business/docs/iOS_Security_Guide.pdf https://en.wikipedia.org/wiki/IOS#Devices http://cdn.ttgtmedia.com/searchNetworking/downloads/InsideIOS. pdf