sitemap
AVE CMS
KeePass - Для большей безопасности, Вы можете объединить два метода разблокировки базы данных - ключевой файл и пароль. Даже если вы потеряете ваш ключевой файл, база данных останется в безопасности.

Двухканальная Обфускация Автозаполнения (Автонабора)


KeePass Двухканальная Auto-Type Обфускация
Two-Channel Auto-Type Obfuscation
Описание принципов и особенностей Двухканальный Обфускации применяемой при Автозаполнении в KeePass 2.x.



Текст Введение:
    Что же такое, Двухканальная Обфускация Автозаполнения?

В хранителе паролей KeePass Password Safe, существует очень мощная функция Автозаполнения (Auto-Type) : она имитирует нажатие клавиш в открытых окнах других приложений. Эта функция работает со всеми прикладными программами Windows и целевому приложению не возможно отличить реальные нажатия клавиш от тех, что моделируются Автозаполнением (Auto-Type). И в то же время, это является основным недостатком Auto-Type, так как кейлоггеры могут "подсмотреть" моделируемые нажатия клавиш. Как раз здесь и вступает в силу Двухканальная Обфускация Автозаполнения (TCATO).

TCATO обезвреживает применение стандартных клавиатурных шпионов. Она использует буфер обмена Windows для передачи в целевое приложение частей автоматически вводимого текста. Кейлогер может "видеть" нажатие Ctrl-V, но не может зарегистрировать фактическое содержание, вставляемое из буфера обмена.

Шпионы, следящие за буфером обмена, то же не смогут найти ничего конфеденциального, потому что на этом этапе пути, передается только часть важной информации.

Впрочем, это не дает 100% безопасности (и к сожалению, такого даже в теории  не может быть). Хотя и ни один из существующих в настоящее время Кейлоггеров или Шпионов за буфером обмена, не сможет "подсмотреть"  за процессом Автозаполнения при Двухканальной Обфускации, но чисто теоретически нельзя отрицать возможности написания целенаправленной шпионской программы, которая будет специализирована на регистрации  данных передаваемых с помощью Автозаполнения под Двухканальной Обфускацией.


Текст В каких случаях, может быть использована Двухканальная Обфускация Автозаполнения?

TCATO не может быть использована абсолютно со всеми окнами. Целевое окно, должно поддерживать работу с буфером обмена и соответствовать правилам перемещения с использованием навигационных клавиш со стрелками. Кроме того, пользовательский интерфейс не должен содержать функций автоматизации, таких как перемещение фокусировки курсора по достижению максимальной длины текстового поля (как бывает, например в диалогах ввода регистрационного номера).

Эмпирические правила:

  • Может быть использована в:
    • Обозревателях.
    • Windows Программах со стандартными текстовыми полями.
  • Не может быть использована в:
    • Консольных приложениях (интерактивные терминалы, ...).


Поскольку данная функция не работает со всеми целевыми окнами, её необходимо включать индивидуально для каждой конкретной Записи.
Вы можете её явно включить в диалоговом окне редактирования Записи, на закладке "Автонабор". 


Текст Как включить / настроить Двухканальную Обфускацию Автозаполнения?

Все, что нужно сделать, это поставить галочку в чек-боксе (Двойное усложнение Автонабора) в левом нижнем углу на вкладке "Автонабор" в окне редактирования Записи; KeePass сделает все остальное.


Текст Технический обзор

Вместо того, чтобы просто передать имитацию нажатия клавиш в целевое приложение (так поступает обычный автонабор), Обфускация Автозаполнения выполняет следующие действия:

  • Включает блокировщик событий буфера обмена.
  • Создает резервную копию, текущего содержимого буфера обмена.
  • Интеллектуально разделяет текст на части.
  • Для каждой части: Проверяет возможность использования буфера обмена.
    • При подтверждении: разбивает строчку на две части (на две расплетённые комбинации). Копирует / Вставляет первую часть и отправкой нажатий клавиш, добавляет вторую часть к первой.
    • При отказе: Производит Автонабор обычным способом, посредством имитации нажатий клавиш.
  • Восстанавливает предыдущее содержимое буфера обмена.
  • Отключает блокировщик событий буфера обмена.

Далее, эти шаги описываются более подробно.


Текст Блокировка Буфера Обмена

Поскольку основная работа функции Автозаполнения происходит с использованием буфера обмена, будет полезно заблокировать, доступ к его отслеживанию, всем текущим процессам. Это означает, что никакие другие программы / приложения не получат уведомление, когда KeePass, начнёт заносить данные в буфер обмена.

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


Текст Интеллектуальное разделение текста

Предварительно, необходимо правильно разделить, предназначеный для Автозаполнения текст. Это связано с тем, что не все части строки могут быть отправлены с использованием буфера обмена: специальные коды клавиш и клавиш-модификаторов, должены быть обработаны функцией SendKeys, в неизмененном виде. Для примера, взгляните на следующую строку:

 mymail@myprovider.com{TAB}MyTopSecretPassword{TAB} {TAB}{ENTER} 

Это пример типичной строки, отправляемой KeePass в другое приложение. Первым впечатывается адрес электронной почты пользователя, затем идет переход с помощью {TAB}, следом забивается пароль, опять переход с помощью {TAB}, далее "пробелом" на чекбоксе ставится  флажок, последний переход с помощью {TAB}, и наконец, нажимается клавиша Ввод. Эта последовательность может быть разделена на следующие части:

mymail@myprovider.com
{TAB}
MyTopSecretPassword
{TAB}
' ' (space)
{TAB}
{ENTER}


Каждая строка проходит проверку, на предмет возможности её обработки в буфере обмена. Если строка содержит символы '(', ')', '(' ')', '+', '^', '%' или пробел (пробел), то она может быть отправлена, только напрямую, в функцию SendKeys. Например '+', нажимает клавишу Shift и его нельзя копировать / вставить как символ '+'. Пробел то же нельзя копировать / вставить, так как обычно, он используется для переключения флажков в чекбоксах.

В приведенном выше примере, только "mymail@myprovider.com" и "MyTopSecretPassword" могут быть отправлены с использованием буфера обмена.


Текст Разделение секретных данных

Давайте рассмотрим отправку "mymail@myprovider.com" с помощью буфера обмена в окно целевого приложения. KeePass может просто скопировать этот параметр в буфер обмена, а потом отправить его нажатием Ctrl-V в предназначенное приложение, т.е. вставит содержимое буфера обмена. И эта операция, была бы прекрасно защищена от клавиатурных шпионов, поскольку кейлогеры видят только нажатие клавиш Ctrl-V, а не фактически вставляемое содержимое. Однако существует ещё одна проблема: некоторые программы-шпионы, могут контролировать буфер обмена на основе временных интервалов (т.е. не используя сообщения о факте события - которые мы заблокировали). И хотя полная  продолжительность, процедуры Copy / Paste, не превышает нескольких миллисекунд, всё же остается небольшой риск, что злоумышленнику удастся получить данные из буфера обмена. По этой причине, хранимая конфиденциальная информация подвергается фрагментированию.

Первым делом, символы из строчки с секретными данными "mymail@myprovider.com" случайным образом, разделяются на две части, как две расплетённые комбинации:

 y  il m   o  d  .c
m ma  @ ypr vi er  om


За тем, первая строка "yilmod.c", копируется в буфер обмена. А в итоге, строки отправляемые SendKeys, будут составляться следующим образом:

  • Сначала идет вставка из буфера обмена: ^v
  • Потом, нажимается кнопка, стрелка влево п - раз, где п = длинна строки в буфере обмена.
  • И на конец, отправляются оставшихся символы в перемешку с нажатиями клавишы стрелка вправо, чтобы пропустить те, которые уже были вставлены из буфера обмена.


В итоге,
ключевая последовательность нашего примера, будет выглядеть так:

^v{LEFT 8}m{RIGHT}ma{RIGHT}{RIGHT}@{RIGHT}ypr{RIGHT}vi{RIGHT}er{RIGHT}{RIGHT}om

Воссоздание оригинала строки "mymail@myprovider.com" происходит путём введения, в поле назначения, содержимого буфера обмена, перехода к началу строки и поочерёдному добавлению на свои места оставшихся символов.

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

Подробнее о разделении секретных данных:
В приведенном выше примере, строка "mymail@myprovider.com" была разобрана на составляющие и восстановлена по месту назначения. Хотя строки с логинами и паролями и будут по разному разбираться при каждой авторизации, вредоносные приложения смогут собрать строку, перехватывая и комбинируя процедуры Автозаполнения. Для того, чтобы предотвратить это, KeePass использует генератор случайных чисел, для разделения строки на основе хэш-функции. Это означает, что каждая строка разбивается по-другому, но разделение на строки определено однозначно. Таким образом, да же получив множественные снимки буфера обмена с процедурами Автозаполнений, злоумышленник не сможет восстановить исходную строку, потому что он всегда захватывает половину такой же части.

Мой адрес, Советский Союз
тел./факс: (095) 123-45-67
Email:info@keepass.ru

| | Рекомендовать cайт | AVE.cms 2.08bm © 2008   Создание сайтов
Время генерации: 0,296 сек. / Количество запросов: 50 шт. за 0,194 сек.