• Aucun résultat trouvé

3.3 Utilisation d’un cache d’arbres de Merkle

4.1.3 Architecture et structures de données

Les primitives cryptographiques utilisées pour garantir l’intégrité et la confidentialité sont calculées à l’intérieur du SoC (considéré comme zone sécurisée). Cela permet de garantir qu’aucune information sensible ne sort du SoC sans chiffrement et ne peut être altérée sans détection. SecBus est composé de deux parties : un module matériel (HSM, Hardware Security Module) qui prend en charge les opérations de la sécurité (chiffrement, déchiffrement et vérifi- cation d’intégrité) et d’un module logiciel permettant de configurer le HSM. L’ajout du HSM implique quelques modifications matérielles du SoC qui doivent rester les plus faibles et les plus transparentes possibles.

Tous les accès de lecture et d’écriture vers la mémoire externe passent par le HSM et, si nécessaire, des primitives cryptographiques sont appliquées. Le meilleur endroit possible pour le HSM est donc à l’intérieur de la puce entre le bus d’interconnexion et le contrôleur mémoire. La figure 4.5 présente un SoC avec le module HSM.

Les parties logicielle et matérielle de SecBus se complètent. L’assistance logicielle, assurée par le gestionnaire de sécurité logicielle (SSM, Software Security Manager), consiste à décider quelle politique de sécurité doit être appliquée à chaque page de mémoire. Dans l’architecture SecBus, le HSM est configuré et piloté par le SSM qui définit les politiques de sécurité (SP, Security Policies) et qui lie les pages mémoire avec les SP en utilisant des structures de données dédiées. Le HSM consulte ces structures de données de façon autonome et applique les poli- tiques de sécurité spécifiées. Cette coopération entre le logiciel et le matériel est directement

A SecBus-equipped SoC exposed busses on-chip RAM on-chip ROM Memory Controller on-chip peripherals MMU CPU HSM IO on-chip interconnect $I $D

FIGURE 4.5 – Le HSM à l’intérieur du SoC

inspirée de celle qui existe entre le gestionnaire de mémoire d’un système d’exploitation et la MMU (Memory Management Unit) du processeur.

4.1.3.1 Politiques de sécurité

L’architecture SecBus permet la définition de sécurité avec le niveau de granularité des pages mémoire individuelles. Cela permet une plus grande flexibilité (exemple : traiter les pages mémoire RO et RW de manière différente pour atténuer la dégradation des performances, ne protéger que ce qui doit l’être...). Le SSM crée des politiques de sécurité (Security Policy ou SP). A chaque page de mémoire physique, il associe une SP et le HSM applique cette politique à tous les accès qui concernent cette page. Cette organisation simple facilite la conception du SSM et du HSM.

Une SP contient les informations suivantes : — un bit de validité,

— un mode d’intégrité (NONE, MAC-Set ou MAC-Tree), — un mode de confidentialité (NONE, CTR, CBC),

— des clés cryptographiques : une clé secrète pour les modes de confidentialité et une deuxième clé secrète pour les calculs des MAC utilisés pour l’intégrité.

4.1.3.2 Paramètres de sécurité de page

La seconde structure de données mise en place par le SSM fait le lien entre une page mé- moire et la politique de sécurité à appliquer. Il s’agit de la PSPE (Page Security Parameter Entry). De la même manière qu’il existe une entrée par page dans une table de pages pour que la MMU puisse effectuer une traduction d’une adresse virtuelle en une adresse physique, il existe une PSPE par page mémoire pour que le HSM puisse appliquer aux accès à cette page les primitives cryptographiques nécessaires. Il existe deux formats de PSPE : maître et esclave.

Une PSPE maître contient les informations suivantes : — un bit de validité,

— un indicateur de taille de page.

— un bit indiquant si la page est protégée en confidentialité ou en intégrité, redondant avec la SP associée et présent uniquement pour des raisons de performance,

— un index de SP,

— l’adresse d’un ensemble de IV utilisée uniquement si la page est protégée en mode CBC et que les IV sont activés,

— l’adresse d’un ensemble de MAC ou d’arbre de MAC utilisée uniquement si la page est protégée en intégrité.

L’indicateur de de taille de page permet d’associer une PSPE à une taille spécifique de page mémoire. Dans l’exemple d’un système à base d’ARM avec quatre tailles de pages, 4 Kio, 64 Kio, 1 Mio et 16 Mio, une PSPE correspondant à une page alignée sur une frontière de 16 Mio peut être celle d’une :

— page de 4 Kio (la page de 16 Mio est divisée en 4096 pages de 4 Kio), — page de 64 Kio (la page de 16 Mio est divisée en 256 pages de 64 Kio), — page de 1 Mio (la page de 16 Mio est divisée en 16 pages de 1 Mio), — page de 16 Mio (la page de 16 Mio existe).

La recherche dans les tables de PSPE commence par trouver la première PSPE de la page possédant la taille la plus grande et dans laquelle l’adresse cible est inclue. Une fois cette PSPE récupérée, on vérifie si la taille de celle-ci couvre l’adresse cible. Si cette PSPE couvre bien l’adresse cible, la recherche est terminée. Sinon, on cherche la PSPE de la page possédant la prochaine taille la plus grande. Le processus de recherche continue jusqu’à trouver une PSPE valide et qui couvre l’adresse cible.

Dans le cas où l’index SP indique une protection d’intégrité, le champ adresse contient l’adresse d’un ensemble de MAC dans une page MS ou l’adresse d’un arbre de MAC dans une page MT.

Dans la version actuelle de SecBus, une PSPE esclave contient les informations suivantes : — un condensé cryptographique (la racine d’un arbre de MAC),

— un indicateur de taille de page.

A chaque page MT correspond une PSPE esclave. Elle est utilisée pour stocker le condensé calculé sur les racines des arbres de la page MT. C’est, en quelque sorte, la racine des racines. Le processus de recherche de PSPE esclave est exactement le même que pour une PSPE maître.

4.1.3.3 Arbre de MAC Maître (MMT)

Les deux structures de données utilisées par SecBus, SP et PSPE, sont stockées dans une zone dédiée dans la mémoire externe, nommée Master Block (MB), et protégée en intégrité par un arbre de MAC Maître (MMT, Master MAC Tree).

La figure 4.6 présente l’organisation de la mémoire. Les pages RW sont allouées avec une protection d’intégrité et sont liées aux pages MT grâce aux PSPE maîtres. La racine des arbres de MAC de la même page MT est stockée dans la PSPE esclave associée, dans la zone de PSPE du MB. Les pages RO sont aussi allouées et protégées en intégrité par les ensembles de MAC qui sont stockées dans les pages MS.

PSPE esclave = la racine des d’une page MT arbres de MAC protégées en intégrité par MMT PSPSEs et SPs La racine du MMT stockée dans le HSM (sécurisée) PSPEs SPs MMT Master Block Integrité-RW (MAC-Tree) page MS page MT RO page RW page RW RW page page Integrité-RO (MAC-set)

FIGURE4.6 – Présentation de la mémoire externe avec les pages d’intégrité et le MB