Gestion de mémoire sécurisée et masquée en Rust

Bonjour HN ! J'ai travaillé sur un projet qui gère des identifiants sensibles en mémoire, et je voulais quelque chose de plus robuste que simplement effacer la mémoire à la libération. Un commentaire sur un récent Show HN[0] m'a fait réaliser que la connaissance des techniques de protection mémoire bas niveau n'est peut-être pas aussi répandue que je le pensais. L'idée ici est de rassembler tous les outils dans une seule crate, avec une API relativement simple. * mlock/VirtualLock pour empêcher la mémoire sensible d'être paginée (ex: le dump KeePass) * Exclusion des core dumps avec MADV_DONTDUMP sur Linux & Android * mprotect pour minimiser l'exposition dans le temps * Pages de garde pour atténuer les débordements Après quelques tests intensifs, l'objectif est de fournir une base mémoire plus sécurisée pour les gestionnaires de mots de passe et portefeuilles de cryptomonnaies. C'était un projet passionnant, et j'ai beaucoup appris - j'adorerais avoir vos retours ! [0] - https://news.ycombinator.com/item?id=47073430

  • Android
  • FinTech
  • macOS

Résumé IA

Shrouded est une crate Rust conçue pour renforcer la sécurité de la gestion de la mémoire en cours d'exécution pour les données sensibles. Elle exploite des techniques de protection de la mémoire de bas niveau pour empêcher l'échange, exclure les données des core dumps, minimiser l'exposition dans le temps et atténuer les débordements.

Idéal pour

Développeurs de gestionnaires de mots de passe, Développeurs de portefeuilles de cryptomonnaies, Développeurs gérant des identifiants de haute valeur en cours d'exécution

Pourquoi c'est important

Offre une base mémoire plus robuste et sécurisée pour les applications traitant des données sensibles en mettant en œuvre des techniques avancées de protection de la mémoire.

Fonctionnalités clés

  • Empêche l'échange de mémoire sensible en utilisant mlock/VirtualLock.
  • Exclut la mémoire des core dumps sur Linux et Android via MADV_DONTDUMP.
  • Minimise l'exposition de la mémoire dans le temps en utilisant mprotect.
  • Atténue les débordements/sous-débordements avec des pages de garde.

Cas d'usage

  • Un développeur de portefeuille de cryptomonnaies peut utiliser Shrouded pour protéger les clés privées en mémoire, empêchant qu'elles soient écrites sur le disque via des fichiers d'échange ou incluses dans les vidages de mémoire système, renforçant ainsi la sécurité contre les attaques par accès physique.
  • Une application de gestionnaire de mots de passe peut exploiter Shrouded pour sécuriser les identifiants utilisateur pendant leur utilisation active, garantissant que les données sensibles ne soient pas exposées via l'inspection de la mémoire ou la journalisation accidentelle.
  • Un développeur soucieux de la sécurité construisant une base de données en mémoire pour des informations hautement sensibles peut intégrer Shrouded pour mettre en œuvre une protection granulaire de la mémoire, réduisant le risque de fuite de données via les vulnérabilités système.