(и еще 4264 записям на сайте сопоставлена такая метка)
Другие метки пользователя ↓
aeterna alien asm c&c ost demoscene dow2 e3 old republic farbrausch gary tonge hybrid - blackout mta parody reality 2.0 roleplay star wars starwars virtual adepts vtm warhammer 40000 wod xperiment андерграунд бред вдохновение взлом завоевание галактики защита информации капитализм - дерьмо! киберкультура мир тьмы обо всем и ни о чем ) осетия открытое хранение файлов пешки ультраимпериализма поиски себя полиморфизм постчеловек пришельцы реальный доллар ролевка сардукары смерть капитализму стоимость доллара сцена тест трансгуманизм хак холодное оружие человек чужие
Относительно безопасный способ открытого хранения важных файлов в Сети. |
Дневник |
В свободное от работы и домашних дел время родилась идея быстрого и относительно безопасного способа хранения важных данных в интернете. Все мы уже давно привыкли к файлообменникам - очень удобный и относительно быстрый способ передачи файлов между удаленными узлами. (А в моем случае и между двумя ОС на одной машине. Увы, увидеть нормально 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
Метки: криптография md5 aes открытое хранение файлов |
Страницы: | [1] |