Comment Mon Check-in assure l'intégrité d'un état des lieux ?
Mon Check-in permet à un voyageur de réaliser lui-même son état des lieux d'entrée, depuis son téléphone, en 5 minutes. À la fin, il signe et reçoit une copie. Cette page explique, simplement puis en détail, comment nous assurons que le document signé reste fidèle et vérifiable dans le temps.
En bref
- Enregistrement verrouillé : à la signature, l'état des lieux est enregistré dans notre base de données et ne peut plus être modifié ensuite, ni par le voyageur, ni par le propriétaire, ni par le mandataire.
- Empreinte numérique : à la signature, une empreinte unique de tout le contenu (texte, quantités, réserves, relevés, photos de l'état des lieux d'entrée, signature) est calculée et conservée comme référence.
- Régénération à la demande : le document n'est jamais conservé tel quel ; il est recréé à chaque fois à partir des données enregistrées, et son empreinte est recalculée et comparée à l'empreinte de référence.
- Double détention : dès la signature, une copie identique est remise au voyageur (par email et en téléchargement) et au propriétaire ou au mandataire (dans son tableau de bord). Le constat existe ainsi en double.
- Conservation : les données identifiantes sont conservées 24 mois, puis anonymisées automatiquement (RGPD).
Le détail technique
1. Enregistrement verrouillé
Au moment de la signature, l'état des lieux est enregistré dans notre base de données. Il est horodaté à l'heure de notre serveur (fuseau Europe/Paris) et reçoit un numéro d'enregistrement unique. Une fois enregistré, son contenu n'est plus modifiable depuis l'application, ni par le voyageur, ni par le propriétaire, ni par le mandataire.
2. Empreinte numérique (SHA-256)
À la signature, nous calculons une empreinte de l'intégralité du contenu : l'état de chaque pièce, les réserves, l'inventaire et les quantités, les relevés de compteurs, le signalement, la signature, ainsi qu'une empreinte de chacune des photos de l'état des lieux d'entrée. Cette empreinte est conservée comme référence. SHA-256 est une fonction de hachage standard, utilisée comme empreinte numérique d'un contenu.
3. Régénération à la demande
Le document PDF n'est jamais conservé en l'état. Chaque fois qu'il est consulté ou téléchargé, il est recréé à partir des données enregistrées. À cette occasion, son empreinte est recalculée et comparée à l'empreinte de référence ; le résultat de cette comparaison figure dans le dossier de preuve.
4. Double détention
Dès la signature, une copie identique de l'état des lieux est remise au voyageur (envoyée par email et proposée en téléchargement sur l'écran de validation) et au propriétaire ou au mandataire (dans son tableau de bord). Le constat existe ainsi en double dès le premier jour.
5. Conservation et RGPD
Les données identifiantes sont conservées 24 mois, puis anonymisées automatiquement. Les modalités complètes figurent dans notre politique de confidentialité.
Photos de sortie
En complément de l'état des lieux d'entrée, le propriétaire ou le mandataire peut ajouter des photos prises après le départ du voyageur. Nous conservons le fichier d'origine. Lorsque la photo contient des métadonnées renseignées par l'appareil qui l'a prise, nous lisons et affichons telles quelles la date de prise de vue et, le cas échéant, les coordonnées de géolocalisation. Les fichiers HEIC (photos iPhone) sont convertis pour l'affichage, le fichier d'origine étant conservé. Elles constituent un élément complémentaire et ne font pas partie du périmètre scellé par l'empreinte de l'état des lieux.
Les dates de prise de vue et coordonnées de géolocalisation des photos de sortie sont issues, lorsqu'elles existent, des métadonnées (EXIF/GPS) de l'appareil ayant pris la photo.
Le dossier de preuve
Le dossier de preuve est un document PDF que le propriétaire ou le mandataire peut générer à tout moment depuis son tableau de bord. Il rassemble en un seul fichier :
- L'état des lieux d'entrée : état des pièces, réserves, inventaire, relevés de compteurs, photos de l'état des lieux d'entrée et signature.
- Une annexe d'intégrité et de traçabilité : journal de signature (numéro d'enregistrement, date et heure, langue, adresse IP et appareil du signataire), journal d'envoi de la copie au voyageur, empreinte d'intégrité (SHA-256) et résultat de sa re-vérification, et une note expliquant comment l'intégrité et la traçabilité sont assurées. L'empreinte peut être recalculée en ligne par un tiers, sans notre intervention.
- Le cas échéant, des photos de sortie, ajoutées par le propriétaire ou le mandataire après le départ du voyageur. Élément complémentaire, présenté dans une section distincte : elles ne font pas partie du périmètre scellé par l'empreinte.
Régénéré à la demande depuis notre base de données, il vise à fournir, en cas de litige, des éléments de preuve de l'état des lieux d'entrée et des moyens qui en assurent l'intégrité.
Pour aller plus loin dans le détail
Le détail ci-dessous récapitule les moyens techniques mis en œuvre. Sa lecture n'est pas nécessaire pour comprendre les points précédents.
Horodatage et identifiants
- Horodatage de la signature à l'heure de notre serveur, en fuseau Europe/Paris (forcé côté PHP par date_default_timezone_set, et aligné côté MySQL en fixant le décalage de la session à l'offset de Paris, heure d'été comprise), pour des comparaisons « par jour » cohérentes entre l'application et notre base de données.
- Numéro d'enregistrement de huit caractères hexadécimaux en majuscules, non séquentiel, généré par strtoupper(bin2hex(random_bytes(4))), avec contrôle d'unicité en base (regénération en cas de collision).
- Jeton d'accès au document (lien du PDF) de trente-deux caractères hexadécimaux, généré par bin2hex(random_bytes(16)) ; il sert aussi de clé d'idempotence à l'événement de facturation.
- Identifiant de logement au format UUID v4 (environ 122 bits d'entropie), non énumérable ; l'accès du voyageur passe exclusivement par le scan du QR code placé dans le logement (réécriture .htaccess de moncheckin.fr/<uuid>), avec en option un lien de secours HMAC sans état, signé et expirant sous environ 48 heures, qui ne révèle pas l'UUID.
- Au moment de la signature, l'adresse IP et l'agent utilisateur (User-Agent) du signataire sont enregistrés et consignés dans le dossier de preuve.
Signature et empreinte d'intégrité
- Signature manuscrite capturée via l'API Canvas HTML5, exportée en image PNG encodée en base64 (data URL), conservée telle quelle (colonne LONGTEXT) et incluse dans l'empreinte ; pour l'incrustation au PDF, elle est aplatie sur fond blanc et ré-encodée en JPEG (sans canal alpha, pour la robustesse du moteur PDF).
- Empreinte SHA-256 calculée sur une sérialisation canonique et déterministe du contenu : structure JSON à ordre de champs fixe, requêtes triées (ORDER BY), options JSON_UNESCAPED_UNICODE, JSON_UNESCAPED_SLASHES et JSON_INVALID_UTF8_SUBSTITUTE. Le contenu est relu depuis notre base de données, jamais depuis les données envoyées par le formulaire, ce qui rend l'empreinte recalculable à l'identique ultérieurement.
- Périmètre scellé par l'empreinte : état de chaque pièce, réserves, inventaire et quantités, relevés de compteurs, signalement, signature, ainsi qu'une empreinte SHA-256 de chaque photo de l'état des lieux d'entrée (les images sont scellées par leur propre hash, pas seulement référencées).
Photos
- Photos du parcours voyageur capturées en direct via getUserMedia (caméra arrière privilégiée, facingMode environment), sans aucune option d'accès à la galerie (capture temps réel uniquement).
- Filigrane appliqué côté serveur (bibliothèque GD) sous l'image, le canevas étant agrandi vers le bas pour ne jamais masquer le contenu : moncheckin.fr, horodatage serveur et logement.
- Photos de référence du propriétaire figées par snapshot (copie d'octets, sans ré-encodage) au moment de la signature, donc indépendantes des originaux : le propriétaire peut ensuite les modifier ou les supprimer sans affecter l'état des lieux signé.
- Stockage en fichiers (notre base de données ne conserve que le chemin relatif), rangés en sous-dossiers mensuels (AAAA-MM), nommés par trente-deux caractères hexadécimaux aléatoires (bin2hex(random_bytes(16))), au format JPEG (qualité 88), côté le plus long ramené au plus à 2560 pixels (jamais agrandi en deçà).
- Photos de sortie : fichier d'origine conservé (préserve les métadonnées), lecture EXIF/GPS native (exif_read_data ; pour le HEIC, lecture via Imagick et conversion JPEG pour l'affichage).
Conservation et sécurité
- HTTPS forcé sur l'ensemble du site (redirection 301 de HTTP vers HTTPS), en-tête HSTS (Strict-Transport-Security, durée d'un an) imposant l'usage de HTTPS côté navigateur, et certificat TLS Let's Encrypt.
- Sessions PHP natives ; le cookie de session (PHPSESSID) porte les attributs HttpOnly, Secure et SameSite=Lax. Clés de session distinctes pour l'espace propriétaire (mc_owner_id) et l'espace opérateur (mc_admin_id).
- Chaque fichier (photo, document) est servi via un point d'accès PHP contrôlé qui vérifie la session et la propriété de la ressource (ou, pour une photo en cours de dépôt, un jeton de session d'upload), jamais en accès direct : le répertoire de stockage est en Deny all.
- Protection CSRF (jeton) sur tous les espaces authentifiés ; mots de passe propriétaires hachés en bcrypt (password_hash).
Tâches automatisées (crons quotidiens)
Des tâches planifiées s'exécutent automatiquement, sans intervention manuelle :
- Anonymisation des données identifiantes au-delà de 24 mois : effacement du nom, de l'email, de la signature, du signalement, des réserves, des photos (fichiers et enregistrements), ainsi que de l'adresse IP, de l'agent utilisateur et de l'empreinte.
- Sauvegardes quotidiennes : export SQL de notre base de données (colonnes générées exclues) et archive ZIP du stockage, déposés dans un répertoire protégé (Deny all), rétention 30 jours glissants (rotation par date de fichier), avec copie hors-site (principe 3-2-1).
- Renvoi automatique des emails (toutes les 2 à 3 heures) : le statut de délivrance est suivi via le webhook Brevo (authentifié par jeton). En cas d'échec temporaire de distribution (soft bounce), la copie est renvoyée automatiquement, avec un plafond de 3 tentatives, un backoff de 6 heures et une fenêtre de 7 jours.
- Purge des photos non rattachées de plus de 24 heures : pendant un parcours, les photos sont déposées progressivement avant la signature ; si le voyageur n'achève pas l'état des lieux (abandon avant signature), ces photos restent sans rattachement et sont purgées. Les photos d'un état des lieux signé ne sont jamais concernées (elles suivent l'anonymisation à 24 mois).
- Supervision : un contrôle interne (toutes les 2 heures) vérifie notre base de données, une page de santé (/health) et la configuration de paiement, et alerte l'équipe support Mon Check-in par email en cas d'anomalie (avec anti-spam, une alerte par type et par heure) ; les erreurs PHP fatales sont détectées (register_shutdown_function) ; une sonde externe indépendante (UptimeRobot) interroge /health toutes les 5 minutes.
L'ensemble de ces mesures vise à faire de l'état des lieux un élément de preuve fiable et vérifiable. En cas de litige, son appréciation relève de la plateforme de réservation concernée ou du juge compétent.
Découvrir Mon Check-in Découvrir Mon Check-in pour les conciergeries