Existe-t-il un moyen/outil permettant de déterminer la date et l'heure auxquelles un disque a été gravé/brûlé avec une grande certitude ? Il s'agit de la médecine légale des données et cela devrait être une preuve solide. J'ai déjà essayé IsoBuster, mais il ne m'a pas montré la date/heure à laquelle la piste a été écrite.
Réponses
Trop de publicités?La plupart des disques de données optiques utilisent le ISO 9660 système de fichiers standard Structure des volumes et des fichiers des CD-ROM pour l'échange d'informations le Spécification du format de disque universel ou les deux (appelé Pont UDF ).
Pour savoir lequel, vous pouvez exécuter
mount
sous Linux après que le disque ait été monté afin d'identifier le fichier de périphérique du lecteur de disque optique.
Exemple de sortie :
/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0
Ici, le fichier du dispositif est /dev/sr0
. La commande
disktype /dev/sr0
affichera les systèmes de fichiers disponibles. Si les deux sont présents, l'analyse du système ISO 9660 devrait être plus facile.
ISO 9660
La norme spécifie le champ Date et heure de création du volume comme une représentation numérique du moment de la création du volume, inscrite dans les 814e à 830e octets de l'adresse de l'utilisateur. Descripteur de volume primaire dans le format suivant :
YYYYMMDDHHMMSSCCO
où CC sont des centisecondes et O est le décalage par rapport à GMT par intervalles de 15 minutes, stocké sous forme d'un nombre entier de 8 bits ( représentation en complément à deux ).
Les 32 premiers KiB (32 768 octets) du disque ne sont pas utilisés par l'ISO 9660 et le descripteur ci-dessus suit immédiatement le bloc inutilisé, nous sommes donc intéressés par le 33 582ème octet et les 16 qui suivent.
Ces informations peuvent être analysées par tout outil capable de vider/lire les données brutes sur le disque optique. Sous Linux, vous pouvez utiliser dd pour vider la partie pertinente de l'image et hexdump pour visualiser correctement le dernier octet :
dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C
Pour mon LiveCD Ubuntu 12.04 x64, cela donne :
00000000 32 30 31 32 30 38 32 33 31 37 31 33 34 37 30 30 |2012082317134700|
00000010 00 |.|
L'image a donc été créée le 23 août 2012, à 17:13:47.00 GMT .
UDF
La norme spécifie le dépôt Date et heure d'enregistrement comme une représentation binaire du moment de la création du volume primaire, inscrite dans le 376e à 387e octet de l'en-tête de l'ordinateur. Descripteur de volume primaire dans le format suivant :
TT tT YY YY MM DD HH MM SS CC BB AA
Ici, chaque paire est un octet (byte), c'est-à-dire.., XX
est composé de deux nombres hexadécimaux.
-
TT tT
est un little-endian Nombre entier de 16 bits représentant le type et le fuseau horaire de l'horodatage.Les 12 bits les moins significatifs (
TTT
) contiennent le fuseau horaire, encodé comme le décalage par rapport à UTC en minutes sous la forme d'un nombre entier signé ( représentation en complément à deux ).Les quatre bits les plus significatifs (
t
) tiennent le type (toujours1
c'est-à-dire l'heure locale). -
YY YY
est l'année encodée sous la forme d'un code signé little-endian Entier de 16 bits ( représentation en complément à deux ). -
MM
,DD
,HH
MM
,SS
,CC
,BB
yAA
sont des entiers non signés de 8 bits représentant le mois, le jour, l'heure, la minute, la seconde, la centième seconde, les centaines de microsecondes et la microseconde de la création.
Encore une fois, les 32 premiers KiB du disque ne sont pas utilisés par UDF. De plus, les 32 KiB suivants sont réservés à un système de fichiers ISO 9660 (qui peut occuper plus d'espace s'il est présent).
Sur un disque UDF "pur", la commande
dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C
affichera l'horodatage codé.
A des fins de test, j'ai créé une image UDF avec K3b. La sortie de l'image dd
était la suivante
00000000 4c 1f dd 07 03 01 0f 0b 11 00 00 00 |L...........|
0000000c
Analyse :
-
0xF4C (hexadécimal) est plus grand que 0x800 et - donc - négatif. En retirant 0x1000 de 0xF4C, on obtient -180 en décimal. Cela signifie que le fuseau horaire est UTC - 3.
-
0x07DD est 2013 en décimal (l'année de la création).
-
Les autres octets peuvent être interprétés littéralement dans leur représentation hexadécimale (0x0F, 0x0B et 0x11 correspondent à 15, 11 et 17 en décimal).
Cela signifie que l'image a été créée le 1er mars 2013, à 15:11:17.000000 UTC - 3 .
Avertissements
-
Il est facile d'altérer cette date. Il suffit de modifier la date de l'ordinateur avant de créer l'image.
-
Si l'image est créée avant d'être effectivement gravée sur le disque, le temps antérieur sera enregistré. Ainsi, le champ n'est qu'une preuve potentielle pour les disques qui ont été créés par le propriétaire lui-même.