Пример Secure Login демонстрирует использование паттерна Information Obscurity. Пример демонстрирует возможность передачи критической для системы информации через недоверенную среду.
Архитектура примера
Недоверенной средой в этом примере является веб-сервер, который обслуживает запросы пользователей IoT-устройства. Практика показывает, что такой веб-сервер является легко обнаруживаемым и зачастую успешно атакуемым, так как IoT-устройства не имеют встроенных средств защиты от проникновения и других атак. Очевидно, что в такой недоверенной среде для защиты данных от компрометации необходимо использовать криптографические алгоритмы.
С точки зрения архитектуры в таких системах можно выделить следующие субъекты:
При этом для использования криптографической защиты необходимо выполнить следующие шаги:
Очевидно, что защищенная подобным образом информация не может быть скомпрометирована в точке коммуникации.
Пример Secure Login содержит две сущности:
localhost:1106
.Процесс аутентификации пользователя происходит по следующей схеме:
localhost:1106
.index.html
, содержащую приглашение к аутентификации.auth.html
, содержащую форму ввода имени пользователя и пароля, а также открытый ключ шифрования;auth.html
, содержащую форму ввода имени пользователя и пароля.auth.html
, исполняется на стороне браузера и производит шифрование данных с помощью шифра XOR
.result_err.html
или страницу result_ok.html
.Таким образом, конфиденциальные данные передаются через веб-сервер только в зашифрованном виде. Для передачи данных используются взаимодействия по IPC, которые контролируются модулем Kaspersky Security Module.
Сборка примера
Сборка примера осуществляется с помощью системы сборки CMake
, входящей в состав KasperskyOS Community Edition.
Файлы, содержащие код примера и скрипты для сборки, находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<version>/examples/secure_login
Для сборки и запуска примера необходимо выполнить следующий скрипт:
/opt/KasperskyOS-Community-Edition-<version>/examples/secure_login/cross-build.sh