Plateforme de gestion de données de capteurs Securing sensapp Plateforme de gestion de données de capteurs El Mahdi AREGABI Jérôme BRUNEL Thomas DIAZ Julien MICHEL Brice MORIN Sébastien MOSSER
Solution existante
Notre installation
Enjeux Empêcher la lecture des données en clair confidentialité Eviter l’usurpation d’identité des capteurs et des clients authentification Empêcher les modifications des données intégrité Assurer la rétrocompatibilité avec la solution existante Conserver des performances correctes
CAPTEURS ↔ PLATEFORME UTILISATEURS ↔ PLATEFORME STOCKAGE
Capteurs ↔ plateforme SensApp joignable par HTTP utilisation d’HTTPS pour sécuriser le canal de communication Pas d’authentification des capteurs introduction d’un secret partagé entre capteurs et plateforme
CAPTEURS ↔ PLATEFORME UTILISATEURS ↔ PLATEFORME STOCKAGE
Utilisateurs ↔ plateforme Autorisation des accès aux applications tierces Authentification des utilisateurs vis-à-vis de SensApp La plateforme SensApp Application externe
Application Externe SensApp échec Redirection Identification Demande de connexion annuler Annulation succès Refuser Erreur Application autorisation valider Code temporaire Génération du code temporaire Code tempo, id, Secret Vérification Erreur échec succès Jeton Génération jeton Requête + Jeton Vérification du jeton Erreur Jeton non valide Réponse Jeton valide
CAPTEURS ↔ PLATEFORME UTILISATEURS ↔ PLATEFORME STOCKAGE
Enjeux Seul le registre est protégé par le système OAuth Protection des informations sur les capteurs La base de données est accessible à tout le monde Les données elles-mêmes ne sont pas protégées Un attaquant peut les lire sans autorisation Il peut en ajouter de mauvaises ou en corrompre des bonnes
Contraintes à respecter Ne pas sacrifier les performances de la plateforme La base de données est très sollicitée Minimiser la consommation de temps de calcul Minimiser l’espace de stockage nécessaire Minimiser la bande passante nécessaire Permettre la mise à l’échelle Couplage minimal avec l’architecture Assurer la rétrocompatibilité Permettre une sécurité forte lorsque c’est nécessaire Eviter d’exposer un point d’attaque sensible Permettre aux utilisateurs de maîtriser leur sécurité Notion de sécurité décentralisée
Solution retenue Sécurité déportée aux abords de SensApp Chiffrement et authentification des données par les capteurs Déchiffrement et vérification des données par un logiciel client Complètement transparent pour la plateforme Le chiffrement et l’authentification sont optionnels Cryptographie de haut niveau Chiffrement en AES (256 bits) Authentification par empreinte HMAC SHA-256
Mise en œuvre L’arduino prend totalement en charge la cryptographie Il chiffre chaque mesure par AES Il calcule une empreinte HMAC d’authentification toutes les x mesures Logiciel PC java de déchiffrement Prend en entrée les données chiffrées / authentifiées au format SensApp (JSON) Prend en entrée les clés secrètes Produit un fichier de mesures en clair exploitable sur un tableur (CSV)
Avantages et scénario Impact sur la plateforme négligeable Rétrocompatibilité parfaite Ne nécessite la confiance en aucune autorité centrale Modèle sans confiance L’utilisateur génère lui-même ses clés et les implante dans le capteur Il procède au déchiffrement sur un ordinateur hors ligne
Vidéo de démonstration : https://www. dropbox
Résultats Confidentialité Authentification Intégrité des communications assurée par HTTPS des données assurée par un chiffrement à clé secrète Authentification des capteurs par vérification d’un secret pré-partagé des clients par le mécanisme de jetons d’OAuth Intégrité des données par vérification de HMACs Rétrocompatibilité respectée Performances Envoi de plus de 20 mesures de capteurs par seconde Passerelle gère plusieurs capteurs
Management
Management
Perspectives Modèle à carte à puce Une autorité fiable émet les capteurs et une carte à puce associée La carte à puce est requise pour déchiffrer Utilisé par le principal concurrent de SensApp Communications sans-fil entre capteurs et passerelle
Questions