Previous Post
« About the usage of MD5 algorithm to check data integrity.

 

Next Post
Таблица соответствия транскрипций PINYIN и Палладия »

Sun, January 29th, 2006 03:23

Об использовании алгоритма MD5 для проверки целостности данных

Как сообщает WhatIs.COM {внешняя ссылка}, MD5 это алгоритм, разработанный профессором Рональдом Л. Ривестом из MIT, который используется для проверки целостности данных методом вычисления 128-битной текстовой строки из входных данных. Входными данными может быть, например, файл. Считается, что эта 128-битная строка уникальным образом характеризует входные данные, как, например, отпечатки пальцев характеризуют определенного человека. Здесь понятие “целостность данных” в терминах безопасности сети и данных означает гарантию того, что данные не были изменены неавторизированным способом. Существует специальная программа, MD5SUM.EXE, которая вычисляет такие 128-битные строки, “дайдджесты”, которую можно взять здесь с TheOpenCD project {внешняя ссылка, 48kB} или здесь {локальная ссылка, 48kB}. Эту программу следует разместить в системных директориях (или папках, если угодно); обычно это c:\windows\command для Win95/98/ME или c:\winnt\system32 для NT/2K/XP. Или ее следует уложить туда, на что настроена системная переменная $PATH: “Мой компьютер” на “Рабочем столе”, клик паровой мышкой, “Свойства” - “Дополнительно” - “Переменные среды”. Вообще эту программу можно разместить где угодно, только тогда нужно будет ее запускать именно из того места, где она располгаеется, или с указанием полного пути до нее, типа d:\somedir\another\md5sum.exe.

Известно, что у большинства ДОС-програм существует ключ /? , который обычно выводит на консоль короткую помощь по использованию исследуемой програмы. Это не наш случай. Утилита MD5SUM.EXE происходит от GNU утилит, которые, в основном, предназначены для работы в среде UNIX. Некотoрые из таких утилит, как и MD5SUM.EXE, были переведены, портированы, для работы и в среде Windows, но уналедовали все свойства UNIX консольных приложений. Как у программы из ДОС’а наверняка есть ключ /? , так у программы из UNIX’a должен быть/может быть ключ –help, или –version, или -h, или, -v. На самом деле, если мне когда встречается какое-то неизвестное консольное приложение, я всегда сразу начинаю его запускать, перебирая такие ключи - там разберемся что это такое. Хотя это и не совсем правильно - всегда надо думать, прежде чем запускаем что-либо.

D:TMPmd5sum –helpUsage: md5sum.exe [OPTION] [FILE]…

or:  md5sum.exe [OPTION] –check [FILE]

Print or check MD5 checksums.

With no FILE, or when FILE is -, read standard input.-b, –binary            read files in binary mode

-c, –check             check MD5 sums against given list

The following two options are useful only when verifying checksums:

–status            don’t output anything, status code shows success

-w, –warn              warn about improperly formated MD5 checksum lines

–help              display this help and exit

–version           output version information and exit

The sums are computed as described in RFC 1321.  When checking, the input

should be a former output of this program.  The default mode is to print

a line with checksum, a character indicating type (`*’ for binary, ` ‘ for

text), and name for each FILE.

WARNING:  You are using a specially adapted copy of md5sum.  This version

has been modified as follows:

1) Only ever use binary mode

2) Be more liberal about line endings in files used by –check

3) Built-in Win32 file wildcard matching (globbing)

This version was compiled by bruce@gridpoint.com for the

People for a Clearer Phish.  Source code changes are available

from Bruce upon request.

Report bugs to bruce@gridpoint.com

D:TMPmd5sum –help

md5sum (PCP patchlevel 2) (GNU textutils) 1.22

Использование:

– сделать “дайджест”, рассчитать md5 сумму:

D:pathmd5sum *txt452babcf828a4dbd23c4f48b611fb2fa *file1.txt

0a78814b3a21b8ed84025ca2cd5df619 *file2.txt

9ee3f5af729a9c8b5e70741b5ffb2a82 *file3.txt
– рассчитать “дайджест” и поместить его в файл, скажем, digest.md5.
D:pathmd5sum *txt > digest.md5
– проверить тот же набор файлов в сравнении со старым “дайджестом” из digest.md5 в предположении, что file2.txt был специально изменен вручную перед проверкой.
D:pathmd5sum *txt –check digest.md5file1.txt: OK

file2.txt: FAILED

file3.txt: OK

md5sum: WARNING: 1 of 3 computed checksums did NOT match

Такие md5 суммы рассчитывают для образов дисков/дискет, для файлов. Особенно когда речь идет о дистрибутивах, распространяющихся по публичным сетям. Сначала перекачивают собственно файл, потом сравнивают значение md5 суммы перекаченного файла с оригиналом. Если значения не сходятся, то тогда наверное следует пробовать перекачивать файл еще раз или задумываться вообще о дальнейшем его использовании. Вообще не следует хранить в одном месте сам файл и его md5 сумму - атакующий может поменять не только содержимое дистрибутива, но и само значение суммы.

Расчетам md5 суммы можно найти неожиданное применение. Если вы лично сархивировали и зашифровали некие данные, возьмите с них еще и md5 сумму. В дальнейшем , если будет необходимо проверить целостность шифрованного архива, а делиться ключами и методами шифрования не позволяет политика безопасности, тогда задачу решит любой другой сотрудник, просто сравнивая md5 суммы.

@ Category Tech



Previous Post
« About the usage of MD5 algorithm to check data integrity.

 

Next Post
Таблица соответствия транскрипций PINYIN и Палладия »