Думаю, для некоторых содержание данной статьи не будет открытием, но по крайней мере я не находил на просторах Интернета описание такого механизма доступа к ресурсам через связку пароль/логин.
Цель – создание простой и надежной системы идентификации пользователя с использованием постоянно меняющегося пароля.
Одним из основных условий однозначного подтверждения личности или ее полномочий в системе является качественный пароль, который должен обладать следующими характеристиками:
- высокой сложностью;
- периодической сменностью;
- надежностью хранения.
Все эти требования можно выполнить, применив описанную ниже схему.
Пример 1. Генерация пароля на стороне пользователя с периодичностью 1 год:
2014 год — текущий пароль: 12@i4Wednesday
2015 год — текущий пароль: 12@i4Thursday
2016 год — текущий пароль: 12@i4Friday
где:
- 12@i4 – «базовая» часть, придумывается самим пользователем;
- Wednesday, Thursday, Friday – «плавающая» часть, которая соответствует названию первого дня недели текущего года.
Генерация на стороне сервера происходит по идентичному алгоритму.
Алгоритм и периодичность смены пароля настраивается самим пользователем, либо администратором, через «конструктор». Сочетание «базовых» и «плавающих» частей пароля может иметь произвольную сложность и последовательность.
Пример 2. Генерация пароля с периодичностью 1 день (усложним алгоритм):
Дата: 12.04.14 — текущий пароль: 12@i4Wednesday335704
Дата: 13.04.14 — текущий пароль: 12@i4Thursday334152
Дата: 14.04.14 — текущий пароль: 12@i4Friday334152
где:
- 12@i4 – «базовая» часть;
- Wednesday, Thursday, Friday – «плавающая»» часть, которая соответствует названию первого дня недели текущего года;
- 335704, 334152, 334152 – официальный курс австралийского доллара на предыдущую дату без запятой.
«Плавающая» часть может быть привязана практически к любому источнику периодически меняющихся и структурированных данных, вплоть до первого слова заголовка топовой статьи новостного сервиса.
Возможное развитие системы плавающего пароля:
- отказ от базовой части пароля;
- отказ от логина.
Преимущества «плавающего» пароля:
- относительная простота реализации;
- пользователь не обязан помнить пароль, достаточно знать механизм его генерации;
- гарантированная периодическая сменность;
- средняя/высокая надежность.
Дополнительные ограничения:
- необходимость реализации дополнительной службы на стороне сервера;
- возможно, потребуется создание источника сводной информации для генерации пароля (страницы/сайта/службы), помогающего пользователю самостоятельно генерировать пароль, а не искать данные по всему Интернету. Например: начальная страница экрана на которой отображена погода в различных городах, курсы валют, календарь, суммы кассовых сборов по кинофильмам и т.д.
Потенциальные риски:
- сложный пользовательский интерфейс конструктора для создания «плавающего» пароля на стороне сервера;
- дополнительная вычислительная нагрузка на сервер.
Автор: KosherBeard