1. Trang chủ
  2. » Ngoại Ngữ

SECURITE POUR LES TELEPHONES PORTABLES

78 231 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 0,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Résumé Le problème de la sécurité des téléphones portables connaît un regain d intérêt depuis l année 2003 avec la généralisation des plates-formes Symbian OS et Windows CE : leur riche

Trang 1

Institut de la Francophonie pour l Informatique

Ecole Nationale Supérieure des Télécommunications

RAPPORT DE STAGE DE FIN D ETUDES

Trang 2

Remerciements

Je tiens à remercier particulièrement Monsieur Patrick Bellot, Professeur du Département Informatique et Réseaux (INFRES), l Ecole Nationale Supérieure des Télécommunications (ENST), pour m avoir accueilli et m avoir bien encadré pendant toute la durée du stage

J aimerais remercier sincèrement Monsieur Michel Riguidel, Responsable du Département Informatique et Réseaux, l Ecole Nationale Supérieure des Télécommunications (ENST),

de ses conseils professionnels et de m a donné des meilleures conditions de travail au cours

du stage

J exprime également mes vifs remerciements à Monsieur Charles Durand, Directeur de

l Institut de la Francophonie pour l Informatique (IFI), d avoir préparé mon stage

Finalement, je remercie aussi vivement toutes les personnes de l ENST et de l IFI, particulièrement les thésards et les stagiaires de l INFRES, qui m ont porté leur amitié

Trang 3

Table des matières

Remerciements 2

Table des matières 3

Résumé 5

Abstract 6

Liste des figures 7

Chapitre 1: Introduction 8

Chapitre 2: Systèmes embarqués sécurisés : un défi 10

2.1 Exigences de sécurité 10

2.2 Défis de conception d un système embarqué sécurisé 13

2.3 Attaques sur le système embarqué 14

2.3.1 Attaques logicielles 15

Chapitre 3: Téléphones portables 17

3.1 Architecture 17

3.2 SIM 19

3.3 Interfaces entre le téléphone portable et la SIM 20

3.4 Communication par GSM 21

Chapitre 4: Système d exploitation Symbian 24

4.1 Sécurité au niveau de l OS 24

4.1.1 Contrôle d'accès 24

4.1.2 Cryptographie et chiffrement 25

4.1.3 Système de fichiers 25

4.1.4 Gestion de mémoire 25

4.2 Développement d applications 26

4.2.1 Java 26

4.2.2 C++ 27

4.3 Sécurité des applications du téléphone portable 28

4.3.1 Développement 29

4.3.2 Téléchargement 30

4.3.3 Installation 31

4.3.4 Exécution 33

4.3.5 Exploitation 35

Chapitre 5: Améliorer la sécurité des téléphones portables 36

5.1 Renforcer la sécurité des téléphones portables 38

5.1.1 Utilisation systématique des composants matériels dédiés sécurité 39

5.1.2 Sécurité du code 41

5.1.3 Gestion du niveau de sécurité des applications et services 42

5.2 Analyse 43

Chapitre 6: Conclusion 44

Annexe : Vérification de code d octet Java 45

A.1 Introduction 45

A.2 Vue d ensemble de la JVM et de vérification de code d octet 46

A.3 Approches et algorithmes 49

A.3.1 Analyse de flux de données 49

A.3.2 Vérification de l initialisation d objet 55

A.3.3 Problèmes des sous-programmes 58

A.3.4 Vérification de modèles 62

A.4 Vérification pour les dispositifs mobiles 67

Trang 4

A.4.1 Vérification légère de code d octet 68

A.4.2 Vérification pour Java Smart Card 69

A.5 Conclusions 71

Références 72

Trang 5

Résumé

Le problème de la sécurité des téléphones portables connaît un regain d intérêt depuis

l année 2003 avec la généralisation des plates-formes Symbian OS et Windows CE : leur richesse et leurs failles dans le modèle de sécurité permettent aux attaquants de réaliser des opérations malveillantes comme le ver Cabir et récemment Skulls pour Symbian OS et le ver Dust pour Windows CE

Ce travail a pour but de faire une étude profonde sur les problèmes de sécurité des téléphones portables, notamment ceux qui utilisent le système d'exploitation Symbian et le réseau GSM Nous nous concentrons sur les raisons pour lesquelles la sécurité des téléphones portables n'est pas actuellement garantie à fin de proposer une approche globale

de la sécurité Cette approche passe par la définition d une architecture de sécurité intégrant

le téléphone, la SIM, les services de sécurité, et s appuyant sur la certification du code des applications natives ou sensibles

Un autre intérêt du stage est la vérification de code d octet Java qui donne la possibilité de prévoir le comportement des programmes avant leur exécution réelle

Le stage est réalisé dans le cadre du grand projet européen SEINIT auquel l ENST participe

Mots clés : Sécurité des téléphones portables, Symbian, virus, attaques logicielles,

informatique de confiance, vérification de code d octet

Trang 6

Abstract

The security problem of mobile phones has taken a lot of interests from 2003 with the generalization of platforms Symbian OS and Windows CE: their richness and weakness in the security model allow attackers realize many malicious operations like the worms Cabir and recently Skulls in Symbian OS or Dust in Windows CE

The purpose of this work is to make a survey on security problems of mobile phones, particularly which use the operating system Symbian and GSM network We concentrate

on reasons for which the security of mobile phones is not currently guaranteed to propose a global approach of security This approach goes through the definition of a security architecture integrating the phone, the SIM, the services and base on code certification of native or sensible applications

Another interest of this internship is the problem of Java bytecode verification which gives the possibility to predict programs behavior before their real execution

This work is realized in the context of European project SEINIT, in which ENST is involved

Keywords: mobile phone security, Symbian, virus, software attack, Trusted Computing

Base, bytecode verification

Trang 7

Liste des figures

Figure 1 Les exigences de sécurité pour un smartphone 10

Figure 2 Les exigences communes de sécurité de systèmes embarqués 11

Figure 3 Les attaques sur les systèmes embarqués 15

Figure 4 L'architecture logicielle du téléphone portable 18

Figure 5 La communication par GSM 22

Figure 6 L'architecture de l'OS Symbian v8.0 24

Figure 7 Le constructeur de deux phases (droit) dans le Symbian et le constructeur standard (gauche) 28

Figure 8 Exemple de code source Java et le code d octet correspondant 47

Figure 9 Quelques expressions de types utilisées par le vérificateur et leur relation de sous-type 50

Figure 10 Exemple de sous-programme et le code d'octet correspondant 58

Figure 11 Flux de contrôle dans l'approche de vérification de modèles 67

Trang 8

Chapitre 1: Introduction

Aujourd'hui, les dispositifs mobiles apparaissent sous différentes formes et caractéristiques

Un dispositif mobile typique utilise un système d'exploitation qui permet l'installation de logiciels de producteurs tiers La plupart des produits ont aussi des logiciels préinstallés pour la gestion des informations personnelles telles que des applications de carnet d'adresses ou de calendrier Quelques dispositifs incluent des applications préinstallées comme des browsers, des applications de traitement de textes, des programmes de courrier électronique, etc Ces dispositifs sont connus généralement sous le nom d'assistant numérique personnel (PDA par la suite) Pour échanger des données avec les ordinateurs de bureau, les autres PDAs ou le réseau local, les PDA sont souvent incluent les mécanismes

de communication (série, IrDA, BlueTooth, réseau local sans fil) En plus de la fonctionnalité standard de PDAs, le smartphone ajoute un téléphone portable intégré Cette intégration permet aux utilisateurs de porter un seul dispositif au lieu d'un portable et d'un PDA

Le sujet de la sécurité des dispositifs mobiles, en général, ou des téléphones portables, spécifiquement, n'est pas nouveau, en 2000, le virus VBS/Timofonica [52] avait pour charge d'envoyer des SMS1 aux abonnés du service Movistar Ce virus se propageait toutefois exclusivement sur les ordinateurs personnels (PC par la suite) et n'avait pas d'impact sur les téléphones visés

Depuis l'année 2003, le problème de la sécurité connaît un regain d'intérêt avec la généralisation des plates-formes Symbian OS [46] et Windows CE [35], qui sont beaucoup plus performantes en termes de programmation que les anciens téléphones propriétaires La richesse de ces plates-formes et leurs failles dans le modèle de sécurité permettent aux attaquants de réaliser des attaques comme le ver Cabir [3] et récemment Skulls [42] pour Symbian OS et le ver Dust [13] pour Windows CE

Ce rapport a pour but de faire une enquête sur les problèmes de sécurité des téléphones portables, notamment les smartphones qui utilisent le système d'exploitation (OS par la suite) Symbian et le réseau GSM Nous nous concentrons sur les raisons (les exigences de

1

SMS: Short Message Service

Trang 9

Ce travail est réalisé dans le cadre d un grand projet, SEINIT (Security Expert Initiative,

http://www.seinit.org), entre les universités et les entreprises européens, auquel l ENST participe L objectif de SEINIT est d assurer un cadre de sécurité et de confiance, fonctionnant sur de multiples dispositifs et sur des réseaux hétérogènes Omniprésent, interopérable, ce cadre sera également centré autour de l utilisateur final En particulier, SEINIT définira des modèles de confiance et de sécurité innovants afin de répondre aux nouveaux enjeux de l environnement numérique ambiant

Le reste de ce rapport se compose de cinq chapitres Le chapitre 2 aborde les exigences de sécurité pour le système embarqué en général ainsi des défis de conception et les attaques sur le système embarqué Une anatomie de l'architecture des téléphones portables est donnée dans le chapitre 3 Le chapitre 4 concentre sur l'OS Symbian et le développement des applications dans cet environnement Le chapitre 5 décrit les aspects pour le renforcement de la sécurité des téléphones portables Finalement, le rapport se termine par

la dernière section avec de conclusion dans le chapitre 6

Ce rapport se compose également d une annexe abordant la vérification de code d octet Java Nous décrivons des divers algorithmes et leurs problèmes principaux, par exemple dans l implémentation existante de Sun

Trang 10

de conception, de fabrication, et d'utilisation d'un système embarqué Les exigences de sécurité changent selon les perspectives que nous considérons

Par exemple, considérons un smartphone2 qui est capable de communications de données,

de multimédia, et de voix sans fils Les exigences de sécurité selon les points de vue des différents participants sont comme suit :

Utilisateur final Intimité et l intégrité des données personnelles

Appels et transactions frauduleux Perte/vol

Exécution sécurisée des applications téléchargées

Fournisseur de contenu Sécurité de contenu, gestion des droits numériques

Fournisseur de service des applications

Communications sécurisées Non-répudiation

Fournisseur de service Fabricant de téléphone

Accès sécurisé au réseau Utilisation frauduleuse de service

Fournisseur de logiciel et de

matériel

Protection des propriétés intellectuelles

Figure 1 Les exigences de sécurité pour un smartphone

Les soucis de l'utilisateur peuvent inclure la sécurité des données personnelles stockées et communiquées par le téléphone, pendant que l'inquiétude du fournisseur de contenu peut

2

Le mot smartphone est utilisé dans ce rapport comme une combinaison d un téléphone portable traditionnel

et d un assistant numérique personnel (PDA) Les smartphones diffèrent des téléphones portables normaux sur le point qu ils ont un système d exploitation et le stockage local, pour que l utilisateur ou les encarteurs puissent ajouter l information et les applications comme les PDAs

Trang 11

être la protection des contenus multimédias fournis au téléphone, et le fabricant de téléphone pourrait en plus s'intéresser au secret du logiciel de propriété industrielle qui réside dans le téléphone Pour chacun de ces cas, l'ensemble des entités non sûres (potentiellement malveillantes) peut également changer Par exemple, dans la perspective

du fournisseur de contenu, l'utilisateur du téléphone peut être une entité non sûre

La Figure 2 cite les exigences de sécurité pour les systèmes embarqués, qui sont décrits comme suit :

Figure 2 Les exigences communes de sécurité de systèmes embarqués

Identification de l'utilisateur indique le processus d'authentifier les utilisateurs avant

de leur permettre d'utiliser le système

Accès sécurisé au réseau fournit une connexion de réseau ou un accès de service

seulement si le dispositif est autorisé

Communications sécurisées se composent d'authentification de communication entres

les égaux, d'assurance de confidentialité et d'intégrité des données communiquées, d'empêchement de répudiation d'une transaction, et de protection de l'identité des

entités communiqués

Stockage sécurisé garantit la confidentialité et l'intégrité des informations sensibles

stockées dans le système

Contenu sécurisé impose les restrictions d'utilisation du contenu numérique stocké ou

consulté par le système

Trang 12

Disponibilité s'assure que le système peut exécuter sa fonction attendue et servir les

utilisateurs légitimes à tout moment, sans être interrompu par des attaques de déni de

service

Plusieurs primitives fonctionnelles de sécurité ont été proposées dans le contexte de la sécurité du système informatique Ceux-ci incluent divers algorithmes cryptographiques utilisés pour chiffrer et déchiffrer les données, et pour vérifier l'intégrité des données En général, les algorithmes cryptographiques peuvent être classifiés en trois classes :

chiffrements symétriques (l expéditeur et le récepteur emploie la même clé secrète pour chiffrer et déchiffrer des données), chiffrements asymétriques (également appelés

algorithmes à clés publiques, emploient une clé secrète privée pour le déchiffrage, et une

clé publique relative non-secrète pour le chiffrage ou la vérification), et les algorithmes de hachage (fournissent des « signatures » pour des messages et la vérification d intégrité)

Les solutions de sécurité pour répondre aux exigences de sécurité se fondent typiquement sur les primitives cryptographiques mentionnés ci-dessus, ou sur les mécanismes de sécurité qui emploient une combinaison de ces primitives d'une façon spécifique (par exemple, des protocoles de sécurité) Des technologies et des mécanismes de sécurité ont été conçus autour de ces algorithmes cryptographiques afin de fournir des services de sécurité spécifiques Par exemple :

Les protocoles de sécurité fournissent des manières d'assurer les canaux de

transmission pour le système embarqué IPSec et SSL sont des exemples populaires des protocoles de sécurité, largement utilisés pour les réseaux privés virtuels (VPNs) et les transactions web

Les certificats numériques fournissent des manières d'associer l'identité à une entité,

et les technologies biométriques comme la reconnaissance d'empreinte digitale et la reconnaissance de voix aident à l'authentification d'utilisateur final Les signatures numériques, qui fonctionnent comme équivalents électroniques des signatures manuscrites, peuvent être utilisées pour authentifier la source de données et également pour vérifier son identité

Les protocoles de gestion des droits numériques, tels que OpenIPMP, MPEG, ISMA,

et MOSES, fournissent les cadres sécurisés pour protéger le contenu d'application contre l'utilisation non autorisée

Trang 13

Le stockage sécurisé et l'exécution sécurisée exigent que l'architecture du système

soit adaptée pour des considérations de sécurité Les exemples simples incluent l'usage

du matériel pour surveiller des transactions de bus et de bloquer des accès illégaux aux secteurs protégés dans la mémoire [12], l'authentification du progiciel qui s'exécute sur

le système, l'isolement d'application pour préserver l'intimité et l'intégrité du code et les données associées à une application ou à un processus donnée [32], les techniques matériels/logiciels pour préserver l'intimité et l'intégrité des données dans toute la hiérarchie de mémoire [43], l'exécution du code chiffré [30], etc

2.2 Défis de conception d un système embarqué sécurisé

Dans le monde des systèmes embarqués, les concepteurs d'un système embarqué doivent supporter de diverses solutions de sécurité afin de traiter un ou plusieurs des exigences de sécurité décrites ci-dessus Ces exigences présentent des empêchements dans le processus

de conception, qui sont brièvement décrits ci-dessous :

Brèches de traitement : Dans les systèmes avec les ressources modestes de traitement

et de mémoire, les demandes élevées de calculs pour les services de sécurité exigent normalement des changements dans la technologie (par exemple, couper le processus

de code d octet Java en deux phases) ou l utilisation des composants dédiés

Flexibilité : Un système embarqué est souvent conçu pour répondre aux exigences

d'exécution des multiples et diverses protocoles de sécurité et standards pour supporter : des objectifs de sécurité, l'interopérabilité dans différents environnements, le traitement

de sécurité dans différentes couches de réseau (par exemple, un PDA permettant le réseau local sans fil pour la connexion au réseau privé virtuel et supportant la navigation sécurisé de web doit exécuter WEP, IPSec et SSL) En outre, avec des protocoles de sécurité constamment visée par des hackers, il n'est pas étonnant qu'ils continuent à se produire de nouvelles attaques Il est souhaitable de permettre à l'architecture de sécurité d'être assez flexible (programmable) pour adapter facilement aux changements Cependant, la flexibilité peut également causer des difficultés envers

la sécurité

Tamper-résistance : Les attaques des logiciels malveillants tels que des virus et des

chevaux de Troie sont les menaces les plus communes à n'importe quel système embarqué qui est capable d'exécuter des applications téléchargées Puisque ces attaques peuvent compromettre la sécurité de tous points de vue (l intégrité, des données

Trang 14

personnelles, la disponibilité), il est nécessaire de développer et déployer de diverses

contre-mesures matériels/logiciels contre ces attaques

Brèches d'assurance : Il est bien connu qu'il est beaucoup plus difficile de construire

des systèmes véritablement plus fiables que ceux qui fonctionnent simplement dans la plupart du temps Les systèmes sûrs doivent pouvoir manipuler des situations qui peuvent se produire par hasard et ils relèvent un plus grand défi : ils doivent continuer à fonctionner sûrement en dépit des attaques réalisées par des adversaires intelligents qui cherchent intentionnellement des modes de défaillances indésirables Lors que les systèmes deviennent plus complexes, il y a inévitablement des modes de défaillance qui

doivent être adressés

Notons que les deux autres facteurs, le cỏt et la batterie, influent également sur l efficacité des mesures de sécurité d un système embarqué

2.3 Attaques sur le système embarqué

Il est important de définir au début quelles capacités de sécurité sont exigées, comme par exemple les attaques qui doivent être empêchées Une issue orthogonale est le niveau exigé

de l'assurance, c'est-à-dire la probabilité que ces buts ont été atteints La Figure 3 cite les diverses catégories des techniques utilisées pour attaquer un dispositif Au niveau supérieur, les attaques peuvent être classifiées dans deux larges catégories : attaques

physiques et side-channel, et attaques logiques

Les attaques physiques et side-channel [2][29][39][28] se réfèrent aux attaques qui

exploitent l'implémentation du système et/ou identifient les propriétés de l'implémentation

Des attaques physiques et side-channel sont généralement classifiées en des attaques invasives et non-invasives Les attaques invasives ont pour but d'obtenir l'accès au

dispositif pour observer, manipuler, et interférer dans les systèmes internes Puisque les attaques invasives exigent typiquement une infrastructure relativement chère, elles sont

assez difficiles à déployer Les exemples des attaques invasives incluent micro-probing et rétro-ingénierie (reverse engineering) de la conception Il y a beaucoup de formes

d'attaques non invasives telles que des attaques de synchronisation, des techniques d'induction de faute, des attaques basées sur l'analyse électromagnétique et l analyse de consommation

Trang 15

Micro-probing Rétro-ingénierie

Temps de calcul Analyse de consommation SPA DPA Electromagnétique Analyse

SEMA DEMA Injection de faute

Virus Chevaux de Troie

Faiblesses de crypto et de protocole

Figure 3 Les attaques sur les systèmes embarqués

Les attaques logiques sont faciles à déployer contre les capacités d'exécuter les applications téléchargées, et exploitent des faiblesses ou des bogues dans l'architecture globale (matériel/logiciel) aussi bien que des problèmes dans la conception de l'algorithme cryptographique ou du protocole de sécurité Dans la pratique, les attaquants utilisent souvent une combinaison des plusieurs techniques pour atteindre leurs objectifs Par exemple, pour un smartphone, du point de vue de l'attaquant, les objectifs visés sont :

de rendre inutilisable le téléphone portable;

de modifier le comportement du téléphone;

d'accéder aux données sensibles;

d'émettre des appels voix ou données à l'insu de l'utilisateur;

d'outrepasser les politiques de gestion des droits numérique

Dans le cadre de ce rapport, nous concentrons sur la menace la plus importante, les attaques logicielles

2.3.1 Attaques logicielles

Les attaques logicielles représentent une menace importante pour les systèmes embarqués qui sont capables de télécharger et d'exécuter des applications Par rapport aux attaques

physiques et side-channel, les attaques logicielles exigent typiquement une infrastructure

qui est facilement disponible Ces attaques sont implémentées par des agents malveillants

Trang 16

comme les virus, les vers, les chevaux de Troie, etc., et ils peuvent exploiter des failles dans l'OS ou le logiciel d'application, obtenir l'accès aux systèmes internes, et perturber ses fonctions normales à fin de manipuler des données ou des processus sensibles (attaques d'intégrité), relever des informations personnelles, et/ou dénier l'accès aux ressources de système (attaques de disponibilité),

Des agents malveillants effectuent des attaques logiciels par l'exploitation des faiblesses dans l'architectures du système final sont étudiés dans [9][45][37][4][20] Ils se présentent typiquement en raison des imperfections dans le logiciel, qui peuvent être nommés comme vulnérabilités [9]

Le problème de débordement de mémoire (buffer overflow) est un trou commun dans les

systèmes d'exploitation et les logiciels d'application, qui peut être exploité dans les attaques logicielles [7] Le problème peut avoir lieu à cause de la vérification réduite des limites des

tampons Les effets de débordement de mémoire peuvent réécrire (overwriting) la mémoire

de la pile, les tas, et les pointeurs de fonction L'attaquant peut utiliser le débordement de mémoire pour réécrire les adresses du programme stocké tout près, ceci lui permet de transférer le contrôle au code malveillant, qui, une fois exécuté, peut avoir des effets indésirables

Trang 17

de l'unité centrale: mémoire vive (RAM5) et mémoire flash avec des volumes supérieurs au méga-octet, parfois un peu de mémoire morte (ROM6 et OTP7) pour des services dédiés à

la sécurité De plus, des processeurs dédiés multimédia peuvent également être présents afin de compenser le manque de puissance de certains processeurs Finalement, les interfaces écran, clavier, connecteurs (série, IrDA, BlueTooth), haut-parleur, micro, etc., habillent le tout Ainsi, l'architecture matérielle est comparable à ce que l'on connaît dans le monde PC, avec bien souvent les mêmes fabricants sauf une différence importante, la configuration matérielle d'un téléphone portable n'est pas modifiable par l'utilisateur

Trang 18

18

Figure 4 L'architecture logicielle du téléphone portable

Au niveau du logiciel, l'architecture est plus variable suivant les fabricants de téléphones portables L'ensemble des applications du téléphone s'exécute au-dessus de l'OS, (Figure 4)

à l'exception de l'application GSM8 et des protocoles associés qui reposent généralement sur une implémentation propriétaires pour des raisons de performance L'OS fournit l'interface de programmation (API par la suite) qui tient compte de l'intégration de téléphone de n'importe quelle tiers application tiers et donc ces types d'OS sont dits

« ouverts » De plus, les applications peuvent profiter des capacités de communication de données de téléphone Toutes les applications typiques d'Internet telles que des browseurs, des clients d'email, et des messagers instantanés fonctionnent au-dessus du service des données du téléphone La tendance actuelle va vers des téléphones portables à base d'OS ouverts, tels que Embedded Linux [14], Symbian [46] et WindowsCE [35], la mise à jour

de l'OS étant par ailleurs possible dans certains cas

8

GSM: Global System for Mobile Communications

Trang 19

Contrairement à la SIM9, notons que les informations/applications ne sont pas propriété exclusive de l'opérateur Plus précisément, nous pouvons classifier les informations/applications liées aux services de l'opérateur (par exemple, l'application GSM), celles liées à des services additionnels relevant de différents fournisseurs de services (par exemple l'accès à un portail, e-commerce), ou celles de l'utilisateur (par exemple, un agenda électronique)

Les mécanismes de sécurité doivent prendre en compte les exigences de chaque acteur (voir section 4.3) Actuellement l'opérateur se positionne en tant que fournisseur de service vis-à-vis de l'utilisateur A ce titre, il est à même d'assurer que le niveau de sécurité est conforme à l'attente de l'utilisateur En particulier, dans le contexte d'un commerce électronique, l'opérateur garantit à l'utilisateur la confidentialité, l'authenticité et la validité

de la transaction

3.2 SIM

La SIM est venu un long chemin depuis sa conception dans 1988 comme un module d'authentification avec une quantité limitée de mémoire Dans chaque téléphone portable, cette petite carte à puce est la seule partie de l'opérateur qui reste avec le client Dans ses premiers jours, la SIM a contenu l'identité d'abonné individuelle, l'algorithme d'authentification et les clés, ainsi que d'autres fonctions de sécurité telles que la PIN10, qui

a été présentée la première fois en 1991 La SIM a permis ensuite aux opérateurs de gérer

la facturation et d'autres informations sur leurs clients, et d'authentifier l'utilisateur pour l'accès au réseau

L'architecture SIM se compose généralement d'un microprocesseur CISC11 8 bits cadencé à 4,77 MHz, mais de plus en plus, d'un processeur RISC 32 bits à 30 ou voire 100 MHz La SIM intègre également de la mémoire sous forme de ROM qui accueille essentiellement l'OS, d'EEPROM12 qui sert à stocker les applications et les données persistantes, et de RAM Il est important de noter que la SIM intègre aussi un cryptoprocesseur dédié aux fonctions cryptographiques

Trang 20

La SIM peut être considérée comme un ordinateur à seul processeur qui se compose de l'OS, de système de fichiers et des applications Les OS propriétaires sont généralement développés pour un unique service (au minimum, les fonctionnalités décrites dans la spécification GSM 11.11 [15]) Avec les OS « ouvert » tels que JavaCard, le téléchargement de nouvelles applications, et dans certains cas, la mise à jour de l'OS est possible Aujourd'hui, la tendance est à l'uniformisation des OS autour de JavaCard

Une caractéristique fondamentale de la SIM est que son ensemble d'informations et d'applications contenues appartient à l'opérateur, non à l'utilisateur Nous pouvons donc s'appuyer sur des mécanismes de sécurité fortement centralisés pour garantir un haut niveau

de sécurité

3.3 Interfaces entre le téléphone portable et la SIM

L'Institut européen des normes de télécommunication (ETSI) définit dans la spécification GSM 11.11 [15] les caractéristiques physiques (connecteurs), électroniques (protocole de transmission) et logique (commandes) de l'interconnexion du téléphone portable et de la SIM Au niveau applicatif, la spécification GSM 11.14 ou SIMToolKit de l'ETSI [16] définit une plate-forme pour le développement de fonctionnalités implémentées dans la majorité des téléphones portables, une partie du code s'exécutant dans le téléphone, l'autre

au sein de la SIM Parmi ces fonctionnalités, nous pouvons signaler la possibilité donnée à

la SIM d'être « proactif », c'est-à-dire d'initialiser des actions sur le téléphone sous forme

de scripts ou d'appliquettes (applets) JavaCard (affichage de texte, appel d'un numéro,

établir une connexion GPRS13 data, etc.) Ces applications SIM réalisent au besoin des services de sécurité en s'appuyant sur des clés et algorithmes de la SIM

La spécification WIM14 [53] du OMA forum [38], anciennement WAP forum, définit, pour

sa part, une application au sein de la SIM avec une API dédiée à la sécurité dans les protocoles WAP La SIM peut ainsi être utilisée pour stocker des certificats et des clés de type RSA, réaliser les opérations de signature et d'authentification pour les services de sécurité de la couche transport (protocoles WTLS et TLS) Elle fournit également des

Trang 21

La spécification JSR17 177 [27] étend cette approche aux fonctions de sécurité de la SIM Plus précisément, la spécification JSR 177 définit un ensemble d'APIs pour accéder par RMI aux fonctions de sécurité implémentées dans la SIM qui est alors vue comme un outil

de sécurité J2ME

En résumé, l'ensemble de ces spécifications concourt au développement d'application dont bien souvent la partie principale s'exécute dans le téléphone portable, les services de sécurité étant exécutés dans la SIM Nous pensons que cette fonctionnalité n'est, à l'heure actuelle, pas assez exploitée, alors qu'elle devrait être le principe de base de tout mécanisme de sécurité présent dans le téléphone portable

3.4 Communication par GSM

La fonction initiale des téléphones portables est évidement l'émission et la réception de voix et de données En termes de sécurité, l'émission et la réception d'appels posent les problèmes d'accès au réseau de téléphone portable, de sécurité des communications, et pour l'opérateur, d'imputation des communications (lorsqu'il ne s'agit pas de communications prépayées)

Une session de communication par GSM passe par trois phases : l'authentification, la génération de clés de session et le chiffrement de données échangés Au niveau de l'accès

au réseau, l'authentification est basée sur la SIM et est réalisée de la manière suivante

Trang 22

Chaque SIM contient une clé secrète K f , le « réseau » retrouvant K f à l'aide d'une clé mère

K m et des données d'identification de la SIM (ex.: numéro de série, etc.) Le « réseau »

envoie un challenge RAND (un nombre aléatoire de 128 bits) A la réception de RAND, la SIM calcule la réponse SRES sur 32 bits obtenue en appliquant un algorithme cryptographique appelé A 3 (implémenté dans la SIM) au challenge RAND, avec la clé secrète K f Le réseau vérifie que la réponse SRES envoyée par la SIM correspond bien au

challenge précédemment envoyé; l'authentification de la SIM est valide si tel est le cas, sinon l'authentification a échoué

Figure 5 La communication par GSM

La sécurité des communications est obtenue en chiffrant les échanges entre le téléphone

portable et le réseau Ce chiffrement nécessite la génération d'une clé de session K s de 64 bits Cette clé obtenue par la deuxième phase (génération de clés) en appliquant un

algorithme appelé A 8 (implémenté dans la SIM) au challenge précédant RAND, avec une clé K f Une fois la clé de session générée par la SIM, elle est fournie au téléphone portable qui va chiffrer les communications (troisième phase) à l'aide de l'algorithme

cryptographique A 5

Trang 23

Le schéma global est résumé sur la Figure 5 Nous voyons que la sécurité de l'authentification et de la génération de la clé de session repose exclusivement sur le secret

de la clé K f Notons que la clé K f est stockée dans la SIM et n'est jamais communiquée au

téléphone (en particulier, les algorithmes A 3 et A 8 sont exécutés dans la SIM) Ceci est rendu possible dans la mesure ó la SIM est propriété exclusive de l opérateur : l'opérateur

peut s'assurer que toute application contenue dans la SIM préserve la sécurité de K f

En reposant sur la clé de session K s, le chiffrement des communications est à la charge du téléphone pour des raisons de performance La sécurité des communications revient à

protéger le secret de la clé K s Si le téléphone est compromis, un attaquant peut avoir accès

à cette clé et déchiffrer l'ensemble des communications Au niveau des contraintes de performance, ce risque est inévitable Les développeurs doivent prendre en compte ce risque lors du développement des applications, et, en particulier, contrơler l'utilisation des fonctionnalités sensibles afin d'empêcher un attaquant d'y accéder

En pratique, les algorithmes A 3 et A 8 sont généralement combinés En particulier, l'ETSI a proposé les algorithmes (secrets) COMP 128 (cassé en avril 1998), COMP 128-2, et plus récemment, COMP 128-3 pour réaliser l'authentification et la génération de la clé de session [10] Notons que les opérateurs n'utilisent pas l'un de ces algorithmes, mais une version propriétaire

Concernant l'algorithme de chiffrement A 5 , il est public Les version A 5 /2 (chiffrement faible) et A 5 /1 ont fait l'objet d'attaques respectivement en aỏt et en décembre 1999 En revanche, il n'existe pas, à notre connaissance, d'attaque sur la version A 5 /3 de l'algorithme

Intéressons-nous maintenant brièvement à l'imputation des communications Le schéma adopté par les opérateurs repose sur le fait que la SIM est attribuée à un utilisateur donné Toute communication est alors imputée à l'utilisateur porteur de la SIM authentifiée, ce dernier étant supposé s'être identifié via le code PIN Notons cependant qu'il est donné à l'utilisateur le moyen de désactiver la vérification du PIN Si l'utilisateur choisit cette option, en cas de vol, toute communication sera imputée sur son abonnement, et ce malgré l'absence d'authentification du porteur de la SIM

Trang 24

Chapitre 4: Système d exploitation Symbian

L'OS Symbian a été précédemment connu comme EPOC Le système d'exploitation EPOC

a été au commencement développé par Psion pour leurs propres dispositifs de PDA Cependant, Symbian a été fondé pour prendre soin du développement ultérieur d'EPOC Symbian est possédé par Ericsson, Motorola, Nokia, Panasonic et Psion Récemment le nom du système d'exploitation a été changé en OS Symbian

Figure 6 L'architecture de l'OS Symbian v8.0

L'OS Symbian est basé sur une architecture de micro noyau multitâche Les services de système tels que la téléphonie, le middleware de réseau et les moteurs d'application fonctionnent dans leurs propres processus L'OS a été conçu dans l'esprit des dispositifs mobiles, en utilisant des techniques avancées d'orientée objet, menant à une architecture flexible basée sur les composants

4.1 Sécurité au niveau de l OS

4.1.1 Contrôle d'accès

Le contrôle d'accès est implémenté par la demande d'un mot de passe avant d'accorder l'accès au dispositif Ceci assure la confidentialité et l'intégrité à un certain niveau, parce qu'aucune donnée ne peut être lues (confidentialité) ou être écrites (intégrité), sans identifier l'utilisateur et autoriser l'accès au dispositif Cependant, c'est seulement une approche limitée parce qu'après l'identification, l'utilisateur peut accéder à toutes les

Trang 25

données sur le dispositif Et plus important, toutes les applications lancées par l'utilisateur peuvent accéder à toutes les données

4.1.2 Cryptographie et chiffrement

Dans l'OS Symbian, le chiffrement et le déchiffrement des fichiers ne sont pas une partie

du système d'exploitation par défaut Cependant, il y a un module de cryptographie disponible pour des développeurs d'application pour permettre l'implémentation facile des capacités cryptographiques dans leur logiciel Le module de cryptographie de l'OS Symbian se compose des chiffrements symétriques et asymétriques aussi bien que les fonctions de hachage et le générateur de nombre aléatoire [40] Néanmoins, tous les produits ne sont pas délivrés avec le support cryptographique à l'exception de ceux pour les

partenaires du programme « Symbian Platinum Partner »

4.1.3 Système de fichiers

Il y a différents systèmes de fichiers utilisés dans des dispositifs Symbian Par exemple, les fichiers stockés dans la mémoire flash interne et ceux stockés sur la carte de mémoire

démontable Une entité appelée File Server est construite sur eux Elle fournit une interface

uniforme pour accéder à tous les fichiers, et aussi le contrôle de tout l'accès au fichier Néanmoins, il n'y a aucune gestion de permission basée sur l'application initialisant la demande d'accès de fichier dans le serveur de fichiers

Normalement, sur un dispositif cible, le Z: représente la ROM et le C: est une partie de l'espace mémoire disponible de RAM L'OS Symbian est installé dans la ROM, des programmes et les fichiers de tiers sont typiquement installés sur le C:

Trang 26

Les smartphones peuvent embarquer des machines plus « complètes », c'est-à-dire mettant

à disposition du développeur une API bien plus riche A ce sujet, il faut préciser que si l'API de base a été standardisée, de nombreuses extensions ont été proposées par les constructeurs pour supporter des fonctions exotiques telles que clapets, vibreurs, molettes,

et autres Ceci explique pourquoi les applications (et en particulier les jeux) Java les plus élaborées sont spécifiques à une famille de téléphones donnée, malgré l'apparente universalité de ce langage

Les quatre niveaux d'API Java potentiellement disponibles sur les téléphones sont à l'heure actuelle :

CLDC (Connection Limited Devices) v1.0 et v1.1 : la base minimale des API

disponibles

MIDP (Mobile Information Device Profile) v1.0 et v2.0 : une nouvelle base minimale

d'API, sur-ensemble du précédent Ce standard est aujourd'hui largement implémenté dans les téléphones du commerce et on trouve peu d'équipements compatibles CLDC uniquement Les applications compatibles MIDP sont appelées « MIDlets »

JSR (Java Specification Requests) : des extensions d'API normalisées ou en cours de

normalisation Par exemple : JSR 82 (Java API for BlueTooth), JSR 135 (Mobile Media API - MMAPI), etc

Des API spécifiques : dans ce domaine tout est permis

En général, la programmation en Java dans Symbian est comme dans les autres OSs, sauf les cas particuliers suivants [50]:

18

KVM: Kilobyte Virtual Machine

Trang 27

sans support pour les types de données en point flottant (float et double)

sans support pour le Java Native Interface (JNI)

sans support pour le chargeur de classes (class loader) défini par l'utilisateur

sans réflexion

sans support pour les groupes de processus léger (thread groups) et les processus légers démons (daemon threads)

sans support pour le mécanisme de finalization des instances de classe

sans référence fiable (weak reference)

limitations de traitement des exceptions

4.2.2 C++

L'OS Symbian est écrit en C++, il est donc justement normal de développer des applications également en C++ Ceci fournit au développeurs la flexibilité Cependant, cette flexibilité amène avec lui la complexité et dans certain cas, il peut être plus approprié

de développer une application en Java, qui est aussi bien supportée sur d'autres dispositifs utilisant l'OS Symbian

Le développement des applications écrites en C++ demande un environnement de

développement standard (de type gcc, Visual Studio, MetroWerks Code Warrior, Borland C++ Builder X ou autre) et le SDK19 Symbian qui est disponible gratuitement sur son site [48]

Les deux principaux constructeurs utilisant l'OS Symbian fournissent également des versions « adaptées » du SDK, qui gèrent les spécificités de leurs téléphones En effet, le système Symbian est fortement « modulable », chaque sous-système pouvant être réécrit [47] Parmi les SDK « adaptés » disponible actuellement, on trouve UIQ pour Sony Ericsson P800/900, Motorola A920 et les Nokia 60, 80 et 90

A cause des ressources limitées des dispositifs mobiles, les développeurs doivent utiliser quelques particularités qui ne sont pas communes avec les autres systèmes :

19

SDK: Software Development Kit

Trang 28

Figure 7 Le constructeur de deux phases (droit) dans le Symbian et le constructeur

standard (gauche)

4.3 Sécurité des applications du téléphone portable

Comme mentionné dans la section 2.1, les exigences de sécurité changent selon les perspectives que nous considérons Intéressons-nous dans un premier temps aux OS propriétaires fermés, c'est-à-dire ne supportant pas le téléchargement d'applications Du point de vue d'un fournisseur de services, cela signifie soit que son service s'appuie exclusivement sur des services présents par défaut dans les téléphones portables, soit qu'il négocie un accord pour inclure le code nécessaire dans les téléphones portables

Dans le premier cas, le constructeur du téléphone portable pourrait (à la demande de l'opérateur) s'assurer, éventuellement via une évaluation au sens Critères Communs

(Common Criteria20), que les services présents dans le téléphone portable ne puissent être détournés à des fins malveillantes Dans le second cas, l'accord devrait exiger l'évaluation

20

Les Critères Communs (Common Criteria) est une norme internationale qui définit des concepts et des

principes généraux pour l évaluation de sécurité et représente le modèle général d évaluation Il représente des bases pour exprimer des objectifs de sécurité, pour choisir et définir des exigences de sécurité, et pour écrire des spécifications de haut niveau pour les produits et les systèmes Ce standard se trouve sur le site http://www.commoncriteria.org

Trang 29

du code avant installation, afin de vérifier qu'il ne contient ni porte dérobée (backdoor), ni

bogue résiduel Dans les deux cas, le fournisseur de services ne serait pas en mesure d'introduire un programme malveillant dans le téléphone portable

Du point de vue de l'utilisateur, les OS propriétaires fermés rendent impossible le téléchargement de nouvelles applications En d'autres termes, il n'est pas possible, pour l'utilisateur, de télécharger un programme malveillant en vue d'attaque le téléphone portable et/ou les services

Au contraire des OS fermés, les OS (propriétaires) ouverts supportent au minimum le téléchargement de services ou de contenu via des applications écrites en Java, mais aussi le téléchargement d'application (généralement, en C++) exécutées par l'OS, et dans certains cas, la mise à jour de l'OS lui-même Dans ce contexte, le risque est grand de voir l'utilisateur installer, volontairement ou non, une application malveillante Pour faire face à

ce problème, les constructeurs de téléphones portables proposent des solutions complémentaires dont les objectifs sont de garantir la sécurité tout au long du cycle de vie des applications Nous présentons les solutions actuellement déployées dans les différentes phases d'une application (le développement, le téléchargement, l'installation, l'exécution et l'exploitation), ainsi que leur limites

4.3.1 Développement

Les problèmes de sécurité rencontrés dans la phase de développement sont les mêmes que ceux rencontrés dans le monde PC Les applications sont généralement écrites en Java ou C++ (voir section 4.2) en s'appuyant en grande partie sur les APIs standards, mais les développeurs utilisent aussi des APIs propriétaires afin d'optimiser le code, ou d'accéder à des fonctions spécifiques Des telles pratiques augmentent les risques liés à la présence de failles de sécurité, ces APIs « contournant » les mécanismes de sécurité de l'OS De plus, l'existence de bogues résiduels ou de portes dérobées peut être exploités pour attaquer le téléphone portable

Cependant, il existe une différence fondamentale dans le cadre des téléphones portables, à savoir que le code des applications est globalement moins important, rendant ainsi plus efficaces les techniques d'audit de code, ou encore possible l'évaluation, au sens Critères Communs

Trang 30

Nous ne nous étendrons pas davantage sur cet aspect, considérant que les mécanismes de sécurité mis en place dans les phases suivantes ont pour objectifs de précisément de se protéger contre cela et au point de vue des attaquants, ils utilisent toutes les failles de sécurité pour atteindre leurs objectifs

4.3.2 Téléchargement

La phase de téléchargement correspond au chargement d'une application dans le téléphone portable à partir d'un serveur Notons que le téléchargement peut être à l'initiative de l'opérateur (par exemple, pour une mise à jour logicielle), du fournisseur de services (par exemple, lors de l'accès à un portail), ou bien de l'utilisateur (par exemple, le chargement

de nouveaux jeux payants pour la N-Gage) Les applications peuvent également être chargées à partir d'un poste de travail ou d'un autre téléphone portable et dans ce cas, le problème revient à assurer la sécurité dans la phase de l'installation (voir section suivante)

Dans cette phase, les problèmes de sécurité se posent au niveau de l'accès au service et du transfert de l'application Concernant l'accès au service, les mécanismes à mettre en place sont cơté serveur (contrơle d'accès par mot de passe, gestion des abonnements, etc.) et ne rentrent pas dans le carde de ce rapport Au niveau transfert, il s'agit de garantir la confidentialité et/ou l'intégrité des échanges, afin d'empêcher un attaquant d'accéder au code et aux données de l'application, ou de modifier ce code et d'y introduire une faille

A l'image de ce qui fait sur Internet, l'utilisation de TLS/SSL pour sécuriser le niveau transfert nous semble une bonne solution Ainsi, le WAP Forum a spécifié WTLS [54] qui n'est autre que l'implémentation de TLS dans WAP Bien que généralement implémentée dans les téléphones portables, signalons cependant qu'une telle solution n'est pas souvent utilisée Et lorsque c'est le cas, il est rare que l'ensemble des problèmes y afférant soit pris

en compte En particulier, la certification des clés publiques (pour empêcher une attaque de

type man in the middle) n'est généralement pas mise en oeuvre, ou mal, ne tenant pas

compte du fait que la notion de certification est encore moins compréhensible/intuitive pour un utilisateur mobile que pour un utilisateur PC Dans la mesure ó la possibilité de désactiver la sécurité au niveau transport est souvent donnée à l'utilisateur, l'absence de compréhension risque fort de se traduire par le choix de cette option

Trang 31

En résumé, les solutions pour sécuriser le niveau transport, bien qu'existantes, ne sont généralement pas ou mal mises en oeuvre Les opérateurs préfèrent considérer que la sécurité au niveau transport est assurée par la sécurité « physique » du coeur de réseau, oubliant que ce dernier est de plus en plus souvent connecté à Internet

4.3.3 Installation

Une fois l'application téléchargée, et avant son installation, il s'agit de vérifier qu'elle est saine, en particulier, qu'elle ne contient pas de virus et autres programmes malveillants Ceci peut être réalisé soit par des antivirus, soit par des techniques de certification de code

La première n'est, à l'heure actuelle, que rarement utilisée, mais le tapage qu'a alimenté le ver Cabir [3] nous laisse à penser que les distributeurs d'antivirus vont rapidement se lancer

dans la course F-Secure a récemment proposé Mobile Anti-virus pour les séries 60 de

Nokia [18] qui recherche automatiquement tous les fichiers lorsqu'ils sont enregistrés,

copiés, téléchargées, synchronisés ou modifiés Le Symantec Client Security [44] pour le

Nokia 9500 Communicator et Nokia 9300 est une protection par des technologies d'antivirus et de pare-feu intégrés

Notons que les antivirus s'appuient sur la « signature virale » propre à chaque virus pour les détecter Il s'agit de la méthode de « recherche de signature », la plus ancienne méthode utilisée par les antivirus Cette méthode n'est fiable que si l'antivirus possède une base virale à jour, c'est-à-dire comportant les signatures de tous les virus connus Toutefois cette méthode ne permet pas la détection des virus n'ayant pas encore été répertoriés par les éditeurs d'antivirus De plus, les programmeurs de virus les ont désormais dotés de capacités de camouflage, de manière à rendre leur signature difficile à détecter, voire indétectable; il s'agit de "virus polymorphes"

Certains antivirus utilisent un contrôleur d'intégrité pour vérifier si les fichiers ont été modifiés Ainsi le contrôleur d'intégrité construit une base de données contenant des informations sur les fichiers exécutables du système (date de modification, taille, et éventuellement une somme de contrôle) Ainsi, lorsqu'un fichier exécutable change de caractéristiques, l'antivirus prévient l'utilisateur

Trang 32

Le problème revient à s'assurer la sécurité des fichiers de définition de virus (signature virale) dans le premier cas et de base de données dans le deuxième cas D'autre part, il faut s'assurer également que l'antivirus n'est pas infecté par un virus dans tous deux cas et la mise à jour automatique, sécurisée des signatures virales dans la méthode de recherche de signature

L'utilisation d'antivirus est une protection passive, nous pouvons détecter les virus seulement lorsque nous avons le fichier de définition de virus D'autre part, cette approche

ne fonctionne correctement que si nous avons déjà une séparation forte entre un domaine

de confiance ó faire tourner l'antivirus et un domaine « non sécurisé » ó exécuter les applications à surveiller

Une limite importante, que personne n'a été en mesure de contourner jusqu'à présent, est la phase d'installation de l'application « hostile » Sur le Nokia N-Gage par exemple, l'exécution directe d'un « APP » est interdite « pour raison de sécurité » On peut légitimement se demander si le filtrage est effectué sur l'extension ou sur le contenu

Intéressons-nous plus particulièrement à la certification de code Le principe fondamental est de signer numériquement le code afin de s'assurer de son authenticité Actuellement,

deux approches se distinguent : Symbian Signed [49] et MIDP [36]

Suivant l'approche Symbian Signed, toute application téléchargée doit être signée De manière générale, l'installation d'un « SIS » (package d'installation) nécessite au moins deux confirmations de l'utilisateur, sauf si celle-ci a été signé par une autorité reconnue par

le téléphone (par exemple, sur le Sony Ericsson P900, les autorités pré-installées sont :

Baltimore, Entrust, GTE CyberTrust, GlobalSign, RSA Data, Thawte, Verisign et évidement Sony Ericsson et Symbian) Dans le cas de l'absence de signature valide,

l'utilisateur est prévenu, et la possibilité de continuer l'installation de l'application lui est

donnée (message « Unable to verify Continue anyway? » pour Cabir), et ainsi,

d'outrepasser le mécanisme de sécurité En faisant précéder le téléchargement par un

« faux » SMS prévenant de la mise à jour nécessaire du système, il est fort à parier que bon nombre d'utilisateurs continueront l'installation malgré le message de mise en garde

Trang 33

Une fois installées, aucune distinction n'est fait entre les applications signées et les autres :

il en résulte que tout programme malveillant ainsi installé a accès exactement aux mêmes fonctionnalités qu'une application légitime Nous pensons donc que la solution retenue par Symbian Signed n'est pas satisfaisante

Intéressons-nous maintenant à la solution MIDP pour environnement Java J2ME Le principe de base est le même que précédemment, à savoir la signature numérique du code (c'est-à-dire des fichiers jar) à base de l'infrastructure à clé publique Pourtant, la signature associe à ce principe la notion de domaine de sécurité : un domaine de sécurité définit un niveau de certification qui est identifié par une ou plusieurs clés de certification

Tout code signé avec une clé de certification K c est associé au domaine de sécurité identifié

par K c Tout code non signé (ou avec une signature invalide) est associé à un domaine

spécifique (Untrusted Domain) Il est ainsi possible de distinguer les applications présentes

dans le téléphone portable: celles signées par l'opérateur, celles signées par un fournisseur

de service connu, ou encore celles non signées ou avec une signature invalide

Signalons enfin, mais nous n'étudierons pas ce problème dans ce rapport, qu'une attention particulière doit être apportée aux applications soumises à droits pour lesquelles il ne suffit pas de vérifier que l'application est saine, mais il faut également vérifier que l'utilisateur a acquis les droits l'autorisant à y accéder et sécuriser son installation

4.3.4 Exécution

Lorsqu'une application est installée, elle est « exécutable » A ce niveau, il peut sembler inutile de mettre en place des mécanismes de sécurité, dans la mesure ó, pour être installée, l'application a dû être jugée saine Néanmoins, une application saine ne veut pas dire qu'elle ne contient pas de portes dérobées ou de bogues résiduels En outre, le pire ennemi de la sécurité est l'utilisateur à qui on donne encore une fois la possibilité d'outrepasser les mécanismes de sécurité, par exemple en lui demandant de confirmer une

action jugée non sûre (message « Unable to verify Continue anyway? » pour Cabir)

L'API Symbian est extrêmement riche D'autre part, les applications Symbian sont compilées directement en code assembleur ARM, et ont des accès illimités à la plate-forme Une application native Symbian peut virtuellement effectuer n'importe quelle opération sur

Trang 34

le téléphone, à cause de l'absence de modèle de sécurité (pas de notion d'utilisateur, de liste

de contrôle d'accès aux fichiers, etc.)

De plus, une grande partie de l'API se trouve dans des librairies et non dans le noyau, ce qui permet de contourner plus facilement les éventuels mécanismes de sécurité Par exemple, pour envoyer un SMS, et en supposant qu'une confirmation utilisateur soit imposée par l'API, il suffirait d'appeler directement la fonction interne d'envoi de SMS plutôt que de passer par l'API standard pour contourner cette sécurité

Il est donc préférable de mettre en place des mécanismes de sécurité afin de contrôler les actions des applications lors de l'exécution De manière générale, les mécanismes de sécurité à l'exécution dépendent fortement des mécanismes utilisés lors de l'installation

Ainsi, comme nous avons signalé précédemment, la solution Symbian Signed ne permet pas

de distinguer les applications signées de celles non signées Il n'est donc pas possible de contrôler à l'exécution les actions des applications non signées, qui peuvent ainsi accéder aux mêmes fonctionnalités que les applications non signées

Par contre, la notion de domaine de sécurité proposée dans MIDP est utile pour mettre en oeuvre des solutions de contrôle à l'exécution Dans la machine virtuelle Java, les principes

de base consistent d'une part à vérifier que l'exécution est conforme au langage utilisé, et d'autre part, à contrôler l'accès aux ressources et aux données Le premier point est couvert, dans le cas de MIDP, par l'utilisation obligatoire d'un vérificateur de code d octet21

(bytecode) Pour le second point, à chaque domaine de sécurité est associé un ensemble de

droits d'accès, ou privilèges, portant sur les données et les ressources du téléphone portable Pour une application donnée, son domaine de sécurité définit donc l'ensemble des ressources et des données auxquelles elle est autorisée à accéder En particulier, en définissant des droits très restreints pour les applications non signées ou à signature invalide, il est possible de les confiner dans un espace ne leur permettant pas d'accéder aux informations et services sensibles

Bien entendu, lorsqu'ils sont mise en oeuvre, ces mécanismes de sécurité doivent être exempts de failles de sécurité Cela signifie qu'ils doivent faire l'objet d'un audit poussé, ou

21

Voir l'annexe pour une introduction détaillée sur le problème de vérification de code d octet Java

Trang 35

d'une évaluation au sens Critères Communs En particulier, la machine virtuelle Java doit être vérifié en vue d'éliminer les éventuels bogues de programmation A ce niveau, il faut signaler que les risques liés à l'exécution d'un MIDlet « hostile » sont limités par la pauvreté de l'API CLDC/MIDP Il existe des erreurs d'implémentation dans le modèle de sécurité de Java (risque accru compte tenu des compromis imposés par la faible mémoire et

la faible puissance de calcul des téléphones portables), par exemple, l'attaque sur le Siemens S55 [41] permettant d'envoyer un SMS avant l'affichage de la fenêtre de

confirmation De plus, lors de la récente conférence Hack in the Box en Malaisie [23], des

failles de sécurité dans J2ME ont été mises à jour, failles qu'un attaquant peut exploiter pour installer un programme malveillant

A l'heure actuelle, il existe peu d'attaques publiées démontrant des failles dans les MIDlet Java, mais il est probable que de nombreux chercheurs travaillent sur le sujet

4.3.5 Exploitation

Certaines applications fournissent des services de sécurité que d'autres applications utilisent, à l'image d'applications fournissant l'API JSR 177, ou bien WMLScript et ECMAScript pour WAP [53] Ces applications deviennent donc aussi sensibles que le code natif, et requièrent donc le même niveau d'exigence en termes de sécurité Concrètement, dans le cadre de MIDP, cela signifie que ces applications seront associées au même domaine de sécurité que le domaine du code natif

Trang 36

La sécurité des applications du téléphone portable est moins bien gérée Ceci est expliqué par plusieurs raisons : la disparité dans les architectures matérielles, la disparité des architectures d'OS et particulièrement des services de sécurité disponible dans chaque OS,

la diversité des standards L'absence d'attaques à grande échelle n'incite pas les acteurs à prendre les mesures nécessaires Malheureusement, encore une fois, il faudra attendre une telle attaque pour qu'enfin la sécurité soit vue comme un argument commercial, et donc prise en compte

La solution la plus simple est d'empêcher l'exécution d applications malicieuses sur le téléphone portable D'ailleurs, c'est ce que font la plupart des opérateurs : sur une téléphone portable standard, nous pouvons installer que des applications Java qui sont très bien contrôlées (par le modèle de bac à sable de KVM)

Dans le cas d un vrai smartphone, la seule solution est de sécuriser une partie du système et

de s'assurer que le monde non sécurisé ne peut pas agir sur le monde sécurisé C'est assez difficile et aucun téléphone actuel n'utilise cette approche En particulier, il faut s'assurer que les applications sécurisées peuvent acquérir un contrôle exclusif sur l'écran, le clavier

et les autres interfaces quand elles doivent interagir avec l'utilisateur

En d autres termes, les contre-mesures doivent régler les accès des divers composants logiciels (système d'exploitation, code téléchargé, etc.) à différentes parties des systèmes (registre, régions de mémoire, co-processeurs de sécurité, etc.) pendant différentes étapes

Trang 37

de l'exécution (processus de démarrage, exécution normale, mode d'interruption, etc.) par une combinaison des changements de matériel et de logiciel Puisque les contre-mesures efficaces doivent permettre au système de fournir des garanties au sujet de la sécurité immédiatement après le commencement d'opération du système, la plupart des mesures

définissent des notions de la confiance ou des frontières de confiance (également nommés des périmètres de sécurité) à travers des diverses ressources de matériel et de logiciel Ceci

permet au système de détecter des infractions à des frontières de confiance (telles que des accès illégaux aux régions de mémoire) et d'imposer des mécanismes de rétablissement (tels que la mise à 0 des registres du processeur et des régions de mémoire) Ainsi, une frontière de confiance fournit une base naturelle et commode pour le système pour prendre des décisions judicieuses ou de compromis au sujet de sécurité

Pour atteindre ce but, il est obligatoire d utiliser l approche en couche en partant du

matériel : c est l approche nommée l informatique de confiance (Trusted Computing Base

ou TCB) C est en fait un principe récursif, si la couche n-1 est sécurisée et si la couche n-1

a plus de pouvoir que la couche n, alors la couche n-1 peut sécuriser la couche n Ainsi, on

sécurise l unité central, puis le BIOS, puis la mémoire vive, puis la mémoire morte, puis le noyau de l'OS et puis certaines applications de l'OS Cette approche se base sur deux suppositions suivantes :

Supposition 1 : l'utilisation des composants de matériel additionnels augmentent la sécurité considérablement Si on stocke un secret, tel qu'une clé, sur un périphérique

de stockage, il y a alors de bonnes chances que quelqu'un d'autre puisse le lire Plusieurs outils sont disponibles pour détecter les empreintes de clé sur le stockage

ou en RAM La meilleure manière pour éviter d'exposer la clé à tels l'attaque est de stocker la clé dans un endroit séparé, auquel aucun logiciel malveillant ne peut accéder Ceci ne résout pas le problème que la clé doit être transférée à la mémoire vive (RAM) pour être traitée par l'unité centrale La solution est d'avoir un processeur séparé à l'endroit ó la clé est stockée La clé sera traitée là, et il ne la laissera jamais C'est sécurisé Ce genre de stockage et d'unité de traitement dédié est implémenté en tant que carte intelligente, si un composant de matériel

démontable est exigé, ou comme un module de plate-forme sécurisée (Trusted

Trang 38

le système d'exploitation lui-même ou une application, respecte cet attribut, le mécanisme de contrôle d'accès est sécurisé Si autre logiciel ou système d'exploitation est utilisé pour accéder aux données, alors le mécanisme de contrôle d'accès n'assure plus la protection Les améliorations de la programmation système

de contrôle d'accès n'améliore pas le niveau de la sécurité : il y a un besoin de changer la technologie La solution à cette tâche de sécurité est le chiffrement Le chiffrement peut être considéré comme le niveau ultime de la protection de données

Le chiffrage ne protège pas contre détruire le contenu en effaçant un fichier C'est toujours à la portée du contrôle d'accès Nous avons vu que le contenu est bien protégé contre la lecture, car il est chiffré Ce que nous devons protéger avec le niveau ultime de la sécurité sont les clés utilisées pour le chiffrement et le

déchiffrement Ici nous renvoyons à la supposition 1, et nous pouvons alors

conclure : des clés de chiffrement doivent être stockées et traitées dans le matériel dédié tel que les cartes intelligentes ou le TPM

5.1 Renforcer la sécurité des téléphones portables

A partir de la SIM, en basant sur le principe de l informatique de confiance, nous proposons une approche pour améliorer la sécurité des téléphones portables De notre point

de vue, le renforcement de la sécurité des téléphones portables passe par la prise en compte des trois aspects qui sont expliqués dans les trois sous-sections ci-dessous Nous discutons également les solutions et la tendance actuelles qui peuvent être appliquées pour chaque aspect proposé

Trang 39

fondamentaux de tous les services de sécurité D autre part, la supposition 1 notée en

dessus montre que il faut préserver ces secrets et les traiter dans un endroit séparé

L utilisation des composants dédiés passe par deux points suivants :

la carte SIM (ou autre carte) pour tous les services d'authentification, de signature et

de gestion de clés

les composants du téléphone portable pour les opérations de cryptographie nécessitant de la performance (chiffrement symétrique par cryptoprocesseurs), pour

le stockage des données sensibles et volumineuse, ainsi que pour la protection du

code natif (en particulier, le chargeur de démarrage (boot loader) doit être sécurisé

par utilisation de mémoire morte)

L'usage d'un module de co-processeur sécurisé séparé, qui est dédié au traitement de toutes les informations sensibles dans le système est trouvé dans [55][24][25] Chaque information qui est envoyée du co-processeur sécurisé est chiffrée

Beaucoup d'architectures des systèmes embarqués se fondent sur l'identification et la maintenance des zones choisies de son sous-système de mémoire (volatile ou non-volatile, hors puce ou sur puce) en tant que des endroits de stockage sécurisé L'isolement physique est souvent utilisé pour limiter l'accès des zones de mémoire sécurisée aux composants de confiance du système Quand ce n'est pas possible, un mécanisme de protection de

mémoire adopté dans beaucoup de SOCs (System On Chip) embarqués comporte

l'utilisation de matériel surveillant le bus, qui peut distinguer l'accès légal et illégal à ces endroits Par exemple, la solution de sécurité de CrypoCell de Discretix [12] comporte BusWatcher, qui exécute cette fonction L'assurance de l'intimité et de l'intégrité dans la hiérarchie de mémoire est le centre de [43], qui utilise une gestion sécurisée de contexte de matériel, de nouvelles instructions, et des unités de hachages et de chiffrage dans le

processeur Le travail dans [32] décrit un modèle d'exécution dans la mémoire (eXecutable Only Memory} - XOM), et des techniques architecturales pour le mettre en oeuvre, en

Ngày đăng: 27/10/2016, 23:16

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Alves T., Felton D., ARM Ltd., 2004. TrustZone: Integrated Hardware and Software Security. http://www.arm.com/pdfs/TZWhitepaper.pdf Sách, tạp chí
Tiêu đề: TrustZone: Integrated Hardware and Software Security
[2] Anderson R., Kuhn M., 1996. Tamper Resistance - A Cautionary Note. http://www.cl.cam.ac.uk/users/rja14/tamper.html Sách, tạp chí
Tiêu đề: Tamper Resistance - A Cautionary Note
Tác giả: Ross Anderson, Markus Kuhn
Nhà XB: USENIX Association
Năm: 1996
[4] CERT Coordination Center. Vulnerability notes database. http://www.kb.cert.org/vuls/ Sách, tạp chí
Tiêu đề: Vulnerability Notes Database
Tác giả: CERT Coordination Center
[5] Chen Y., Venkatesan R., Cary M., Sinha S., Jakubowski M.H., 2002. Oblivious hashing : A stealthy software integrity veriffication primitive. Proc. Int. Wkshp. Information Hiding Sách, tạp chí
Tiêu đề: Oblivious hashing : A stealthy software integrity veriffication primitive
[6] Chess B., 2002. Improving computer security using extended static checking. Proc. IEEE Symposium on Security and Privacy Sách, tạp chí
Tiêu đề: Improving computer security using extended static checking
[7] Chien. E, Szor P. Blended attack exploits, vulnerabilities, and buffer-overow techniques in computer virus. Symantec White Paper.http://securityresponse.symantec.com/avcenter/whitepapers.html Sách, tạp chí
Tiêu đề: Blended attack exploits, vulnerabilities, and buffer-overow techniques in computer virus
Tác giả: Chien. E, Szor P
Nhà XB: Symantec White Paper
[8] Clarke E.M., Jha S., Marrero W., 1998. Using state space exploration and a natural deduction style message derivation engine to verify security protocols. Proc. IFIP Working Conf. on Programming Concepts and Methods Sách, tạp chí
Tiêu đề: Using state space exploration and a natural deduction style message derivation engine to verify security protocols
[9] Common Vulnerabilities and Exposures. http://cve.mitre.org/ Sách, tạp chí
Tiêu đề: Common Vulnerabilities and Exposures
[11] Detlefs D.L., Leino K., Nelson G., Saxe J., 1998. Extended static checking. Systems Research Center, Compaq Inc Sách, tạp chí
Tiêu đề: Extended static checking
[10] COMP128 (GSM authentication algorithm) tool, version 1.0. http://www.riscure.com/CryptoTools/COMP128.html Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w