b_SetUp_Decode proc
Внутренняя функция, используемая при десшифрации;
rijndaelEncrypt proc a:DWORD, b:DWORD, rk:DWORD
Шифрование 16 байтного блока a с записью результата в b на основе ключей раундов rk;
rijndaelDecrypt proc a:DWORD, b:DWORD, rk:DWORD
Дешифровка 16 байтного блока a с записью результата в b на основе ключей раундов rk;
my_strncpy proc dst:DWORD, src:DWORD, maxlen:DWORD
Функция копирования нультерминальной строки. Аналог C/C++ функции strncpy;
copy_block proc dst:DWORD, src:DWORD
Функция копирования 16 байтного блока src в dst;
StrLen proc item:DWORD
Функция быстрого вычисления длины строки. Аналог C/C++ функции strlen;
populateKeyMaterial proc text:DWORD, key:DWORD
Расширение пароля text до заполнения длины ключа key;
InvMixColumn proc a:DWORD
Специальное перемешивание байт массива a;
rijndaelKeySched proc k:DWORD, W:DWORD
Формирование ключа шифрования по расширенному паролю;
rijndaelKeyEnctoDec proc keyBits:DWORD, W:DWORD
Формирования ключа дешифрации из ключа шифрования;
makeKey proc key:DWORD, direction:DWORD, keyLen:DWORD, keyMaterial:DWORD
Формирование ключа шифрования/дешифрования на основе пароля key, требуемому направлению шифрования direction, длины ключа keyLen и начального материала для формирования ключа keyMaterial;
MmGetSystemAddressForMdlSafe proc pMdl:PMDL, Priority:DWORD
Получение указателя в системном адресном пространстве нулевого кольца для пользовательского буфера в третьем кольце защиты;
AC_DispatchReadWrite proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Функция – обработчик запросов системы на чтение/запись с устройства – диска; производит чтение / запись с соответствующим шифрованием / дешифрованием;
AC_DispatchCreate proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Обработка инициализации драйвера в системе;
AC_DispatchClose proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Обработка выгрузки драйвера;
AC_LoadKeyAndInitAES proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Обработка сообщения от приложения загрузчика, передавшего в драйвер введенный пользователем пароль. Инициализация системы шифрования на основе этого пароля;
AC_DispatchControl proc pDeviceObject : PDEVICE_OBJECT, pIrp : PIRP
Функция обработки всех приходящих драйверу сообщений от системы;
Данный программный продукт должен предоставлять надежную криптографическую защиту для конфиденциальной информации, хранящейся на носителе в виде образов виртуальных логических дисков. Программный продукт реализуется в виде двух частей: драйвера и загрузчика. Драйвер отвечает за функции шифрования и взаимодействия виртуального логического диска с системой. Загрузчик предоставляет пользователю интерфейс для управления драйвером, а также функции по созданию образов, монтированию образов на виртуальные логические диски, надежному удалению файлов образов дисков с затиранием содержимого. Работа драйвера после монтирования диска никак не должна зависеть от работы загрузчика.
Данный программный продукт предназначен для криптографической защиты конфиденциальной информации посредством создания виртуальных логических дисков.
Для работы приложения необходимо:
4. операционная система семейства Microsoft Windows не ниже Windows 2000;
5. 50 Кб свободного места на жестком диске + файлы образов дисков;
6. Требования к ресурсам оперативной памяти: для загрузчика порядка 4Мб, для драйвера в районе 100Кб.
Для тестирования программного продукта необходимо выполнить следующие действия (если что-либо будет отличаться от предъявленного, то программа работает некорректно):
1. Запустите загрузчик (Loader.exe). В трее должна появиться иконка приложения
. Вызовите контекстное меню:2. Выберите пункт меню «Создать образ диска». В появившемся диалоговом окне введите размер диска 200 (Мб), и выберите имя создаваемого файла образа. Имя можно ввести вручную в соответствующее поле, либо выбрать через стандартный системный диалог создания файла, открываемый при нажатии кнопки
. Вид окна после выбора файла и ввода размера:3. После нажатия кнопки «Создать» загрузчик начнет выделение места под требуемый файл образа. В зависимости от требуемого размера, объема свободного места на выбранном носителе и фрагментации файлов данный процесс может занять до минуты и даже более. Процесс отображается внизу диалогового окна в полосе прогресса. На время создания файла все кнопки диалога блокируются. Также диалог нельзя закрыть стандартными системными способами: через кнопку закрытия окна, комбинацию Alt+F4, соответствующий пункт меню окна. Окно в процессе выделения места:
4. В случае успешного завершения выделения места выдается сообщение с предложением сразу подключить диск и произвести его форматирование. Соглашаемся.
5. Теперь перед непосредственным созданием виртуального диска, загрузкой драйвера и его инициализацией на заданный файл образа необходимо указать параметры выполняемых действий: пароль, который будет применяться при шифровании, и букву создаваемого диска, которую можно выбрать из не занятых в данный момент в системе:
6. После ввода пароля (требования к нему приведены в диалоге) и выбора диска из списка доступных происходит монтирование образа на созданный диск. Диск сразу же становится виден для всех программ, например для трех следующих:
Total Commander:Проводник:
WinHex:
7. В принципе с ним уже можно работать, но для этого нужны специализированные программы. А для того, чтобы с диском можно было работать из любых программ как с обычным логическим диском, его нужно отформатировать. Программа сама вызывает диалог форматирования. Нужно только выбрать параметры форматирования:
8. После завершения форматирования диском можно пользоваться как обычным логическим диском. Например, поменять метку диска и скопировать на него какие-нибудь файлы:
9. Кроме того, теперь иконка в трее изменилась на
, показывая, что драйвер загружен и работает (создан виртуальный логический диск).10. Теперь можно завершить работу загрузчика, выбрав пункт «Выход» его контекстного меню. Работа драйвера никак не зависит от того, запущен ли загрузчик. После завершения работы загрузчика диск по-прежнему полностью функционален. Если снова запустить загрузчик, то иконка сразу же примет вид
, т.к. загрузчик определит, что в системе есть виртуальный диск, работа которого осуществляется через драйвер из данного программного продукта. Работа сторонних программ виртуальных дисков (HDD и CD-ROM) ни как не влияет на работу данного программного продукта.11. Для выгрузки драйвера и удаления виртуального диска из системы выберите пункт «Выгрузить диск» контекстного меню. В случае, если диск в данный момент используется (к нему происходят обращения), будет выведено соответствующее сообщение:
В данном случае работа с виртуальным диском аналогична работе с flash-дисками, так же требующих отсутствия запросов к ним для их корректного извлечения.
12. Если надобность в образе диска отпала, и он больше не нужен, но данные на нем имеют некоторую ценность, то программа позволяет удалить файл образа диска с предварительным затиранием содержимого нулями. Для этот служит пункт контекстного меню «Удалить образ диска».
Если файл недоступен для операции монопольной записи, то будет выдано соответствующее сообщение. Это защищает систему от удаления файла образа в то время, когда с ним работает драйвер.
Для вызова программы необходимо запустить Loader.exe. В системной папке System32\ либо в папке, из которой запускается загрузчик, должен находится файл драйвера acvhdd.sys. Если в системной папке файла драйвера нет, загрузчик сам его туда скопирует.
Приложение-загрузчик не имеет главного окна, т.к. все действия выполняются через контекстное меню:
Пункт «Загрузить образ диска» предназначен для запуска драйвера и монтирования виртуального логического диска в системе. При выборе данного пункта вызывается стандартный диалог выбора файла:
Если есть уже созданный ранее диск, то после его выбора будет отображено диалоговое окно «Ввода пароля и выбора диска»:
В данном диалоговом окне нужно ввести пароль, который был задан при первом подключении данного образа (при создании).