Защитите Автора/Шифрование Умная Клавиатура

Из-за природы персональной подсети (укрепленный на внешней стороне, доверчивой/наивной на внутренней части), я запускаю проект в своей сети (направленный Рабочим столом Ubuntu 15.04 с шифрованием общественности/локального трафика OpenVPN), в котором я стремлюсь абсолютно параноидальный и возможно чрезмерная безопасность для предотвращения внутреннего нарушения (вредоносное программное обеспечение, установленное на подсети инфицирования клиента локальной сети).

Среди бесчисленных других проектов я собираюсь участвовать в, "Умная Клавиатура". Я стремлюсь предотвращать определенные основанные на HID нападения, такие как аппаратные клавиатурные перехватчики и использование BadUSB. Чтобы сделать это, я изменяю стандартную клавиатуру, разрушая плату драйвера и устанавливая микроконтроллер такой как Крохотное для чтения входного напряжения, прохожу проверку подлинности к использующему компьютеры rsa/ecdsa или другому асимметричному шифру, и шифрую нажатия клавиш в AES с прокручивающимся кодом, синхронизируемым с компьютером для предотвращения потенциала для атаки с повторением пакетов.

Аппаратная сторона кажется достаточно простой, как делает шифрование и дешифрование данных. Часть, где я нуждаюсь в помощи, является отсутствием понимания в том, как устройства HID общаются с системой, а именно, Ubuntu (какие данные могут быть считаны стандартным устройством HID?), а также как присоединить процесс для обработки дешифрования данных.

Я считал в/etc/udev/некоторых, и кажется, что выполнение сценариев обычно не предназначается для длинных запущенных приложений, таких как это. Как я пошел бы о выполнении 'обработчика' для клавиатуры, и этот сценарий исключительно получит данные, или это просто считало бы stdin, так как это - сценарий пространства пользователя, и устройства HID обрабатываются ядром?

Наконец, я был бы более обеспечен для открытия 'канала' для Крохотного вместо того, чтобы обработать его как устройство HID? Я отказываюсь сделать это, потому что это сделало бы клавиатуру неприменимой во время начальной загрузки.

Я не обязательно ищу прямые ответы, но возможно ресурсы для исследования. Мне просто нужен кто-то для указания на меня в правильном направлении.

С уважением,
Lisenby

1
задан 26 September 2015 в 08:42

1 ответ

  • я не эксперт, AFAIK, лучшее должно сделать новый драйвер (модуль ядра) для Вашей новой зашифрованной клавиатуры.

    Вот проект, который является маленьким и легким понять.

    Длинное Имя: Краткое название Драйвера набора микросхем
    Клавиатуры Микродиаметра Linux: aziokbd
    Автор: Colin Svingen (Swoogan)
    Проект Домой: https://bitbucket.org/Swoogan/aziokbd

    Это использует DKMS, таким образом, никакая потребность в ядре Linux не восстанавливает.

  • я испытываю недостаток в знании об инструментах шифрования, таким образом, я не могу помочь о том, как обработать поток зашифрованных данных.

  • udev в коротких словах, это - часть демона systemd. Это помогает делающей динамической установке/конфигурации и запускает настроенные скрипты каждый раз, когда условия соответствуют или когда узел устройства создал, измененный или удаленный из дерева ядра. (/sys Виртуальный FS, которые в настоящее время показывают то же дерево в ядре).

    Это поможет Вам, но это не то, что Вы ищете.

  • Другая опция, с помощью драйвера/демона пространства пользователя. В этом случае необходимо получить доступ к USB-устройству с помощью libusb. Тот же путь как xboxdrv (драйвер для контроллера Xbox) и xsane (инструмент для сканеров).

1
ответ дан 7 December 2019 в 16:09

Другие вопросы по тегам:

Похожие вопросы: