• Авторизация


Относительно безопасный способ открытого хранения важных файлов в Сети. 17-12-2009 10:36 к комментариям - к полной версии - понравилось!


В свободное от работы и домашних дел время родилась идея быстрого и относительно безопасного способа хранения важных данных в интернете. Все мы уже давно привыкли к файлообменникам - очень удобный и относительно быстрый способ передачи файлов между удаленными узлами. (А в моем случае и между двумя ОС на одной машине. Увы, увидеть нормально NTFS под OpenBSD я так пока и не смог.) Естественно встает вопрос о сохранении конфиденциальности хранимой и передаваемой таким образом информации. Понятное дело, что нужен криптографический алгоритм. Вопрос только в том какой и как криптовать большие количества данных.
После беглого просмотра всех доступных алгоритмов я решил остановиться на AES (к слову сказать - это стандарт шифрования данных для правительства США. А с 256-битным ключом у них шифруются даже документы с грифом "TOP SECRET"), выбор разрядности ключа для меня не так был важен. На мой выбор повлияли 2 параметра:
1. Высокая криптостойкость.
2. Доступность реализаций алгоритма как для WinXX, так и для *nix.
В качестве реализации AES-алгоритма был выбран aescrypt вот отсюда http://www.aescrypt.com/ (не путать с aescrypt с http://aescrypt.sourceforge.net).
Плюсы реализации:
1. LGPL-лицензия.
2. Реализован для всех популярных платформ (win32, *nix, mac). Небольшую оговорочку сделаю, что для BSD-систем нужно внести незначительные коррективы в Makefile (Указать LIBC=-liconv).
3. Система работы входной_файл ---> выходной_файл.aes
4. Реализована поддержка всех размерностей ключей.
 

Теперь встает вопрос о массовости криптозащиты. Массовость можно обеспечить тремя способами:
1. Группу целевых файлов шифровать каждый отдельно с одним и тем же ключом.
2. Группу целевых файлов шифровать каждый отдельно с разными ключами, а ключ помещать в имя файла. Либо добавлять ключ в конец файла (например в base64-коде).
3. Помещать группу целевых файлов в архив, который шифровать с выбранным ключом.

Я лично попробовал реализовать второй вариант с AES-256. В качестве испытуемого был выбран несложный текст программы на С. В качестве ключа была выбрана md5-сумма содержимого файла (длина которой, как вы помните, всегда равняется 32 байтам, что равно 256 битам. Следовательно алгоритм шифрования AES-256). Сам файл был затем переименован так, что имя файла - это ключ. А расширение aes было спрятано под видом jpg. Согласен с возражением о том, что имя файла выдает в себе md5-сумму. Но с другой стороны - это было сделано чисто как proof-of-concept. К тому же md5-сумма в качестве имени файла может использоваться и с целью критерия проверки идентичности расшифрованного файла исходному до криптования (md5-суммы должны совпадать).

Кто хочет побаловаться с данным методом - милости прошу.
Исходный файл (программа helloworld.c) и зашифрованный посредством AESCrypt файл - http://www.onlinedisk.ru/file/295346/
AESCrypt - http://www.aescrypt.com/
md5sum (win32 console version) - http://www.etree.org/md5com.html

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Относительно безопасный способ открытого хранения важных файлов в Сети. | -null- - Дневник -null- | Лента друзей -null- / Полная версия Добавить в друзья Страницы: раньше»