• # TACK

    Posté par (site web personnel) . En réponse au journal Public Key Pinning Extension for HTTP. Évalué à 6.

    Le pinnage c'est très bien, ça permet de repérer assez rapidement quand quelque chose de louche se passe sur le réseau, mais c'est dommage de limiter ça à HTTP; il y a une proposition "concurrente" sous la forme de TACK, qui cette fois fournit la possibilité de pinner mais directement au niveau TLS, du coup:

    • TACK est dispo pour toutes les applications, pas seulement pour HTTP
    • Ça garde les couches bien séparées proprement. Chacun chez soi et les sessions seront bien sécurisées
    • Lorsque le certificat doit être changé légitimement (parce que la clé privée a fuité, par exemple), HPKP empêche tout accès (impossible de lire de potentiels nouveaux en-têtes HTTP puisque la couche TLS est totalement bloquée); TACK se limite à la couche TLS, et est ainsi capable de fournir les nouveaux éléments indiquant "le certificat a changé, update ton pin"

    Malheureusement c'est pas tout rose:

    • TACK est un peu plus radical et propose de se passer complètement de X.509 en signant directement les clés TLS des serveurs. Du coup ça doit être assez indigeste à déployer sur un gros domaine avec des serveurs qui doivent être changés un minimum fréquemment. En fait TACK se veut un système alternatif aux CAs [1]. Techniquement TACK pourrait être utilisé pour pinner les certificats dans la chaîne plutôt que les serveurs eux-même, mais c'est pas
    • Comme c'est niveau TLS, c'est autrement plus dur à déployer que 3 lignes dans un nginx.conf.

    "Malheureusement" au rythme où vont les choses c'est HPKP qui gagnera, et tout ce qui n'est pas HTTP se retrouvera, une fois de plus, relégué au second rang.

    [1] Pour digresser un peu, TACK a l'air de vouloir jeter le bébé avec l'eau du bain. Le système actuel d'autorités de certifications est mauvais parce que les acteurs en haut de la chaine sont mauvais, mais le reste de l'infrastructure reste quand même solide; typiquement ici, ça aurait totalement du sens de ne gérer la confiance qu'au niveau du domaine, pas au niveau de chacun des serveurs, et ça c'est déjà fourni par le système de CAs.