16 Jul 2009 @ 3:42 AM 
 

Идентификация пользователей.

 

идентификация пользователей

Основной вопрос идентификации заключается в следующем: если потенциальный пользователь (крипто) системы обращается к услугам компьютера (либо в том случае, когда он, например, захочет воспользоваться автоматическим кассиром, либо тогда, когда такому кассиру понадобится получить доступ к центральному компьютеру банка), то каким образом при каждом таком обращении этот центральный компьютер сможет удостовериться, что тот, кто к нему обращается, является именно тем абонентом, за которого он себя выдает? Классическое решение этой проблемы заключается в использовании паролей. Предполагая, что пользователь и компьютер распределили между собой некоторую конфиденциальную часть информации, последний может потребовать эту информацию от обратившегося к нему в том случае, когда его подлинность сомнительна. Ясно, что ценность такой схемы решающим образом зависит от ее способности сохранять пароли в секрете, что указывает на два потенциально слабых звена: существование где-то в памяти компьютера таблицы паролей и угрозу перехвата сообщений до их попадания в него.
Сам факт, что пароли находятся в какой-то области памяти компьютера, является очень опасным. Вне зависимости от того, насколько они хорошо спрятаны и защищены, искусный противник всегда найдет их, где бы они ни были (предпочтительно, но совсем не обязательно, если он имеет физический доступ к этому компьютеру, его оперативной памяти и файлу подкачки операционной системы). Более того, в составе персонала, обслуживающего работу большинства компьютеров, существует по крайней мере один человек, так называемый администратор системы, то есть тот ее (самый) привилегированный пользователь, который обладает всеми правами легального доступа к директории, где хранятся пароли. Сколь большим доверием другие пользователи могут облечь такого человека? Очевидно, что в самом крайнем случае в разных системах предусмотрительные пользователи должны использовать различные пароли.
Рассмотренная выше угроза может быть легко предотвращена на практике. Ключевая мысль заключается в том, что компьютеру в такой ситуации совершенно не обязательно знать действительные пароли пользователей — для него необходима лишь способность подтверждения данных паролей. Это может быть реализовано посредством использования однонаправленных функций. Компьютеру достаточно хранить лишь образы пользовательских паролей (хеши), являющиеся результатами вычисления некоторой фиксированной однонаправленной функции от каждого пароля как аргумента. Поскольку функция однонаправленна, то хранить в секрете ее саму совершенно не обязательно. Тогда всякий раз, как только какой-нибудь пользователь захочет доказать свою подлинность, он сообщает свой истинный пароль, а компьютер сразу же вычисляет от него значение этой однонаправленной функции. Затем результат вычислений сверяется с хранящейся в компьютере таблицей. Очевидно, что в данном случае противник в силу своей неспособности вычислять прообразы значений соответствующей однонаправленной функции будет вынужден признать бесполезным для определения истинных паролей пользователей распечатку такой преобразованной таблицы.
Эта схема может оказаться довольно слабой, если пользователи склонны употреблять пароли, которые можно легко угадать. В такой ситуации с помощью кого-то, кто имеет доступ к таблице (преобразованных) паролей и к алгоритму вычисления однонаправленной функции, может, зачастую довольно успешно, применяться следующая атака. Задавшись, скажем, тысячью предположительно наиболее употребимых паролей и вычислив значения однонаправленной функции от них, этот «кто-то» может затем эффективно сравнить полученные результаты с преобразованной таблицей паролей (используя при этом технику хеширования или сортировки). Тогда каждое такое успешное сравнение предоставит ему в распоряжение некоторый истинный пользовательский пароль. Ясно, что подобная атака не позволяет нарушителю раскрыть все пароли, которые он хотел бы узнать, но тем не менее она очень продуктивна в нахождении некоторых из них.

Хотя и не делая ничего дополнительного для защиты индивидуальных паролей, так называемая случайная добавка является той техникой, которая почти исключает описанные выше коллективные угрозы. При формировании таблицы паролей с каждым именем пользователя связывается некоторая случайным образом сгенерированная битовая строка (в открытом виде), а хранящееся значение однонаправленной функции вычисляется от конкатенции истинного пароля каждого пользователя и этой его случайной строки. В результате оказывается, что два различных пользователя, которые могли бы случайно выбрать одинаковые пароли, будут иметь разные записи в преобразованной системной таблице.
Несмотря на такое улучшение, остается одна основная слабость- Всякий раз, когда пользователь захочет, чтобы была подтверждена его подлинность, он должен вводить свой настоящий пароль в компьютер. Пароль в этом случае становится уязвимым к перехвату либо тогда, когда он проходит по линии связи к компьютеру, либо внутри самого компьютера вплоть до того момента, пока он не будет преобразован посредством вычисления соответствующей однонаправленной функции.
Для того чтобы избавиться от подобной угрозы, необходимо, чтобы компьютер не только не имел паролей в памяти, но и вообще не выдавал бы их ни при каких обстоятельствах. Это требование кажется парадоксальным. Тем не менее оно может быть удовлетворено посредством комбинации одной идеи времен второй мировой войны — системы идентификации типа «друг-или-враг» (I.F.F.) — с понятием однонаправленной функции с потайным ходом. Для этого требуется, чтобы пользователи имели в распоряжении свои собственные интеллектуальные терминалы или, что предпочтительнее, персональные smart-карточки.
Для того чтобы решить проблему идентификации пользователей какой-нибудь системы, каждый ее пользователь вырабатывает случайным образом личный (секретный) ключ в соответствии с некоторой криптосхемой с открытым ключом. Этот ключ он использует для конкретизации собственной согласованной пары алгоритмов: шифрования и дешифрования. Затем алгоритм шифрования-он предоставляет в распоряжение центрального компьютера системы, а на своем терминале программирует алгоритм дешифрования. Всякий раз, когда нужно убедиться в подлинности (того, кто, быть может, только действует от имени легального) пользователя системы, центральный компьютер вырабатывает случайное сообщение, вычисляет от него, как от аргумента, значение функции шифрования этого пользователя, и посылает результат на его терминал в качестве опроса. Пользователь в ответ на опрос запускает свою хранящуюся в секрете от всех программу дешифрования и вычисляет само исходное (случайное) сообщение, которое в качестве удостоверения пересылает назад в компьютер. Как следует непосредственно из определения однонаправленных функций с потайным ходом, только законный пользователь способен пройти подобные опросы эффективно, даже если его функция шифрования (программа которой хранится внутри центрального компьютера) известна нарушителю. Как и было объявлено ранее, при таком механизме работы системы по типу «опрос-ответ» личный пароль пользователя, который фактически является его эффективным алгоритмом дешифрования, никогда не пересылается в центральный компьютер.
Заметим, что в описанной ситуации нарушителю не поможет перехват опросов и ответов, которыми обмениваются компьютер и конкретный пользователь системы, поскольку он (вероятностно говоря) мог бы и сам, основываясь лишь на знании открытой информации пользователя, произвести точно такой же обмен. Кроме того, если бы он попытался выдать себя за легального пользователя, то почти наверняка столкнулся бы с запросами, отличными от тех, которые он уже перехватил.
С другой стороны, истинный пользователь системы, очевидно, не должен доверять компьютеру в том, что запросы и в самом деле формируются случайным образом. Из этого следует, что криптографическая схема, на которой основывается предлагаемый выше механизм работы системы, должна быть стойкой против атак на основе выбранного шифртекста. Поэтому здесь нельзя использовать криптосхему вероятностного шифрования Блюма-Гольдвассер.
В действительности для того чтобы получить работоспособную систему идентификации пользователей, нужно принять во внимание все нюансы теории однонаправленных функций с потайным ходом. Предположим, например, что в некоторой криптосхеме любое достаточно короткое сообщение, если иметь в своем распоряжении личный секретный ключ дешифрования, может быть дешифровано менее, чем за одну секунду, но оно также может быть осуществлено и без него за несколько часов. Столь быстрый криптоанализ означал бы крах всей такой криптографической системы при ее использовании для шифрования. Однако для системы идентификации пользователей она была бы приемлемой, потому что центральный компьютер всегда может проверить, как долго пользовательский терминал был занят для ответа. Правильный, но вычисляемый слишком долго, ответ будет точно так же бесполезен для нарушителя, как и отсутствие ответа вообще.
Механизм, который мы описали выше, является на самом деле не схемой идентификации пользователей, а скорее схемой идентификации терминалов. В ней любой человек, имеющий физический доступ к конкретному терминалу, сможет воспользоваться компьютером, даже если этот доступ к терминалу является незаконным. Для идентификации пользователей одно из решений заключается в требовании, что пользователи должны подтвердить собственные полномочия на своем терминале до того, как начнут использовать его в составе системы. Это может быть сделано посредством классической системы паролей, если и пользовательские пароли, и алгоритм дешифрования хранятся в черном ящике данного терминала, который саморазрушается тогда, когда в него пытаются залезть.
Лучшая же идея сводится к тому, чтобы алгоритм дешифрования реализовать с помощью персональной интеллектуальной карточки пользователя. При таком решении от терминалов требуется лишь минимальная интеллектуальность, причем все они могут быть одинаковыми и позволять пользователю входить в систему физически с любого места, которое оборудовано собственно таким терминалом. Важные результаты, касающиеся опасностей использования интеллектуальных (smart) карточек, упомянуты в. Вообще говоря, было бы намного надежнее, если бы такие карточки имели собственную клавиатуру и дисплей.
Описанный механизм идентификации может использоваться в режиме непрерывного опроса, когда центральный компьютер постоянно опрашивает терминал через регулярно повторяющиеся промежутки времени. Такой режим снимает дальнейшие угрозы со стороны нарушителя, который будет вынужден поджидать законного пользователя, с тем чтобы установить соединение до подключения канала связи к его собственному терминалу (или, что еще лучше во избежание возникающих подозрений, ожидать до те пор, пока законный пользователь не пошлет команду «logout», с тем чтобы сразу же после этого перехватывать его канал). Если дополнительные вычисления и соответствующие задержки в такой ситуации являются допустимыми, то было бы надежнее еще и аутентифицировать каждое отдельное обращение к системе, исходящее от пользователя.
Для практических применений лучше всего, если подобный опрос может быть построен очень быстро, даже если подтверждение самого опроса требует более значительных вычислений. Это связано с тем, что основной компьютер может обслуживать большое количество терминалов, тогда как каждый индивидуальный терминал способен обрабатывать такие опросы в фоновом режиме (тем самым с точки зрения пользователя обеспечивая функционирование с высоким быстродействием). Например, можно было бы использовать принципы работы криптосистемы RSA, но при этом открытую экспоненту каждый раз полагать равной 3 (поскольку известной слабостью применения небольших экспонент при шифровании в данном случае вообще никак нельзя воспользоваться).
Конечно, проблема проверки полномочий кого бы то ни было не ограничивается лишь использованием компьютеров. В общем виде рассматриваемая здесь задача идентификации по типу «вопрос-ответ» может быть решена, используя технику минимального раскрытия. Более подробному обсуждению идентификационных протоколов с минимальным раскрытием (точнее, с нулевым знанием) посвящена статья Урила Фейге, Эмоса Фиата и Эди Шамира. Описание того, как распознавать потенциальных мошенников, приводится в работах Уво Десмедта и его коллег.

Похожие разделы:

Теги Теги: , ,
Рубрики: Аутентификация и подпись
Автор: Хеш
Постоянная ссылка | Комментировать
 

Ответы на это сообщение » (Комментировать)

 


Комментарии открыты. Не стесняйтесь оставить комментарий ниже.


 Мета:
RSS Подписка на комментарии
Отслеживать URI
 

Оставить комментарий ...

 


Вы можете войти чтобы добавить комментарий.


 XHTML:
Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
\/ Дополнительные параметры ...
Не авторизирован.
  • Роль »
  • Сообщения »
  • Комментарии »
Измененить тему...
  • VoidVoid (Default)
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LiteLightweight