HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: информационная безопасность, защита информации, одноразовый пароль, защита паролей, генератор одноразовых паролей, вектор инициализации</p>
1 <p>Теги: информационная безопасность, защита информации, одноразовый пароль, защита паролей, генератор одноразовых паролей, вектор инициализации</p>
2 <p>В<a>прошлой заметке</a>мы говорили о том, что такое<strong>одноразовый пароль</strong>. А теперь давайте узнаем о том, как это всё работает.</p>
2 <p>В<a>прошлой заметке</a>мы говорили о том, что такое<strong>одноразовый пароль</strong>. А теперь давайте узнаем о том, как это всё работает.</p>
3 <p>На самом деле, всё очень просто. Есть две составляющих данного решения: 1. Клиент - это тот самый<strong>генератор одноразовых паролей</strong>, представленный в виде брелка/флешки/калькулятора, который выдаётся пользователю; 2. Сервер - программная часть, которая проверяет, правильный ли пароль ввёл пользователь.</p>
3 <p>На самом деле, всё очень просто. Есть две составляющих данного решения: 1. Клиент - это тот самый<strong>генератор одноразовых паролей</strong>, представленный в виде брелка/флешки/калькулятора, который выдаётся пользователю; 2. Сервер - программная часть, которая проверяет, правильный ли пароль ввёл пользователь.</p>
4 <p>В момент инициализации<strong>генератора одноразовых паролей</strong>в него записываются два значения: некоторое случайное число (понятно, что чем больше это число, тем лучше), которое называется<strong>вектором инициализации</strong>, а также счётчик. Эти же данные сохраняются и на<strong>сервере</strong>.</p>
4 <p>В момент инициализации<strong>генератора одноразовых паролей</strong>в него записываются два значения: некоторое случайное число (понятно, что чем больше это число, тем лучше), которое называется<strong>вектором инициализации</strong>, а также счётчик. Эти же данные сохраняются и на<strong>сервере</strong>.</p>
5 <p>Когда на генераторе одноразовых паролей нажимается кнопка,<strong>вектор инициализации</strong>и<strong>счётчик</strong>преобразуются с помощью хэш-функции в некоторое значение, которое и будет<strong>одноразовым паролем</strong>(на самом деле, всё происходит несколько сложнее, но для понимания принципа работы этого достаточно).</p>
5 <p>Когда на генераторе одноразовых паролей нажимается кнопка,<strong>вектор инициализации</strong>и<strong>счётчик</strong>преобразуются с помощью хэш-функции в некоторое значение, которое и будет<strong>одноразовым паролем</strong>(на самом деле, всё происходит несколько сложнее, но для понимания принципа работы этого достаточно).</p>
6 <p>Так как функция хэширования<strong>необратима</strong>, то восстановить из полученного значения начальные параметры практически невозможно. Так как при каждой генерации счётчик увеличивается, то каждый раз значение<strong>одноразового пароля</strong>будет различным.</p>
6 <p>Так как функция хэширования<strong>необратима</strong>, то восстановить из полученного значения начальные параметры практически невозможно. Так как при каждой генерации счётчик увеличивается, то каждый раз значение<strong>одноразового пароля</strong>будет различным.</p>
7 <h2>На сервере происходит такая же ситуация</h2>
7 <h2>На сервере происходит такая же ситуация</h2>
8 <p>Получив логин пользователя, сервер выясняет, какой вектор инициализации и какое значение счётчика необходимо использовать для расчётов. Используя ту же самую функцию хэширования, сервер получает<strong>одноразовый пароль</strong>. Если пароли совпадают, то пользователь аутентифицируется и получает доступ к ресурсам. В случае, если вы случайно несколько раз нажали на кнопочку и произошла<strong>рассинхронизация</strong>, существуют методы синхронизации генератора и сервера.</p>
8 <p>Получив логин пользователя, сервер выясняет, какой вектор инициализации и какое значение счётчика необходимо использовать для расчётов. Используя ту же самую функцию хэширования, сервер получает<strong>одноразовый пароль</strong>. Если пароли совпадают, то пользователь аутентифицируется и получает доступ к ресурсам. В случае, если вы случайно несколько раз нажали на кнопочку и произошла<strong>рассинхронизация</strong>, существуют методы синхронизации генератора и сервера.</p>
9 <p>Описанный алгоритм работы сильно упрощён, и существуют более сложные схемы. Например, сервер присылает нам значение, мы вводим его в крипто-калькулятор, получаем другое "ответное значение" и вводим его в форму аутентификации в качестве пароля.</p>
9 <p>Описанный алгоритм работы сильно упрощён, и существуют более сложные схемы. Например, сервер присылает нам значение, мы вводим его в крипто-калькулятор, получаем другое "ответное значение" и вводим его в форму аутентификации в качестве пароля.</p>
10 <p>Вышеописанные схемы работы завязаны на события, то есть на нажатия кнопки. Также существуют схемы работы, завязанные на время. Более подробно про реализацию одноразовых паролей можно почитать в<a>RFC 4226</a>.</p>
10 <p>Вышеописанные схемы работы завязаны на события, то есть на нажатия кнопки. Также существуют схемы работы, завязанные на время. Более подробно про реализацию одноразовых паролей можно почитать в<a>RFC 4226</a>.</p>
11 <p><em>Есть вопрос? Не забывайте оставлять комментарии!</em></p>
11 <p><em>Есть вопрос? Не забывайте оставлять комментарии!</em></p>
12  
12