Godkända
Development of a SEMC SIMLock Application
Diego Abad ()
Start
2008-01-10
Presentation
2008-06-12 11:00
Plats:
E3139
Avslutat:
2008-06-12
Examensrapport:
(Kontakta handledare)
Sammanfattning
<p>SIMLock, also called SIM Personalization, is a software application built-in GSM (Global System for Mobile communications) phones that locks the phone (or limits its use) to a specific SIM (Subscriber Identity Module) card. The two main purposes of a SIMLock application are to allow the network companies to lock their phones to their network (network subset, service provider, etc) and to disable the use of the phone if it is stolen. There are five categories of SIMLocks:<br><br> • <i>Network</i>: the phone can only be used with a SIM Card from the same Network to which the phone was locked to.<br> • <i>Network Subset</i>: is a subcategory of the Network lock. The phone can only be used by a limited number of SIM Cards of the Network.<br> • <i>Service Provider</i>: it locks the phone to a certain Service Provider.<br> • <i>Corporate</i>: it is a subcategory of the Service Provider Lock. It allows a corporation to prevent the use of phones that aren’t Corporate Lock (or Corporate Personalized).<br> • <i>SIM</i>: locks the phone to a specific SIM Card, therefore the phone can only be used with one SIM card.<br><br> To lock a phone to any of these categories, the SIMLock application must match data stored in the phone memory with data stored in the SIM card. If a phone has been locked and a SIM card that doesn’t match with the data in the phone is introduced, the phone will go to emergency call mode, which, as the name says, only allows the user to make emergency calls.</p> <b>Tasks</b><br><br> <p> <i>Implementation on a PC</i> </p> <p> 1. Comparison between two SIMLock Applications belonging to two different platforms. Compare and study the API (Application Programmable Interface) used by “Platform1” and “Platform2” to prepare the SEMC adaptation layer that will make possible the substitution of the “Platform1” and “Platform2” SIMLock Engine for a SEMC SIMLock Engine. <br> 2. SIMLock Template. This task consists of creating a SIMLock Template using the “010 Editor” program. This template is the format in which all SIMLock binary data should be written. <br> 3. Define the SIMLock Engine APIs. This task consists of designing two APIs that are needed when communicating with different layers of the SIMLock structure. The first API is used by the SEMC layer to call functions from the SIMLock Engine. This layer must be capable of supporting functions from both the platforms studied in task 1. The second API is used for communicating the SIMLock Engine with the HAL (Hardware Abstract Layer).<br> 4. Create the SEMC Layer. This layer will be responsible for handling the calls to the SIMLock engine by the platforms. The SEMC layer will interpret the calls from API1 (Platform 1 and Platform 2) so that the API2 calls the write function from the SIMLock Engine.<br> 5. Create the HAL (Hardware Abstraction Layer) which will make it possible to support the SIMLock application in any platform. One of the main functions of the HAL is to allocate memory from different drivers and since all this part will be done in a PC (level), the memory allocation will be handled using a standard C library.<br> 6. Implementation of the SIMLock Engine.<br> </p> <p> <i>Theoretical Study</i> </p> <p> 1. This is the academic part of the Thesis. It consists of using the Attack Tree Model on the SEMC SIMLock Application (engine, APIs, layer, format, etc.) so that possible threats can be defined.<br> 2. The second part of this theoretical study is to find ways to protect the security breaches that were found while attacking the application using the Attack Tree Model.<br>
Handledare: Janne Karppinen (Sony Ericsson) och Martin Hell (EIT)
Examinator: Thomas Johansson (EIT)