OpenSSL est une librairie bien connue des habitués de la sécurité, en premier lieu pour son implémentation du protocole SSL, mais également en tant qu'outil cryptographique libre. Techniquement, cette librairie est de bon niveau et son code est bien maintenu face aux failles de sécurité qui y sont trouvées. Là où le bât blesse, c'est la documentation. Il est assez étonnant de trouver une librairie aussi notoire et répandue, avec une documentation aussi peu garnie : outre le nombre important de fonctions non documentées, on y trouve également toute une panoplie d'erreurs de mise à jour ou d'utilisation.
La documentation même du site web (http://www.openssl.org/docs) semble n'être mise à jour qu'épisodiquement. Cette documentation est heureusement complétée de quelques livres et articles intéressants [IBM] [Res01], mais ceux-ci se limitent généralement à quelques zones typiques comme l'utilisation des commandes en ligne d'OpenSSL ou la mise en place de sockets SSL. De surcroît, ils sont bien souvent partiellement obsolètes.
Cet article à lui seul ne prétend pas résoudre tous les problèmes de documentation d'OpenSSL, mais il tente au moins de lever le voile sur une zone d'ombre de la librairie : son architecture. Plus précisément, on y détaille les grandes parties qui constituent la partie cryptographie de la librairie (par exemple, la librairie des grands nombres), comment ces parties interagissent, ainsi que leurs principes de conception et d'utilisation.
1. Organisation typique d'une sous-librairie de cryptographie
Le répertoire de la librairie de...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première