Что понимается под приемом генерации пароля формула комбинация методов
Перейти к содержимому

Что понимается под приемом генерации пароля формула комбинация методов

  • автор:

Функция для генерации паролей в Excel

Ниже приведены различные примеры работы данной функции.

Пример 1

Генерация пароля из 8 символов.

Пример 2

Генерация пароля заданной длины.

Пример 3

Генерация сложного пароля заданной длины с использованием дополнительных символов.

Код на VBA

Function ГЕНЕРАЦИЯПАРОЛЯ(Optional ДЛИНА As Integer = 8, Optional ВКЛ_СИМВ As Boolean = False) As String Dim i As Integer Dim simb As String * 1 Dim arrsimb As Integer Dim password As String Randomize If ВКЛ_СИМВ = False Then For i = 1 To ДЛИНА arrsimb = Int(Rnd * 3) Select Case arrsimb Case 0 simb = Int(Rnd * 9) Case 1 simb = Chr(Int((90 - 65 + 1) * Rnd + 65)) Case 2 simb = Chr(Int((122 - 97 + 1) * Rnd + 97)) End Select password = password & simb Next Else For i = 1 To ДЛИНА simb = Chr(Int((126 - 33 + 1) * Rnd + 33)) password = password & simb Next End If ГЕНЕРАЦИЯПАРОЛЯ = password End Function

Надстройка
VBA-Excel

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

Что понимается под приемом генерации пароля формула комбинация методов

Применение комбинаторных методов в генерации паролей для веб-сайта

Сагимбаева Ангелина Олеговна 1

1 Коммунальное государственное учреждение «Школа-гимназия города Тобыл отдела образования Костанайского района» Управление образования акимата Костанайской области

Маковчук Елена Чеславовна 1

1 Коммунальное государственное учреждение «Школа-гимназия города Тобыл отдела образования Костанайского района» Управления образования акимата Костанайской области

Автор работы награжден дипломом победителя I степени

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

Комбинаторика – раздел математики, изучающий дискретные объекты, множества и отношения на них. Рассматриваемые объекты, как правило, являются определёнными комбинациями других объектов (чисел, букв). Важную область составляет теория перечислений, в основе которой лежат «правило суммы» и «правило произведения». Впервые, с комбинаторными задачами люди столкнулись в глубокой древности, но наукой комбинаторика становится лишь в XVII в. — в период, возникновения теории вероятностей. Чтобы решать комбинаторные задачи, нужно уметь подсчитывать число различных комбинаций, подчиненных каким-либо условиям.

В настоящее время, комбинаторика – своего рода основа основ: красивая теория с массой нетривиальных задач и подходов, прекрасная база для приложений в computer science, в анализе сложных сетей, в теории кодирования и криптографии.

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

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

Цель исследования: разработать рекомендацию по созданию надежного пароля на основе комбинаторных методов.

Задачи исследования:

Познакомиться с историей возникновения и развития комбинаторики.

Изучить основные методы решения комбинаторных задач.

Рассмотреть практическое применение комбинаторных методов в создании пароля для веб-сайта.

Объект: комбинаторика

Предмет: прикладные разделы математики.

Методы исследования: анализ, синтез, индукция.

История возникновения и развития комбинаторики

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

Комбинаторные мотивы можно обнаружить в символике китайской «Книги Перемен» (V век до н. э.). Классическая задача комбинаторики: «сколько имеется способов извлечь m элементов из N возможных» упоминается, начиная примерно с IV столетия до н.э., в сутрах древней Индии.

В Средние века комбинаторика продолжала развиваться, в большинстве случаев, за пределами европейской цивилизации. В XII столетии индийский математик Бхаскара в своём главном труде «Лилавати» исследовал задачи, связанные с перестановками и сочетаниями, включая перестановки с повторениями.

Однако, как самостоятельная научная дисциплина комбинаторика стала выделяться из математики только в XVII-ом веке:

В 1654 году Блез Паскаль открыл несложный метод вычисления биномиальных коэффициентов: «треугольник Паскаля».Известно, что этот способ был уже известен на Востоке, но Паскаль, в отличие от предшественников, строго изложил и доказал свойства этого треугольника. Наряду с Лейбницем, он считается основоположником современной комбинаторики.

Сам термин «комбинаторика» придумал Г. Лейбниц, который в 1666 году опубликовал книгу «Рассуждения о комбинаторном искусстве».

Ученик Лейбница – Якоб Бернулли, один из основателей теории вероятностей, изложил в своей книге «Искусство предположений» (1713) множество сведений по комбинаторике.

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

Комбинаторика: основные правила и формулы

Правило сложения: если элемент A можно выбрать n способами, а элемент B можно выбрать m способами, то выбрать A или B можно n + m способами. Чтобы использовать правило сложения необходимо:

определить количество элементов в каждой группе;

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

При использовании правила сложения необходимо обратить внимание на то, чтобы ни один из способов выбора элемента А не совпадал с каким-либо способом выбора элемента В. Если элемент А можно получить n способами, элемент B получить m способами, то выбрать А или В можно получить m + n — k способами, где k — это количество повторяющихся способов.

Правило произведения: если элемент A можно выбрать n способами, а элемент B можно выбрать m способами, то пару элементов А и B можно выбрать n × m способами.

Факториалом числа называется произведение n последовательных натуральных чисел, начиная с единицы.

Формула: n! = 1⋅2⋅3⋅. ⋅ (n−2) ⋅ (n−1) ⋅ n.

Принято, что 0! = 1.

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

Выборками называются подмножества какого-либо множества.

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

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

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

Обозначение: P n , где n — количество элементов множества.

Теорема: число перестановок без повторений из n элементов равно n!

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

Размещением без повторений называется упорядоченная выборка элементов k из данного множества элементов n.

Размещением с повторениями называется упорядоченная выборка k элементов с повторениями, которая составлена из основного множества n элементов.

Сочетанием без повторений называется неупорядоченная выборка без повторений.

С очетанием с повторениями называется неупорядоченная выборка с повторениями.

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

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

Комбинаторные расчеты надежности пароля

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

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

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

Для создания пароля разрешается применять следующие символы:

Заглавные буквы латинского алфавита: от A до Z (26 символов)

Строчные буквы латинского алфавита: от a до z (26 символов)

Цифры: от 0 до 9 (10 символов)

Специальные символы: » # $ % & ‘ ( ) <> [ , — . / : ; < = >… (33 символа)

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

Для создания такого пароля разрешается применять только цифры – 10 символов. Каждая цифра должна использоваться только один раз.

Значит, для определения количества паролей необходимо использовать формулу размещения без повторений:

Тогда, количество размещений из 8 цифр, выбранных из 10, составляет:

Ответ: 1814400 паролей , содержащих только цифры, где каждая цифра используется только один раз.

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

Для создания такого пароля разрешается применять только строчные буквы латинского алфавита – 26 символов. Каждая буква должна использоваться только один раз.

Значит, для определения количества паролей необходимо использовать формулу размещения без повторений:

Тогда, количество размещений из 8 строчных букв латинского алфавита, выбранных из 26, составляет:

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

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

а) Сколько существует таких паролей длины 8?

б) Сколько существует таких паролей длины 8, если в каждом из них обязательно присутствует одна цифра?

в) Сколько существует таких паролей, длины 8, если в каждом из них обязательно присутствуют совпадающие символы?

а) Для создания такого пароля разрешается применять: строчные буквы латинского алфавита — 26 символов, а также цифры — 10 символов.

Итого, 26 + 10 = 36 символов.

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

Используя правило произведения, получим:

36 × 36 × 36 × 36 × 36 × 36 × 36 × 36 = 36 8 = 2821109907456 – количество паролей длины восемь.

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

Используя правило произведения, получим:

26 × 26 × 26 × 26 × 26 × 26 × 26 × 26 = 26 8 = 208827064576 – количествопаролей без цифр.

Из пункта а) известно, число паролей длины восемь: 36 8 = 2821109907456

Значит, 2821109907456 – 208827064576 = 2612282842880 – количество паролей с использованием минимум одной цифры.

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

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

Используя правило произведения, получим:

36 × 35 × 34 × 33 × 32 × 31 × 30 × 29 = 1220096908800 – количество паролей без совпадающих символов.

Из пункта а) известно, число паролей длины восемь: 36 8 = 2821109907456

Значит, 2821109907456 – 1220096908800 = 1601012998656 – количество паролей с совпадающими символами.

Ответ: а) 2821109907456 паролей длины восемь.

б) 2612282842880 паролей с использованием одной цифры.

в) 1601012998656 паролей с совпадающими символами.

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

а) Сколько существует таких паролей длины 8?

б) Сколько существует таких паролей длины 8, если в каждом из них обязательно присутствует одна цифра?

в) Сколько существует таких паролей, длины 8, если в каждом из них обязательно присутствуют совпадающие символы?

а) Для создания такого пароля разрешается применять: строчные буквы латинского алфавита — 26 символов, заглавные буквы латинского алфавита — 26 символов, а также цифры — 10 символов.

Итого, 26 + 26 + 10 = 62 символа.

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

Используя правило произведения, получим:

62 × 62 × 62 × 62 × 62 × 62 × 62 × 62 = 62 8 = 218340105584896 – количество паролей длины восемь.

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

Используя правило произведения, получим:

52 × 52 × 52 × 52 × 52 × 52 × 52 × 52 = 52 8 = 53459728531456 – количество паролей без цифр.

Из пункта а) известно, число паролей длины восемь:

62 8 = 218340105584896

Значит, 218340105584896 – 53459728531456 = 164880377053440 – количество паролей с использованием минимум одной цифры.

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

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

Используя правило произведения, получим:

62 × 61 × 60 × 59 × 58 × 57 × 56 × 55 = 136325893334400 – количество паролей без совпадающих символов.

Из пункта а) известно, число паролей длины восемь:

62 8 = 218340105584896

Значит, 218340105584896 – 136325893334400 = 82014212250496 – количество паролей с совпадающими символами.

Ответ: а) 218340105584896 паролей длины восемь.

б) 164880377053440 паролей с использованием одной цифры.

в) 82014212250496 паролей с совпадающими символами.

Веб-сайт просит пользователя создать пароль, содержащий буквенно-цифровые символы, включая строчные и прописные буквы, а также цифры, без использования специальных символов. Пароль должен состоять как минимум из 8, но не более чем из 12 символов и должен содержать как минимум одну заглавную букву и как минимум одну цифру. Допускается повторение цифр и букв. Сколько разных паролей можно создать, удовлетворяющих этим критериям?

1) Для создания такого пароля разрешается применять: строчные буквы латинского алфавита — 26 символов, заглавные буквы латинского алфавита — 26 символов, а также цифры — 10 символов.

Итого, 26 + 26 + 10 = 62 символа.

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

62 × 62 × 62 × 62 × 62 × 62 × 62 × 62 = 62 8 – количество паролей длины восемь.

2) Рассмотрим количество паролей без заглавных букв, то есть число паролей с использованием только строчных букв и цифр:

36 × 36 × 36 × 36 × 36 × 36 × 36 × 36 = 36 8 – количество паролей без заглавных букв.

3) Определим количество паролей без цифр, то есть число паролей с использованием только строчных и заглавных букв:

52 × 52 × 52 × 52 × 52 × 52 × 52 × 52 = 52 8 – количество паролей без цифр.

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

26 × 26 × 26 × 26 × 26 × 26 × 26 × 26 = 26 8 – количество паролей, которые содержат только строчные буквы.

5) Используя полученные данные, можно определить количество разрешенных паролей:

62 8 – 36 8 – 52 8 + 26 8 – количество разрешенных паролей из 8 символов.

62 9 – 36 9 – 52 9 + 26 9 – количество разрешенных паролей из 9 символов.

62 10 – 36 10 – 52 10 + 26 10 – количество разрешенных паролей из 10 символов.

62 11 – 36 11 – 52 11 + 26 11 – количество разрешенных паролей из 11 символов.

62 12 – 36 12 – 52 12 + 26 12 – количество разрешенных паролей из 12 символов.

Ответ: 62 8 – 36 8 – 52 8 + 26 8 – количество паролей из 8 символов.

62 9 – 36 9 – 52 9 + 26 9 – количество паролей из 9 символов.

62 10 – 36 10 – 52 10 + 26 10 – количество паролей из 10 символов.

62 11 – 36 11 – 52 11 + 26 11 – количество паролей из 11 символов.

62 12 – 36 12 – 52 12 + 26 12 – количество паролей из 12 символов.

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

Рекомендации для создания надежного пароля на основе комбинаторных методов:

Длина пароля должна быть не менее 8 символов;

Пароль должен содержать заглавные и строчные буквы, цифры и специальные символы;

Пароль не должен содержать очевидные и простые слова, фразы и наборы символов, которые можно легко подобрать.

Практическое применение комбинаторных методов в создании паролей

Комбинаторика – это настоящий клад для разработчиков программного обеспечения, поскольку она помогает анализировать различные алгоритмы, выбирать оптимальную стратегию перебора. Следует отметить, что комбинаторные формулы необходимы для вычисления вероятностей, а те, в свою очередь служат основой для машинного обучения – одного из мощнейших трендов в ПО 21-го века!

Использование комбинаторики в программировании я изучила с помощью Python 3 — это высокоуровневый язык программирования, мощный инструмент для создания программ самого разнообразного назначения.

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

К числу комбинаторных функций относятся:

Функция itertools.permutations используется для нахождения перестановок. Первый элемент – будет исходным множеством. Второй элемент – результат перестановки какой-то пары элементов и так до момента, пока не будут перебраны все уникальные комбинации.

Функция itertools.combinations выбирает все сочетания из последовательности. Пусть в ней имеется n различных объектов. Необходимо выбрать из них k объектов всевозможными способами (то есть меняется состав выбранных объектов, причем порядок не важен). Получившиеся комбинации являются сочетаниями из n объектов по k.

Функция itertools.combinations_with_replacement описывает, сколькими способами можно составить комбинацию из n элементов по k элементов. Важно помнить, что в сочетаниях без повторений элементы не повторяются внутри одной выборки.

В «Google Chrome» инструмент создания безопасных паролей присутствует по умолчанию и готов к использованию сразу после установки веб-браузера. Надежные пароли создаются автоматически одним нажатием кнопки благодаря встроенному генератору паролей, который основывается на методах комбинаторики.

Для того, чтобы сгенерировать пароль необходимо:

Открыть Chrome на компьютере.

Убедится, что вы вошли в аккаунт в браузере Chrome.

Открыть сайт и начать создавать аккаунт.

Нажать на поле для ввода пароля «Сгенерировать надежный пароль».

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

Программа для генерации восьмизначного пароля :

Небольшая часть результата программы для генерации восьмизначного пароля, содержащего цифры и строчные буквы латинского алфавита, где каждая цифра и буква используется только один раз:

В данном разделе была реализована программа генерации пароля на языке Python 3, посредством правил и формул комбинаторики.

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

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

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

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

Список источников и литературы:

Виленкин Н.Я., Комбинаторика. — М.: Просвещение, 2006

Комбинаторика, URL : https://ru.wikipedia.org/wiki/Комбинаторика

Комбинаторика, URL : https :// fmclass . ru / math . php ? id =4986 cacac 0 f 94

Комбинаторика для начинающих, URL : https :// ru . coursera . org / learn / kombinatorika — dlya — nachinayushchikh

Как создать надежный пароль и защитить аккаунт, URL: https://support.google.com/accounts/answer/32040?hl=ru

Начальные сведения комбинаторики, URL: https://www.yaklass.ru/p/algebra/11-klass/nachalnye-svedeniia-kombinatoriki-9340

Python itertools — описание модуля и функций, URL : https :// all — python . ru / osnovy / itertools . html

АНАЛИЗ МЕТОДОВ ГЕНЕРАЦИИ ОДНОРАЗОВЫХ ПАРОЛЕЙ И ВЫСОКАЯ СТЕПЕНЬ СЛУЧАЙНОСТИ ГЕНЕРИРУЕМЫХ ПАРОЛЕЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Арзиева Жамила Тлеубаевна, Арзиев Али Тлеубаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Арзиева Жамила Тлеубаевна, Арзиев Али Тлеубаевич

Разработка генератора паролей с использованием GUI MATLAB
Метод аутентификации с использованием динамических ключей
Анализ свойств и характеристик паролей для аппаратного менеджера на основе микроконтроллера Arduino
Применение цифровых водяных знаков для разработки систем графического пароля
Анализ стойкости парольных фраз на основе информационной энтропии
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ANALYSIS OF METHODS FOR GENERATING ONE-TIME PASSWORDS AND A HIGH DEGREE OF RANDOMNESS OF GENERATED PASSWORDS

Authentication methods are considered. Generating “something” (e. g., passwords) is a significant part of this process. When checking the resistance of generated passwords to any attacks (for example, a brute-force attack), the entropy of the password is measured. Existing methods for generating random numbers in widely used programming languages provide sufficient values for one-time passwords. But when using these generators, they need to be internally updated based on random values.

Текст научной работы на тему «АНАЛИЗ МЕТОДОВ ГЕНЕРАЦИИ ОДНОРАЗОВЫХ ПАРОЛЕЙ И ВЫСОКАЯ СТЕПЕНЬ СЛУЧАЙНОСТИ ГЕНЕРИРУЕМЫХ ПАРОЛЕЙ»

Бюллетень науки и практики /Bulletin of Science and Practice Т. 8. №7. 2022

https ://www.bulletennauki.ru https://doi.org/10.33619/2414-2948/80

УДК 004.056.53 https://doi.org/10.33619/2414-2948/80/35

АНАЛИЗ МЕТОДОВ ГЕНЕРАЦИИ ОДНОРАЗОВЫХ ПАРОЛЕЙ И ВЫСОКАЯ СТЕПЕНЬ СЛУЧАЙНОСТИ ГЕНЕРИРУЕМЫХ ПАРОЛЕЙ

©Арзиева Ж. Т., Каракалпакский государственный университет им. Бердаха, г. Нукус, Узбекистан, ajamila@karsu.uz ©Арзиев А. Т., Ташкентский университет информационных технологий им. Мухаммада аль-Хоразмий, г. Нукус, Узбекистан

ANALYSIS OF METHODS FOR GENERATING ONE-TIME PASSWORDS AND A HIGH DEGREE OF RANDOMNESS OF GENERATED PASSWORDS

©Arzieva J., Karakalpak State University named after Berdakh, Nukus, Uzbekistan, ajamila@karsu.uz ©Arziev A., Tashkent University of Information Technologies named after Muhammad Al-Khwarizmi, Nukus, Uzbekistan

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

Abstract. Authentication methods are considered. Generating «something» (e. g., passwords) is a significant part of this process. When checking the resistance of generated passwords to any attacks (for example, a brute-force attack), the entropy of the password is measured. Existing methods for generating random numbers in widely used programming languages provide sufficient values for one-time passwords. But when using these generators, they need to be internally updated based on random values.

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

Keywords: generation, authentication, password generation, one-time passwords generation, pseudo-random number generators.

Высокая степень случайности генерируемых паролей обеспечивает требуемую безопасность. При этом в общем случае генераторы паролей состоят из следующих составляющих [5]:

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

Функция генерации пароля. Данная функция генерирует пароль в соответствии ассоциирования входящих значений.

Бюллетень науки и практики /Bulletin of Science and Practice https ://www.bulletennauki.ru

Т. 8. №7. 2022 https://doi.org/10.33619/2414-2948/80

Метод распечатки паролей. Данная функция выполняет действия распечатки для пользователя или трансфера в сайт аутентификации генерированного пароля для введения в требуемом поле какой-либо системы.

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

1. Генераторы, основанные на псевдослучайных числах использующих в качестве параметра временную метку. В практике широко применяющиеся методы генерации одноразовых паролей (OTP — One-Time Password) основаны на синхронизации времени, и среди них особое значение имеет TOPT (Time-based One-Time Password Algorithm) алгоритм. В настоящее время широко применяющиеся приложения третьей стороны основаны на ТОРТ алгоритмов и в качестве примера можно привести Google Authenticator, Microsoft Authenticator и др. В частности, в сегодняшний день во многих системах (например, Gmail.com, facebook.com, GitHub, Twitter, Dropbox) Google Authenticator применяется для реализации аутентификации, основанную на двух факторах. Существование возможностей применения данных приложений в разных системах обосновывается использование временных меток в качестве распределенных параметров в системах ТОТР. В приложении Google Authenticator генерируется OTP, состоящий из 6 символов. С целью проверки степени случайности OTP генерированных при помощи данного приложения, оно соединено для систем Gmail, Facebook, Dropbox и Github (Рисунок 1 а). Здесь значения являются разными из-за предоставления различных ключей со стороны системы и из-за различности временных меток. Было собрана генерированных 1000 OTP для данных приложений. Каждый OTP имел цифру из шести значений, и его графический вид приведен на Рисунке 1 б [4].

a) OTP генерированные в приложении b) Графическое изображение OTP

Рисунок 1. OTP и его графическое изображение

Для отображения графического вида на основе OTP, каждый пароль разделяется на две части. Например, если OTP равна к OTP =458234, то первая часть OTP будет равна к Х=458, а вторая часть OTP будет равна к Y=234. На основе двух чисел точка P(X, Y) отображается в двумерной системе (999, 999) координат. Как и отображена в графике возможные варианты паролей генерированных с помощью Google Authenticator будет равна к 106. В приложении

Бюллетень науки и практики /Bulletin of Science and Practice Т. 8. №7. 2022

https ://www.bulletennauki.ru https://doi.org/10.33619/2414-2948/80

Google Authenticator для генерации OTP применяется временная метка и с целью устранения определенных отклонений, OTP за каждые 30 сек. или 60 сек. поменяется.

OTP, которые состоят только из цифр являются легко вводимыми в систему, но при этом они не считаются обладателями высокой степени стойкости. Поэтому, обычно при генерации OTP (если они состоят только из цифр) уделяется внимание на длину паролей. Например, в социальной сети Facebook заранее генерированные OTP (TAN), которые передаются пользователям, состоят из 8 цифр (Рисунок 2).

2. Генераторы псевдослучайных чисел, основанные на использовании счетчиков в качестве параметра. Одним из примеров, который относиться к данным методам генерации OTP является алгоритм HOTP. Функционирование данного алгоритма идентично со схемой, приведенной на Рисунке 1. Отличие — использование вместо метки времени счетчика [4]. На Рисунке 3 приведены результаты, полученные от отображения в графическом виде начальных 1000 OTP генерированных на основе HOTP из единого ключа.

Кроме этого, алгоритмы генерации OTP входящие в данную группу широко применяются в протоколах аутентификации типа «вопрос-ответ» (Challenge-Response), основанные на одноразовые пароли. При этом вместо счетчика вводится значения «вопроса» и выполняется процесс аутентификации через сопоставление его ответа.

Use Itiew codes for Vitien you don’t Kr.- your phone with you, lot example »ter you’re traveling

10 OF 1t> REMAINING

СООЕИ1 0959 0667 ©

COOEWÍ 1910 2714 0

СООЕЛ 2265 4796 0

CCDE¿4 2625 5108 0

Рисунок 2. Список TAN в системе Рисунок 3. Графический вид результата

Facebook. алгоритма HOTP

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

Кроме этого, в системах требующих высокую безопасность применяются OTP, которые состоят из маленьких латинских букв (26), больших латинских букв (26) и цифр (10) [3]. В данном случае если длина пароля равна к 6, тогда вариация возможных паролей будет равна к 626 « 5.68 X 1010 « 235 7 и значение рассматривается как стойкий пароль. ОТР такого вида в многих системах используются для формирования TAN списка, в частности Gmail, Dropbox. Также OTP таких видов можно использовать в качестве статических паролей.

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

Бюллетень науки и практики / Bulletin of Science and Practice Т. 8. №7. 2022

https ://www.bulletennauki.ru https://doi.org/10.33619/2414-2948/80

случайности. В качестве примера можно привести генератор PRONOUNCE3, разработанный со стороны Лионарда и других [5]. В данном генераторе можно генерировать OTP, которая равно к 30.8 бит энтропии, используя гласных (a, e, i, o, u) и негласных (b, c, ch, d, f, g, h, j, k, l, m, n, p, ph, r, s, st, v, w, x, y, z) букв.

A Not secure | www.passwordmeter.com

The Password Meter

Test Your Password Minimum Requirements

Password: 1 ■ • Minimum 8 characters in length

• Contains 3/4 of the following items: — Uppercase Letters

Score: — Lowercase Letters — Numbers

Complexity: Very Weak — Symbols

Рисунок 4. Оценка OTP в системе http://www.passwordmeter.com/

В области генерации паролей также уделяется высокое внимание разработке генераторов паролей, которые используют набор определенных символов, легко в произношении и сохранении в памяти, но при этом имеющийся высокий степень случайности. В качестве примера можно привести генератор PRONOUNCE3, разработанный со стороны Лионарда и других [5]. В данном генераторе можно генерировать OTP, которая равно к 30,8 бит энтропии, используя гласных (a, e, i, o, u) и негласных (b, c, ch, d, f, g, h, j, k, l, m, n, p, ph, r, s, st, v, w, x, y, z) букв.

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

3. /* Длина пароля */

4. unsigned short int length = 8;

6. /* т^()обновить внутреннее состояние функции */

7. srand((unsigned int) time(0));

9. /* символы ASCII от 33 до 126 */

11. putchar(rand() % 94 + 33);

14. return EXIT_SUCCESS;

b^HIH Tun лицензии СС: Attribution 4.0 International (СС BY 4.0)

Бюллетень науки и практики /Bulletin of Science and Practice Т. 8. №7. 2022

https ://www.bulletennauki.ru https://doi.org/10.33619/2414-2948/80

4. Генерация паролей, основанный на генераторе случайных чисел. Генератор данного типа обычно мало распространены и применяются при случаях, где существуют генераторы случайных или псевдослучайных чисел. Например, ниже приведен алгоритм генерации паролей 8 длины, с использованием генераторов псевдослучайных чисел randQ на языке программирования С:

Также во многих операционных системах существуют стойкие генераторы случайных чисел (например, для семейства Unix /dev/random и /dev/urandom или для Windows CryptGenRandom) и с помощью их можно генерировать паролей с высокой степенью случайности.

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

При проверке генерированных паролей широко применяется тестирование по свойствам таких как, состав, длина и не существование в списке широко распространенных паролей [3]. Пароли, отвечающие к этим требованиям, считаются стойкими к атакам «Грубая сила» и атака на основе словаря.

Кроме того, при проверке стойкости генерированных паролей к каким-либо атакам (например, атака с польным перебором) выполняется измерение энтропии пароля. Если символы пароля не основаны каким-либо законам и являются независимыми, то энтропия пароля определяется следующим уравнением:

Н = Llog2N = L-OOgJ

Здесь N — количества возможных символов, L — определяет количества символов в пароле. Н измеряется в битах. В Таблице 1 приведены значения энтропии на каждые символы для набора различных номеров символов.

ЭНТРОПИЯ СООТВЕТСТВУЮЩАЯ НА КАЖДЫЙ СИМВОЛ ДЛЯ НАБОРА РАЗЛИЧНЫ1Х СИМВОЛОВ [5]

Набор символов Количества символов в наборе, N Энтропия соответствующая к одному символу, Н (бит)

a-zили A-Z 26 4,70

a-z или A-Z, 0-9 36 5,17

a-z, A-Z, 0-9 62 5,95

Все прописные символы ASCII 94 6,55

В Таблице 2 приведены затраченные время для определения с помощью польного перебора OTP, которые имеют различные высокие сложности с использованием вышеприведенных наборов символ. Для получения результатов использована онлайн система проверки паролей http://password-checker.online-domain-tools.com/

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

ь^НЗН Тип лицензии СС: Attribution 4.0 International (СС BY 4.0)

Бюллетень науки и практики / Bulletin of Science and Practice Т. 8. №7. 2022

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

https ://www.bulletennauki.ru https://doi.org/10.33619/2414-2948/80

ВРЕМЯ, ЗАТРАЧЕННОЕ ДЛЯ ОПРЕДЕЛЕНИЯ РАЗЛИЧНЫХ ПАРОЛЕЙ МЕТОДОМ ПОЛЬНОГО ПЕРЕБОРА

Состоящий из Состоящий из (0. 9, Состоящий из (0. 9, а

(0. 9) с длиной 10 аА. .2) с длиной А. 2, ?,/,~. (,),\ ■■■) с

символов 10 символов длиной 10 символов

(5689743664) (j63olf9Avu) (c?Kxar/XM7)

Стандарт ПК 2 мин 3 000 год 208 000 год

Быстрый ПК 25 сек 67 год 52 000 год

GPU 10 сек 27 год 21 000 год

Быстрый GPU 5 сек 13 год 10 000 год

Параллельный GPU 1 сек 1 год 87 год

Боты среднего числа < 1 сек 2 час 6 день

Стойкость (от 100) 26% 55% 62%

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

1. Shimizu A., Horioka T., Inagaki H. A password authentication method for contents communications on the Internet // IEICE transactions on communications. 1998. V. 81. №8. P. 1666-1673.

2. Tsuji T., Kamioka T., Shimizu A. Simple and secure password authentication protocol, ver. 2 (SAS-2) // ITE Technical Report 26.61. The Institute of Image Information and Television Engineers, 2002. P. 7-11. https://doi.org/10.11485/itetr.26.61.0_7

3. Dorrendorf L., Gutterman Z., Pinkas B. Cryptanalysis of the random number generator of the windows operating system // ACM Transactions on Information and System Security (TISSEC). 2009. V. 13. №1. P. 1-32. https://doi.org/10.1145/1609956.1609966

4. Karimov M. M., Khudoykulov Z. T., Arzieva Ja. T. A Method of Efficient OTP Generation Using Pseudorandom Number Generators // 2019 International Conference on Information Science and Communications Technologies (ICISCT). IEEE, 2019. P. 1-4. https://doi.org/10.1109/ICISCT47635.2019.9011825

5. Арзиева Ж. Использование одноразовых паролей для одного сеанса аутентификации // Zamonaviy innovatsion tadqiqotlarning dolzarb muammolari va rivojlanish tendensiyalari: yechimlar va istiqbollar. 2022. V. 1. №1. P. 149-150.

6. Akhmatovich T. K., Turakulovich K. Z., Tileubayevna A. J. Improvement of a security enhanced one-time mutual authentication and key agreement scheme // International Journal of Innovative Technology and Exploring Engineering. 2019. V. 8. №12. P. 5031-5036.

7. Арзиева Ж., Нукусбаев Н. Ж. Проблемы сетевой безопасности и эффективная защита от сетевых атак // Бюллетень науки и практики. 2021. Т. 7. №9. С. 479-485. https://doi.org/10.33619/2414-2948/70/45

Бюллетень науки и практики / Bulletin of Science and Practice Т. 8. №7. 2022

https ://www.bulletennauki.ru https://doi.org/10.33619/2414-2948/80

1. Shimizu, A., Horioka, T., & Inagaki, H. (1998). A password authentication method for contents communications on the Internet. IEICE transactions on communications, 81(8), 16661673.

2. Tsuji, T., Kamioka, T., & Shimizu, A. (2002, September). Simple and secure password authentication protocol, ver. 2 (SAS-2). In ITE Technical Report 26.61 (pp. 7-11). The Institute of Image Information and Television Engineers. https://doi.org/10.11485/itetr.26.61.0_7

3. Dorrendorf, L., Gutterman, Z., & Pinkas, B. (2009). Cryptanalysis of the random number generator of the windows operating system. ACM Transactions on Information and System Security (TISSEC), 13(1), 1-32. https://doi.org/10.1145/1609956.1609966

4. Karimov, M. M., Khudoykulov, Z. T., & Arzieva, J. T. (2019). A Method of Efficient OTP Generation Using Pseudorandom Number Generators. In 2019 International Conference on Information Science and Communications Technologies (ICISCT) (pp. 1-4). IEEE. https://doi.org/10.1109/ICISCT47635.2019.9011825

5. Arzieva, Zh. (2022). Ispol’zovanie odnorazovykh parolei dlya odnogo seansa autentifikatsii. Zamonaviy innovatsion tadqiqotlarning dolzarb muammolari va rivojlanish tendensiyalari: yechimlar va istiqbollar, 1(1), 149-150.

6. Akhmatovich, T. K., Turakulovich, K. Z., & Tileubayevna, A. J. (2019). Improvement of a security enhanced one-time mutual authentication and key agreement scheme. International Journal of Innovative Technology and Exploring Engineering, 8(12), 5031-5036.

7. Arzieva, J., & Nukusbaev, N. (2021). Network Security Issues and Effective Protection Against Network Attacks. Bulletin of Science and Practice, 7(9), 479-485. (in Russian). https://doi.org/10.33619/2414-2948/70/45

Работа поступила Принята к публикации

в редакцию 25.05.2022 г. 30.05.2022 г.

Ссылка для цитирования:

Оригинальный способ генерации мастер-пароля: используй специальный набор костей

Каждый раз, когда речь заходит о криптостойком мастер-пароле, на ум приходит стандартные генераторы, встроенные в тот же 1password, KeePass или любой другой менеджер паролей по вкусу. Сначала ты его генерируешь, потом учишь как «Отче Наш», а потом уже на самом деле молишься о том, чтобы не забыть его. Но у любого софта, который генерирует случайные стойкие пароли, есть уязвимые точки.

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

Этого человека зовут Стюарт Шехтер, он ученый-информатик из Калифорнийского университета в Беркли. Вопреки все усложняющимся алгоритмам и привлечению все новых и новых методов генерации шифров и паролей, Шехтер предложил крайне элегантный в своей простоте способ генерации базы символов для последующего создания мастер-пароля. Ученый создал набор из 25 шестигранных костей, на грани каждой есть пара из случайной цифры и буквы латинского алфавита. Назвал он свое творение также просто, как выглядит и сама идея, — «DiceKeys».

Ученый предлагает следующий порядок действий.

Вы берете комплект из 25 костей и специального бокса для их хранения. Встряхиваете кости, высыпаете в бокс и помогаете руками всем костяшкам улечься в специальные ячейки корпуса. Все, база для вашего пароля готова!

То, как это работает, демонстрирует сам Шехтер на видео ниже:

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

В комплекте идет бокс для кубиков, сами кубики и мешочек-рандомайзер (для пользователей с большими руками, наверное, необязательный аксессуар).

Почему решение Шехтера кажется нам крайне любопытным на фоне случайной генерации 128, 196 или 256-битных паролей в том же KeePass или другом менеджере?

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

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

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

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

Так ученый из Беркли выводом процесса генерации базы для пароля в оффлайн одновременно перекрывает три ранее озвученных слабых места в процессе создания мастер-пароля:

  • его рандомайзер по-настоящему рандомный и не основан на алгоритмах;
  • два с половиной десятка шестигранных кубиков со случайными комбинациями букв и цифр дают на выходе 2 128 вариантов, то есть подобрать базу мастер-пароля, даже зная алгоритм шифрования, не представляется возможным;
  • в процессе генерации используется сразу две изолированные от сети системы, то есть сам бокс с кубиками и приложение на смартфоне (а для такого дела, как успокоение внутренней паранойи, можно купить копеечный андроид-смартфон за полсотни баксов и положить его в сейф вместе с самим комплектом кубиков).

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

Изолированность уязвимой точки системы — вообще краеугольный камень информационной безопасности. Некоторые специалисты вообще говорят, что «если не хотите, чтобы ваши данные украли — не храните их в цифровом виде/на машине с доступом к сети». По всей видимости, именно этим аспектом руководствовался Шехтер, когда прорабатывал концепцию своих кубиков-ключей.

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

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

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

Критика

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

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

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

1Password: music booth owls cause tweed mutts lance halve foyer sway suave woven item

Authy: dudes acre nifty yoyo sixth plugs relic exert sugar aged chili human alarm

Facebook: delta had aids pox visa perm spied folic crop cameo old aged smite

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

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

Итого

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

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

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

Помните об этом и берегите свои данные.

На правах рекламы

Серверы с NVMe — это именно про виртуальные серверы от нашей компании.
Уже давно используем исключительно быстрые серверные накопители от Intel и не экономим на железе — только брендовое оборудование и самые современные решения на рынке для предоставления услуг.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *