Простая аутентификация – одна из наиболее часто используемых схем установки подлинности лица, получающего доступ к какой-либо системе; основанная на использовании многоразовых паролей с одновременным согласованием их обработки и средств использования, простая аутентификация является доступным и ясным примером использования разделяемой информации, которое практикуется в большинстве защищеных виртуальных сетей VPN (Virtual Private Network), где доступ пользователя к серверу разрешается при введении верного пароля. Но эволюция методов аутентификации предоставляет сегодня более эффективные средства – такие как программные и аппаратные системы аутентификации на основе одноразовых паролей, смарт-карт, PIN-кодов и цифровых сертификатов.
Аутентификация с использованием многоразовых паролей.
При аутентификации на основе многоразового пароля доступ ко всем ресурсам сервера разрешается при единичном введении пользователем своего пароля. В соответствии с этим принципом в современных ОС заложена централизованная программа аутентификации, исполняемая каким-либо сервером сети при помощи базы данных, в которой содержится информация в том числе и об идентификаторах (логинах) и паролях пользователей.
Простая аутентификация пользователя имеет следующий алгоритм исполнения:
-- пользователь запрашивает доступ в сеть и для подтверждения подлинности своего лица вводит свой идентификатор и пароль;
-- введенные данные поступают на сервер аутентификации, где сравниваются с эталоном, содержащимся в базе данных;
-- при совпадении эталона с введенными данными аутентификация признается успешной, и пользователь получает доступ к запрошенным ресурсам и права, определеные его статусом в сети.
Идентификатор и пароль пользователя могут передаваться на сервер аутентификации двумя основными способами:
-- передача в открытом виде: в соответствии с протоколом парольной аутентификации PAP (Password Authentication Protocol) пароль передается по сети незашифрованным.
-- передача с использованием шифрования или однонаправленной функции (хэш-функции): прохождение всех данных пользователя по сети (включая и идентификатор, и пароль, и мести времени, и случайное число) осуществляется в защищённом виде.
Передача пароля в открытом виде является чрезвычайно уязвимой для атак извне, поэтому для защиты информации перед пересылкой по открытому каналу она шифруется при помощи специализированных средств и шифрования и дешифровки, управляемых разделяемым секретным ключом. Исходное значение пароля хранится на сервере аутентификации, и в том случае, если введенная пользователем информация идентична содержащейся в базе данных, то пользователь приобретает легальный статус.
Еще одной уязвимостью простой аутентификации является система хранения паролей пользователей на сервере аутентификации, в которой зачастую отсутствует защита информации при помощи криптографических механизмов (шифрование, хэширование). В этом случае пароли хранятся в системных файлах, на которые ставится простейшая защита от чтения и записи – в операционных системах эта функция осуществляется путем прописывания привилегий тех или иных пользователей в списках контроля доступа ОС. Очевидно, что при такой организации для доступа к системному файлу, содержащему пароли пользователей, достаточно иметь привилегии администратора данной системы, что не является сложной задачей для человека, поставившего себе цель узнать эту информацию.
Для обеспечения наиболее надежной защиты любой информационной системы, хранение конфиденциальной информации должно быть организованно таким образом, чтобы пароль каждого конечного пользователя этой системы был известен только ему и никому другому, даже группе администраторов. Большое количество начинающих специалистов в области информационной безопасности считают, что то, что администратор имеет доступ к учетным записям пользователей, не оказывает отрицательного воздействия на безопасность системы в целом, так как администратор, войдя в нее от имени обычного пользователя, естественно получает права гораздо меньшие, чем те, которые он получил бы, зайдя в систему от своего имени.
В некоторой степени, это все, конечно верно, однако приведенное выше утверждение имеет несколько упущений, во-первых, входя в систему от имени другого пользователя, администратор имеет возможность обойти систему аудита, записывающую в специальный журнал все действия пользователей, во-вторых, администратор получает возможность совершать какие-либо действия, компрометирующие пользователя, что не может быть допустимо в защищенной системе. Таким образом, из приведенных выше фактов, можно сделать вывод, что пароли пользователей в системе, имеющей надежную защиту не должны храниться в открытом виде.
С позиции максимальной защиты информационной системы предпочтительным способом хранения паролей является применение односторонних функций. Наиболее часто для шифрования паролей в базе данных используют одну из известных криптографически стойких хэш-функций. Такой подход характерен тем, что в БД пользователей хранится не сам пароль, а его образ, являющийся результатом, получаемым после применения к паролю хэш-функции. Криптографически-стойкие хеш-функции отличаются своей однонаправленностью. Это означает, что по образу пароля, сгенерированного хэш-функцией восстановить сам пароль невозможно. Однако всегда образы хеш-функции от одного и того же пароля будут одинаковы. Это позволяет скрипту, производящему авторизацию, зная используемую в системе хэш-функцию, получить образ введенного пользователем пароля и сравнить его с тем образом, что хранится в БД. Если образы равны, то пароли одинаковы.
В том случае, когда при регистрации в системе пароль не генерируется случайно, а предлагается к вводу пользователю, система аутентификации имеет пониженную стойкость, поскольку выбор аутентифицирующей информации происходит из относительно небольшого множества слов (как правило, присутствующих в рамках словаря). При достаточном количестве времени система может быть взломана обычным перебором. Чтобы повысить безопасность такой системы, срок действия многоразового пароля должен быть ограничен во времени, по истечении указанного периода, пароль меняется на новый.
Аутентификация с использованием одноразовых паролей
Традиционные схемы аутентификации, имеющие в своей основе использование многоразовых паролей, не обладают достаточным уровнем безопасности. Такие пароли могут быть подобраны при помощи специальных программ, перехвачены, подсмотрены и т.д. Иными словами, узнав пароль однажды, злоумышленник имеет постоянный доступ к взломанной учётной записи. С этой точки зрения, более надежными являются процедуры аутентификации на основе одноразовых паролей.
Основная идея принципа одноразовых паролей заключается в том, что при каждом новом запросе на предоставление доступа будут использоваться различные пароли. Одноразовый динамический пароль может быть использован только для одного входа в систему, после этого его действие истекает. Даже если хакер сможет перехватить его в момент аутентификации, пароль окажется бесполезен. Как показывает практика, динамический механизм генерации паролей является одним из лучших методов защиты процесса аутентификации. Наиболее широко системы аутентификации с одноразовыми паролями применяются при необходимости работы с удаленными пользователями, когда авторизация и аутентификация производятся в условиях небезопасных, общедоступных сетей, таких как Интернет и т.д.
Методы применения одноразовых паролей для аутентификации пользователей классифицируют следующим образом:
1. Использование генератора псевдослучайных чисел, общего для пользователя и проверяющей системы, с одним и тем же начальным значением.
2. Использование механизма временных меток на основе системы единого времени.
3. Использование списка случайных паролей, общего для легального пользователя и проверяющей системы, и механизма их синхронизации.
Следует отметить, что создание одноразовых паролей может иметь в своей основе, как аппаратный, так и про¬граммный способ реализации. Большое количество аппаратных средств на основе одноразовых паролей в настоящее время создаются в виде миниатюрных устройств со встроенным микропроцессором, внешне напоминающих кредитные банковские карты.
Первый метод применения одноразовых паролей для аутентификации пользователей базируется на использовании генератора псевдослучайных чисел, общего для пользователя, осуществляющего вход и проверяющей системы аутентификации, с одним и тем же начальным значением. Различают два основных способа реализации этого метода аутентификации:
-- последовательность преобразуемых одноразовых паролей. В процессе очередной сессии аутентификации пользователь создает и передает пароль именно для данной сессии, зашифрованный на секретном ключе, полученном из пароля предыдущей сессии;
-- последовательности паролей, основанные на односторонней функции. Суть данного метода составляет последовательное использование односторонней функции. Этот метод является более предпочтительным с точки зрения безопасности по сравнению с методом последовательно преобразуемых паролей.
В качестве примера аппаратного способа реализации механизма одноразовых паролей на основе временных меток можно привести технологию аутентификации SecurId, основанную на одноразовых паролях с использованием аппаратных ключей и механизма временной синхронизации. Эта технология аутентификации создана компанией Security Dynamics и реализована в ряде коммуникационных серверов довольно большого числа компаний, например, в серверах компании Cisco Systems. Данная схема аутентификации основывается на программном алгоритме генерации случайных чисел через определённые промежутки времени, которые устанавливаются и могут быть изменены администратором системы. В механизме аутентификации задействованы два параметра:
-- значение метки текущего времени;
-- специальный секретный ключ - уникальное 64-битовое число, предоставляемое каждому легальному пользователю при регистрации и хранящееся только в двух местах - в базе данных аутентификационной системы и в аппаратном ключе пользователя.
В тот момент, когда пользователь осуществляет вход в сеть, система предлагает ему ввести его PIN-код, состоящий из четырех десятичных цифр, а также шесть цифр случайно генерируемого числа, отображаемого в этот момент на дисплее аппаратного ключа. Используя введенный пользователем PIN-код, сервер извлекает из базы данных секретный ключ пользователя и выполняет алгоритм генерации случайного числа, используя в качестве параметров извлеченный секретный ключ и значение текущего времени. После этого сервер осуществляет проверку, совпадают ли сгенерированное число и число, введённое пользователем. Если эти числа совпадают, то сервер разрешает пользователю осуществить логический в систему.
Такая схема аутентификации имеет очень твердую и устойчивую к взломам защиту, что оказывается крайне необходимым при осуществлении в системе критически важных действий, например денежных транзакций на крупные суммы или работы с информацией, составляющей ноу-хау компании. Однако, приведённая выше схема аутентификации, наряду с вполне очевидными достоинствами имеет и ряд серьёзных недостатков, основным из которых является требование точной временной синхронизация аппаратного ключа и сервера. Так как аппаратный ключ может функционировать несколько лет, вполне очевидно, что со временем будет происходить постепенное расхождение внутренних часов сервера и аппаратного ключа. Для решения этой проблемы в компании Security Dynamics предлагают два способа:
-- при производстве аппаратного ключа точно измеряется отклонение частоты его внутренних часов от номинала. Полученное значение вводится в формулу вычисления секретного значения, как пара¬метр алгоритма;
-- сервер отслеживает коды, генерируемые конкретным аппаратным ключом, и при первых признаках отклонения времени автоматически подстраивается под этот ключ.
Помимо вышеописанной проблемы есть и ещё один существенный недостаток. Так как фактически пользователь может осуществлять доступ к серверам компании из любой точки планеты и любой сети, то необходимо заложить определённый промежуток времени, в течение которого случайно сгенерированное число будет действительно. Это делается для того, чтобы охватить время пересылки информации между терминалом, к которому подключён аппаратный ключ и самим сервером аутентификации, так как в большинстве стран качество связи все ещё оставляет желать лучшего, то время пересылки данных может быть достаточно велико. И, чтобы исключить ситуацию, когда сгенерированный ключ приходит на сервер, а время его действия уже истекло, закладывается интервал действия ключа, в некоторых случаях достаточно большой. Поэтому, в принципе, возможна кратковременная ситуация, когда хакер может перехватить PIN-код и случайное число, чтобы использовать их для доступа в сеть быстрее, чем сам владелец. Это самое уязвимое место схемы аутентификации, основанной на временной синхронизации.
Существует достаточно большое количество других вариантов аппаратной реализации механизма аутентификации с применением одноразовых паролей. Наиболее эффективным и способным составить конкуренцию вышеозначенному методу временных меток показывает себя принцип аутентификации по схеме запрос-ответ. Схема принципа такова - при попытке пользователя осуществить вход в сеть аутентификационная система передает ему запрос в виде случайного числа. Секретный ключ пользователя, размещённый на аппаратной платформе, зашифровывает это случайное число, используя какой-либо алгоритм шифрования и секретный ключ, хранящийся в памяти аппаратного ключа и в базе данных сервера. После этого, случайное число-запрос возвращается в зашифрованном виде на сервер. Сервер, в свою очередь, также зашифровывает сгенерированное им самим случайное число с помощью того же алгоритма шифрования и того же секретного ключа пользователя, извлеченного из базы данных сервера. Затем сервер сравнивает результат своего шифрования с числом, пришедшим от аппаратного ключа. При совпадении этих чисел пользователь получает разрешение на вход в сеть. Следует отметить, что схема аутентификации запрос-ответ сложнее в использовании по сравнению со схемой аутентификации с временной синхронизацией.
Третий метод использования одноразовых паролей для аутентификации пользователей основан на применении определённого набора случайных паролей, общего для пользователя и проверяющего, а также надежного механизма их синхронизации. Разделяемый список одноразовых паролей представляется в виде последовательности или набора секретных паролей, где каждый пароль употребляется только один раз. Данный список должен быть заранее распределен между сторонами аутентификационного обмена. Вариантом данного метода является использование таблицы запросов-ответов, в которой содержатся запросы и ответы, используемые сторонами для проведения аутентификации, причем каждая пара должна применяться только один раз.
Аутентификация на основе PIN-кодов.
Основным методом аутентификации пользователей, имеющих пластиковые и смарт-карты, является ввод секретного числа, известного только пользователю и системе, куда осуществляется доступ. Это секретное число называют PIN-кодом (аббревиатура, которая обозначает Personal Identification Number - персональный идентификационный код). В большинстве случаев обеспечение сохранности PIN-кода карты является критичным для безопасности всей системы – сами карты могут быть потеряны, украдены или подделаны, однако если при этом злоумышленнику неизвестен PIN-код этой карты, никакого результата он не добьется.
Как было сказано выше, в случаях потери, кражи или подделки пластиковых карт единственным способом предотвращения взлома системы является секретное значение PIN-кода. Именно поэтому PIN должен держаться в секрете в течение всего срока действия карты. При определении длины PIN-кода разработчики подобных систем сталкиваются с несколькими трудностями. С одной стороны его длина должна быть настолько большой, чтобы исключить вероятность определения нужного PIN-кода к карте методом перебора. С другой – не должна быть слишком большой, чтобы была удобна для запоминания и быстрого ввода пользователю. В стандарте ISO 9564-1 указанно, что PIN-код должен содержать от четырех до двенадцати буквенно-цифровых символов. Однако, на практике, в большинстве случаев ввод нецифровых символов технически невозможен, поскольку соответствующая клавиатура недоступна (банкоматы, различные терминалы обмена и оплаты и т.д.). Поэтому наиболее часто PIN-код – это четырехзначное число, каждая цифра которого может принимать значение от 0 до 9.
В систему PIN-код вводится с помощью клавиатуры терминала или компьютера, после чего передается на смарт-карту, которая, в свою очередь, сравнивает полученное значение PIN-кода с правильным значением, хранимым в ней, и отправляет результат сравнения на терминал. Этап ввода PIN-кода относится к критически важным, так как на этом этапе он может быть перехвачен множеством разных способов. Чтобы значительно понизить риск этого этапа, в каждой прикладной области использования смарт-карт существует свой набор стандартов производства терминалов – как правило, PIN-терминалы обладают всеми свойствами модуля безопасности, шифруя PIN-код сразу при его вводе. Это позволяет обеспечить надежную защиту против проникновения в клавиатуру с целью перехвата PIN-кода в момент его ввода.
PIN-коды делятся на статические и динамические (изменяемые). Статический PIN-код не может быть изменен пользователем на протяжении всего срока действия карты. Каждой карте должен соответствовать один и только один PIN-код. Чтобы заменить его, должна быть изменена сама смарт-карта. Вследствие этой особенности работы статических PIN-кодов пользователю следует проявлять максимальную внимательность при обращении со смарт-картой с таким PIN-кодом. Если PIN-код станет известен постороннему лицу, пользователь должен уничтожить карту и получить новую с другим фиксированным PIN-кодом.
Изменяемый PIN-код может быть изменен согласно пожеланиям пользователя на любое другое число, как правило, это такое число, которое пользователю легче вводить с клавиатуры или легче запомнить. Динамический PIN-код значительно облегчает процедуру противодействия в том случае, если он станет доступен постороннему лицу – нет издержек на смену карты, достаточно ввести новый PIN-код со специального терминала. Однако при изменяемом PIN-коде существует значительная опасность – потенциальная возможность быстрого раскрытия PIN-кода методом перебора. Это обуславливается тем, что числа, которые подавляющее количество людей считают удобными для запоминания и бытового применения, это либо очень простые числа, вроде 1111, 1234, 0987 и т.д., либо числа, каким-либо образом связанные с их биографией, самым распространенным примером является использование даты своего рождения, например 15071970 – такой PIN-код легко подобрать, Зная дату рождения пользователя (15 июля 1970-ого года) и т.д. Смарт-карта, как правило, не обладает средствами защиты от таких тривиальных чисел, так как для хранения всех правил, по которым они будут определяться, не хватает доступной памяти. Однако в настоящий момент все больше терминалов оснащаются защитой от замены PIN-кода на такое число.
Следует также отметить такой термин, как «Транспортные PIN-коды». Изначально изготовленная карта обладает случайным значением PIN-кода, а владелец карты получает значение PIN-кода отдельно, в защищенном от просвечивания конверте. При первом использовании смарт-карты, пользователь должен заменить PIN-код, изначально определенный для карты, на выбранный им самим. Такой механизм действий исключает потенциальную возможность того, что PIN-код, выслеженный во время изготовления карты кем-то из сотрудников обслуживающей компании, позже может быть незаконно им использован.
Способы атаки на системы, использующие смарт-карты и PIN-коды.
1. Угадывание PIN-кода. Одним из простейших и старейших (в то же время эффективных до сих пор) методов взлома PIN-кода является банальное угадывание. Вероятность угадывания напрямую зависит от длины угадываемого PIN-кода, от составляющих его символов и от количества разрешенных попыток ввода.
Для оценки риска, связанного с использованием конкретных правил формирования конечного PIN-кода, на практике применяются следующие формулы вычисления вероятности угадывания. Обозначения:
y – результатирующее число возможных комбинаций PIN-кода;
x - число возможных символов на позиции (как правило это цифровой диапазон 0-9);
n - число позиций в PIN-коде (наиболее популярно число 4);
I - вероятность угадывания PIN-кода;
k - число попыток ввода PIN-кода.
Тогда число возможных комбинаций PIN-кода определяется формулой y= x".
Вероятность угадывания PIN-кода за k попыток определяется формулой I = k/x".
Если PIN-код состоит из четырех десятичных цифр, то есть n=4 и x=10, тогда число возможных комбинаций PIN-кода равно y = x" = 10(4) = 10 000, что означает - злоумышленник, пытающийся подобрать значение PIN-кода угадыванием, окажется перед проблемой выбора одной из десяти тысяч комбинаций.
Рассмотрим ситуацию угадывания далее. В спецификациях PC/SC настоятельно рекомендуется, чтобы при вводе PIN-кода было установлено ограничение на количество неверных попыток. Когда число зарегистрированных неверных попыток достигает заданного лимита, процесс ввода блокируется, препятствуя дальнейшим попыткам аутентификации. В одних случаях, ввод блокируется на некоторое время (3, 5, 24 часа), однако, наиболее часто блокировка аутентификации осуществляется «навсегда», до непосредственного контакта с клиентом, чей пароль пытались подобрать. Как правило, в этом случае клиент пишет заявление на разблокирование своего аккаунта, параллельно, с чем может быть заменена смарт-карта и/или ее PIN-код. В спецификации рекомендуется устанавливать допускаемое число неверных попыток в диапазоне от 1 до 255. На практике в большинстве случаев используется число попыток, равное 3.
Добавим в приведенные выше формулы число попыток ввода PIN-кода k. Если число разрешенных попыток ввода k = 3, то вероятность угадывания правильного значения PIN-кода из четырех десятичных цифр за три попытки вво¬да составляет I = k/x" = 3/104 = 0,00003, или 0,03%. Такая вероятность угадывания считается достаточно прочной практически для любых транзакций, в том числе денежных, и применяется большинством банков.
2. Применение на терминале взламываемой системы специальных устройств. Особо широкое распространение этот тип взлома получил в начале 21-ого века. Его суть заключается в «наложении» поверх средств коммуникации с клиентом (цифровая панель для ввода PIN-кода или устройство для вставки смарт-карты) терминала взламываемой системы предметов, созданных злоумышленниками. Например, для изъятия у клиента его смарт-карты используется специальное устройство, называемое «рукав», которое вводится в щель для пластиковой карты и блокирует ее попадание в механизмы терминала. Терминал, естественно, не видит введенной карты и предлагает пользователю заново ввести ее. Транзакции не проходят, карта не возвращается из банкомата. Через некоторое время обиженный и потерявший терпение клиент бросает карту в банкомате, считая, что это какой-то системный сбой. Злоумышленник, после того как пользователь ушел, спокойно достает карту при помощи специального приспособления. Как правило, «рукав» применяется в совокупности со специальной накладкой на клавиатуру, которая располагается поверх настоящей клавиатуры и полностью эмулирует ее работу, запоминая при этом вводимый пользователем PIN-код. Вместо накладки может использоваться мини-видеокамера, направленная на клавиатуру и записывающая, какие кнопки нажимает пользователь.
Помимо проблем, связанных с потенциальным взломом PIN-кода карты, каждый, обслуживающий систему, основанную на пластиковых картах, субъект должен позаботиться о средствах восстановления PIN-кода. В идеале, значение PIN-кода запоминается держателем карты и не должно храниться в любой читаемой форме. Однако, память у людей несовершенна, и часто они попросту забывают значения своих PIN-кодов. На этот случай, субъект, обслуживающий систему, должен иметь специальные механизмы восстановления. Как правило, реализуется один из двух подходов – восстановление забытого клиентом значения PIN-кода и от¬правка его обратно владельцу карты, либо просто генерация но¬вое значение PIN-кода.
При идентификации клиента по значению PIN-кода и предъявленной карте используется два основных способа проверки PIN-кода: неалгоритмический и алгоритмический.
Неалгоритмический способ проверки PIN-кода не требует применения специальных алгоритмов. Проверка PIN-кода осуществляется путем непосредственного сравнения введенного клиентом PIN-кода со значениями, хранимыми в базе данных. Обычно база данных со значениями PIN-кодов клиентов шифруется методом прозрачного шифрования, чтобы повысить ее защищенность, не усложняя процес¬са сравнения.
Алгоритмический способ проверки PIN-кода заключается в том, что введенный клиентом PIN-код преобразуют по определенному алгоритму с использованием секретного ключа и затем сравнивают со значением PIN-кода, хранящимся в опре¬деленной форме на карте. Достоинства этого метода проверки:
-- отсутствие копии PIN-кода на главном компьютере исключает его раскрытие обслуживающим персоналом;
-- отсутствие передачи PIN-кода между банкоматом или кассиром-автоматом и главным компьютером банка исключает его перехват злоумышленником или навязывание результатов сравнения;
-- упрощение работы по созданию программного обеспечения системы, так как уже нет необходимости действий в реальном масштабе времени.
Скачать пробный антивирус |
Статьи об информационной безопасности и антивирусных программах:
Нужно ли защищать сайт от взлома
Довольно часто среди начинающих веб-разработчиков встречается пренебрежительное отношение к защите разрабатываемых ими проектов от взлома. Аргументируется это, как правило, тем что любая степень защиты может быть взломана, а следовательно, не имеет смысла уделять ей должного внимания. Реклама,клипы,свадьбы в Ташкенте: цветы Брянск. Корректность данных, вводимых пользователем. HTML-формы. Одной из основных проблем для любого программиста при разработке веб-приложения является проверка корректности вводимых пользователем данных. Практически все программы в сети на 80-90% (будь то сайт-визитка, или сложный корпоративный портал) функционируют на основе параметров, получаемых от пользователя. В данном утверждении не имеются ввиду, только данные, непосредственно вводимые посетителями в html-формы. Хотя этот момент особенный и требует значительного внимания, он не единственен и, при создании проектов, разработчику следует также анализировать get-параметры строки адреса, значения, получаемые сайтом из cookies пользователя и данные, являющиеся на формах скрытыми. Дорого и быстро купим ваш авто - аренда авто. Прокат и аренда авто в Краснодаре. История развития интернет-технологий: CSS Каскадные таблицы стилей в интернет появились относительно недавно. Впервые данная технология была предложена в HTML 3.0 как решение проблемы качественного визуального отображения html-документов. В 1995-ом году, незадолго до появления третьей версии HTML, довольно остро встала проблема визуального редактирования html-текстов, пользователям уже было недостаточно исключительно логической разметки документов, для которой изначально разрабатывался HTML. Каталог ювелирные изделия кольца |
Рекомендуем скачать антивирусы: Online антивирусы
Лицензионные антивирусы
Комплексные антивирусы
Бесплатные антивирусы
Мобильный антивирус
|
|||||||||||||||||||||||||



Статьи
Последние 5 комментариев о статье:

