Aller au contenu
Kamka IT

Le relais des notifications

Pour qu'un message de votre ERP arrive sur votre téléphone, il doit passer par Apple ou par Google. Notre relais fait le lien. Le message y passe chiffré pour votre seul téléphone : une enveloppe scellée, que ni le relais, ni Apple, ni Google ne peuvent ouvrir.

  1. 01

    Votre téléphone

    Crée une paire de clés pour chaque société. La clé privée ne le quitte jamais ; il donne la clé publique à votre ERP.

    Seul à avoir la clé
  2. 02

    L'ERP de votre société

    Chiffre le message pour votre téléphone, avec sa clé publique, puis signe l'envoi.

    Le message est le sien
  3. 03

    Notre relais

    Vérifie que l'envoi vient bien de votre ERP, puis transmet l'enveloppe telle quelle.

    Une enveloppe fermée
  4. 04

    Apple ou Google

    Acheminent l'enveloppe jusqu'à votre téléphone, comme pour toutes les apps.

    Une enveloppe fermée
  5. 05

    Votre téléphone

    Ouvre l'enveloppe avec sa clé privée et affiche le message.

    Le seul à le lire

Qui voit quoi

Le relais est hébergé par Kamka IT sur un serveur loué chez OVHcloud, à Gravelines (France), à l'adresse push.kamdoo.app. Son code est public : kamka-ai/kamdoo-relais.

QuiVoitNe voit pasGarde
Notre relais L'identifiant de notification de votre téléphone (le temps d'un envoi), une étiquette de 16 caractères qui dit au téléphone quelle clé utiliser, l'adresse IP du serveur qui envoie (et celle du téléphone quand il s'inscrit), l'heure et la taille de l'enveloppe. Le texte du message, son expéditeur, la fiche concernée, votre nom. Rien : ni base de données, ni fichier (le détail juste en dessous).
Apple ou Google L'identifiant de votre téléphone, l'enveloppe chiffrée, l'étiquette, l'heure. Sur iPhone, le seul texte en clair est « Kamdoo » et « … », remplacé sur le téléphone par le vrai message. Le texte du message, son expéditeur, votre ERP. L'enveloppe au plus une heure si votre téléphone est éteint, puis elle est abandonnée. Selon leurs propres règles.
L'ERP de votre société Le message, puisque c'est le sien, la clé publique de votre téléphone et l'adresse de livraison donnée par le relais. La clé privée du téléphone, ni son identifiant Apple ou Google : il est scellé dans l'adresse de livraison. L'adresse de livraison et la clé publique, tant que le téléphone est inscrit. Elles sont régies par votre société.
Kamka IT En dehors du relais, rien : l'app n'envoie rien d'autre à Kamka IT, ni statistique ni rapport. Vos messages, vos fiches, vos identifiants, l'adresse de votre ERP. Rien.

Ce que le relais garde, exactement

Le relais n'a pas de base de données. Il ne retient que le strict nécessaire, en mémoire, et l'oublie aussitôt.

  • Aucune base

    Rien n'est écrit sur disque : ni votre téléphone, ni vos messages, ni votre société.

  • Chez votre ERP

    L'identifiant de notification de votre téléphone n'est pas stocké chez nous : il est scellé (chiffré avec une clé que seul le relais connaît) dans l'adresse de livraison. C'est votre ERP qui garde cette adresse ; le relais l'ouvre le temps d'un envoi, puis l'oublie.

  • 10 minutes au plus

    Un message trop long pour tenir dans une notification attend en mémoire que votre téléphone vienne le chercher. Il est remis une seule fois, puis effacé ; s'il n'est pas demandé, il est effacé au bout de 10 minutes.

  • 2 minutes au plus

    L'adresse IP de qui appelle le relais est comptée en mémoire pour bloquer les abus (trop de demandes à la minute), puis effacée. Elle n'est jamais écrite.

  • Aucun journal

    Le relais n'écrit que son démarrage et, si Google refuse un envoi, le code d'erreur. Jamais d'identifiant, d'adresse ni de contenu. Le serveur qui l'héberge ne journalise pas les requêtes du relais.

Pour les techniciens : les normes et le détail
  • Le code est public, sous licence LGPL-3 : le relais sur github.com/kamka-ai/kamdoo-relais, le module Odoo kamdoo_connect sur github.com/kamka-ai/kamdoo-odoo. Chacun peut vérifier ce que dit cette page.
  • Chiffrement de bout en bout selon la norme du Web Push, celle des navigateurs : RFC 8030, RFC 8291 (échange de clés ECDH sur la courbe P-256, dérivation HKDF-SHA-256, chiffrement AES-128-GCM, encodage aes128gcm) et RFC 8292 (signature VAPID en ES256).
  • Les clés du téléphone (clé privée P-256 et secret d'authentification) sont rangées dans le trousseau d'iOS, partagé seulement avec l'extension de notification de Kamdoo, et dans le stockage chiffré d'Android.
  • Odoo 17 à 20 chiffre et signe de lui-même (Web Push natif). Sur Odoo 14, 15 et 16, le module gratuit kamdoo_connect, installé sur l'ERP, ajoute le même procédé.
  • L'adresse de livraison contient, scellés en AES-256-GCM avec une clé que seul le relais connaît : la plateforme, l'identifiant Apple ou Google du téléphone, une empreinte de la clé de signature de l'ERP et l'étiquette. Le relais refuse tout envoi dont la signature VAPID ne correspond pas à cette empreinte : seul l'ERP auquel votre téléphone s'est inscrit peut lui écrire.
  • L'étiquette est une empreinte (SHA-256) de l'adresse de l'ERP, de la base et de votre numéro d'utilisateur : elle ne contient aucun des trois.
  • Apple (APNs) reçoit une notification au texte neutre, à contenu modifiable : l'extension de Kamdoo la déchiffre sur l'iPhone avant l'affichage. Google (FCM) reçoit un message de données seules, déchiffré par l'app sur le téléphone. Validité : une heure.
  • App désinstallée : Apple ou Google le signalent, le relais répond 410 à l'ERP, qui oublie l'appareil.

Pour arrêter les notifications : Réglages › Notifications dans Kamdoo, ou les réglages du téléphone. Retirer une société désinscrit le téléphone de son ERP et efface sa clé. Le rappel du matin (vos activités du jour) est préparé sur le téléphone lui-même, sans serveur.