Le protocole RDP est aujourd'hui utilisé quotidiennement dans les entreprises et reste un des incontournables pour la prise en main à distance. D'un point de vue cryptographique, des faiblesses de conception ont été relevées il y a maintenant plusieurs années mais restent toujours d'actualité sur certains systèmes, notamment Windows XP et les premières versions de Windows 2003 Server. Cet article propose de revenir sur ces vulnérabilités en étudiant deux implémentations différentes, celle de Microsoft et celle de Xrdp. En conséquence directe de nos analyses, nous présenterons un exemple pratique de la factorisation d'un modulus RSA 512 bits.
1. Contexte
Les spécifications du protocole RDP [1] sont officielles depuis environ 5 ans. Malgré une simplicité supposée standard, les spécifications sont composées d'environ une trentaine de PDF de 50 pages en moyenne et le protocole comprend en réalité de nombreuses extensions : impressions, transports d’objets DirectX, codec remoteFx, canaux USB, ... Tout autant de points d'entrée que pourraient exploiter un attaquant en cas de présence d'une faille critique.
Cependant, dans cet article, nous nous focaliserons essentiellement sur les premières phases du protocole, c'est-à-dire lors de l'établissement de la connexion et de la phase de négociation des clés de chiffrement pour la suite des échanges. Les vulnérabilités décrites par la suite sont connues depuis de nombreuses années mais permettront d'illustrer concrètement une méthodologie pratique de factorisation de grands nombres (plus de 150 chiffres décimaux) et de mettre en avant quelques pièges...
- 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