[Howto] PIC et USB : le bootloader Diolan

Bonjour a tous, je viens de terminer (le premier jet ?) d'un article expliquant la mise en oeuvre du bootloader Diolan. C'est un bootloader pour PIC USB, permettant le cryptage de nos firmwares-application, et disponible en GPL. C'est là :

formatting link

J'attends vos remarques

--
Laurent.

---------------------------------------------
 Click to see the full signature
Reply to
Laurent CLAUDE
Loading thread data ...

Le 03/07/11 13:13, Laurent CLAUDE a écrit :

Bonjour (ou bonsoir) Claude,

Je n'ai pas suivi le lien (je n'ai pas le temps malheureusement ...) mais est tu sûr que le code initial est GPL ?

Il y a des mots qui ne "collent" pas avec la philosophie GNU. Par ex. "Firmware" avec le mot Firm ... ; "Cryptage" quand c'est pour cacher ce que tout le monde sait (des algos bidons qui sont pour la plupart in-brevetables et tout ça pour enfumer) ; ...etc.

Un bootlaoder est assez facile à réaliser, on apprend plein de choses à le "coder" tout seul et ensuite le partager avec qui on veut ... la GPL nous donne juste le moyen de le partager avec le plus grand nombre et pas besoin de Diolan ou autre. Voila mon avis.

Bon courage.

H
Reply to
Habib Bouaziz-Viallet

Le 05/07/2011 22:59, Habib Bouaziz-Viallet a écrit :

Salut Habib, la licence est bien une GPL (version 3 pour être précis). Son texte est fourni avec les sources, les choses sont très claires a ce niveau.

les avantages que j'ai trouvé dans ce bootloader sont :

- il est tout fait (mais j'admets que c'est intéressant de le faire soi même) donc c'est rapide

- le cryptage, qui permet de diffuser tes softs uniquement a ceux qui ont ton hard, par exemple dans une démarche commerciale

Après, pour ce qui est du vocabulaire : c'est le mien, n'ayant rien a voir avec diolan j'utilise juste mes mots ;-)

--
Laurent.

---------------------------------------------
 Click to see the full signature
Reply to
Laurent CLAUDE

e

es =E0

Salut Claude !

st

Ok donc pour la GPLV3.

Ok je comprends.

Je jetterai un coup d'oeil sur le lien diolan et tes commentaires.

Bonne continuation,

Habib

Reply to
arachnoid

Le 06/07/2011 14:13, arachnoid a écrit :

avec plaisir ! et je veux bien des retours... A+

--
Laurent.

---------------------------------------------
 Click to see the full signature
Reply to
Laurent CLAUDE

Le 07/07/2011 21:38, Laurent CLAUDE a écrit :

Laurent (pardon de t'avoir appelé Claude ... c'est l'habitude ...)

Si j'ai bien compris un des aspects de ce BootLoader est la faculté de déchiffrer, au moment du transfert ,le code exécutable avant l'opération de flash dans le uC.

Je vois là un inconvénient majeur - ou peut être n'ai pas bien compris le processus - c'est cette question :

Ou se trouve la clé qui a servit à l'émetteur (celui qui chiffre les blocs) et comment le récepteur récupère cette clé pour déchiffrer les blocs ?

La réponse :

Si on peut trouver la clé au sein des blocs eux-mêmes alors c'est pas très dur comme chiffrement ... mais je ne juge pas de l'algo lui même soyons bien clairs ! je ne suis fait de cryptanalyse.

De ce point de vue - AMHA - ce sont les processus à deux clés, l'une publique et l'autre privée qui sont les plus durs vis à vis du reverse eng.

L'autre problème c'est : l'algo est t'il lui même GPL pour prétendre là ce que e code complet du BootLoader soit lui même GPL .?

Réponse : je doute que XTEA soit GPL alors c'est potentiellement pas Ok pour GPL.

En dehors de ça c'est une bonne description dans ton blog.

Bonne continuation,

Habib.

Reply to
Habib

Le 09/07/2011 11:03, Habib a écrit :

Bonjour Habib,

La clé de déchiffrement se trouve dans le code du bootloader (donc définie lors de la programmation initiale), lui même protégé par un CODE PROTECT. A mon avis, dans de nombreux cas cela suffit.

Pour ce qui est de la licence XTEA, j'avoue ne pas avoir approfondi dans ce sens mes recherches, Diolan annonce la globalité de leur code en GPL, je *pense* donc que c'est eux qui ont codé cette fonction.

Merci de ton retour.

--
Laurent.

---------------------------------------------
 Click to see the full signature
Reply to
Laurent CLAUDE

Le 09/07/2011 22:58, Laurent CLAUDE a écrit :

Je me complète : j'ai regardé plus en détails dans le code de cette fonction et (comme pour tout le reste du code) il est clairement stipulé la licence GPL.

--
Laurent.

---------------------------------------------
 Click to see the full signature
Reply to
Laurent CLAUDE

Le 09/07/2011 22:58, Laurent CLAUDE a écrit :

Ah j'ai compris ! Dans le code du bootloader du uC il y a ceci :

;----------------------------------------------------------------------------- ; XTEA Algorithm Definitions ;----------------------------------------------------------------------------- XTEA_ITERATIONS equ 0x40 ; Number of iterations on x1,x2 ;----------------------------------------------------------------------------- XTEA_KEYS_SECTION CODE_PACK 0x001C ; Place ROM constants after vectors #ifndef XTEA_KEY XTEA_KEY_VAL db "0123456789ABCDEF" ; default 16 byte Key #else XTEA_KEY_VAL db XTEA_KEY ; User 16 byte Key #endif

A l'utilisateur de changer la valeur XTEA_KEY_VAL par un 16 octets (qui sera dès lors la clé) et nul besoin ensuite de placer cette clé dans les blocs puisque celle ci est implicitement connue de l'emetteur (le PC ou la station) et du recepteur (le hardware proprietaire à base du uC microchip). Bien !

Petite digression : ===================

Je reprends mon premier commentaire à savoir que tout est basé sur le secret de la clé de chiffrement, là encore pas de nouveauté sur des algos qui ont été brisés depuis des lustres ...

Je pense qu'il eu été possible de réaliser un algo d'échange de clés, l'un publique et l'autre privée pour faire la même chose mais peut être avec plus de ressources matérielles dans le bootLoader lui même.

Bonne continuation

Reply to
Habib Bouaziz-Viallet

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.