Posté le 05/09/2018 12:45
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 145 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 05/09/2018 21:25 | #
Pour le mode examen, je pense que le travail de reverse-engineering de Critor a permis de localiser la zone de code qui gère la LED, non ? Dans ce cas il doit suffir de copier ce que l'OS fait. Après tout je ne fais que ça. xD
Peut-être peut-on trouver dans nos communautés quelqu'un qui soit assez calé en cryptographie pour nous fournir un avis éclairé sur la faisabilité de la signature d'add-ins ?
Citer : Posté le 05/09/2018 21:26 | #
Merci de me corriger, ça fait du bien. Y a-t-il une documentation du format de stockage ? Combien de versions d'OS ont été testées avec ce mécanisme ?
Pas trouvé de doc. Le mieux serait de revoir mon code.
Toutes les versions Graph 35+USB SH3 ont été testées, et tous les OS Casio Graph SH3/SH4 utilisent ce format.
Le voilà par exemple dans l'OS Graph 75+E 2.09 :
On voit bien les offsets de décroissants dans le sens de lecture, et ils sont suivis de la taille de chaque langue également sur 4 octets.
Enfin, comment savez-vous que modifier le tableau ne casse rien d'autre dans le système.
C'est une petite liste de pas grand chose qui ne référence que les langues (sauf l'anglais), elles-mêmes situées en fin d'OS. Pas grand chose à casser à patcher ça.
Citer : Posté le 05/09/2018 21:26 | #
TI fait déjà de la signature d'add-ins, c'est d'ailleurs ce qui a cassé KnightOS dans son développement.
Mon blog ⋅ Mes autres projets
Citer : Posté le 05/09/2018 21:50 | #
Je ne pense pas que c'est difficile de signer un addin avec du RSA. On calcule un grand entier a avec les octets de l'addin (un hash), puis on calcule b=a^d mod n ou d est la clef privee RSA de Casio, on l'ajoute a l'addin. En mode examen, l'OS calcule b^e mod n ou e est la clef publique correspondant a d (e et d sont inverses modulo l'indicatrice d'Euler de n) et on verifie que c'est la meme chose que le calcul du hash donnant a, si oui l'OS lance l'addin, sinon il refuse de lancer.
Je ne suis pas un specialiste en crypto ceci dit.
Citer : Posté le 06/09/2018 12:53 | #
Ça a l'air pas mal. Est-ce qu'on a plus de détails sur la façon dont TI le fait ? Plus on leur met d'arguments sous les yeux, plus on a de chances de les convaincre.
Citer : Posté le 06/09/2018 13:02 | #
Pourquoi vous voulez mettre une signature cryptographique (qui va rendre le reverse engineering encore plus difficile) ?
Franchement je pense pas que casio soit d'accord avec ce port : s'ils voulaient mettre MPy sur graph 35+E, ils ont pas besoin de moi. C'est une décision de leur part de restreindre le python au haut de gamme.
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 06/09/2018 13:06 | #
Pourquoi vous voulez mettre une signature cryptographique (qui va rendre le reverse engineering encore plus difficile) ?
Situons un peu le contexte... il s'agit d'autoriser des add-ins en mode examen.
Il est clair que les add-ins autorisés doivent être sélectionnés par Casio si l'on veut proposer quelque chose qui a la moindre chance d'être débattu. Et avant même de savoir comment ils sont choisis, se pose une question sérieuse : comment la calculatrice qui passe en mode examen peut-elle distinguer un add-in spécialement autorisé par Casio d'un autre ?
La réponse est : une signature cryptographique. Si Casio signe les add-ins autorisés, alors la calculatrice peut savoir d'une façon sûre (grâce à la magie de la cryptographie) si les add-ins présents sont autorisés ou non.
Le reverse-engineering ne devrait pas être impacté selon toute vraisemblance puisque le code compilé restera intact. Cela ne fait qu'ajouter un niveau de sécurité ; pour nous, c'est tout bénef. Usurper sera plus dur (sauf à casser RSA ?) mais de toute façon notre objectif n'est pas là, bien au contraire.
Citer : Posté le 06/09/2018 13:33 | #
Pour la signature, je confirme que c'est très facilement faisable. Par contre ça nécessite une màj du système, et ça se contourne "relativement" facilement avec un poil de rétro-ingénierie si c'est fait de manière évidente.
Par exemple, il pourrait suffire de remplacer le saut à l'adresse de la fonction qui vérifie la signature à l'adresse qui lance l'addin pour que ça foire (en gros un +x à une adresse bien choisie).
Il faut savoir que fonctionnellement parlant, ce n'est pas possible de faire un système fiable à 100 %. La preuve : tous les logiciels finissent pas être crackés, même bourrés de DRM. Il y a donc une grosse partie d'acceptation du risque de fraude.
Mais ça c'est pareil avec le mode examen en général, Casio ne peut pas assurer à 100 % que personne n'ira publier un truc qui permet de sortir du mode examen par une combinaison de 2 touches, par exemple…
Citer : Posté le 06/09/2018 14:05 | #
Ce type d'attaque devrait deja pouvoir etre mis en place, il doit bien y avoir du code quelque part qui teste si on est en mode examen ou pas quand on essaie de lancer l'addin et qui le lance uniquement hors mode examen, qu'est-ce qui empecherait de bypasser ce code deja maintenant?
Citer : Posté le 06/09/2018 14:13 | #
Si casio doit autoriser les addins au cas par cas, autant qu'ils les implémentent eux-mêmes. Et surtout, qui leur dit que l'auteur d'un des addins autorisés n'ajoute pas une backdoor du mode examen ?
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 06/09/2018 14:20 | #
Casio n'a pas forcément envie d'implémenter un CAS complet sur Graph 90. Ça serait un gros projet très ambitieux... alors qu'il en existe déjà un.
Quant aux possibilité de backdoor, le but est que ce soient eux qui compilent les add-ins autorisés. On ne fournit que le code, eux ont le contrôle sur tout ce qui filtre. De toute façon il n'y a qu'eux qui pourraient les signer.
Citer : Posté le 06/09/2018 17:01 | #
Casio n'a aucune envie d'implementer un CAS, le CAS de la classpad est externalise, chez Saltire je crois. TI non plus, c'etait Derive. HP non plus, c'est moi. Ensuite il y a un minimum de confiance a avoir, ils ne vont pas relire 200 000 lignes de code. Quel interet aurais-je a installer une backdoor?
Le probleme c'est de convaincre Casio qu'il gagnera plus a avoir une Graph 90+e avec CAS et programmation compatible Python bien plus complete ou une monochrome avec Eigenmath et addin Python que sans: c'est un argument vis-a-vis de la concurrence au meme prix.
Citer : Posté le 06/09/2018 17:06 | #
Je crois que tu mets le doigt sur le bon point ici... sauf s'ils en profitent pour changer le prix, mais ça j'ai des doutes.
Question beaucoup plus pragmatique étant comment les contacter. Il faut que je demande à Dark Storm qui on a comme interlocuteurs, de mémoire Casio France n'est pas très réceptif mais Casio Europe beaucoup plus. Mieux vaut peut-être aller directement voir les seconds.
Citer : Posté le 06/09/2018 17:15 | #
Je pensais discuter avec Casio France lors de l'APMEP en octobre prochain a Bordeaux, mais si on peut contacter quelqu'un avant c'est mieux.
Citer : Posté le 06/09/2018 18:24 | #
Du coup tu veux qu'ils distribuent des addins officiels (comme geometry et physium) ? Faudrait que l'OS de la graph 35+E soit mis à jour pour accepter des addins aussi, ce qu'ils ne veulent pas forcément. Je pense qu'ils l'intégreront dans l'OS (mais ça revient au même).
Par contre, honnêtement, je suis pas super chaud pour confier mon code à Casio : déjà j'ai aucune idée de s'ils vont virer mon nom ou pas (genre remplacer Zezombye par "casio computer co" dans le message de bienvenue de l'interpréteur), apparemment la GPL v3 le permet : https://opensource.stackexchange.com/questions/1786/removing-the-original-copyright-line-from-footer
Ensuite, vu les décisions douteuses qu'ils ont faites avec leur interpréteur (grosse police, majuscules par défaut) j'ai pas envie qu'ils modifient mon UI pour mettre la leur qui est moins bien.
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 06/09/2018 20:07 | #
Si tu n'as pas envie de leur partager ton code ou que les conditions sur lesquelles on pourrait hypothétiquement s'accorder avec Casio si tout se passe bien ne te plaisent pas... pas de problème, mais ça ne m'empêchera pas de faire mon propre port de MicroPython.
Citer : Posté le 06/09/2018 20:35 | #
Si Casio a choisi la police de taille maximale sur la 90 c'est peut-etre dans l'idee de porter leur UI et MicroPython sur les monochromes.
Concernant le changement de notice de copyright, la GPL ne permet absolument pas de s'attribuer le travail d'un autre apres modification, elle dit qu'il faut attribuer a chacun ce qu'il a fait ou modifie.
Sur la distribution d'un addin signe, j'ai un doute, parce que la GPL garantit le droit d'un tiers de modifier le logiciel sous licence GPL et de l'utiliser, mais evidemment l'addin modifie ne serait plus signe. Ca necessiterait peut-etre une exception.
Citer : Posté le 06/09/2018 20:58 | #
Par contre, honnêtement, je suis pas super chaud pour confier mon code à Casio : déjà j'ai aucune idée de s'ils vont virer mon nom ou pas (genre remplacer Zezombye par "casio computer co" dans le message de bienvenue de l'interpréteur), apparemment la GPL v3 le permet : https://opensource.stackexchange.com/questions/1786/removing-the-original-copyright-line-from-footer
Je pense que tu as mal choisi la licence. Si tu ne veux pas que le code soit réutilisé sans que l'on cite ton nom, c'est pas une GPLv3 qu'il te faut.
Le problème étant que MicroPython étant sous GPLv3, t'as pas le choix
Faut faire avec
Citer : Posté le 07/09/2018 10:53 | #
Ce serait laquelle du coup ?
MicroPython est sous MIT, c'est Edit qui est sous GPL v3.
Du coup il faudrait déjà envoyer un mail à Casio pour savoir s'ils comptent faire un MPy pour graph 35 (sur TI-P, quelqu'un a déjà envoyé un mail pour la FX-CG 10/20, ils ont dit non car c'était plus vendu).
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 07/09/2018 11:01 | #
J'en profite pour dire qu'un copyright avec un pseudonyme n'est pas un copyright valide et n'a aucune valeur, tout comme un nom de team ; il faut un vrai nom.
Mon blog ⋅ Mes autres projets
Citer : Posté le 07/09/2018 11:22 | #
Apparemment, ça a de la valeur :
https://askubuntu.com/questions/46380/how-do-i-use-gpl-and-mit-licenses-correctly
https://opensource.stackexchange.com/questions/4023/must-authors-name-be-included-in-gnu-gpl-v3
Un peu moins qu'un vrai nom, mais je pense que si je mets "Copyright (c) Zezombye <>" ça devrait le faire, je peux facilement prouver que je suis le détenteur de mon email.
Ecrivez vos programmes basic sur PC avec BIDE