Coffre-fort temporel
Maintenant que nous avons de quoi mesurer un délai, qui plus est sans avoir besoin d'énergie, et compatible avec une technologie silicium dont sont faites les puces cryptographiques, il ne reste plus que les menus problèmes de sécurité à régler.
Ce sera facile car il s'agit de bon sens et d'évidences.
Voici la structure générale, probablement la plus simple :
Par rapport à la mesure du délai (page précédente), j'ai ajouté le secret à relâcher lorsque le niveau cible sera atteint, plus exactement lorsque la valeur de radioactivité mesurée sera inférieure à ce seuil, puisqu'elle décroit systématiquement dans ce cas de figure.
Du point de vue sécurité, très classiquement il faudra protéger le secret des observateurs extérieurs, ce qui se fait habituellement dans toutes les puces cryptographiques, rien de spécial de ce point de vue.
Le niveau cible n'a pas besoin d'être secret, sauf si vous ne voulez pas révéler quand le secret sera relâché (ce qui est un cas vraiment particulier, j'imagine que vous en conviendrez). Par contre, et c'est très important, il faut impérativement protéger sa valeur contre une substitution quelconque. Par exemple, un attaquant pourrait cibler la case mémoire où est stockée la valeur et l'altérer. Rien que pour ça, c'est mieux de tout cacher, voire de prévoir de la redondance et un contrôle d'intégrité.
D'une manière évidente, il ne faut pas pouvoir reprogrammer le système, et on pourra utiliser un fusible pour n'autoriser qu'une seule écriture, ce qui se fait habituellement dans les puces pour les protéger.
Radiations
La partie vraiment nouvelle du point de vue sécurité, c'est l'usage de la radioactivité. Nous avons augmenté la surface d'attaque, et invariablement, de nouvelles attaques vont se produire.
Attaques aux radiations
Une attaque un peu évidente est de placer le système près d'une source radioactive, en espérant perturber la mesure interne.
espérant lui faire relâcher le secret. Cela ne fera que la bloquer.
Sauf que dans ce cas précis, parce que le système est basé sur de la désintégration et donc de la disparition d'isotopes, augmenter la radioactivité ne fera que bloquer le système qui n'atteindra jamais le seuil pour libérer le secret. Nous sommes donc plutôt en face de déni de service, mais le secret, lui ne sera pas relâché.
De plus, généralement les circuits électroniques (surtout ceux avec de tout petit MOS) n'aiment pas, mais pas tout, être exposés à des niveaux radioactifs trop importants car cela détériore les transistors. On blinde les systèmes qui vont dans l'espace ou ceux des bombes atomiques, on pourra faire la même chose.
Le seul moyen de relâcher le secret, c'est de baisser la radioactivité dans le système, ce qui suppose d'avoir accès à la source interne.
Il faut savoir que les puces cryptographiques sont plutôt conçues pour tomber en panne quand on tente de les ouvrir, aussi un démontage n'aura guère de chance de donner l'accès au secret.
Ou alors on pourrait provoquer la désintégration de l'isotope utilisé, par exemple en le bombardant de neutrons ou autres particules adéquates ─ce qui n'est pas à la portée de tout le monde. Mais ce faisant, l'attaquant aura toutes les chances de détériorer le circuit autour, en particulier la diode de lecture.
On pourra toujours ajouter d'autres capteurs de radioactivité pour surveiller plus spécifiquement l'environnement, comme les badges pour les humains. À la première tentative de redémarrage de la puce, si le niveau externe est anormal, alors la puce se bloque.
Attaques aux radiations à la programmation
Un moment très critique est la programmation de la puce, qui n'arrivera qu'une seule fois. C'est le moment où on entre le secret, et on calcule le niveau cible en donnant le délai souhaité (ou la date de libération, c'est pareil si on connait la date courante).
L'attaque la plus sournoise que j'imagine est qu'un attaquant pourrait augmenter la radioactivité de l'environnement juste au moment de la programmation.
En effet, c'est le moment le plus vulnérable car si le système mesure un niveau plus haut que le réel par exemple en mesurant 20 000 au lieu de 10 000, alors le niveau cible calculé sera trop haut par exemple 5 000 au lieu de 2 500 -regardez l'exemple page précédente, ce qui canule le délai. Le secret sera relâché bien plus tôt, voire immédiatement après l'éloignement de la source supplémentaire !
La contre-mesure est assez évidente: il faut surveiller le niveau de radioactivité. Non seulement on pourra avertir l'utilisateur que le niveau est anormalement élevé, et on aura tendance à limiter les valeurs autorisées lors de la programmation, dans une certaine mesure bien sûr.
J'espère vous avoir convaincu qu'ajouter une horloge d'une manière sécurisée dans une puce électronique est loin d'être infaisable.
Ne vous énervez pas si vous vouliez poser un brevet, c'est déjà fait : Notice n° FR3125143 Circuit intégré programmable utilisant une source radioactive.