Новости Публикации Литература НАСТ Законы Ссылки Каталог фирм
Paintball Фильмы Оружие Инфозащита Приколы Тесты О проекте
[Гостевая]
[Пишите нам]
[Главная]



 

 
7 февраля 2008 г.

 
"
Система сквозной однократной аутентификации SecureLogin"

    Зачем это надо?

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

    Так как любое приложение, используемое компанией, напрямую задействовано в рабочем процессе, то предполагается, что результаты действия таких приложений являются, скажем так,  важными. Исходя из этого предположения (которое в общем то не нуждается в особо детальном доказательстве) любая компания будет стремиться ограничить доступ к своим программным ресурсом.  При этом стоит отметить, что доступ к приложениям осуществляется исходя из занимаемой должности и служебных обязанностей. При этом важным является не только какие-либо выполняемые действия приложениями, но и хранимые ими данные.

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

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

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

    То есть, человек, который знает логин и пароль с точки зрения приложения является тем, кто имеет:

    1.     право выполнять операции и

    2.     доступ к информации

    которые определены для некоторого сотрудника с указанным логином и паролем.

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

    В этом месте статьи мы столкнулись с первой проблемой: паролей становится слишком много

    Существует несколько способов получения неправомочного доступа к информационным ресурсам, как правило — это попытка определить пароль пользователя, обладающего требуемыми полномочиями, например, методом прямого перебора, когда последовательно перебираются все возможные значения пароля или «перебором по словарю», когда в качестве пароля подставляются из списка часто используемых слова — словаря.

    Для предотвращения подобных атак существует ряд стандартных требований к сложности пароля, которые обеспечивают его стойкость к подбору, вот некоторые из них: 

    1.    использовать пароль, длина которого не менее заданного

    2.    использовать символы верхнего и нижнего регистра

    3.    использовать цифры

    4.    использовать специальные символы (!»№;%:?*()_+=_)

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

    Только что мы озвучили вторую существующую проблему: пароли становятся сложными.

    Кроме того, чем дольше используется пароль, те больше вероятность его скомпрометировать (раскрыть).  В связи с этим возникает еще одна рекомендация, предназначенная для повышения безопасности (накладывается на время жизни пароля), вот некоторые дополнительные правила, такие как:

    1.    пароль должен меняться с определенной периодичностью

    2.    новый пароль не может совпадать с предыдущим или некоторым количеством ранее используемых

    3.    пароль не может меняться чаще, чем это определено

    Два последних правила предотвращают использование «любимых» паролей: вторым правилом мы предотвращаем само использование «любимого пароля»,  а третьим запрещаем последовательное изменение пароля заданное количество раз таким образом,  чтобы «перемотать» весь список ранее используемых.

    Итак, озвучена третья проблема: пароли меняются.

    Если политика безопасности компании должным образом описывает правила использования паролей, то пользователь начинает сталкиваться с тремя вышеперечисленными проблемами:

    1.    паролей много

    2.    пароли сложные

    3.    пароли меняются.

    Так как любой пользователь пытается облегчить себе жизнь (а попробуйте запомнить, например, 5 паролей типа d7U%iP7)  возникает проблема «желтого стикера». Суть которой сводится к тому, что пароли начинают записывать и хранить в легкодоступном месте. Название «желтый стикер» возникло из личной практики: сотрудники некоторой компании записывали свои пароли на стикер и клеили его на монитор.

    Второй «метод борьбы» с жесткими требованиями к паролям — использование везде  одного и того же пароля. К сожалению, не все (в том числе и системные администраторы, и сотрудники отдела безопасности) до конца понимают опасность этой ситуации. В этом случае компрометация (или раскрытие) одного пароля дает доступ ко всем ресурсам (например, при недостаточной или неправильной защите пароля самим приложением). Можно провести бытовую аналогию: представьте себе ситуацию, когда в несколько дверей врезаны замки, отпирающиеся одним ключом.

    В результате все перечисленные выше усилия по сохранению «секретов» компании сводятся к нулю.

    В этой статье мы хотим рассмотреть, каким образом достичь состояния «сытости волков и целости овец». То есть, как сохранить требуемый уровень безопасности информационных ресурсов компании при достаточно «легкой жизни» пользователей. Это может быть решено следующим образом: пользователь как-то должен быть исключен из процесса ввода множества паролей во множество приложений; в этом случае каждый пароль может быть и сложным, и достаточно часто меняться, и в тоже время быть не обременительным для пользователя (если пароль не вводится, значит, его не надо помнить).

    Концепция сквозной однократной аутентификации (Single Sing-On) SecureLogin. В рамках этой концепции предполагается использовать специальное программное решение, которое будет хранить пароли пользователя от всех приложений, требующих аутентификации, и автоматически вводить их, когда приложение того требует. То есть подобное решение замещает собой пользователя в процессе аутентификации приложением. Доступ пользователя к хранимым паролям и настройкам происходит после аутентификации пользователя в подобную систему, которая как правило совмещается с аутентификацией в операционную систему. Таким образом, единожды введя свои персональные данные аутентификации (ПДА, логин и пароль или также некоторые дополнительные данные) пользователь автоматически получает доступ ко всем системам, требующим аутентификации. Именно отсюда такие системы получили название Single Sing-On (SSO) — сквозная однократная аутентификация.

    Ярким и наиболее функциональным решением в этой области является система SecureLogin  компании ActivIdentity. Именно ее мы и рассмотрим как решением проблемы «желтого стикера».

    Основной задачей SecureLogin является:

    1.                  аутентификация пользователя в приложения, посредством подстановки ПДА в соответствующие поля ввода данных.

    2.                  хранение данных о приложениях

    3.                  защищенное хранение всех ПДА пользователей (логина, пароля и любых дополнительных данных)

    Рассмотри подробно работу SecureLogin.

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

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

    Самым сложным в этом процессе для подобных систем является умение взаимодействовать с окнами аутентификации различных приложений и работать с разными вариантами ввода данных (ввод текста, выпадающие списки, установка флагов и т.д.). Одним из параметров оценки качества подобных систем является как раз умение работать с различными приложениям. То есть, при попытке оценить качество такой системы, необходимо ответить на вопрос: как много существует приложений или их групп (по какому-либо признаку, например, написанных на каком-либо языке, например Java), с которыми система однократной аутентификации не может работать. Чем меньше таких приложений, тем лучше система.

    Для достижения непревзайденного качества по этому параметру используется 3 метода интеграции SecureLogin с приложениями.

    Первый способ (заранее описанные приложения). Наиболее популярные и широко используемые  приложения, такие как Cisco VPN, Oracle и т.д. интегрированы разработчиками SecureLogin в эту систему. В процессе описания приложения были определены параметры, однозначно характеризующие само приложение, окно аутентификации и типы требуемых данных таким образом, что при его появлении SecureLogin «узнает» его и вводит соответствующие данные.  



    Второй способ (использование Мастера)
    .  Так как невозможно заранее описать все приложения, а в идеале система должна быть универсальной, то есть работать со всеми приложениями, реализована мощная система автоматической распознавания  новых приложений (их окон). Когда пользователь запускает приложение, появляется окно аутентификации, SecureLogin распознает приложение как  «своего клиента» и предлагает сохранить параметры приложения и введенные ПДА для последующей автоматической аутентификации. В этом случае запускается Мастер, который позволяет «натренировать» SecureLogin на работу с приложением. То есть, показать (в буквальном смысле этого слова), какое окно используется для ввода логина, какое — для пароля, какая кнопка нажимается для завершения ввода данных и т.д. На этом этапе SecureLogin фиксирует идентификаторы указанных полей и их классы и формирует описание приложения, таким образом, что при последующем запуске приложения оно узнается и отрабатывается SecureLogin.

    Такой Мастер может запускаться пользователем и системный администратором, например, для того, что бы заранее натренировать SecureLogin для работы с определенным приложением

     Третий способ (написание макроса). Существует масса факторов, которые не позволяют использовать второй способ. Одни из них — переменчивость идентификаторов полей: при каждом новом запуске приложения идентификаторы полей изменяются. В этом случаем SecureLogin будет пытаться подставить, например, имя пользователя в окно ввода с идентификатором 10001, которое было определено во время «тренировки», но при текущем сеансе работы это же окно имеет идентификатор, например, 95262.

    Существует и другие трудности на пути автоматической аутентификации: использование всплывающих окон (splash screen), перемещающиеся кнопки, неактивность окна и т.д.


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

    Язык написания макросов содержит более 70 команд, которые позволяют описать работу SecureLogin с любым приложениям (его окном) и использовать при автоматической аутентификации любые типы данных и способ их ввода.

    Для упрощения написания макросов может использоваться утилита, которая определяет все параметры окна аутентификации (и исполняемого файла) и выдает в виде «черновика» в синтаксисе SecureLogin.

    Использование макросов может использоваться не только в том случае, когда автоматические методы не могут быть использованы, но и тогда, когда требуется реализовать «сложную» модель аутентификации, построенную на некоторых зависимостях.

    Например, существует некоторая программа, которая выполняет подключение к удаленному серверу. В этом случае пользователю необходимо указать свой логин, пароль и выбрать из выпадающего меню сервер, к которому он подключается. В том случае, если для каждого сервера используется своя ученая запись (логин-пароль), то необходимо использовать подпрограмму, которая будет подставлять пару логин-пароль соответствующую выбранному серверу. Или например, существует некоторая периодичность доступности серверов, в этом случае возможно реализовать автоматическое подключение к доступному серверу в зависимости от времени суток.



    Итак, SecureLogin обнаруживает окна аутентификации и автоматически вводит требуемые значения. Бывают ситуации, когда в одном и том же приложении у одного пользователя несколько учетных записей (классический пример — бесплатные почтовые серверы). Эта ситуация так же предусмотрена: SecureLogin может содержать для одного приложении и для одного и того же пользователя несколько наборов ПДА. В этом случае возможно два варианта поведения системы:

    1.  SecureLogin может быть настроена на использование выбранной учетной записи

    2. SecureLogin будет предлагать пользователю выбрать, какую именно учетную запись пользователь хочет использовать именно сейчас.

      Структура SecureLogin.

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

      Если компания использует домену структуру сети (а это наиболее часто встречающаяся ситуация), то SecureLogin может быть интегрирован в Active Directory (AD; как частный случай службы каталогов совместимых с протоколом LDAP Light Data Access Protocol). С этой целью выполняется расширение схемы AD, внесение дополнительных атрибутов объектам User. Стоит отметить, что такие изменения одобрены Microsoft и могут быть применены к таким структурным элементам как User, так и Organization Unit любого уровня вложенности,  атак же поддерживается работа на уровне Групповых Политик. Эти особенности позволяет выполнять однотипные настройки SecureLogin для целых подразделений и отделов, а при необходимости детализировать их для отдельных пользователей.

      Управление SecureLogin в этом случае выполняется с помощью стандартных MMC-консолей.

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

      Итак, за счет возможности централизованного управления системный администратор единожды выполняет настройку SecureLogin для работы с каждым используемым в компании приложением. Далее,  администратор может перенести эти и другие настройки на другие объекты AD:

      1. методом импорта-экспорта XML-конфигурации (не имеет ограничений для применения)

      2. настройки могут быть скопированы с текущего объекта на указанный.

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

      Поговорим о безопасности.

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

      Использование этой опции небезопасно, так как открывает доступ к вашим учетным записям приложений при входе в систему под вашей учетной записью. В чем здесь угроза? Если кто-то, обладая соответствующими полномочиями, сбросит Windows пароль и войдет под вашим именем, то он получит доступ к тем приложениям, которые «вас помнят».

      В случае использования SecureLogin такой «фокус» не получится, так как ПДА хранятся в зашифрованном виде, с использованием логина и «оригинального» пароля пользователя;  новый пароль не может быть использован для получения доступа к ПДА.

      Пропадут ли ПДА в этом случае?

      В SecureLogin для решения этой задачи используется система контрольных вопросов. Доступ к ПДА с использованием нового пароля выполнен быть не может. SecureLogin контролирует такую ситуацию и предлагает пользователю ответить на вопрос, ответ на который являются вторым «ключом» для доступа к ПДА. То есть ключ шифрования ПДА сохраняется в зашифрованном виде дважды:

      с использованием хеша имени пользователя и его пароля,

      с использованием хеша ответа на контрольный вопрос.



      На этапе настройки SecureLogin администратор может самостоятельно задать перечень контрольных вопросов или разрешить пользователю самостоятельно сформировать для себя такой вопрос. В любом случае, системный администратор не может задать ответы (то есть обзавестись вторым ключом) — это делает пользователь при первой загрузке операционной системы после установки SecureLogin (стоит отметить, что среди настроек есть опция принудительной регистрации контрольного вопроса, при активации которой пользователь не может отказаться от выбора вопроса и ответа на него, так как это окно не может быть закрыто до выбора и ответа на вопрос).

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

      За счет описанных выше мер можно с уверенностью гарантировать надежное хранение ПДА пользователей.

      Автоматическая генерация пароля.

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

      SecureLogin автоматизирует и процессы смены паролей. При появлении окна смены паролей SecureLogin автоматически подставит текущий пароль (что обычно требуется) и сгенерирует случайным образом новый пароль, подставит его в окна ввода и подтверждения и конечно сохранить его для последующего использования.

      При этом может использовать политика сложности паролей, которая описывается  15 правилами, такими как:

      1.     Минимальная длина

      2.     Максимальная длина

      3.     Минимальное количество спецсимволов

      4.     Максимальное количество спецсимволов

      5.     Максимальное количество символов  верхнего регистра

      6.     Минимальное количество символов верхнего регистра

      7.     Максимальное количество символов  нижнего регистра

      8.     Минимальное количество символов нижнего регистра

      9.     Максимальное количество цифр

      10.  Минимальное количество цифр

      11.  Использование дублирующихся символов

      12.  Использование повторяющихся символов

      13.  Использование последовательности символов

      14.  Использование первого символа в верхнем регистре

      15.  Запрет использования указанных символов.

      За счет этого возможно заставить приложение «подчиняться» корпоративной политики сложности паролей даже в том случае, если само приложении не оперирует такими понятиями  как «сложность пароля». Кроме того, возможность использовать отдельной политики сложности пароля для каждого приложения , что позволяет учитывать специфику  приложения, например, может потребоваться ограничить длину пароля или исключить какие-либо символы, которые не могут быть использованы в данном приложении. 

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

      Страшные слова: фишинг и фарминг.

      Продолжая рассмотрение вопросов безопасности необходимо затронуть вопрос фишинговых и фарминговых атак (от английского слова fishing — ловля рыбы, pharming). Суть первой атаки заключается в том, что хакер тем или иным способ «подставляет» пользователю собственное окно ввода ПДА или страницу аутентификации, которое внешне полностью идентично оригинальному, с помощью которого происходит аутентификация в приложении или web-ресурсе. В результате пользователь вводит свои данные и они становятся доступны атакующему и далее используются «не по назначению». Второй тип атак сводится к тому, что пользователь автоматически перенаправляется на харекский внешне идентичный атакуемому сайт, где вводимые данные сохраняются и используются как было описано выше. С помощью этих атак может быть организована утечка корпоративных данных, а так же кража личных данных пользователя, например, для управления своими банковскими счетами через Интернет, номеров кредитных карт при бронировании  билетов и т.д.

      Для предотвращения таких атак на уровне приложений выполняется проверка контрольной суммы перед началом подстановки ПДА. Если контрольная сумма  не совпала, то подстановка ПДА не происходит.

      В случае работы с web-приложениями так же предусмотрена защита от таких атак. Для этого выполняться, во-первых, проверка URL активного окна, а во-вторых, пернаправление на указанный (известный нам) URL. Кроме того, может выполняться проверка защищенности соединения, то есть, ведется ли работа по SSL-протоколу.

      Состоит отметить, что SecureLogin не только предотвращает ввод данных в «неправильное» окно, но и может выполнить SNMP- и/или SMTP-уведомление, например, администратору, что позволит принять оперативные методы для анализа ситуации и устранения возникшей опасности.

      Механизм уведомлений может быть использован и в любой другой произвольной ситуации, например, при аутентификации для доступа к особо важным корпоративным данным. При необходимости проанализировать активность пользователя так же можно с помощью log-файл, или журнал событий операционной системы.

      Использование смарт-карт и USB-ключей.

      SecureLogin работает с любыми смарт-картами (USB-ключами), которые поддерживают работу по PKCS#11. Это позволяет использовать SecureLogin как с картами ActivIdentity, так и с любыми другими, которые уже используются в компании, или вообще не использовать для смарт-карты. То есть SecureLogin не рассматривается как некоторое дополнение к инфраструктуре смарт-карт или смарт-карт определенного производителя. Смарт-карта всего лишь дополняет функционал SecureLogin и  использоваться как хранилище ПДА.

      В этом случае пользовать проходит двухфакторную аутентификацию (сама карта и PIN) при входе в Windows, и ПДА извлекаются из смарт-карты для подстановки в соответствующие окна.  Интересен тот факт, что первичная аутентификация в систему возможно как на базе цифрового сертификата, хранимого на карте, а так же с использованием имени пользователя и пароля, которые всеемте с ПДА хранятся на карте  (в том случае если компания не используется PKI).

      В случае использования PKI, ПДА могут храниться в AD, но при этом шифроваться с использованием цифрового сертификата пользователя:   открытый ключ используется для шифрования ПДА, секретный (хранимый в защищенной памяти карты) — для расшифровки.

      При желании SecureLogin может быть настроен таким образом, чтобы доступ к ПДА осуществлялся без карты (например, при ее потере). В этом случае будет задействован описаны выше механизм вопросов-ответов.

      Кроме того, SecureLogin позволяет успешно бороться с «забывчивостью пользователей», которые покидают свои рабочие места, не заблокировав компьютер и оставив карту (практика показывает, что никакие административные меры не могут предотвратить эту ситуацию). Для закрытия этой дыры в безопасности, администратором включается режим повторной аутентификации:  перед постановкой ПДА SecureLogin запрашивает PINN карты. Такая ситуация возможно и без использования карт, в этом случае пользователь должен будет ввести свой системный пароль.  То есть, для запуска любого приложения, требующего аутентификации, пользователь должен пройти аутентификацию (не путайте с системами синхронизации паролей.).

      Windows-, Web-, Java-приложениями, а так же поддерживает работу через различные терминальные серверы. Например, не так давно продукты компании ActivIdentity, в том числе и SecureLogin, прошли сертификацию на предмет совместимости с Citrix Presentation Server (полноэкранный режим, опубликованные приложения, смешанный режим) и получили статус Citrix Ready. Кроме того, по журнал SC Magazine признал SecureLogin компании ActibIdentity лучшим SSO-решением.  

      Тархов Андрей,
      product-manager Rainbow Technologies


       


      Другие материалы по этой теме:

Rambler's Top100   Sec.ru - Весь Российский рынок безопасности  
 

©  Copyright 2000-2007 www.sec4all.net