Daily Weekly Monthly

Daily Shaarli

All links of one day in a single page.

February 25, 2014

Une idée de module pour apache afin de chiffrer les données client / serveur...

Idée d'un nouveau module pour Apache.

mod_gpg_protocol

qui définit une requête / réponse encrypté par GPG.

comment fonctionne le module ?

Création d'un nouveau protocole dans les navigateurs Gpg Over Server: GOS
lorsque vous allez sur l'adresse gos://www.memiks.fr/

le navigateur va crypter votre demande en GPG avec la clé publique que vous avez spécifié sur le serveur (j'en reparlerai).

puis la requête est envoyée au serveur un simple header http qui contient un type d'application text/gpg
et le serveur "sait" qu'il doit décrypter la demande avant de l'interpréter.

la le serveur peux fonctionner comme d'habitude, via les autres modules, php, asp, proxy etc...
quand la réponse est récupérée, alors on la crypte avec la clé publique et une fois reçu le navigateur la décrypte.

Pourquoi ?

  • fournir un niveau plus élevé de cryptage (plus que https qui repose sur la confiance des instances)
  • permettre l'envoie de données sensible dans des réseaux qui sont publique (notamment wifi, entreprise, proxy)
  • rendre impossible le man in the middle (si il n'y a pas eu compromission du client ou du serveur)
  • lutter contre les formes d'écoute gouvernementale.

maintenant les points qui fache:

  • comment fournir la clé publique/privé sans passer par internet ? je vois plusieurs possibilités
    1) on passe par une clé temporaire qui crypte la clé finale, et qui est fourni par un autre canal, mail, https, ssh, lettre
    2) vous êtes maitre du serveur et donc maitre de la publication / génération de la clé (ssh, sftp etc...)
    3) l'instance (par exemple la banque) vous fourni les clés par lettre ou physiquement

  • comment crypter coté client ?
    1) ajout du module directement dans les navigateurs (firefox, chromium)
    2) passage par une extension
    3) passage par un proxy qui s'occupe de tout crypter suivant les serveurs (via une liste blanche)

  • que faire lorsqu'il y a perte de l'intégrité du client et/ou du serveur ?
    1) client volé, ou compromis, demandé la dévalidation de la clé au serveur (par tél, mail, chat, etc on s'en moque même en clair, la clé est invalidée POINT!)
    2) serveur non fiable, invalidér la clé correspondante sur le client.
    3) NE PAS UTILISER DEUX FOIS LA MEME CLE C'EST COMME LES MOTS DE PASSES !!

Qu'en pensez vous ?
J'ai ouvert la discussion sur zerobin
http://sebsauvage.net/paste/?3b0e29b95f7a3b01#lKn5Db6+znQlj7QPmwyuDo2/2NbbsOh46CzoycvA3ds=

Mêmiks