Homebridge : un pont logiciel pour HomeKit

Christophe Laporte |

Si elle est suivie, Homebridge est une initiative qui pourrait permettre de démocratiser HomeKit, du moins auprès des bidouilleurs. Ce projet, trouvé sur GitHub, se présente sous la forme d’un serveur NodeJS, lequel permet d‘émuler les API de HomeKit.

Tout l’intérêt de Homebridge, c’est qu’il dispose d’une interface modulaire. Vous pouvez ainsi ajouter des plug-ins et utiliser Siri pour des périphériques qui ne sont pas compatibles avec la technologie d’Apple.

On trouve d’ores et déjà un grand nombre de modules notamment pour la prise connectée WeMo de Belkin, pour le Nest, pour la station météo de Netatmo, pour les produits Sonos ou bien pour les Philips Hue. De plus, toujours à l’aide de modules optionnels, Homebridge offre des passerelles vers d’autres services comme IFTTT et peut-être combinées avec SSH ou AppleScript.

avatar Xalio | 

Je croyais que du hardware spécifique était nécessaire pour HomeKit.... Encore une arnaque a 2 balles de la part d'Apple...

avatar flux_capacitor | 

@Xalio :
Le hardware (la puce d'authentification) demandé par Apple est là pour une bonne raison : la sécurité. Il ne serait pas agréable de subir un cambriolage sans trace d'effraction due à l'ouverture d'une serrure HomeKit à cause d'un hacker qui parviendrait à pénétrer le système à cause d'un accessoire HomeKit mal sécurisé. Avec la puce d'authentification, ce genre de problème ne peut pas arriver (penser à la puce Secure Enclave de Touch ID).

Homebridge est un hack (une implémentation libre par rétro-ingénierie) d'Apple HAP (HomeKit Accessory Protocol). Normal dans ce cas que ça ne passe pas par une puce d'authentification.

avatar bonnepoire | 

L'arnaque c'est ton commentaire!

avatar marc_os | 

Et le serveur NodeJS il se trouve où ?
S'il n'est pas chez soi, ça veut dire qu'une connexion internet à ce serveur est nécessaire.
Et que celui-ci saura beaucoup beaucoup de choses sur vous !
Imaginez si tous les échanges entre appareils et HomeKit passe par ce serveur, ce sera une mine d'informations hors pair pour les propriétaires du serveur et ... Tout ceux qui y auront accès, officiellement ou pas !

avatar flux_capacitor | 

@marc_os :
Le serveur Node.js tourne localement chez toi sur ton Mac ou PC, un NAS ou un Raspberry Pi.

avatar JLG47_old | 

IL faudra bien un jour une interface commune à tous les objets qui peuvent être pilotés.
La multiplication des objets doit rester un espace de liberté qui ne saurait passer par l'habilitation d'un unique prestataire.
Cela n'interdit en rien que certains objets soient mieux sécurisés que d'autres.
Il est normal de durcir l'accès à une serrure ou un équipement "sensible" (chaudière, téléphone Internet), il n'est pas utile de le faire pour une cafetière.
Il sera par contre judicieux de durcir au maximum l'accès au réseau WiFi concerné, et de préférence d'en utiliser un spécifique.

avatar flux_capacitor | 

@JLG01 :
Un hacker tentera toujours de pénétrer à l'intérieur d'un réseau via un point faible de celui-ci. Tout appareil HomeKit peut théoriquement dialoguer avec un autre appareil HomeKit une fois les accès au réseau accrédités. Il ne servirait donc à rien d'avoir chez soi une serrure HomeKit ultra-sécurisée si par exemple elle côtoyait une ampoule HomeKit non sécurisée (si cela était possible) celle-ci étant hackable et devenant un point d'entrée du réseau à un pirate. Il ne faut pas laisser un quelconque accès piratable à l'intérieur de ce réseau. C'est la raison pour laquelle l'ensemble du système doit être sécurisé de bout en bout, des serrures aux ampoules. D'où la puce d'authentification obligatoire, qui fait parfaitement sens.

avatar ZANTAR2054 | 

Et controler Spotify avec Siri?

avatar Xalio | 

J'ai été volontairement provocateur sur mon commentaire. Je sais que l'argument avancé c'est la sécurité.

Mais en l'occurrence, Apple n'a pas inventé la domotique qui pour le coup se base souvent sur des standards plus ou moins ouverts mais rarement sur des solutions hardware.

Ce n'est pas parce qu'il y a une puce que le système est inviolable, en tous cas n'avalez pas les couleuvres qu'Apple veut nous faire avaler.

AUCUN système informatique n'est 100% sécurisé, surtout à partir du moment où qqn a accès physiquement à un appareil.

De plus il est plus simple de faire un patch de sécurité logiciel que hardware (imaginez une faille réside dans cette fameuse puce et qui ne peut être corrigé sans mise à jour hardware??)

Je pense que les systèmes basés sur des échanges de certificats avec validation de signature à intervalles réguliers et publication du code aurait été une solution bien plus intéressante en termes de sécurité.... Mais Apple n'aurait pas créé quelque chose de différent de ses concurrents donc...

avatar flux_capacitor | 

Pas du tout. La domotique habituelle (je parle de la vraie, filaire, en KNX) n'est pas reliée au réseau Wi-Fi et encore moins au cloud, et ne présente de facto pas de problème de sécurité.

Quant à la domotique sans fil (en Z-wave, le protocole le plus épandu) elle est justement basée sur des puces matérielles conçues par un unique fabricant inventeur du protocole : Sigma Designs. Son concurrent le ZigBee (qui est une réponse "libre" à la fermeture matérielle du Z-wave) s'est finalement pris les pieds dans un tapis inextricable puisque chaque implémentation logicielle de ZigBee est propriétaire et est non-interopérable avec s'autres appareils ZigBee de marques différentes (les Philips Hue dialoguent avec leur pont via une implémentation ZigBee propre à Philips par exemple).

Dire "aucun système n'est 100 % sécurisé" est un poncif, tu émets des notions vagues fondées sur des a priori plus qu'autre chose. Apple a verrouillé la sécurité d'HomeKit à fond parce que le protocole passe par le Wi-Fi domestique jusqu'au cloud. Quelques extraites du livre blanc d'Apple sur la sécurité iOS, section HomeKit (assez récent, septembre 2015) :


La sécurité et l’identité HomeKit reposent sur des paires de clés publique-privée Ed25519. Une paire de clés Ed25519 est générée pour HomeKit sur l’appareil iOS pour chaque utilisateur et devient son identité HomeKit. Elle est utilisée pour authentifier la communication entre les appareils iOS, et entre les appareils iOS et les accessoires.

avatar flux_capacitor | 

SUITE

Communication avec les accessoires HomeKit
Les accessoires HomeKit génèrent leur propre paire de clés Ed25519 pour communiquer avec les appareils iOS. Si les réglages d’origine de l’accessoire sont rétablis, une nouvelle paire de clés est générée.
Pour établir une relation entre un appareil iOS et un accessoire HomeKit, les clés sont échangées à l’aide du protocole Secure Remote Password (3 072 bits), en utilisant un code à 8 chiffres fourni par le fabricant de l’accessoire et saisi sur l’appareil iOS par l’utilisateur, puis chiffrées avec l’algorithme AEAD ChaCha20-Poly1305 avec des clés obtenues à l’aide de la fonction de dérivation HKDF-SHA-512. La certification MFi de l’accessoire est également vérifiée lors de la configuration.
[…]
L’accessoire génère également des clés elliptiques de type prime256v1, et la clé publique est envoyée à l’appareil iOS accompagné du défi signé et du certificat X.509 du coprocesseur d’authentification. Ceux-ci servent à demander un certificat pour l’accessoire depuis le serveur d’attribution iCloud. Le certificat est stocké par l’accessoire, mais il ne contient aucune information d’identification sur l’accessoire, hormis la mention que l’accès distant à iCloud pour HomeKit lui a été accordé.
[…]
Les accessoires se connectent au serveur d’accès distant à iCloud par HTTP/2, dont la liaison est sécurisée par TLS 1.2 avec AES-128-GCM et SHA-256. L’accessoire garde sa connexion au serveur d’accès distant à iCloud ouverte a n de pouvoir recevoir les mes- sages entrants et envoyer les réponses et les notifications sortantes aux appareils iOS.

avatar DouceProp | 

Nuff said.

CONNEXION UTILISATEUR