Programme de clignotement diode examen : légende urbaine ?
Posted: 01 Feb 2017, 16:34
Si l'on lit les commentaires sur les différents médias sociaux au sujet du mode examen 2018+, il serait ultra facile de réaliser un programme simulant le clignotement de la diode examen.
Lorsque l'on a une véritable connaissance des exigences des textes réglementant le mode examen et de son fonctionnement, on ne peut que se rendre compte qu'il est impossible de réaliser un tel programme de façon fiable et en laissant la calculatrice utilisable. En effet :
Du code faisant clignoter la diode est en théorie réalisable, mais pour s'affranchir simultanément des 3 contraintes précédentes, il devra être injecté très profondément au coeur même du système d'exploitation (ce qui ne saurait plus être qualifié de simple 'programme'), nécessitant donc une modification du système ce qui implique une connaissance assez poussée de son architecture.
De ce point de vue là, le mode examen à diode a été fort bien pensé.
Parmi nos modèles conformes, lesquels seraient vulnérables face à de telles modifications ?
Dans d'autres commentaires de sources similaires, certains se vantent même en disant qu'ils ont Ndless sur leur TI-Nspire qui leur permet de simuler le mode examen, ce qui n'est franchement pas malin du tout car d'une part c'est à ce jour faux, et d'autre part cela incite les institutionnels non techniquement compétents lisant cela à exiger de Texas Instruments le blocage alors injuste de Ndless.
Le contrôle de la diode examen par des programmes Ndless était effectivement possible par simple écriture sur le port associé jusqu'à la version d'OS 1.4.
Depuis, ce port fait l'objet d'un verrouillage, même si cela a donc pu être contourné par un programme.
Ce programme rajoute le déverrouillage de la diode en écrivant à 3 adresses différentes au lieu d'une seule :
Nous avons refait un tel programme de démo à partir de ces adresses documentées publiquement. Il permet d'allumer indépendamment les deux couleurs de base de la diode (vert et rouge), ce qui par synthèse additive donne la 3ème couleur orange.
Il ne sera bien évidemment jamais publié ni partagé - mais nous ne pouvons pas décemment parler de la fiabilité du mode examen sans tester nous-mêmes si il y a moyen de contourner.
Crois-tu donc que ce soit plus facile de contrôler la diode examen parce que l'on a une TI-Nspire avec Ndless ?
Oh que non, car on se rend compte à l'utilisation du programme qu'il y a une autre énorme difficulté non encore évoquée, une sécurité malicieusement cachée par Texas Instruments. A la sortie du programme le système d'exploitation reprend la main, et d'une façon ou d'une autre arrive à se rendre compte qu'une ou plusieurs écritures ont été effectuées sur le port de la diode.
Le motif de la diode ayant donc peut-être été falsifié, le système redémarre immédiatement la calculatrice, annulant donc au passage toutes les altérations que tu as éventuellement réalisées (dont l'installation de Ndless si tu n'as pas de gestionnaire de démarrage).
Ci-dessous, une démo te montrant bien que le redémarrage ne se produit pas si on ne change rien, mais se produit dans tous les autres cas, y compris si tu prends soin de remettre la diode dans son état d'origine :
Contrairement à la rumeur Ndless ne change donc rien à la chose, la prise de contrôle de la diode semblant même encore plus difficile sur TI-Nspire que sur les autres modèles.
De nombreux contournements du mode examen plus ou moins facilement réalisables selon les modèles existent et d'autres encore plus extraordinaires sont à venir, mais imaginer pouvoir simuler le clignotement de la diode examen juste en lançant un programme est vraiment la pire des idées.
Niveau surveillants, dans l'éventualité où du code contrôlant la diode soit un jour fonctionnel sur certains modèles, ce qui à date n'est vraiment pas gagné d'avance, la meilleure vérification est de venir à un moment ou à un autre éteindre la calculatrice de chaque candidat.
Si la calculatrice refuse de s'éteindre ou si le clignotement de la diode s'arrête ou change de rythme (il est donc irrégulier contrairement aux exigences du cahier des charges officiel), c'est qu'il est simulé par du code non officiel et qu'il y a donc fraude.
Lorsque l'on a une véritable connaissance des exigences des textes réglementant le mode examen et de son fonctionnement, on ne peut que se rendre compte qu'il est impossible de réaliser un tel programme de façon fiable et en laissant la calculatrice utilisable. En effet :
- Un programme prend la main sur le système. Pendant qu'un programme tourne sur nos machines, il est impossible de faire appel à des fonctionnalités extérieures au programme.
Il est donc en théorie possible de simuler le mode examen pendant les premières minutes et tromper le surveillant, mais en pratique il faudra bien à un moment se servir des fonctionnalités de sa calculatrice, c'est-à-dire sortir du programme ce qui éteindra ou figera la diode, et déclenchera l'intervention immédiate des surveillants.
Un tel programme serait donc totalement inutile, même si il existe déjà de façon non publique pour calculatrices TI-Nspire. - Mais supposons donc qu'il soit possible de faire tourner un programme en arrière plan, sans blocage des fonctionnalités de la calculatrice.
Problème : le signal se doit d'être régulier, là où la vitesse d'exécution d'un programme variera selon ce que la machine est en train de faire. - Supposons encore de façon optimiste qu'il soit possible de donner au code de notre programme une priorité suffisamment haute pour s'affranchir de ce contexte. Il reste un dernier problème essentiel auquel bizarrement on oublie de penser.
Une fois le mode examen activé, le signal de la diode se doit d'être régulier, et ce en toute situation - c'est-à-dire que la diode continue à clignoter même lorsque la calculatrice est éteinte !
Or, un programme normal cesse toute exécution à l'extinction de la calculatrice.
Du code faisant clignoter la diode est en théorie réalisable, mais pour s'affranchir simultanément des 3 contraintes précédentes, il devra être injecté très profondément au coeur même du système d'exploitation (ce qui ne saurait plus être qualifié de simple 'programme'), nécessitant donc une modification du système ce qui implique une connaissance assez poussée de son architecture.
De ce point de vue là, le mode examen à diode a été fort bien pensé.
Parmi nos modèles conformes, lesquels seraient vulnérables face à de telles modifications ?
- Théoriquement, on peut programmer sans contrainte un système modifié sur Casio Graph 25+E, Graph 35+E, Graph 75+E, fx-CP400+E et HP Prime.
Mais en pratique, les outils et/ou instructions techniques nécessaires ne sont disponibles publiquement que pour Casio Graph 35+E, Graph 75+E et HP Prime. - Sur les TI-83 Premium CE et TI-82 Advanced, le système est officiellement protégé contre toute altération par une signature électronique 2048-bits infalsifiable vérifiée à l'installation.
En pratique, il est possible d'altérer le système une fois installé, mais les outils et/ou instructions techniques nécessaires n'ont jamais été publiés. - Sur les TI-Nspire nous retrouvons la même vérification par signature électronique, 1024-bits pour les modèles monochromes et 2048-bits pour les TI-Nspire CX.
Grosse différence ici, la signature est vérifiée non seulement à l'installation du système, mais également à chaque redémarrage de la calculatrice.
Faire tourner de façon pérenne un système modifié nécessite donc un gestionnaire de démarrage (Nlaunchy ou nBoot+ControlX), et aucun d'entre eux n'est compatible avec les TI-Nspire CX de génération CR4 (révision matérielle W+) produites depuis octobre 2015, et qui seront donc majoritaires aux examens 2018+.
Rajoutons également que le système d'exploitation est enregistré sur la calculatrice sous forme cryptée, ce qui complexifie toute tentative de modification (il faudra à la fois être capable de décrypter et de recrypter, et ce sont deux problèmes complexes totalement différents).
Dans d'autres commentaires de sources similaires, certains se vantent même en disant qu'ils ont Ndless sur leur TI-Nspire qui leur permet de simuler le mode examen, ce qui n'est franchement pas malin du tout car d'une part c'est à ce jour faux, et d'autre part cela incite les institutionnels non techniquement compétents lisant cela à exiger de Texas Instruments le blocage alors injuste de Ndless.
Le contrôle de la diode examen par des programmes Ndless était effectivement possible par simple écriture sur le port associé jusqu'à la version d'OS 1.4.
Depuis, ce port fait l'objet d'un verrouillage, même si cela a donc pu être contourné par un programme.
Ce programme rajoute le déverrouillage de la diode en écrivant à 3 adresses différentes au lieu d'une seule :
- une 1ère adresse documentée sur Omnimaga, Hackspire et même kernel.org où elle a fort peu de chances de disparaître
- une 2ème trouvable sur Cemetech, Omnimaga, Hackspire et gitHub
- une 3ème mentionnée sur Omnimaga et Hackspire
Nous avons refait un tel programme de démo à partir de ces adresses documentées publiquement. Il permet d'allumer indépendamment les deux couleurs de base de la diode (vert et rouge), ce qui par synthèse additive donne la 3ème couleur orange.
Il ne sera bien évidemment jamais publié ni partagé - mais nous ne pouvons pas décemment parler de la fiabilité du mode examen sans tester nous-mêmes si il y a moyen de contourner.
Crois-tu donc que ce soit plus facile de contrôler la diode examen parce que l'on a une TI-Nspire avec Ndless ?
Oh que non, car on se rend compte à l'utilisation du programme qu'il y a une autre énorme difficulté non encore évoquée, une sécurité malicieusement cachée par Texas Instruments. A la sortie du programme le système d'exploitation reprend la main, et d'une façon ou d'une autre arrive à se rendre compte qu'une ou plusieurs écritures ont été effectuées sur le port de la diode.
Le motif de la diode ayant donc peut-être été falsifié, le système redémarre immédiatement la calculatrice, annulant donc au passage toutes les altérations que tu as éventuellement réalisées (dont l'installation de Ndless si tu n'as pas de gestionnaire de démarrage).
Ci-dessous, une démo te montrant bien que le redémarrage ne se produit pas si on ne change rien, mais se produit dans tous les autres cas, y compris si tu prends soin de remettre la diode dans son état d'origine :
Contrairement à la rumeur Ndless ne change donc rien à la chose, la prise de contrôle de la diode semblant même encore plus difficile sur TI-Nspire que sur les autres modèles.
De nombreux contournements du mode examen plus ou moins facilement réalisables selon les modèles existent et d'autres encore plus extraordinaires sont à venir, mais imaginer pouvoir simuler le clignotement de la diode examen juste en lançant un programme est vraiment la pire des idées.
Niveau surveillants, dans l'éventualité où du code contrôlant la diode soit un jour fonctionnel sur certains modèles, ce qui à date n'est vraiment pas gagné d'avance, la meilleure vérification est de venir à un moment ou à un autre éteindre la calculatrice de chaque candidat.
Si la calculatrice refuse de s'éteindre ou si le clignotement de la diode s'arrête ou change de rythme (il est donc irrégulier contrairement aux exigences du cahier des charges officiel), c'est qu'il est simulé par du code non officiel et qu'il y a donc fraude.