Retour aux blogs Une serrure est entourée d’un design de ligne cyber sympa.

Fonctionnalités de chiffrement et de sécurité améliorées pour le semestre d’automne 2020

Confidentialité et sécurité

Pour garantir que Proctorio reste en avance face aux dernières menaces de sécurité, nous mettons à jour notre plateforme de sécurité avec diverses améliorations :

  1. Nous avons a renforcé la méthode de dérivation des clés utilisée pour générer les clés de chiffrement à connaissance zéro. Par la suite, nous avons augmenté de 9 900 % le nombre d’opérations mathématiques utilisées pour générer des clés. Nous faisons cela pour réduire les risques d’une attaque par force brute à mesure que la puissance de calcul continue de s’améliorer.

  2. Dorénavant, tous les nouveaux enregistrements seront chiffrés avec un package WebCrypto natif intégré au navigateur. Ces mises à jour sont en ligne depuis un mois et ne montrent aucun signe de problème de performance.

  3. Nous avons ajouté une option High Security Plus qui offre un chiffrement à clé symétrique avec une clé publique RSA asymétrique, générée par l’institution.

Les clients existants auront la possibilité d’appliquer ces fonctionnalités à leurs institutions gratuitement.

Pour plus d’informations, veuillez contacter votre représentant Proctorio ou nous contacter à l’adresse suivante https://proctorio.com/get-started pour commencer avec Proctorio.

Pourquoi faisons-nous ces mises à jour maintenant ?

Lorsque nous avons commencé à travailler sur Proctorio en 2013, nous avons commencé le développement de Chrome 27. Gangnam Style venait de sortir, et tout le monde le regardait sur leur tout nouvel iPhone 5. En d’autres termes, c’était une autre époque.

L’un de nos premiers objectifs avec Proctorio était de créer un service de surveillance en ligne plaçant la confidentialité et la sécurité des candidats au centre, tout en permettant un déploiement léger du logiciel. En conséquence, nous avons créé Proctorio comme une extension de navigateur qui n’avait pas besoin d’être installée nativement sur l’ordinateur du candidat. L’un des éléments les plus puissants pour ajouter facilement le chiffrement aux données des examinateurs était, et reste toujours, la cryptographie.

Après une évaluation approfondie, nous avons intégré SJCL de Stanford pour ajouter la cryptographie à ces premières versions de Proctorio. Autant nous aurions souhaité que Chrome prenne en charge la cryptographie native à l’époque, il faudrait encore 10 versions pour voir les premiers signes de WebCrypto, une fonction de cryptographie de base apportée au navigateur.

Nous avons rapidement intégré le support WebCrypto dès qu’il est devenu disponible dans Chrome 37, mais nous avons tout de même laissé la bibliothèque SJCL Stanford en place pour gérer la dérivation principale des clés et la cryptographie des enregistrements. Puisque Proctorio est conçu pour être géré sur des systèmes mono-utilisateur, où l’utilisateur est probablement un administrateur pouvant accéder aux informations depuis la mémoire système (clés, mots de passe, etc.), l’utilisation d’une implémentation Javascript n’est pas un problème. Les clés générées sont uniquement destinées à être cachées à Proctorio, et non à l’utilisateur final.

Dans le cas malheureux où la machine de l’utilisateur serait compromise par un programme malveillant, les attaques de timing du cache sont le moindre des soucis des utilisateurs, car tout malware pourrait probablement extraire directement des informations clé/mot de passe depuis la mémoire. Cependant, puisque WebCrypto s’est avéré être bien plus rapide et intégré à la plateforme navigateur, dans notre mise à jour à partir de la version 1.4.20276.1, nous avons remplacé les enregistrements entièrement nouveaux par WebCrypto natif au lieu de SJCL.

Ensuite, pour sécuriser les enregistrements de l’examen, nous utilisons les informations de la plateforme d’administration du test. Chaque examen utilise une combinaison unique de ces informations, générant effectivement des clés uniques pour chaque tentative d’examen enregistrée par chaque utilisateur. Nous utilisons ensuite la cryptographie symétrique pour chiffrer les données à l’aide d’AES-128. Comme nous ne pouvons pas contrôler la complexité de cette information, nous utilisons une fonction de dérivation clé pour réduire le potentiel d’attaques par force brute. Nous avions initialement choisi PBKDF2-HMAC-SHA1 pour cette tâche.

Le RFC rédigé en 2000 pour PBKDF2 recommandait un nombre d’itérations de 1 000 cartouches. Cependant, en 2013, lorsque nous l’avons mis en place chez Proctorio, les gestionnaires de mots de passe utilisaient déjà 10 000 itérations. Nous avons décidé de proposer 12 000 itérations dans notre implémentation. Mais maintenant, en 2020, alors que les ordinateurs et les GPU sont devenus plus rapides, il est temps de réduire encore davantage le risque de vulnérabilités par force brute.

Dans la version 1.4.20276.1, nous avons remplacé SHA1 par SHA512, en implémentant PBKDF2-HMAC-SHA512. Pour ralentir encore davantage la génération de clés, nous avons augmenté le nombre d’itérations de 12 000 à 1 200 000. Enfin, en plus de ce changement, nous avons décidé de passer de l’AES-128 à l’AES-256. Ce changement protégera aussi bien contre les attaques multi-cibles que contre un monde post-quantique.

Enfin, dans la version 1.4.20311.1, nous avons lancé une option pour passer à des clés asymétriques, générées et gérées par l’institution partenaire. N’importe quelle institution peut s’inscrire à ce programme, mais il exige que l’établissement génère la clé publique et sauvegarde la clé privée. Les clés publiques et les options sont fournies à Proctorio via un gestionnaire de compte.

Les clés privées doivent être distribuées à tout utilisateur final ayant besoin d’accéder au carnet de notes.

Nous avons créé cette option pour trois raisons :

  1. L’information non partagée pour les clés dérivées peut avoir très peu d’entropie. C’est vrai dans les systèmes de gestion de l’apprentissage comme Canvas ou Moodle, qui utilisent des identifiants séquentiels à base de zéro.

  2. Il protège la sécurité des données d’enregistrement de l’examen contre un éventuel accès de tiers. Encore une fois, dans le cas de Canvas ou Moodle, ces systèmes sont généralement hébergés par un tiers. Puisque ce tiers a accès aux clés, il peut déchiffrer les données.

  3. La plupart des plateformes de test ont des rôles administratifs ou élevés qui permettent un accès sans restriction. Dans ces cas, il peut être difficile de contrôler l’accès aux enregistrements tout en permettant à ces utilisateurs d’accomplir leurs tâches normales. Utiliser le contrôle de l’organisation sur la clé privée leur permettra de contrôler l’accès à un niveau plus précis.

Dans les versions futures, nous prévoyons de permettre à un représentant individuel approuvé par l’institution de générer et d’utiliser sa propre clé publique asymétrique.

Nous continuons à travailler dur pour protéger nos partenaires et candidats aux tests contre les dernières menaces, et avec cette mise à jour, nous sommes ravis d’offrir aux administrateurs encore plus de contrôle et d’options pour protéger les informations de leur établissement.

Avec cette sécurité accrue, nous visons à offrir un environnement d’apprentissage de la plus haute qualité pour les candidats aux examens. Passer un examen est déjà stressant sans souci supplémentaire concernant la confidentialité des données et le chiffrement des clés. À l’avenir, cette sécurité accrue apportera une tranquillité d’esprit aux institutions et aux candidats en cas de faille de sécurité qui survient.

Note : Cet article de blog a été mis à jour pour plus de clarté le 23 juin 2021.

Articles de blog associés