Компания Google опубликовала под лицензией Apache приложение XSecureLock, в рамках которого подготовлен защищённый вариант системы блокировки экрана для X11. Целью разработки XSecureLock было обеспечение максимальной безопасности, которая достигается благодаря модульной архитектуре, при которой аутентификация и блокировка экрана вынесены в разные процессы.

Координирует работу XSecureLock основной управляющий процесс, который содержит минимальный набор кода и запускает для аутентификации и блокирования экрана отдельные процессы-модули, а также контролирует нахождение экрана в заблокированном состоянии. На работу основного процесса не могут влиять ошибки во внешних библиотеках. Благодаря такому подходу XSecureLock защищён от типичного метода атаки на хранители экрана - инициирование краха через передачу некорректных данных во время аутентификации. Так как существующие хранители экрана выполняют аутентификацию и блокировку экрана в одном процессе, то крах этого процесса приводит к разблокировке экрана.

Для защиты от отображения поверх заблокированного экрана окон и уведомлений, выводимых в режиме OverrideRedirect, основной процесс XSecureLock постоянно выводит своё окно на передний план, а для защиты от утечки данных через подключение второго монитора - приводит размер своего окна к размеру корневого окна X-сервера. Единственным условием разблокировки является возврат модулем аутентификации специального кода статуса выполнения операции.

Модульная архитектура также позволяет использовать разные методы аутентификации и блокировки экрана. Например, доступны два модуля для аутентификации через систему PAM (auth_pam_x11, auth_pamtester) и четыре модуля блокирования экрана (saver_blank, saver_mplayer, saver_mpv, saver_xscreensaver). При желании можно легко подготовить собственные реализации модулей.

Источник: http://www.opennet.ru/opennews/art.shtml?num=40086