Почему нет мер безопасности для защиты от рисования в других окнах приложений через X11? - PullRequest
0 голосов
/ 28 сентября 2019

Недавно я изучал X Windowing System и обнаружил, что рисовать окно, созданное другим процессом, довольно тривиально.Все, что вам нужно, это идентификатор окна.Я не уверен, как идентификаторы окон и другая существующая информация о окнах извлекаются по основному протоколу X11, но это вполне возможно, поскольку существует простая утилита X11 под названием xwininfo, которая делает именно это.

xwininfo не требуетпривилегии root, а также не требуются привилегии root для рисования на окнах, созданных другими приложениями.На самом деле, я просто рисовал пиксели прямо в существующем окне терминала без каких-либо повышенных привилегий из пользовательского пространства.

Разве это не проблема безопасности?Тот факт, что любое приложение может рисовать в окнах любого другого приложения, может вызвать проблемы, такие как неделимые рекламные объявления, создаваемые вредоносными программами.

В чем причина этого?Было бы легко сгенерировать, скажем, общий ключ HMAC для каждого окна, и чтобы клиент подписывал каждый запрос.

Моя первая догадка, очевидно, заключается в производительности - если для рисования потребовалось подписать и проверить клиентские запросы.несколько пикселей в окне, вероятно, будет заметная задержка.Тем не менее, задержка, вероятно, все еще будет незначительной для многих простых настольных приложений, так почему же нет никаких мер безопасности, даже необязательных?Я что-то упустил?

...