Давно пришла мне в голову одна идея по поводу улучшения защищенности своих аккаунтов и входа на сайты, где требуется регистрация.
Хабр я тогда читал без регистрации, поэтому естественно ничего и не писал.
Сам я не программирую на таком уровне и не связан с сайтами, которые осуществляют доступ к аккаунтам пользователей, то есть — не смогу реализовать и проверить идею, поэтому решил поделиться мыслью со знающим человеком.
Кому это нужнее? Наверное Гуглю, подумал я… С трудом нашел адрес одного сотрудника, написал письмо.
Краткое содержание (Я это я, С это сотрудник):
Я. У меня есть идея по входу в аккаунт, это повысит секретность и надежность процесса.
С. Присылайте, я найду кому передать.
Я. Присылаю (описание будет ниже диалога).
С. Вынужден разочаровать, но уже сделано (и дает мне ссылку на двухэтапную аутентификацию).
Я. Это совсем не то! Там предложен метод двухэтапной аутентификации. Для нее нужен телефон (не очень хорошая и надежная привязка), на который шлется код второго этапа аутентификации. Причем код можно поменять лишь один раз в 30 дней…
С.… (молчок).
Я. Напоминаю.
С. Идея плохая, не тратьте время, я ее никому пересылать не буду.
Если идея плохая, значит так оно и есть, забросил этот процесс.
Сегодня читаю Хабр. Уже как зарегистрированный пользователь.
Обращаю внимание на статью «Сезам, откройся!» — вход в аккаунт Google при помощи QR кода.
Думаю, вот ведь люди, думают как защитить своих пользователей! И вспоминаю свою идею. Может все же кому-то понадобится?
Теперь про идею подробнее.
Когда переписывался по ее поводу, то ничего подобного не нашел в Интернете, вполне возможно что плохо искал. Да и этот сотрудник ведь получается — тоже не отыскал!
Может все же кто-то реализует эту задумку? Как мне кажется, ничего особо сложного тут нет. Обсудите, только я сильно не смогу помочь — не моя стезя.
Пароли к электронным ящикам, личным страничкам, форумам и т. д. всегда неизменные.
Меняются они вручную и достаточно редко самими пользователями.
При редкой смене пароля его секретность уменьшается.
Предлагаю сделать автоматически изменяющийся (динамический) пароль.
При этом в пароле может присутствовать как классическая — неизменяемая часть, так и динамически изменяемая.
Если изменяемую часть сделать достаточно динамичной, то за время подбора пароля генераторами ключей пароль изменится, что затруднит его подбор.
Также, подсмотренный другими людьми пароль через десять минут будет уже другим.
Если кратко, то суть в том, что пароль пользователя не является жестким, а динамическим и меняется по правилам и условиям, описанным при регистрации (изменении пароля).
При входе в Аккаунт, почтовый сервер проверяет совпадение набранного пароля с текущим набором всех изменяющихся параметров.
Если уж совсем примитивно, то можно привести такой пример:
Вариант пароля (лучше всего — часть пароля) — текущее время с точностью плюс-минус пару минут.
Пользователь набирает его, система проверяет допуск (плюс-минус пара минут, мало ли какая точность у пользователя) и пропускает в систему.
Простейшие примеры привязки динамической части к различным параметрам:
— Текущий час в одном из часовых поясов.
— Текущая четверть часа — 1, 2, 3, 4.
— Текущий десяток минут — 0, 1, 2, 3, 4, 5.
— Текущая минута — 0 … 59.
— Порядковый номер дня в году (сколько дней осталось до Нового года) — 0 … 365.
— Текущий месяц (порядковый номер) — 1, 2, 3, …, 12.
— Текущий месяц (первая буква названия) — J, F, M, …, D.
— Буквы имени или фамилии президента страны — A … Z.
— Время года — зима, весна, лето, осень — win, spr, sum, aut.
— Последний курс выбранной валюты — ?
— Количество лет со дня рождения любого выбранного человека — 0 … 2011.
— Сколько лет осталось до определенного события — 0 …?
— Температура воздуха в определенном городе по прогнозу выбранного сайта.
— Перевод числа в двоичный или другой код.
Пример пароля. 415Med125
4 — количество десятков минут.
15 — текущий час в одном из часовых поясов.
Med — текущий президент.
125 — порядковый день в году.
Для запоминания можно придумывать мнемонические правила.
Для конкретного примера — “Время президента — день”.
В отличии от двухэтапной аутентификации, в моем варианте код меняется автоматически по заранее определенным правилам. Причем меняться может хоть раз в 10 минут (зависит от того, что использовано в динамической части).
И для ввода не нужен телефон.
Результаты.
1. Мнения разделились. В обсуждении кто-то считает идею так себе, кто-то нашел рациональное зерно.
2. Aquahawk 17 января 2012, 21:26 и чуть ниже привел примеры 1, 2 и 3, где применен подобный принцип.
Получается, что идея с динамической частью рабочая. Динамическая часть будет работать примерно как Токен RSA SecurID в приведенных ссылках.
Вот еще одна интересная ссылка.
Муртазин сегодня написал про очень интересную банковскую карточку со встроенным дисплеем.
3. MazeFAQa 17 января 2012, 22:10 написал правильную мысль, которую я не смог донести сразу. Пароль, статическая и динамическая часть являются конструктором, который пользователь собирает самостоятельно. Ставит что хочет и где хочет.
4. Похоже, что эта идея так себе и прав был С из диалога…
Спасибо всем, принявшим участие в обсуждении!
5. Оказывается, этот алгоритм уже реализовали.
6. Появилось дальнейшее развитие идеи Динамический пароль 2.0 автора djvu
P.S. 2014.
Идею реализовали для разблокировки экрана смартфона. TimePIN: украденный пароль локскрина не поможет уже через минуту.
Хабр я тогда читал без регистрации, поэтому естественно ничего и не писал.
Сам я не программирую на таком уровне и не связан с сайтами, которые осуществляют доступ к аккаунтам пользователей, то есть — не смогу реализовать и проверить идею, поэтому решил поделиться мыслью со знающим человеком.
Кому это нужнее? Наверное Гуглю, подумал я… С трудом нашел адрес одного сотрудника, написал письмо.
Краткое содержание (Я это я, С это сотрудник):
Я. У меня есть идея по входу в аккаунт, это повысит секретность и надежность процесса.
С. Присылайте, я найду кому передать.
Я. Присылаю (описание будет ниже диалога).
С. Вынужден разочаровать, но уже сделано (и дает мне ссылку на двухэтапную аутентификацию).
Я. Это совсем не то! Там предложен метод двухэтапной аутентификации. Для нее нужен телефон (не очень хорошая и надежная привязка), на который шлется код второго этапа аутентификации. Причем код можно поменять лишь один раз в 30 дней…
С.… (молчок).
Я. Напоминаю.
С. Идея плохая, не тратьте время, я ее никому пересылать не буду.
Если идея плохая, значит так оно и есть, забросил этот процесс.
Сегодня читаю Хабр. Уже как зарегистрированный пользователь.
Обращаю внимание на статью «Сезам, откройся!» — вход в аккаунт Google при помощи QR кода.
Думаю, вот ведь люди, думают как защитить своих пользователей! И вспоминаю свою идею. Может все же кому-то понадобится?
Теперь про идею подробнее.
Когда переписывался по ее поводу, то ничего подобного не нашел в Интернете, вполне возможно что плохо искал. Да и этот сотрудник ведь получается — тоже не отыскал!
Может все же кто-то реализует эту задумку? Как мне кажется, ничего особо сложного тут нет. Обсудите, только я сильно не смогу помочь — не моя стезя.
Пароли к электронным ящикам, личным страничкам, форумам и т. д. всегда неизменные.
Меняются они вручную и достаточно редко самими пользователями.
При редкой смене пароля его секретность уменьшается.
Предлагаю сделать автоматически изменяющийся (динамический) пароль.
При этом в пароле может присутствовать как классическая — неизменяемая часть, так и динамически изменяемая.
Если изменяемую часть сделать достаточно динамичной, то за время подбора пароля генераторами ключей пароль изменится, что затруднит его подбор.
Также, подсмотренный другими людьми пароль через десять минут будет уже другим.
Если кратко, то суть в том, что пароль пользователя не является жестким, а динамическим и меняется по правилам и условиям, описанным при регистрации (изменении пароля).
При входе в Аккаунт, почтовый сервер проверяет совпадение набранного пароля с текущим набором всех изменяющихся параметров.
Если уж совсем примитивно, то можно привести такой пример:
Вариант пароля (лучше всего — часть пароля) — текущее время с точностью плюс-минус пару минут.
Пользователь набирает его, система проверяет допуск (плюс-минус пара минут, мало ли какая точность у пользователя) и пропускает в систему.
Простейшие примеры привязки динамической части к различным параметрам:
— Текущий час в одном из часовых поясов.
— Текущая четверть часа — 1, 2, 3, 4.
— Текущий десяток минут — 0, 1, 2, 3, 4, 5.
— Текущая минута — 0 … 59.
— Порядковый номер дня в году (сколько дней осталось до Нового года) — 0 … 365.
— Текущий месяц (порядковый номер) — 1, 2, 3, …, 12.
— Текущий месяц (первая буква названия) — J, F, M, …, D.
— Буквы имени или фамилии президента страны — A … Z.
— Время года — зима, весна, лето, осень — win, spr, sum, aut.
— Последний курс выбранной валюты — ?
— Количество лет со дня рождения любого выбранного человека — 0 … 2011.
— Сколько лет осталось до определенного события — 0 …?
— Температура воздуха в определенном городе по прогнозу выбранного сайта.
— Перевод числа в двоичный или другой код.
Пример пароля. 415Med125
4 — количество десятков минут.
15 — текущий час в одном из часовых поясов.
Med — текущий президент.
125 — порядковый день в году.
Для запоминания можно придумывать мнемонические правила.
Для конкретного примера — “Время президента — день”.
В отличии от двухэтапной аутентификации, в моем варианте код меняется автоматически по заранее определенным правилам. Причем меняться может хоть раз в 10 минут (зависит от того, что использовано в динамической части).
И для ввода не нужен телефон.
Результаты.
1. Мнения разделились. В обсуждении кто-то считает идею так себе, кто-то нашел рациональное зерно.
2. Aquahawk 17 января 2012, 21:26 и чуть ниже привел примеры 1, 2 и 3, где применен подобный принцип.
Получается, что идея с динамической частью рабочая. Динамическая часть будет работать примерно как Токен RSA SecurID в приведенных ссылках.
Вот еще одна интересная ссылка.
Муртазин сегодня написал про очень интересную банковскую карточку со встроенным дисплеем.
3. MazeFAQa 17 января 2012, 22:10 написал правильную мысль, которую я не смог донести сразу. Пароль, статическая и динамическая часть являются конструктором, который пользователь собирает самостоятельно. Ставит что хочет и где хочет.
4. Похоже, что эта идея так себе и прав был С из диалога…
Спасибо всем, принявшим участие в обсуждении!
5. Оказывается, этот алгоритм уже реализовали.
6. Появилось дальнейшее развитие идеи Динамический пароль 2.0 автора djvu
P.S. 2014.
Идею реализовали для разблокировки экрана смартфона. TimePIN: украденный пароль локскрина не поможет уже через минуту.