← ← Retour à l'accueil

Crypto / Repository

cryptologik

Une boîte à outils de cryptographie appliquée fournissant des implémentations sécurisées et auditées d'algorithmes cryptographiques, l'analyse de configuration TLS, la gestion du cycle de vie des certificats et des ressources pédagogiques pour comprendre les principes cryptographiques.

Voir sur GitHub ↗

À propos du projet

CryptoLogik est une boîte à outils complète de cryptographie appliquée conçue à la fois pour un usage pratique et pour l'éducation. La cryptographie — la science qui consiste à sécuriser l'information au moyen d'algorithmes mathématiques — sous-tend pratiquement tous les aspects de la sécurité numérique : communications chiffrées (TLS/SSL), authentification sécurisée, signatures numériques, protection des données au repos et technologies blockchain. La boîte à outils offre trois capacités principales : Secure Cryptographic Primitives propose des implémentations de haut niveau, sécurisées par défaut, d'opérations cryptographiques courantes — chiffrement symétrique (AES-256-GCM), chiffrement asymétrique (RSA, Ed25519), hachage (SHA-256, SHA-3, Argon2 pour les mots de passe), signatures numériques et fonctions de dérivation de clés. Ces implémentations suivent les meilleures pratiques actuelles, utilisent des paramètres sûrs par défaut et incluent des protections contre les pièges courants d'implémentation comme les attaques temporelles et la réutilisation des nonces. TLS Configuration Auditor analyse la configuration TLS/SSL des serveurs web, identifiant les suites de chiffrement faibles, les versions de protocole obsolètes (TLS 1.0, 1.1), les problèmes de certificats (expiration, clés faibles, chaînes incomplètes) et la conformité aux normes du secteur (PCI-DSS, HIPAA). Il produit des rapports exploitables avec les changements de configuration spécifiques nécessaires pour atteindre une note de sécurité 'A+'. Cryptographic Education Module fournit des exemples interactifs et documentés qui expliquent les principes derrière chaque algorithme — pas seulement comment les utiliser, mais pourquoi ils fonctionnent, quelles propriétés de sécurité ils offrent, et comment des erreurs courantes peuvent les compromettre. Cela inclut des démonstrations visuelles de concepts comme l'échange de clés (Diffie-Hellman), les signatures numériques et les collisions de hachage. L'ensemble de la boîte à outils est construit selon la philosophie que les outils cryptographiques doivent être impossibles à mal utiliser — des paramètres sûrs par défaut, aucun algorithme obsolète, et des messages d'erreur clairs lorsque des opérations non sûres sont tentées.

Pourquoi c'est important

La cryptographie est à la fois la technologie de sécurité la plus importante et la plus souvent mal implémentée. Parmi les échecs très médiatisés, on trouve l'utilisation du mode ECB pour le chiffrement (le 'problème du pingouin'), le stockage des mots de passe avec MD5 au lieu d'une fonction de dérivation de clé appropriée, la réutilisation de nonces dans AES-GCM et l'implémentation de protocoles cryptographiques personnalisés sans véritable revue par des pairs. Chacune de ces erreurs a conduit à des violations de données réelles touchant des millions d'utilisateurs. Le défi est que la cryptographie exige une connaissance mathématique approfondie pour être correctement implémentée, alors que la plupart des développeurs qui doivent l'utiliser ne sont pas des cryptographes. Les bibliothèques standard exposent des primitives de bas niveau faciles à mal utiliser — choisir le mauvais mode de fonctionnement, générer des nombres aléatoires faibles ou construire des protocoles vulnérables aux attaques par rejeu. Cette boîte à outils comble ce fossé en fournissant des abstractions de haut niveau qui font du bon usage la norme et du mauvais usage une chose difficile. Pour les praticiens qui souhaitent approfondir leur compréhension, les modules pédagogiques expliquent le 'pourquoi' derrière chaque choix cryptographique, construisant une intuition qui les aide à prendre de meilleures décisions de sécurité tout au long de leur carrière.

Guide étape par étape

  1. Installez la boîte à outils avec 'pip install cryptologik'. Le package a peu de dépendances (uniquement la bibliothèque 'cryptography' bien audité et les liaisons libsodium) et prend en charge Python 3.8+. Pour l'intégration Rust, utilisez la crate cryptologik-rs.
  2. Utilisez les modules de haut niveau pour les opérations cryptographiques courantes. Par exemple : 'from cryptologik import encrypt, decrypt, hash_password, verify_password, sign, verify'. Chaque fonction utilise des paramètres sûrs par défaut (AES-256-GCM pour le chiffrement, Argon2id pour le hachage des mots de passe, Ed25519 pour les signatures) et gère automatiquement la gestion des clés, la génération des nonces et les cas d'erreur.
  3. Exécutez l'auditeur TLS sur vos serveurs avec 'cryptologik audit-tls example.com'. L'auditeur teste toutes les versions de protocole et suites de chiffrement prises en charge, vérifie la validité du certificat et l'exhaustivité de la chaîne, et produit un rapport détaillé avec une note alphabétique (A+ à F) et des recommandations spécifiques pour améliorer votre configuration TLS.
  4. Explorez la documentation pédagogique interactive avec 'cryptologik learn'. Cela lance une interface web locale avec des leçons guidées sur le chiffrement symétrique, la cryptographie asymétrique, les fonctions de hachage, les signatures numériques, les protocoles d'échange de clés et les pièges courants. Chaque leçon inclut des exemples de code exécutables et des visualisations du fonctionnement interne des algorithmes.

Technologies utilisées

PythonOpenSSLlibsodiumRust