Comments 39
Это вы для вашей виртуальной клавиатуры прикручиваете keepass базы?
если для расшифровки базы данных необходимо несколько сущностей (например, пароль и файл-ключ), то сначала нужно получить хэш от каждой сущности
Здесь есть нюансы:
1) если файл-ключ размером 32 байта, то его содержимое используется «как есть» (хеш брать не надо);
2) если файл-ключ размером 64 байта и там только hex-цифры — они тоже напрямую преобразуются в 32-байтный ключ; если не получилось преобразовать — тогда берём хеш.
3) Cамое интересное: файл-ключ может содержать примерно такой XML:
<?xml version="1.0" encoding="utf-8"?>
<KeyFile>
<Meta>
<Version>1.00</Version>
</Meta>
<Key>
<Data>ySFoKuCcJblw8ie6RkMBdVCnAf4EedSch7ItujK6bmI=</Data>
</Key>
</KeyFile>
KeePass 2.x парсит XML и вытаскивает значение ключа, а KeePass 1.x не разбираясь берёт хеш от содержимого файла. В результате разные версии KeePass из одного и того же файла получают разные значения ключа.
А как можно использовать ваше устройство с PC и Смартофона?
Стационарная версия: для PC наше устройство является клавиатурой и дисковым накопителем. Все сообщения от подключенной клавиатуры транслируются в PC через наше устройство, т.о. конфиденциальная информация (например, мастер-пароль) никогда не попадет в оперативку PC => кейлоггеры беспомощны тут.
Портативная версия: все то же самое, однако управление устройством, ввод мастер-пароля и выбор логина и пароля будет осуществляться через кнопочный интерфейс на самом устройстве. Детально эта версия еще не прорабатывалась.
Я ответила на ваш вопрос, или вы имели ввиду что-то другое?
Более подробно об устройстве написано здесь. В блоге мы регулярно будем писать о нашем прогрессе)
Больше интересно для ноутбука и смартофона.
Еще не понятно, а есть какая то синхронизация самого контейнера с паролями с облаком?
Буду рад стать бета тестером :) (спб)
Есть же куча opensource-реализаций KeePass — под каждую из существующих платформ, есть модуль на cpan.
Для чего всё это?
XML это в сущности язык описания деревьев.
У меня есть Win(довая) С-утилита, которая преобразует *.XML файлы в *.DOT (Graphviz).
Анализировать граф, удобнее чем XML.
![](https://habrastorage.org/getpro/habr/upload_files/c26/8f6/45d/c268f645d05b22986dac4c145094817f.png)
Обращайтесь, если понадобится.
@ana_lazareva , вы делали DeskTop консольную утилиту для расшифровки базы данных KeePass или сразу разрабатывали реализацию под FirmWare c учетом аппаратного AES256 на STM32F415RGT6?
У меня на ARM Cortex-M4 (CPU:48MHz) (stm32f407zg) *.kdbx файл расшифровывается 17мин.
На LapTop(е) *.kdbx файл расшифровывается 3.3 cекунд.
Программная реализация AES256 взята от сюда
https://github.com/alambley/aes256/tree/79835b4c1b9e8d2154c039f8921e16db5c4f59c7
Есть ли алгоритм потоковой рашфировки KeePass фала размером, например 100MByte?
Осуществляем последовательность действий из предыдущего пункта для каждого блока данных. Если данные во всех блоках сохранны, то вырезаем все заголовки блоков, и полученная последовательность и есть расшифрованная база данных.
У меня вообще один монолитный блок получается размером 157941 байт
Расшифровка базы данных KeePass: пошаговое руководство