IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Effacement physique : suffisant ?


Sujet :

Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut Effacement physique : suffisant ?
    Bonjour à tous

    Pour l’effacement physique de fichiers, je me suis écrit deux petits softs. L’un efface un fichier, l’autre toute une arborescence.

    Procédé pour un fichier : (manipulation avec les handle)

    1/ Lire sa surface
    2/ Allouer un tampon mémoire vide (octets nuls) d’1 Mo de plus que la surface du fichier (je suis sûr de tout effacer)
    3/ Ouvrir le fichier en binaire (Open Read/Write )
    4/ Ecrire dedans autant de tampons que nécessaire à combler la surface définie en 2/
    5/ Le refermer
    6/ Le renommer d’un seul caractère alphanumérique, dans un répertoire temporaire. Si le fichier est sur C, le répertoire temporaire d’effacement est créé dans le répertoire temporaire du profil utilisateur. Sur une autre unité, en racine de la partition.
    7/ Effacement logique du fichier.

    Procédé pour l’arborescence : même chose pour chacun de ses fichiers. L’arborescence des répertoires est en cours de réécriture (je la supprimais, au lieu de renommer et déplacer chacun des sous-répertoires dans le répertoire temporaire d’effacement).

    Question : est-ce suffisant ? Que peut-il rester ? Des traces dans la MFT. D’autres sur l’espace libre du disque, que l’on voit avec Privazer. Je ne tiens pas compte des hash du fichier : indispensable ?

    Bon. A une époque, Eraser, présenté comme fidèle aux normes de la NSA (déjà elle ! ), effectuait 7 passages en écriture. C’est réellement nécessaire ?

    A votre avis ?

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Citation Envoyé par bvsud Voir le message
    Question : est-ce suffisant ?
    Non, pas du tout. Avec ta méthode, tu ne fais que réécrire des données sur les données du fichier "logique". Mais tu n'écrase pas forcément les données écrites sur le disque, parce que les nouvelles données de ton fichier, lors de l'enregistrement, ne seront pas forcément écrites au même endroit sur le disque que les données précédentes. Ton fichier paraitra effectivement vide, mais il pourra rester quelque part sur le disque des blocs d'octets qui sont déclarés libres mais qui contiennent encore des anciennes données de ton fichier.
    Il ne faut pas accéder à ton fichier en tant que fichier, mais il faut accéder à la structure du disque pour y effacer les blocs qui sont marqués comme contenant les morceaux de ton fichier. Il peut y avoir plusieurs blocs, et ils en sont pas forcément contiguës.
    Après, niveau code, comment ça se fait, je n'en sais rien. Perso, j'utilise Eraser qui me fait le boulot très bien.

    Citation Envoyé par bvsud Voir le message
    Bon. A une époque, Eraser, présenté comme fidèle aux normes de la NSA (déjà elle ! ), effectuait 7 passages en écriture. C’est réellement nécessaire ?
    Oui, non, ça dépend !

    Tout dépend du niveau de sécurité demandé. Eraser va, sur les standard de l'armée américaine jusqu'à 35 passes. Certaines normes exigent jusqu'à 240 passes (compter une bonne 10ène de jours pour un disque de 1To).

    Sur un disque dur magnétique, disque classique, déjà avec une seule passe, la plupart des logiciels du commerce, accessible au commun des mortels, ne seront pas capable de récupérer grand chose.
    A partir de 3 passes, la plupart des logiciels , même professionnels spécialisés (inaccessible au public) ne récupèreront que des bribes pratiquement inexploitable. Pour récupérer quelque chose, il faut envoyer le disque en laboratoire spécialisé, et ça coute une blinde.

    Donc si c'est pour éviter que ton kévin de fils récupère quelque chose, 1 passe suffit, 3 passes c'est déjà du luxe.
    Si tu as besoin d'un peu plus de sécurité, 3 passes est le minimum.
    Si tu as besoin au delà, c'est que tu es dans un système ou, de toute façon, il est très probable que l'on t'ait imposé la norme et l'outil à utiliser.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut
    Ca, c'est du précis

    Donc, une fonction comme celle du C : AbsWrite(), plutôt que les handle ?

    "mais il pourra rester quelque part sur le disque des blocs d'octets qui sont déclarés libres mais qui contiennent encore des anciennes données de ton fichier." : des blocs de données, quoi. Il reste donc qqch. Et ce, donc, même en plusieurs passes.

    Il doit bien exister une fonction ds Delphi, ou une API pour un AbsWrite, je suppose ?

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Pour la technique des Zéros, tu peux utiliser DeviceIoControl FSCTL_SET_ZERO_DATA
    Surtout qu'en utilisant une plus grande taille de fichier, tu risques effectivement de tomber sur un autre secteur du disque
    le handle sur le fichier

    Il me semble qu'avec un CreateFile "\\.\PhysicalDrive..." tu peux ouvrir le disque et obtenir la structure par Disque/Piste/Secteur
    Sur le forum, il y avait eu un sujet sur DeviceIoControl à ce niveau
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut
    Bonjour

    J'ai ma réponse. Et je vois se profiler pas mal de restaurations avec Acronis

    Je vais récrire le truc. Même si, actuellement, il faut quand-même aller farfouiller sur le dd (clef USB, ça je l'ignore) avec des softs très exigeants envers l'utilisateur.

Discussions similaires

  1. effacer une table que si elle existe ?
    Par soniaSQL dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/06/2003, 14h55
  2. [VBA-E] [Excel] Effacer une feuille
    Par Tray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2003, 10h04
  3. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54
  4. Comment effacer des Items d'un TListView ?
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/11/2002, 10h19
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo