Comment Recare protège les données médicales de 300 000 patients ? 🏥
Créer en 2016, Recare est une solution qui coordonne les demandes de transfert de patient entre des hôpitaux et des structures de santé. Exemple : entre des urgences et des établissements MCO (Médecine, Chirurgie et Obstétrique).
Présent en France 🇫🇷 et en Allemagne 🇩🇪, la solution Recare permet de :
- Réduire la Durée Moyenne de Séjour (DMS) au sein des établissements
- Faire gagner du temps aux équipes médicales et administratives
- Centraliser toutes les demandes de transferts sur une plateforme unique
Le problème de Recare
Pour Charles Cote - CTO @Recare, la confidentialité des données médicales est son principal impératif. Il souhaite implémenter le plus haut niveau de confidentialité sur les données.
Voici les différentes problématiques auxquelles il a souhaité répondre :
- Garantir que seuls les professionnels de santé puissent accéder aux données (pas même Recare ou son hébergeur).
- Empêcher les données d'êtres volées même en cas d'accès non autorisé aux serveurs de Recare.
- Dormir sur ses deux oreilles 👂
Le chiffrement de bout-en-bout a été choisi par Charles Cote pour répondre aux problématiques de Recare. C'est une technologie qui permet d'assurer que seuls les utilisateurs autorisés pourront accéder aux données, et non les hackers, les administrateurs, les institutions, les hébergeurs, ou même Recare. En d'autres termes, cela empêche les données d'êtres volées même en cas d'accès non autorisé aux serveurs de Recare.
Cette technologie est beaucoup plus stricte que le chiffrement en transit combiné au chiffrement au repos.
Sans chiffrement de bout-en-bout :
Avec chiffrement de bout-en-bout :
Comment Seald aide Recare à résoudre ses problématiques ?
En mars 2021, Charles contacte Seald pour être accompagné dans l’intégration de chiffrement de bout-en-bout.
À cette époque, Recare avait déjà une implémentation de chiffrement de bout-en-bout, développée en interne avec des librairies open-source, et mise en place très tôt dans le fonctionnement de leur produit.
À la suite d’un audit ayant révélé que l’implémentation développée en interne n’était pas à l’état de l’art, Charles a souhaité se tourner vers une solution externe comme Seald pour plusieurs raisons:
- Cela décharge Recare d’une maintenance et d'audit internes d’un outil complexe, leur permettant de se concentrer sur l’essentiel.
- Cela garantit à Recare que les protocoles de chiffrement employés sont à la hauteur des standards.
- Cela permet de démontrer à ses clients l’inaccessibilité physique des données par Recare (ce qui est toujours arguable quand la solution est interne).
Seald intervient en proposant un SDK de chiffrement de bout-en-bout "as-a-service" pour les développeurs afin de les aider à protéger de manière absolue les données de leurs utilisateurs, sans avoir besoin de compétences en cryptographie.
Stockage des clés privées 🔐
Dans l’implémentation initiale de Seald dans Recare, chaque utilisateur pouvait récupérer une de ses clés privées:
- Dans le stockage du navigateur si l’utilisateur s’est authentifié sur ce navigateur.
- Avec un mécanisme de récupération où l’utilisateur doit recopier un OTP (one-time password) reçu par email.
En toute logique, une fois authentifié dans un navigateur, un utilisateur n’a plus besoin de se ré-authentifier, sauf si le cache du navigateur est effacé.
Le problème auquel Recare a été confronté est que plusieurs de ses clients ont la politique SI de réinitialiser le cache des navigateurs tous les jours… donc certains utilisateurs devaient chaque matin recevoir un OTP par email pour utiliser Recare : c’était inutilisable en l’état.
Pour pallier ce problème, Recare offre un autre mécanisme de récupération silencieux : celui du mot de passe. Le mot de passe est utilisé pour chiffrer une clé privée et cette clé privée chiffrée est sauvegardée de façon distante.
Le mécanisme de récupération où l’utilisateur doit recopier un OTP (one-time password) reçu par email est alors utilisé seulement en dernier recours, lorsque l’utilisateur a oublié son mot de passe et souhaite le réinitialiser.
Mise en cache des clés symétriques 🔑
Lorsque Recare a intégré Seald, la mise en cache des clés symétriques n’était pas proposée. Cela faisait que chaque déchiffrement occasionnait une requête réseau, ce qui dans leur cas pouvait ralentir le chargement des pages.
La raison pour laquelle le cache n’était pas implémenté à l’époque, et n’est toujours pas activé par défaut dans les dernières version du SDK, est que cela empêche une révocation instantanée de l’accès à une clé : la clé restera accessible à quelqu’un qui est révoqué pendant au plus le TTL du cache.
Nous avons fait 2 modifications:
- En v0.14.0: implémenté la serialisation et la réinstanciation des clés symétriques pour permettre de créer manuellement un cache.
- En v0.16.0: implémenté un cache optionnel, par défaut en mémoire uniquement, mais personnalisable pour permettre une implémentation d’un cache persistent.
Gestion des groupes 👫
L’intégration de Seald dans Recare est centrée autour de la fonctionnalité de groupes.
Chaque structure de soins est représentée par un groupe Seald, et chaque professionnel dans une structure de soins est membre de ce groupe.
Quand un dossier patient est émis d’une structure vers une autre il est chiffré pour le groupe émetteur et le groupe cible, et le groupe émetteur est déclaré comme étant le « managing group » pour que chaque membre du groupe puisse gérer les droits de cette clé.
Il y a aussi certains cas où le groupe n’est pas encore créé au moment où le dossier doit être chiffré (cela peut arriver la première fois qu’une structure de soins reçoit un dossier patient).
Dans ce cas, un chiffrement strictement de bout-en-bout n’est techniquement pas possible, mais on peut s’en approcher : le dossier est chiffré pour un UnregisteredUser, ce qui dépose la clé symétrique nue sur les serveurs de Seald en séquestre, et quand le groupe est enfin créé, le serveur de Recare attribue ce UnregisteredUser à ce groupe nouvellement créé, ce qui déclenche le chiffrement par les serveurs Seald de la clé symétrique pour ce groupe.
Dans ce scénario, Recare n’a jamais accès à la clé, et Seald n’a jamais accès aux données.
Les bénéfices de Seald au sein de Recare
Grâce à Seald, Recare va plus loin que les pratiques classiques de sécurité des données. Le chiffrement de bout-en-bout garantit que seuls les utilisateurs autorisés pourront accéder aux données médicales, réduisant considérablement l'impact d'une fuite de données potentielle 🛡️.
Un acteur malveillant qui parviendrait à infiltrer les serveurs de Recare ne serait pas capable d’accéder aux données. C’est une robustesse qu’une certification de l’hébergeur (HDS, ISO 27001, HIPAA, etc.) pour l’hébergement de données de santé n’offre pas.
C'est en assurant ce plus haut niveau de confidentialité sur les données que cela leur permet de gagner et de conserver la confiance de leurs clients en France et en Allemagne.
Enfin, Seald permet à Recare de garantir à ses utilisateurs de toujours être à la pointe de la sécurité, et de suivre l'évolution des technologies dans ce domaine.
Seald est le seul SDK de chiffrement de bout-en-bout certifié au monde. La solution bénéficie d'une certification délivrée par l'ANSSI (l'Agence Nationale de la Sécurité des Systèmes d'Information). La technologie a été auditée par des experts tiers, sur la base d'une analyse de conformité et de tests de pénétration avancés, ce qui garantit à Recare un modèle de sécurité robuste.
Comme toujours, n’hésitez pas à contacter notre équipe pour plus d’informations.
À bientôt 👋