Simple Science

La science de pointe expliquée simplement

# Informatique# Cryptographie et sécurité# Architecture matérielle# Systèmes d'exploitation

Améliorer l'accès mémoire sécurisé avec des capacités

Un nouveau design offre une meilleure sécurité pour l'accès à la mémoire dans les systèmes informatiques.

― 7 min lire


Accès Mémoire SecuriséAccès Mémoire SecuriséRedéfinila mémoire.fonctionnalités renforce la sécurité deLa nouvelle conception de
Table des matières

L'accès à la mémoire est super important dans les systèmes informatiques, surtout en ce qui concerne la sécurité. Une nouvelle approche pour sécuriser l'accès à la mémoire, appelée isolation de mémoire basée sur des Capacités, a vu le jour. Ce truc permet aux logiciels d'interagir avec la mémoire en utilisant des poignées spéciales, appelées capacités, au lieu de pointeurs classiques. Ce système aide à imposer des règles de sécurité de manière plus naturelle.

Bien que les conceptions existantes comme CHERI offrent un certain niveau de Sécurité de la mémoire, elles ne répondent pas forcément à tous les besoins de sécurité. Cet article discute d'une nouvelle conception de capacités qui vise à fournir une base plus solide pour un accès sécurisé à la mémoire sans dépendre de composants logiciels de confiance.

Background

Sécurité de la Mémoire

La sécurité de la mémoire consiste à protéger une application contre l'accès à des régions de mémoire incorrectes ou nuisibles. Les conceptions basées sur des capacités peuvent améliorer la sécurité de la mémoire en s'assurant que les droits d'accès sont liés aux capacités.

Limitations des Conceptions Existantes

Les architectures de capacités actuelles offrent une sécurité spatiale mais manquent de flexibilité pour d'autres modèles de mémoire dont les applications peuvent avoir besoin. Ce défi peut causer des complications lors de la conception de systèmes nécessitant une variété de protections de mémoire.

Une Approche Améliorée

La conception proposée introduit un modèle de capacité plus expressif qui peut supporter diverses méthodes d'isolation de mémoire. La nouvelle interface est destinée à des environnements où le partage de mémoire et la gestion des accès sont nécessaires sans confiance établie.

Fonctionnalités Clés

Accès Exclusif

Les capacités linéaires aident à garantir un accès exclusif à des régions de mémoire, s'assurant qu'aucune autre capacité ne peut chevaucher les droits d'accès à la mémoire accordés par une capacité linéaire.

Délégation et Révocation

La possibilité de déléguer l'accès à la mémoire à d'autres composants tout en conservant la capacité de révoquer cet accès à tout moment fournit une structure solide pour la gestion de la mémoire à travers différents domaines de sécurité.

Gestion Hiérarchique des Privilèges

La conception prend en charge l'établissement d'une hiérarchie de privilèges qui peut être étendue selon les besoins, améliorant la gestion du partage de mémoire et du contrôle d'accès.

Mise en Œuvre

Un prototype de la conception proposée a été développé pour démontrer son utilité et son efficacité. Ce prototype comprend un émulateur et un compilateur simple pour permettre différents modèles d'isolation de mémoire.

Évaluation

L'évaluation du prototype montre que les opérations d'accès à la mémoire peuvent être effectuées avec un minimum de surcharge de performance. La conception proposée peut soutenir efficacement des modèles de mémoire distincts sans nécessiter d'environnement logiciel de confiance.

Allocation de Mémoire sans Confiance

Allocateur de Mémoire

L'allocateur de mémoire offre des capacités linéaires pour les régions de mémoire allouées, s'assurant que les applications peuvent utiliser la mémoire sans avoir à faire confiance à l'allocateur pour gérer l'accès.

Exemple de Flux de Travail

Quand une application demande de la mémoire, elle reçoit une capacité linéaire qui permet un accès exclusif. Si l'application libère la mémoire, l'allocateur ne peut pas accéder aux données précédemment stockées, maintenant la confidentialité.

Planification de Threads sans Confiance

Mécanisme de Planificateur

Le planificateur de threads fonctionne indépendamment des applications. Il garantit que les applications peuvent fonctionner sans avoir besoin de faire confiance au planificateur pour leurs données, renforçant ainsi la sécurité globale.

Gestion de Contexte

Lorsqu'un thread est changé, le planificateur sauvegarde le contexte du thread pour préserver son état et empêcher l'accès non autorisé aux données protégées.

Environnements d'Exécution de Confiance

Vue d'Ensemble des EEE

Les Environnements d'Exécution de Confiance (EEE) permettent aux applications de s'exécuter en toute sécurité sans avoir à faire confiance au logiciel sous-jacent. La conception de capacité proposée peut faciliter la création d'EEE qui ne nécessitent pas de dépendance à des composants de confiance.

Isolation Spatiale

Une enclave est une région de mémoire privée accessible uniquement à une application spécifique. La conception permet la création et la gestion faciles de telles enclaves, renforçant la sécurité.

Enclaves Imbriquées

Structure et Fonctionnalité

La conception prend en charge les enclaves imbriquées, ce qui signifie qu'une enclave peut créer d'autres enclaves à l'intérieur. Cette structure hiérarchique permet un partage complexe de mémoire et une gestion des privilèges.

Considérations de Sécurité

La superposition des enclaves peut être contrôlée, garantissant que l'accès est réglementé et que les enclaves peuvent maintenir leur intégrité tout en partageant des ressources.

Enclaves Temporellement Isolées

Gestion Dynamique des Permissions

La conception proposée permet des ajustements dynamiques des permissions d'accès à la mémoire au sein des enclaves. Cette approche temporellement isolée permet un partage de ressources plus flexible.

Accès Contrôlé

Les enclaves peuvent définir des politiques d'accès variables dans le temps pour gérer les permissions, s'assurant que les données ne sont accessibles que lorsque c'est approprié.

Gestion de Mémoire de Type Rust

Mécanisme d'Abstraction

La nouvelle conception peut imiter le modèle de propriété et d'emprunt de Rust pour la gestion de la mémoire, permettant une sécurité spatiale et temporelle sans nécessiter de composants de confiance.

Mécanisme de Vérification Dynamique

Grâce à des vérifications à l'exécution, la conception proposée garantit que l'accès à la mémoire suit les contraintes de propriété, empêchant ainsi l'accès non autorisé aux données.

Travaux Connexes

Comparaison avec CHERI

Bien que CHERI offre certaines capacités, il lui manque l'expressivité nécessaire pour supporter efficacement une variété de modèles de mémoire. La conception proposée vise à combler cette lacune et à fournir une solution robuste.

Sécurité de la Mémoire dans la Programmation

De nombreux langages de programmation intègrent des fonctionnalités de sécurité pour garantir un accès correct à la mémoire. La conception proposée s'aligne sur ces principes, cherchant à améliorer la sécurité au niveau architectural.

Futurs Travaux

Une exploration plus poussée est prévue pour passer de la conception proposée d'un cadre théorique à des mises en œuvre matérielles pratiques. L'intention est d'élargir les applications et de peaufiner l'approche en fonction des données et des retours du monde réel.

Conclusion

Une nouvelle conception architecturale basée sur des capacités peut renforcer l'accès sécurisé à la mémoire à travers diverses applications. En soutenant plusieurs modèles d'isolation de mémoire et en garantissant le contrôle d'accès sans dépendre de composants de confiance, cette approche offre une direction prometteuse pour la sécurité informatique future.

Références

Note

Les informations fournies dans cet article sont tirées de diverses études de recherche et de cadres existants liés à la gestion de la mémoire, aux capacités et à la sécurité dans les systèmes informatiques.

Source originale

Titre: Capstone: A Capability-based Foundation for Trustless Secure Memory Access (Extended Version)

Résumé: Capability-based memory isolation is a promising new architectural primitive. Software can access low-level memory only via capability handles rather than raw pointers, which provides a natural interface to enforce security restrictions. Existing architectural capability designs such as CHERI provide spatial safety, but fail to extend to other memory models that security-sensitive software designs may desire. In this paper, we propose Capstone, a more expressive architectural capability design that supports multiple existing memory isolation models in a trustless setup, i.e., without relying on trusted software components. We show how Capstone is well-suited for environments where privilege boundaries are fluid (dynamically extensible), memory sharing/delegation are desired both temporally and spatially, and where such needs are to be balanced with availability concerns. Capstone can also be implemented efficiently. We present an implementation sketch and through evaluation show that its overhead is below 50% in common use cases. We also prototype a functional emulator for Capstone and use it to demonstrate the runnable implementations of six real-world memory models without trusted software components: three types of enclave-based TEEs, a thread scheduler, a memory allocator, and Rust-style memory safety -- all within the interface of Capstone.

Auteurs: Jason Zhijingcheng Yu, Conrad Watt, Aditya Badole, Trevor E. Carlson, Prateek Saxena

Dernière mise à jour: 2023-03-09 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2302.13863

Source PDF: https://arxiv.org/pdf/2302.13863

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires