Исследование криптостойкости генератора псевдослучайных чисел | Статья в журнале «Юный ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Исчерпывающий список литературы Отличный выбор методов исследования Высокая теоретическая значимость

Рубрика: Информатика

Опубликовано в Юный учёный №3 (66) март 2023 г.

Дата публикации: 20.02.2023

Статья просмотрена: 18 раз

Библиографическое описание:

Павлють, М. Д. Исследование криптостойкости генератора псевдослучайных чисел / М. Д. Павлють, Т. А. Пулко. — Текст : непосредственный // Юный ученый. — 2023. — № 3 (66). — С. 112-116. — URL: https://moluch.ru/young/archive/66/3430/ (дата обращения: 30.04.2024).



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

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

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

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

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

За основу в настоящей работе был взят стандарт СТБ 34.101.47–2017, который определяет криптографические алгоритмы генерации псевдослучайных чисел, для которых характерно использование секретного ключа и уникальной синхропосылки, в результате чего генерируемые числа трудно предугадать или повторить. Ключ алгоритма генерации может быть известен только одной стороне, тогда псевдослучайные числа можно использовать для построения секретных параметров владельца ключа [1]. В зависимости от способа формирования синхропосылки стандартом определены три режима (механизма) генерации паролей: HOTP (HMAC-based One-Time Password), TOTP (Time –based One-Time Password) и OCRA (OATH Challenge-Resp onse Algorithms).

Для реализации поставленных задач в рамках данной работы был выбран режим TOTP, в котором синхропосылка представляет собой округленную отметку текущего времени. TOTP (Time — based One-Time Password) — алгоритм создания одноразовых паролей для защищенной аутентификации. Это улучшенный алгоритм на основе HOTP. Данный алгоритм описан в стандарте RFC 6238 [2]. Является алгоритмом односторонней аутентификации — сервер удостоверяется в подлинности клиента. Для формирования одноразового пароля в данном алгоритме используется время в формате Unix-time, в которое произошел запрос. Именно время является фактором, влияющим на изменение сообщения. Для выполнения алгоритма время конвертируется из формата даты в числовой формат и представляется в секундах с момента начало Эпохи Unix, за начало отсчета берется 1 января 1970 года.

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

HMAC(K, unix_timestamp / 30)

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

Входными данными алгоритма генерации одноразовых паролей в режиме TOTP являются:

– количество d ∈ {6,7,8} цифр в пароле;

– секретный ключ K ∈ {0,1}8*;

– округленная отметка T текущего времени — неотрицательное целое число.

Выходными данными является одноразовый пароль R ∈{0, 1,..., 10d −1}.

Алгоритм генерации пароля в режиме TОТР состоит в выполнении следующих шагов:

  1. W ←⟨T⟩64.
  2. Y ←hmac [ℎ](K,W7 ‖W6 ‖... ‖W0).
  3. R ←otp-dt (d, Y).
  4. Возвратить R.

На основании вышесказанного была разработана программа «PRNG.TOTP» [3], алгоритм которой представлен на рис. 1. Вызов и загрузка программы осуществляется после загрузки общего программного обеспечения автоматически. После определения текущего времени, осуществляется генерация секретного ключа (посредством импорта библиотеки функций генератора псевдослучайных чисел) и хэширование его с текущим временем. В нашем случае секретный ключ составляет 6 знаков в длину. После чего происходит вывод одноразового пароля.

Алгоритм программы «PRNG.TOTP» [4]

Рис. 1. Алгоритм программы «PRNG.TOTP» [4]

В таблице 1 представлен пример генерации одноразовых паролей с помощью алгоритма totp-hbelt в программе «PRNG.TOTP».

Таблица 1

Генерация одноразовых паролей в режиме TOTP (алгоритм totp-hbelt )

T 0

0

T S

60

d

6

K

4NVQSE R571OF 3TS701 7E4CDS YUNZ7T PFO94E HZFDS8 3ZHON4 YXRS58 Y64NGL OP6ZXT M32EFP 4EJ12O W2R5D0 PVSAJ5

t

2023–02–01 13:51:41.225750

T

2257506199

R

113436

t

2023–02–01 13:52:41.285718

T

2857186200

R

181326

t

2023–02–01 14:02:41.889013

T

8890136151

R

185549

Было проведено исследование криптографической стойкости разработанного ГПЧ при помощи полного перебора вариантов. Для разработки программы тестировщика использовался язык программирования Python.

Ниже представлен скрипт разработанной программы тестировщика:

Запуск производился на персональном компьютере и сервере, в связи с чем отклонений от общей тенденции не выявлено. В ходе выполнения программы осуществляется запрос длины пароля. Полученные в результате тестирование данные приведены в таблице 2 для значений длины пароля 6, 7 или 8 согласно стандарта для режима TOTP.

Таблица 2

Значения времени вскрытия одноразового пароля

Длина пароля

Среднее значение

времени, сек

Минимальное

время, сек

Максимальное время,

сек

6 знаков

0,06908051490783691

0,00018906593322753906

0,28572869300842285

7 знаков

0,7060528707504272

0,19494915008544922

1,9904589653015137

8 знаков

7,881892249584198

2,1670432090759277

23,53116464614868

Для наглядной демонстрации роста времени взлома в зависимости от длины пароля были созданы следующие графики, представленные на рис. 2.

— Временная зависимость взлома одноразового пароля от его длины: 1 — пароль длиной 6 знаков; 2 — пароль длиной 7 знаков; 3 — пароль длиной 8 знаков

Рис. 2 — Временная зависимость взлома одноразового пароля от его длины: 1 — пароль длиной 6 знаков; 2 — пароль длиной 7 знаков; 3 — пароль длиной 8 знаков

Заключение

Общее количество тестов на каждый из вариантов составил 100, после чего были выверены среднее, минимальное и максимальное значение согласно полученному времени вскрытия одного пароля. Из полученных временных зависимостей можно сделать выводы о том, что увеличение длины одноразового пароля увеличивает время его взлома. Установлено, что на взлом пароля длиной 8 знаков уходит 23 секунды.

Литература:

  1. Государственный стандарт Республики Беларусь СТБ 34.101.47–2017.
  2. M’Raihi D., Machani S., Pei M., Rydell J. RFC 6238. TOTP: Time-Based One-Time Password Algorithm. RFC Editor, 2011, 16 p
  3. Пулко Т. А., Павлють М. Д. «PRNG.TOTP». Свидетельство Национального центра интеллектуальной собственности Республики Беларусь о добровольной регистрации и депонировании объекта авторского права/объекта смежных прав № 1584-КП. Реестр компьютерных программ по состоянию на 08.02.2023 г.
  4. Павлють М. Д., Пулко Т. А. Генерация одноразового пароля для аутентификации пользователей в клиент-серверных системах. «Юный ученый», № 2 (65), 2023 г., с. 26–29, URL: http://yun.moluch.ru/archive/65/3366/.


Ключевые слова

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