Oui
ou non, la carte Vitale contient-elle des informations confidentielles
sur son porteur, et n’importe qui peut-il en prendre connaissance
à son insu ? Des doutes de plus en plus fondés
s’exprimant sur Internet, il est grand temps de reprendre l’exploration
là où nous l’avions laissée, il y a bientôt
trois ans.
Fin 1998, les assurés sociaux reçoivent leurs cartes
Vitale, en remplacement des cartes et « extraits de
cartes » papier. Les
ouvrages de l’auteur ayant
déjà expliqué comment « lire et
écrire dans les cartes à puce », des petits
curieux jettent un coup d’œil sur le contenu de leur nouveau
Sésame. Intrigué par quelques octets évoquant son
numéro de SS, l’un d’eux ose écrire, dès le
2 mars 1999, au Directeur de la Logistique et de l’Exploitation du
GIE Sesam Vitale, pour lui demander un « mode
d’emploi » technique détaillé. La
réponse de Dominique Barret ne tarde pas: «
Nous ne diffusons aucun renseignement sur
le mode de stockage des informations, qui d’ailleurs sont codées
afin d’éviter leur détournement pour un usage non
autorisé (respect de la vie privée) ».
Dont acte! Elle précise toutefois que
« différentes informations publiques » se
trouvent sur le site www.sesam-vitale.fr, et que l’on peut consulter le
contenu de la carte sur les points de mise à jour situés
dans les CPAM. Parallèlement, des prospectus informatifs sont
largement diffusés, qui affirment noir sur blanc que
«
la carte Vitale contient
toutes les informations [...]
numéro
de SS, caisse d’affiliation, validité des droits, liste des
bénéficiaires avec leur date de naissance,
éventuellement prise en charge à 100 % ».
L’équivalent d’une carte « papier », donc,
qui arborait la mention bien visible «
Cette carte est personnelle, car elle
comporte des INFORMATIONS CONFIDENTIELLES ». Un
rapprochement avec « l’extrait de carte », fourni
pour «
justifier de sa
qualité d’assuré social sans fournir de renseignements de
caractère confidentiel », révèle
bien ce qui est considéré ou non comme confidentiel.
Codage n'est pas cryptage
Comment expliquer, alors, que des prospectus émis par les CPAM,
pas plus tard qu’en janvier 2005, affirment que la carte Vitale
«
ne contient pas
d’informations confidentielles », mais juste des
«
renseignements
administratifs » ? Entre ces deux
époques, beaucoup d’eau a coulé sous les ponts! En
août 2002,
Pirates
Mag’ 12 publiait le fameux article
Explorer… ou cloner la carte Vitale,
dans lequel nous écrivions en toute bonne foi «
il paraît évident qu’un
cryptage relativement élaboré doit être
appliqué », car nous avions
démontré que les données enregistrées dans
la carte résidaient dans des zones aucunement
protégées en lecture. Pauvre naïf que nous
étions: personne n’avait parlé de
« cryptage », mais seulement de
« codage » ! Enregistrer la lettre V
sous la forme des cinq bits 10110, c’est bel et bien un
« codage » au sens informatique du terme, mais
qui n’assure aucune confidentialité. En préparant son
ouvrage
Plus loin avec les cartes
à puce, paru en avril 2004, l’auteur est donc
allé… un peu plus loin!
Remarquant que la carte Vitale semblait appartenir à la famille
SCOT de Bull CP8, il a découvert qu’en supprimant les deux
premiers bits de chaque mot de quatre octets, puis en opérant un
découpage en blocs de cinq bits (pour les lettres) ou de quatre
bits (pour les chiffres), on retrouvait, « en
clair », les données qu’affichent les lecteurs de
poche du commerce.
Et les informations vraiment confidentielles, alors? Renseignements
pris (art. R.161-332 du décret du 9 avril 1998), seul un
professionnel de santé est habilité, par le truchement de
sa carte « CPS », à consulter les
renseignements relatifs à l’ETM (exonération du ticket
modérateur, ou droits à remboursement à
100 %), et semble-t-il les dates de naissance des
bénéficiaires (jusqu’à 19, de moins de 16 ans -
sans doute en prévision de cas de polygamie?).
Mais lorsque l’assuré consulte le contenu de sa carte (y compris
les données confidentielles qu’elle «
ne contient pas ») sur
des bornes de mise à jour en libre-service, où sont donc
le professionnel de santé et sa CPS? Comme il n’y a aucun code
PIN à présenter, n’importe qui pourrait donc lire ainsi
la « zone privée » d’une carte Vitale ne
lui appartenant pas…
L'Affaire
Juillet 2003: un développeur d’applications
« métier » pour professionnels de
santé, Jérôme Cretaux, tombe sur une faille de
sécurité dans les composants logiciels (les API) que le
GIE Sesam Vitale fournit aux éditeurs de progiciels. Celle-ci
permettrait, dans certaines situations, de lire les données
confidentielles sans montrer patte blanche.
Il prévient le GIE, puis la CNIL, mais a-t-on jamais vu une
« autorité » institutionnelle faire amende
honorable? Bref, l’affaire s’enlise, se fourvoie sur le terrain
judiciaire, et fait quelque bruit sur Internet. Simultanément,
des médecins remarquent, de leur côté, certaines
bizarreries informatiques. Ne plaisantant pas avec le secret
médical, ils cherchent à se forger leur propre opinion et
ne tardent pas à faire d’inquiétantes découvertes:
le code PIN de leur CPS enregistré « en
clair » dans la base de registres de
Windows, des logiciels
« agréés » mais peu rigoureux quant
à la présence ou non d’une CPS pour lire les
données confidentielles des patients, etc. Des associations de
défense des assurés sociaux se saisissent de la question,
et c’est ainsi que l’ADAS, sous l’impulsion de sa porte-parole, le Dr
Martine Marchand, finit par ouvrir son site (
www.webzinemaker.com/adas)
à tous ces professionnels que l’on ne veut pas écouter.
API or not
API? That is the question...
Tout éditeur de progiciels de lecture de cartes Vitale est
invité à se rapprocher du GIE Sesam Vitale, qui lui
fournira (moyennant certains engagements) des API facilitant au maximum
son travail. Comme l’explique la figure 1, ces composants
logiciels prennent en charge tout le dialogue de « bas
niveau » (ISO 7816) avec la carte Vitale, et s’il y a lieu
la CPS, au travers d’un lecteur de cartes à puce, en
général « bi-fente ».
Concrètement, l’application réclame les données
« bénéficiaire » à l’API.
Celle-ci lit alors physiquement la carte Vitale, et retourne plus ou
moins de données selon qu’elle a détecté ou non la
présence d’une CPS dans le lecteur.
Cette architecture paraît séduisante, dans la mesure
où les échanges entre les cartes et le lecteur pourraient
être cryptés, sans mettre le développeur dans le
secret, grâce aux puissantes fonctions sécuritaires qui
résident « par construction » dans les
puces des deux cartes. Cela interdirait tout
« contournement » des API par dialogue direct
avec le lecteur de cartes, ou carrément avec la carte.
Hélas, tout porte à croire que le
cérémonial de la présence conjointe des cartes du
patient et du médecin n’est qu’une mise en scène de
théâtre! Elle contribue, peut-être, à la
sécurisation des FSE (feuilles de soins électroniques),
mais certainement pas à celle des données personnelles.
Comment en avoir le coeur net? Tout bonnement en inspectant des cartes
Vitale au moyen d’un lecteur ISO 7816
« générique », sans recourir aux
API! Même si la lecture du cahier des charges du GIE, librement
téléchargeable sur son site, facilite
l’interprétation, une documentation générale sur
les cartes SCOT peut suffire.
On sait bien (voir
Pirates
Mag’ 12) qu’une commande BC C0 00 00 08
permet de déterminer la dernière adresse de l’espace
mémoire de la carte, la première étant
invariablement 0200h. Typiquement (ADMAX=2188h), on trouvera ainsi, de
2128h à 2180h, une « zone de fabrication »
contenant les pointeurs de toutes les zones intéressantes (dans
notre cas, l’espace à lecture libre s’étendrait de 0288h
à 2180h). Cela étant posé, une commande BC B0 02
88 04 renverra le contenu du premier mot de 32 bits, et BC B0 21 80 04
celui du dernier. Entre les deux, que de choses à
découvrir! Juste avant la zone de fabrication, quelques mots
font penser au « volet mapping » mentionné
page 20 du cahier des charges V1.40. Imaginons ainsi qu’une
commande BC B0 20 F8 18 retourne les données suivantes:
3F FF C3 88
20 3F C3 50
20 80 02 F0
00 3F C2 B8
2D 3F C2 A0
2C FF C2 98
Parmi les « pointeurs » (?) C388h à C298h,
02F0h attire l’attention. Faisons donc BC B0 02 F0 14, et livrons-nous
au très simple décodage des deux premiers mots lus:
3F FF F5 40 0011
1111 1111
1111 1111 0101 0100
0000
24 08 43 FF 0010 0100 0000 1000 0100 0011 1111 1111
3F FF FF FF
3F FF FF FF
3F FF FF F8
En ignorant les deux premiers bits de chaque mot, puis en formant des
groupes de quatre bits, on extrait facilement les chiffres BCD 5
4 0
9 0
2
et précisément, la date de naissance de l’unique
bénéficiaire est 02/09/1954!
Renouvelons l’opération avec la carte d’un assuré
né le 10/04/1925:
3F 8F F2 50 0011 1111 1000 1111
1111 0010 0101 0000
10 40 43 FF 0001 0000 0100 0000 0100 0011 1111 1111
3F FF 96 02 0011 1111 1111 1111 1001 0110 0000 0010
04 FF FF FF 0000 0100 1111 1111 1111 1111 1111 1111
3F FF FF F9
On lit bien 2
5 0
4 1
0 mais aussi
96 02 13. Or, l’assuré souffre
d’une affection de longue durée (ALD), au titre de laquelle il
est pris en charge à 100 % à compter du13/02/96!
Sans commentaire… Notons simplement que cette ETM (exonération
du ticket modérateur) n’est pas bornée dans le temps. Si
elle l’était, gageons qu’une seconde date serait
« codée » dans les quelques octets
à FFh qui suivent.
Aux abris!
Il est facile d’imaginer les conséquences que pourrait avoir la
lecture de ces informations par un tiers non habilité (banque,
employeur, assureur, mutuelle…), à qui on confierait sa carte
Vitale, convaincu qu’il ne pourra y lire que des données non
confidentielles. On comprend qu’il serait fort simple de
développer un petit logiciel PC/SC indiquant, par oui ou par
non, si une carte Vitale renferme des droits à 100 % ou
pas, révélant donc une éventuelle maladie grave.
Et le secret médical, alors? La carte Vitale
bénéficierait-elle d’une dérogation?
Tant de légèreté, pour ne pas dire de mensonges,
est inquiétant à l’heure où on nous prépare
un « dossier médical personnel » que
même le conseil de l’ordre des médecins qualifie de
« boîte de Pandore » (bulletin
n° 3 de mars 2005). Mais dormons tranquilles: il ne
résidera pas dans la carte Vitale, celle-ci (en version 2, avec
photo mais toujours sans code PIN?) ne servira qu’à
« sécuriser » sa consultation. Sur
Internet?
Un seul mot d’ordre, donc: dans l’état actuel des choses, ne
laisser lire nos cartes Vitale que par des professionnels ayant su
mériter notre totale confiance. De toute façon, le
consentement (désormais éclairé) de
l’assuré est requis avant toute lecture!
Patrick Gueulle Tous les ouvrages de l'auteurVous voulez soutenir une information indépendante ? Rejoignez notre
Club privé !
[homepage] [RSS] [archives]
[contact & legal & cookies] [since 1997]