Le PortKnocking

Présentation

Question de sécurité

Un système totalement sécurisé vis-à-vis du réseau est un système qui n'y est pas connecté. Mais ce système n'est pas utilisable. Il faut donc le connecter et lui appliquer plusieurs couches de sécurité afin de le rendre le moins vulnérable possible. PortKnocking propose une couche de sécurité supplémentaire. Un part -feu permet d'authentifier un hote sur le réseau. PortKnocking permet d'authentifier un utilisateur de ce réseau.

Une forme d'encodage

Globalement, PortKnocking décrit une communication au sein de laquelle les informations arrivent encodées sous forme de tentatives de connexion à des ports fermés. Cette séquence de ports forme un code, et déclanche un évenement sur le recepteur. Le récepteur ne retourne rien à l'émetteur durant cette transaction.

D'une certaine manière, le PortKnocking est une méthode de communication entre deux ordinateurs (ici appelés client et serveur) dans laquel l'information est codée (et probablement chiffré) dans une séquence de tentatives de connexion. Cette séquence se nomme knocks. Au commencement, le serveur ne présente aucun port ouvert et surveille toutes les tentatives de connexion. Le client lance des tentatives de connexion vers le serveur en envoyant des paquets SYN aux ports indiqués dans les knocks. Ce processus de "frappement" est ce qui donne au PortKnocking son nom. Le serveur n'offre aucune réponse au client pendant cette phase, car il traite "silencieusement" la séquence. Quand le serveur décode un valide le knock, il déclenche un processus définit.

La définition des knocks valides est arbitraire, et défini par l'administrateur. Le processus déclanché sur le serveur est également arbitraire, et défini par l'administrateur. Le déclenchement peut avoir comme conséquence la modification dynamique des règles de filtrage ou d'autres commandes du système.

L'objectif initial

Au départ, PortKnocking était conçu pour permettre à un utilisateur donné d'établir des connexions réseau à une machine dont tout les ports sont fermés par le firewall. De cette manière, la machine ne paraissait pas exister sur le réseau.

Des possibilités étendues

Du moment que le serveur est capable d'interpréter convenablement une séquence, il est possible de faire transiter des informations supplémentaires. Ces informations peuvent être par exemple :

Il est donc possible d'éffectuer des opérations d'administration sur un serveur en utilisant PortKnocking.