La carte SIM (de l'anglais Subscriber Identity Module) est une puce contenant un microcontrôleur et de la mémoire. Elle est utilisée en téléphonie mobile pour stocker les informations spécifiques à l'abonné d'un réseau mobile, en particulier pour les réseaux de type GSM ou UMTS. Elle permet également de stocker des applications de l'utilisateur, de son opérateur ou dans certains cas de tierces parties. D'autres systèmes de téléphonie mobile comme le CDMAOne, le PDC japonais ou le CDMA 2000 défini par le 3GPP2 prennent en charge optionnellement une telle carte.
Le choix de l'intégration d'une carte à puce dans les systèmes de téléphonie mobile est basé sur la nécessité de disposer des éléments suivants :
Il convient d'abord de signaler que carte SIM est un abus de langage (un raccourci en fait), SIM désignant en fait l'application GSM résidant sur une carte, nommée UICC (pour Universal Integrated Circuit Card). Sur une même UICC, on peut très bien imaginer une SIM et plusieurs USIM (l'équivalent de l'application SIM pour l'UMTS (la téléphonie de 3e génération, standard majoritaire se plaçant dans la continuité du GSM)).
L'UICC et l'application SIM gèrent l'authentification de l'abonné dans le réseau GSM (l'USIM pour le réseau UMTS) et génère des clés qui permettent le chiffrement du flux de données, ceci étant réalisé au sein du terminal mobile.
L'UICC peut également contenir et exécuter des applications sur la base du SIM Application Toolkit (USIM Application Toolkit dans le cas de l'UMTS) et d'un environnement applicatif Java Card. Ces applications sont généralement la propriété de l'opérateur qui peut les télécharger sur la carte.
Le protocole utilisé à l'origine sur la carte SIM est le protocole de base de la carte à puce, le protocole T=0. Les caractéristiques principales de ce protocole sont les suivantes :
Deux nouveaux protocoles ont été ajoutés en 2006 et 2007 à savoir :
Le système d'exploitation des cartes SIM est le plus souvent propriétaire, codé par les encarteurs et généralement inscrit sur les composants par les fondeurs. Microsoft a tenté au début des années 2000 de proposer un système Windows Mobile for Smart Card, sans succès. L'initiative a été abandonnée, les opérateurs préférant l'expertise propriétaire de leurs fournisseurs.
La mémoire est organisée en répertoires et fichiers (identifiant de l'opérateur, données liées au réseau, numéros d'appels d'urgence, entrées du répertoire...). Le micro-contrôleur assure l'accès à ces données (droits), les fonctions de cryptographie (par exemple liées au code PIN) et l'exécution des applications de l'opérateur.
Le système d'exploitation des cartes SIM est le plus souvent propriétaire, codé par les fabricants de cartes. Les cartes SIM de générations plus récentes sont capables d'héberger des applications destinées à l'abonné, comme par exemple l'information à la demande (météo, horoscope). Ces applications sont le plus souvent décrites dans un sous-ensemble du langage Java : le Java Card, spécifié dans le cadre du Java Card Forum.
La carte dispose de la possibilité de modifier et mettre à jour à distance le contenu de certains fichiers de la carte par téléchargement over the air (OTA). Le canal SMS peut être utilisé pour cela depuis longtemps de manière transparente au travers du terminal mobile. Un autre système, nommé Bearer Independent Protocol (BIP) permet de réaliser un téléchargement à partir d'autres média proposés par le terminal (par exemple GPRS).
Cela ouvre des horizons d'applications comme la sauvegarde du répertoire de la SIM sur un serveur.
Le verrouillage SIM (ou SIM lock) permet aux opérateurs de téléphonie mobile de restreindre l'utilisation de leur terminal mobile (téléphone) à une carte SIM ou un groupe de cartes SIM. De ce point de vue, le SIM Lock n'est pas une fonctionnalité de la carte SIM, mais du téléphone qui identifie une carte pour fonctionner normalement. Cette fonctionnalité est demandée par les opérateurs ou fournisseurs de service qui subventionnent l'achat de terminaux et qui ne souhaitent pas en retour que ces terminaux soient utilisés chez leurs concurrents.
À ce jour, ce type de verrouillage d'un téléphone peut limiter l'utilisation d'un terminal grace à l'exploitation d'informations sur la carte SIM au niveau :
Le verrouillage le plus utilisé est celui forçant un opérateur donné (service provider lock ou SP-lock). Les téléphones proposés à la vente par les opérateurs de téléphonie mobile sont souvent verrouillés et moins onéreux que les mêmes modèles sans verrou, du fait des revenus supplémentaires attendus de la part de l'abonné sous contrat.
Le verrouillage le plus restrictif est celui forçant l'utilisation d'une carte SIM unique donnée.
Un téléphone peut être déverrouillé en entrant un code spécifique au clavier. Dans certains cas, l'opérateur peut procéder à l'opération à distance. Le déverrouillage nécessite la connaissance du numéro IMEI d'identifiant du téléphone (obtenu en tapant *#06# au clavier). Il existe des cadres légaux (en Europe par exemple, mais également à des niveaux nationaux) qui imposent aux opérateurs utilisant cette fonctionnalité de donner à l'utilisateur qui le demande la faculté de déverrouiller leur téléphone à l'issue d'une période donnée (6 mois selon la Commission Européenne).