Аутентификация с использованием многоразовых паролей.
При аутентификации на основе многоразового пароля доступ ко всем ресурсам сервера разрешается при единичном введении пользователем своего пароля. В соответствии с этим принципом в современных ОС заложена централизованная программа аутентификации, исполняемая каким-либо сервером сети при помощи базы данных, в которой содержится информация в том числе и об идентификаторах (логинах) и паролях пользователей.Аутентификация с использованием одноразовых паролей
Традиционные схемы аутентификации, имеющие в своей основе использование многоразовых паролей, не обладают достаточным уровнем безопасности. Такие пароли могут быть подобраны при помощи специальных программ, перехвачены, подсмотрены и т.д. Иными словами, узнав пароль однажды, злоумышленник имеет постоянный доступ к взломанной учётной записи. С этой точки зрения, более надежными являются процедуры аутентификации на основе одноразовых паролей. Основная идея принципа одноразовых паролей заключается в том, что при каждом новом запросе на предоставление доступа будут использоваться различные пароли. Одноразовый динамический пароль может быть использован только для одного входа в систему, после этого его действие истекает. Даже если хакер сможет перехватить его в момент аутентификации, пароль окажется бесполезен. Как показывает практика, динамический механизм генерации паролей является одним из лучших методов защиты процесса аутентификации. Наиболее широко системы аутентификации с одноразовыми паролями применяются при необходимости работы с удаленными пользователями, когда авторизация и аутентификация производятся в условиях небезопасных, общедоступных сетей, таких как Интернет и т.д..Аутентификация на основе 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-код, выслеженный во время изготовления карты кем-то из сотрудников обслуживающей компании, позже может быть незаконно им использован.
45.
Классификация алгоритмов шифрования
1. Симметричные (с секретным, единым ключом, одноключевые, single-key).
1.1. Потоковые (шифрование потока данных):
• с одноразовым или бесконечным ключом (infinite-key cipher);
• с конечным ключом (система Вернама - Vernam);
• на основе генератора псевдослучайных чисел (ПСЧ).
1.2. Блочные (шифрование данных поблочно):
1.2.1. Шифры перестановки (permutation, P-блоки);
1.2.2. Шифры замены (подстановки, substitution, S-блоки):
• моноалфавитные (код Цезаря);
• полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma);
1.2.3. составные (таблица 1):
• Lucipher (фирма IBM, США);
• DES (Data Encryption Standard, США);
• FEAL-1 (Fast Enciphering Algoritm, Япония);
• IDEA/IPES (International Data Encryption Algorithm/
• Improved Proposed Encryption Standard, фирма Ascom-Tech AG, Швейцария);
• B-Crypt (фирма British Telecom, Великобритания);
• ГОСТ 28147-89 (СССР); * Skipjack (США).
2. Асимметричные (с открытым ключом, public-key):
• Диффи-Хеллман DH (Diffie, Hellman);
• Райвест-Шамир-Адлeман RSA (Rivest, Shamir, Adleman);
• Эль-Гамаль ElGamal.
Кроме того, есть разделение алгоритмов шифрования на собственно шифры (ciphers) и коды (codes). Шифры работают с отдельными битами, буквами, символами. Коды оперируют лингвистическими элементами (слоги, слова, фразы).
Симметричные алгоритмы шифрования
Симметричные алгоритмы шифрования (или криптография с секретными ключами) основаны на том, что отправитель и получатель информации используют один и тот же ключ. Этот ключ должен храниться в тайне и передаваться способом, исключающим его перехват.
Обмен информацией осуществляется в 3 этапа:
• отправитель передает получателю ключ (в случае сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);
• отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;
• получатель получает сообщение и расшифровывает его.
Если для каждого дня и для каждого сеанса связи будет использоваться уникальный ключ, это повысит защищенность системы.
Потоковые шифры
В потоковых шифрах, т. е. при шифровании потока данных, каждый бит исходной информации шифруется независимо от других с помощью гаммирования.
Гаммирование - наложение на открытые данные гаммы шифра (случайной или псевдослучайной последовательности единиц и нулей) по определенному правилу. Обычно используется "исключающее ИЛИ", называемое также сложением по модулю 2 и реализуемое в ассемблерных программах командой XOR. Для расшифровывания та же гамма накладывается на зашифрованные данные.
При однократном использовании случайной гаммы одинакового размера с зашифровываемыми данными взлом кода невозможен (так называемые криптосистемы с одноразовым или бесконечным ключом). В данном случае "бесконечный" означает, что гамма не повторяется. В некоторых потоковых шифрах ключ короче сообщения. Так, в системе Вернама для телеграфа используется бумажное кольцо, содержащее гамму. Конечно, стойкость такого шифра не идеальна.
Понятно, что обмен ключами размером с шифруемую информацию не всегда уместен. Поэтому чаще используют гамму, получаемую с помощью генератора псевдослучайных чисел (ПСЧ). В этом случае ключ - порождающее число (начальное значение, вектор инициализации, initializing value, IV) для запуска генератора ПСЧ. Каждый генератор ПСЧ имеет период, после которого генерируемая последовательность повторяется. Очевидно, что период псевдослучайной гаммы должен превышать длину шифруемой информации.
Генератор ПСЧ считается корректным, если наблюдение фрагментов его выхода не позволяет восстановить пропущенные части или всю последовательность при известном алгоритме, но неизвестном начальном значении [4, c. 63]. При использовании генератора ПСЧ возможны несколько вариантов [4, c. 126 - 128]:
1. Побитовое шифрование потока данных. Цифровой ключ используется в качестве начального значения генератора ПСЧ, а выходной поток битов суммируется по модулю 2 с исходной информацией. В таких системах отсутствует свойство распространения ошибок.
2. Побитовое шифрование потока данных с обратной связью (ОС) по шифртексту. Такая система аналогична предыдущей, за исключением того, что шифртекст возвращается в качестве параметра в генератор ПСЧ. Характерно свойство распространения ошибок. Область распространения ошибки зависит от структуры генератора ПСЧ.
3. Побитовое шифрование потока данных с ОС по исходному тексту. Базой генератора ПСЧ является исходная информация. Характерно свойство неограниченного распространения ошибки.
4. Побитовое шифрование потока данных с ОС по шифртексту и по исходному тексту.
Блочные шифры
При блочном шифровании информация разбивается на блоки фиксированной длины и шифруется поблочно. Блочные шифры бывают двух основных видов:
• шифры перестановки (transposition, permutation, P-блоки);
• шифры замены (подстановки, substitution, S-блоки).
Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки, лабиринты, лозунговые и др.
Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу. Paзличают шифры простой, сложной, парной замены, буквенно-слоговое шифрование и шифры колонной замены. Шифры замены делятся на две группы:
• моноалфавитные (код Цезаря);
• полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma).
В моноалфавитных шифрах замены буква исходного текста заменяется на другую, заранее определенную букву. Например в коде Цезаря буква заменяется на букву, отстоящую от нее в латинском алфавите на некоторое число позиций. Очевидно, что такой шифр взламывается совсем просто. Нужно подсчитать, как часто встречаются буквы в зашифрованном тексте, и сопоставить результат с известной для каждого языка частотой встречаемости букв.
В полиалфавитных подстановках для замены некоторого символа исходного сообщения в каждом случае его появления последовательно используются различные символы из некоторого набора. Понятно, что этот набор не бесконечен, через какое-то количество символов его нужно использовать снова. В этом слабость чисто полиалфавитных шифров.
В современных криптографических системах, как правило, используют оба способа шифрования (замены и перестановки). Такой шифратор называют составным (product cipher). Oн более стойкий, чем шифратор, использующий только замены или перестановки.
Блочное шифрование можно осуществлять двояко [4, c.129-130]:
1. Без обратной связи (ОС). Несколько битов (блок) исходного текста шифруются одновременно, и каждый бит исходного текста влияет на каждый бит шифртекста. Однако взаимного влияния блоков нет, то есть два одинаковых блока исходного текста будут представлены одинаковым шифртекстом. Поэтому подобные алгоритмы можно использовать только для шифрования случайной последовательности битов (например, ключей). Примерами являются DES в режиме ECB и ГОСТ 28147-89 в режиме простой замены.
2. С обратной связью. Обычно ОС организуется так: предыдущий шифрованный блок складывается по модулю 2 с текущим блоком. В качестве первого блока в цепи ОС используется инициализирующее значение. Ошибка в одном бите влияет на два блока - ошибочный и следующий за ним. Пример - DES в режиме CBC.
Генератор ПСЧ может применяться и при блочном шифровании [4, c. 128]:
1. Поблочное шифрование потока данных. Шифрование последовательных блоков (подстановки и перестановки) зависит от генератора ПСЧ, управляемого ключом.
2. Поблочное шифрование потока данных с ОС. Генератор ПСЧ управляется шифрованным или исходным текстом или обоими вместе.
Весьма распространен федеральный стандарт США DES (Data Encryption Standard) [1, 5], на котором основан международный стандарт ISO 8372-87. DES был поддержан Американским национальным институтом стандартов (American National Standards Institute, ANSI) и рекомендован для применения Американской ассоциацией банков (American Bankers Association, ABA). DES предусматривает 4 режима работы:
• ECB (Electronic Codebook) электронный шифрблокнот;
• CBC (Cipher Block Chaining) цепочка блоков;
• CFB (Cipher Feedback) обратная связь по шифртексту;
• OFB (Output Feedback) обратная связь по выходу.
ГОСТ 28147-89 - отечественный стандарт на шифрование данных [8]. Стандарт включает три алгоритма зашифровывания (расшифровывания) данных: режим простой замены, режим гаммирования, режим гаммирования с обратной связью - и режим выработки имитовставки.
С помощью имитовставки можно зафиксировать случайную или умышленную модификацию зашифрованной информации. Вырабатывать имитовставку можно или перед зашифровыванием (после расшифровывания) всего сообщения, или одновременно с зашифровыванием (расшифровыванием) по блокам. При этом блок информации шифруется первыми шестнадцатью циклами в режиме простой замены, затем складывается по модулю 2 со вторым блоком, результат суммирования вновь шифруется первыми шестнадцатью циклами и т. д.
Алгоритмы шифрования ГОСТ 28147-89 обладают достоинствами других алгоритмов для симметричных систем и превосходят их своими возможностями. Так, ГОСТ 28147-89 (256-битовый ключ, 32 цикла шифрования) по сравнению с такими алгоритмами, как DES (56-битовый ключ, 16 циклов шифрования) и FEAL-1 (64-битовый ключ, 4 цикла шифрования) обладает более высокой криптостойкостью за счет более длинного ключа и большего числа циклов шифрования.
Следует отметить, что в отличие от DES, у ГОСТ 28147-89 блок подстановки можно произвольно изменять, то есть он является дополнительным 512-битовым ключом. Алгоритмы гаммирования ГОСТ 28147-89 (256-битовый ключ, 512-битовый блок подстановок, 64-битовый вектор инициализации) превосходят по криптостойкости и алгоритм B-Crypt (56-битовый ключ, 64-битовый вектор инициализации). Достоинствами ГОСТ 28147-89 являются также наличие защиты от навязывания ложных данных (выработка имитовставки) и одинаковый цикл шифрования во всех четырех алгоритмах ГОСТа.
Блочные алгоритмы могут использоваться и для выработки гаммы. В этом случае гамма вырабатывается блоками и поблочно складывается по модулю 2 с исходным текстом. В качестве примера можно назвать B-Crypt, DES в режимах CFB и OFB, ГОСТ 28147-89 в режимах гаммирования и гаммирования c обратной связью.
Аcимметричные алгоритмы шифрования
В асимметричных алгоритмах шифрования (или криптографии с открытым ключом) для зашифровывания информации используют один ключ (открытый), а для расшифровывания - другой (секретный). Эти ключи различны и не могут быть получены один из другого. Схема обмена информацией такова:
• получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным (сообщает отправителю, группе пользователей сети, публикует);
• отправитель, используя открытый ключ получателя, зашифровывает сообщение, которое пересылается получателю;
• получатель получает сообщение и расшифровывает его, используя свой секретный ключ.