Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Некоммерческие наборы инструментов, предназначенные для судебного дублирования
md5sum и md5: ратификация собранных улик
После того как вы собрали улики, используя любое из средств, предложенных в этой лекции, необходимо предусмотреть механизм проверки их законности, действующий в любое время. Если законность улик не заслуживает доверия, все усилия по их анализу и сбору могут рассматриваться как пустые траты. Поэтому, применяя принятую в промышленности контрольную сумму MD5 в качестве инструмента для снятия цифровых "отпечатков пальцев" для собранных улик, вы можете гарантировать, что данные, собранные несколько лет назад, в точности совпадают с версией, представленной в суде.
Инструмент md5sum (и MD5 ) поставляется с большинством операционных систем Unix, имеющих открытые исходные коды. Для системы Windows набор инструментальных средств Cygwin содержит исполняемый файл md5sum (см. лекцию "Cygwin" ).
Реализация
Инструмент, предназначенный для вычисления контрольной суммы MD5 файла в системе Linux, называется md5sum и обычно поставляется с большинством дистрибутивов Linux. Опции для утилиты md5sum таковы:
forensic# md5sum -справка Использование: md5sum [ОПЦИЯ] [ФАЙЛ]... Или: md5sum [ОПЦИЯ] --проверка [ФАЙЛ] Напечатать или проверить контрольные суммы MD5 (128 битовые). Если ФАЙЛ отсутствует, или если ФАЙЛ задан как "-", следует стандартный ввод. -b, --binary читает файлы в двоичном режиме (в системах DOS/Windows задано по умолчанию) -c, --check проверяет суммы MD5 в соответствии с заданным списком -t, --text читает файлы в текстовом режиме (задано по умолчанию) Следующий две опции полезны только при проверке контрольных сумм: --status ничего не выводится, код состояния показывает success (успех) -w, --warn предупреждает о неверно отформатированных строках контрольной суммы --help отображает эту справку и выходит --version выводит информацию о версии и выходит21.1.
Вы вызываете инструмент, задавая один параметр - файл, контрольная сумма которого будет рассчитана. Для судебных целей, все контрольные суммы MD5 будут рассчитываться в двоичном режиме. Следовательно, вы всегда должны использовать ключ -b.
Ниже продемонстрировано вычисление контрольной суммы MD5 для нескольких файлов улик, которые мы скопировали:
forensic# ls disk.1.bin disk.2.bin disk.3.bin disk.4.bin forensic# md5sum -b * md5sums.txt
После получения списка файлов из файла контрольной суммы MD5, ратификация их проста. Ее можно выполнить, указав ключ -c и файл контрольной суммы MD5.
forensic# md5sum -c md5sums.txt disk.1.bin: OK disk.2.bin: OK disk.3.bin: OK disk.4.bin: OK
Если хотя бы 1 бит файла улик изменен, будет выведено сообщение о несовпадении контрольных сумм. Мы открыли двоичный редактор и заменили первый бит с 1 на 0 в файле disk.4.bin. Если мы сравним контрольные суммы MD5 с помощью утилиты md5sum, то получим следующие результаты:
forensic# md5sum -c md5sums.txt disk.1.bin: OK disk.2.bin: OK disk.3.bin: OK disk.4.bin: FAILED md5sum: WARNING: 1 of 4 computed checksums did NOT match
Инструмент md5sum может вычислять контрольную сумму MD5 целых жестких дисков в операционных системах Unix. Это возможно благодаря тому, что система Unix обрабатывает жесткие диски, как специальные файлы, и утилита md5sum не замечает никаких различий. Вскоре мы продемонстрируем, как сравнить контрольную сумму MD5 исходного жесткого диска с контрольной суммой файла улик, полученного в результате судебного дублирования.
В системе FreeBSD инструмент расчета контрольной суммы MD5 называется MD5. Он является частью базовой операционной системы и работает подобно своим аналогам для Windows и Linux. Применение MD5 следующее:
forensic# md5 <имя файла>
Обратите внимание, что инструмент MD5 намного проще, чем его аналог для системы Linux, и вы не должны явно указывать использование двоичного режима. Следующая команда демонстрирует использование утилиты MD5 с файлом улик, собранном в процессе судебного дублирования. Кроме того, контрольная сумма MD5 скопированного исходного жесткого диска совпадает с созданным файлом улик.
forensic# md5 /dev/ad0 MD5 (/dev/ad0) = aa935fb10922184c9c2a8423a1f4e56c forensic# md5/mnt/storage/disk.bin MD5 (/mnt/storage/disk.bin) = aa935fb10922184c9c2a8423a1f4e56c