Sécurité et protection des données

Les passeports sont des données sensibles. Voici, point par point, ce qui les protège aujourd'hui, ce qui est prévu avant l'ouverture, et qui est responsable de quoi.

Façade de marbre gris et vert de la Grande Mosquée de La Mecque, fenêtres en arc

L'essentiel

  • Chaque agence, et chaque particulier, ne voit que ses propres données.
  • Un mot de passe n'est jamais gardé en clair, et chaque connexion par mot de passe demande aussi un code reçu par e-mail.
  • Chaque fichier est chiffré avec sa propre clé, et ne s'ouvre qu'une fois connecté, jamais par une adresse publique.
  • Les gestes sensibles laissent une trace qui ne peut être ni modifiée ni effacée.
  • Les fichiers d'un voyageur sont effacés automatiquement 30 jours après la date de retour du voyage.
  • Les données de l'application sont hébergées en Irlande, dans l'Union européenne.

Le principe : chacun chez soi

Chaque agence, et chaque particulier, ne voit que les demandes, les passeports et les fichiers qu'il a déposés. Votre compte est lu dans votre session, jamais dans l'adresse d'une page ni dans un formulaire : changer un numéro dans une adresse ne donne accès à rien. Dans la base de données, chaque information est rattachée à son compte, et des tests automatiques vérifient ce cloisonnement.

Notre équipe n'ouvre un dossier que pour le travail qu'il demande : relire un passeport, traiter une demande. Les numéros de passeport y sont masqués d'office ; afficher un numéro en entier demande d'écrire un motif, et laisse une trace.

Prévu avant l'ouverture un compte dédié à chaque agence sur le portail eVisa.

Mots de passe

Nous ne gardons jamais un mot de passe en clair, seulement une empreinte calculée avec scrypt, une méthode volontairement lente, et un sel tiré au hasard pour chaque mot de passe. Personne, pas même nous, ne peut retrouver votre mot de passe à partir de cette empreinte.

Un mot de passe compte au moins 12 caractères, dont une majuscule et un caractère spécial. Les mots de passe les plus courants, et ceux qui contiennent votre adresse e-mail, sont refusés.

Mot de passe oublié : nous envoyons un code à 6 chiffres à votre adresse e-mail. Il vaut 10 minutes et ne sert qu'une fois. Le nouveau mot de passe ferme toutes vos sessions ouvertes. Notre réponse est la même, que le compte existe ou non.

Connexion : toujours un code en plus

Un mot de passe juste ne suffit pas : un code à 6 chiffres est ensuite envoyé par e-mail. Il vaut 10 minutes, ne sert qu'une fois, et nous n'en gardons qu'une empreinte. Il faut donc à la fois votre mot de passe et l'accès à votre boîte e-mail (double authentification).

Si vous vous connectez avec un compte Apple, Google ou Microsoft, c'est ce service qui vérifie votre identité ; nous n'envoyons pas de code en plus.

Un nouveau code est demandé pour les gestes qui engagent : signer l'ordre de traitement d'une demande, télécharger un dossier, changer de mot de passe et, pour un particulier, télécharger son visa. Ce code vaut 5 minutes, pour ce seul geste.

Notre équipe se connecte avec un mot de passe et le code d'une application d'authentification, à chaque connexion.

Une session se ferme après 30 minutes sans activité, et au plus tard après 12 heures. Son cookie n'est pas lisible par les scripts de la page, et nous ne gardons qu'une empreinte de son contenu.

Les rôles de notre équipe

Chaque membre de l'équipe a un rôle : relecture, assistance, exploitation ou finance. Un rôle n'ouvre que les écrans de son travail : la finance ne voit pas les passeports à relire, l'assistance ne voit pas les paiements. Le rôle est relu dans la base de données à chaque page, et chaque accès refusé est noté.

Passeports et fichiers : un stockage privé

Chaque passeport, photo, dossier et visa est chiffré avant d'être enregistré (AES-256-GCM), avec une clé propre à ce fichier. Cette clé est elle-même chiffrée par une clé principale, gardée hors de la base de données. Notre hébergeur ne voit donc que des fichiers illisibles, rangés sous un numéro, sans nom de personne.

Un fichier n'a aucune adresse publique. Il ne s'ouvre que par notre application, une fois connecté : pour l'agence ou le particulier qui l'a déposé, et pour notre équipe quand elle relit le dossier. Un dossier ou un visa se télécharge par un lien signé, valable 5 minutes, et n'est jamais gardé en cache.

À chaque lecture, nous vérifions que le fichier n'a pas été modifié ; s'il l'a été, il est refusé.

Échanges et secrets chiffrés

Les échanges entre votre navigateur, le site et l'application sont chiffrés (HTTPS). Nos serveurs se connectent à la base de données et au stockage des fichiers par des connexions chiffrées, dont le certificat est vérifié.

Les secrets que nous devons garder, comme les mots de passe des comptes du portail eVisa que nous gérons ou les clés d'authentification de notre équipe, sont chiffrés de la même façon que les fichiers. Les codes de connexion et les sessions ne sont gardés que sous forme d'empreinte.

L'accès direct à la base de données que propose notre hébergeur est fermé : seuls nos serveurs s'y connectent.

Accord et signature de chaque demande

À l'inscription, l'agence accepte les conditions générales et l'accord de sous-traitance des données, et la personne qui inscrit l'agence déclare pouvoir l'engager. Nous gardons la version des textes, la date et la personne.

Avant chaque envoi, l'agence signe l'ordre de traitement de la demande avec un code reçu par e-mail. Nous gardons la date, la personne, la version du texte signé et l'empreinte du contenu de la demande (SHA-256). La demande est alors verrouillée : on ne peut plus y ajouter de passeport.

Journal d'audit

Les gestes sensibles sont inscrits dans un journal d'audit : connexions refusées et comptes verrouillés, changements de mot de passe, affichage d'un numéro de passeport en entier avec son motif, ouverture d'un dossier à relire, liens et téléchargements des dossiers et des visas, effacements de fichiers.

Ce journal ne peut qu'être complété : la base de données refuse de modifier ou d'effacer une ligne. Seuls deux rôles de notre équipe, l'exploitation et la finance, peuvent le consulter, page par page, sans export en masse.

Prévu avant l'ouverture une trace de chaque affichage de l'image d'un passeport par l'équipe.

Effacement automatique

Les fichiers d'un voyageur (passeport, photo, dossier, visa) sont effacés automatiquement 30 jours après la date de retour du voyage. L'effacement est réel : le fichier est supprimé du stockage et sa clé est détruite.

Les informations d'identité gardées dans la base de données (noms, numéro de passeport, informations lues et saisies) sont effacées à la même échéance, ou 30 jours après la remise du dossier final si elle est plus tardive. Sans date de retour, l'échéance tombe un an après l'ajout du voyageur, plus 30 jours.

Seule reste une preuve de traitement, sans contenu : dates, statut, nationalité et empreinte de chaque fichier.

Prévu avant l'ouverture l'effacement anticipé, à votre demande, depuis votre espace.

Garde-fous des mises à jour

Chaque base de données porte la marque de son environnement : une version d'essai du service refuse de démarrer sur la base de production, et l'inverse.

Une base qui a reçu de vraies données personnelles porte une seconde marque : les versions d'essai d'une modification refusent alors de s'y connecter, et le vérifient à chaque requête.

Une mise à jour de la base de production demande une confirmation explicite.

Lecture automatique des passeports

Pour lire le texte d'un passeport, nous envoyons l'image de la page à Google Cloud Vision, un service de Google, qui ne renvoie que du texte. Nos propres règles en tirent ensuite les informations, et une personne de l'équipe relit chaque passeport.

Pour recadrer la photo au format du portail, le même service indique seulement où se trouve le visage ; le recadrage est fait chez nous. Aucune comparaison de visages n'est faite.

Nous n'utilisons jamais les passeports pour entraîner un logiciel. Nos copies des images suivent la règle d'effacement ci-dessus.

Hébergement

Les données et les fichiers de l'application sont hébergés par Supabase en Irlande (région eu-west-1), dans l'Union européenne. Les serveurs de l'application tournent chez Vercel, dans sa région de Dublin. Le site public est hébergé par Vercel Inc. (États-Unis).

Les données d'une demande sont ensuite transmises au portail officiel saoudien : c'est inhérent à la demande de visa.

La liste de nos sous-traitants et le rôle de chacun figurent dans la page Confidentialité et RGPD.

Protections contre les attaques courantes

  • Action déclenchée depuis un autre site (CSRF) : le cookie de session n'est pas envoyé avec un formulaire posté depuis un autre site (attribut SameSite).
  • Injection dans la base de données (injection SQL) : chaque requête transmet ses valeurs à part, jamais collées dans son texte (requêtes paramétrées).
  • Code glissé dans un texte saisi (XSS) : les pages affichent les saisies comme du texte, jamais comme du code (échappement automatique de React).
  • Accès au dossier d'un autre : chaque demande, fichier ou photo est vérifié contre le compte de la session ; sinon, la réponse est « introuvable », comme pour un dossier qui n'existe pas.
  • Essais de mots de passe en série (force brute) : après 5 échecs en 15 minutes, le compte est verrouillé 15 minutes ; un code se bloque après 5 essais, et 5 codes au plus sont envoyés par heure. Pour notre équipe, le verrouillage double à chaque série, jusqu'à 24 heures.
  • Fichiers piégés : le type d'un fichier est lu dans son contenu, jamais dans son nom ; seuls les JPEG, PNG, PDF et ZIP sont acceptés, avec une taille maximale. Une archive ZIP est plafonnée en nombre de fichiers, en taille et en taux de compression ; les archives et les PDF protégés par un mot de passe sont refusés.

Qui est responsable de quoi

Pour une agence, l'agence est responsable du traitement des données de ses pèlerins ; nous agissons comme sous-traitant, uniquement sur ses instructions.

Pour un particulier qui nous confie ses passeports et ceux de ses proches, nous sommes responsable du traitement.

Vos droits, et la façon de les exercer, sont décrits dans la page Confidentialité et RGPD.

Prévu avant l'ouverture un modèle de mention d'information, de consentement et d'autorisation parentale, fourni à chaque agence pour ses pèlerins.

Et si un incident arrivait malgré tout

Vous pensez avoir repéré une faille ou un accès anormal ? Écrivez-nous depuis la page contact.

Si une violation touche des données qu'une agence nous a confiées, nous la prévenons sans retard injustifié : c'est à elle, responsable du traitement, de la notifier à la CNIL dans les 72 heures (RGPD, article 33). Si elle touche des données dont nous sommes responsables, nous la notifions nous-mêmes à la CNIL dans les 72 heures quand la loi l'exige, et nous prévenons les personnes concernées si le risque pour elles est élevé (article 34).

Particuliers

Je pars en Omra

Nous préparons votre visa et celui de vos proches, puis nous le remettons dans votre espace voyageur.

Agences

Je suis une agence de voyages

Nous prenons en charge les visas de vos groupes, de la relecture des passeports au dossier final.