Comments 32
Опишите алгоритм генерации паролей.
Зная пароль от сайта можно ли получить мастер пароль?
Зная пароль от сайта можно ли получить мастер пароль?
+4
Я взял one way encryption функцию y Christ West — gotochriswest.com/blog/2011/10/17/quick-javascript-encryption-method/
Если знаете one way encryption функции лучше, срочно говорите :)
Если знаете one way encryption функции лучше, срочно говорите :)
+1
Можно, и не очень сложно.
Есть ситуации в которых он не отрабатывает, но, спасибо количеству коллизий, таких ситуаций не много. При желании можно дополнить алгоритм до гарантированного получения всех вариантов.
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
function encrypt(message, length) {
// If the message is the empty string, return the empty string.
if(message == "") {
return "";
}
// Calculate the offset of the first character.
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
for(var last = 0, i = 0, len = message.length; i < len; i++) {
last = (message.charCodeAt(i) + 31 * last) % 59;
}
// Adjust for the specified length if it was given.
length = length || message.length;
while(len < length) {
message += message;
len += len;
}
message = message.slice(0, length);
// Generate the encrypted string.
for(var ret = "", i = 0; i < length; i++) {
ret += chars[last = (i + last + message.charCodeAt(i)) % 64];
}
return ret;
}
function hackcrypt(last, message) {
var len = message.length;
for(var ret = "", i = 0; i < len; i++)
ret += chars[last = (i + last + message.charCodeAt(i)) % 64];
return ret;
}
function uncrypt(endata){
var total = 0;
for(var ll=59; ll; ll--){
var ret = "", last = ll;
for(var i=0,l=endata.length; i < l ; i++){
var next_symb = 0;
while( endata.substr(0, i+1) !=
hackcrypt(ll, ret + chars[next_symb]).substr(0, i+1) &&
next_symb < 64){
next_symb++;
}
total += next_symb;
if(next_symb == 64) break;
ret += chars[next_symb];
}
if(encrypt(ret) == endata){
console.log('Hash count: ', total, 'Password: ', ret);
break;
}
}
}
uncrypt('mWodQ3pVKgLE');
Есть ситуации в которых он не отрабатывает, но, спасибо количеству коллизий, таких ситуаций не много. При желании можно дополнить алгоритм до гарантированного получения всех вариантов.
+1
Плохо, что домен и мастер пароль просто склеиваются. в итоге пары foo/bar, fo/obar, f/oobar, fooba/r дают один и тот же ключ
0
А можно примеры из жизни, когда это плохо?
0
Не совсем тот вариант, который описывает Sirian, но есть момент с подобным нюансом работы: пароль для ресурсов с одинаковым доменным именем второго уровня будет одинаков. Например для сайтов «mail.by» и «mail.ru». Хотелось бы «зауникалиться» и в этом случае.
0
Мне ужасно неудобно, но я — наоборот — приложил некоторые усилия, чтобы отсекалось все, кроме «бренда» — потому что, например, amazon.com и amazon.fr имеют одинаковые логины, но разные tld.
0
Ну, в приведенном мной случае это, конечно, две почтовые системы, но абсолютно разных полей ягоды, никоим образом не связанные друг с другом.
Мне кажется, что было бы удобно как вариант в настройках использовать выбор — кодить на основе домена второго уровня или с учетом и первого.
Плюс еще ситуация, когда чисто теоретически злой дядька сфоткал мобилой мой пароль от хабра втихаря за спиной. Я это дело увидел, захотел сменить пароль. Получается нужно либо запоминать для хабра отдельный «мастер-пароль», либо сменить глобально на всех используемых мной ресурсах, чтобы как и раньше в памяти держать только один. Как вариант предлагаю по вторичному нажатию «Enter» выводить альтернативную версию пароля (допустим с некоторой «солью»). тогда не нужно ничего дополнительно менять или запоминать — не подошел с первого раза, используем альтернативный вариант.
Мне кажется, что было бы удобно как вариант в настройках использовать выбор — кодить на основе домена второго уровня или с учетом и первого.
Плюс еще ситуация, когда чисто теоретически злой дядька сфоткал мобилой мой пароль от хабра втихаря за спиной. Я это дело увидел, захотел сменить пароль. Получается нужно либо запоминать для хабра отдельный «мастер-пароль», либо сменить глобально на всех используемых мной ресурсах, чтобы как и раньше в памяти держать только один. Как вариант предлагаю по вторичному нажатию «Enter» выводить альтернативную версию пароля (допустим с некоторой «солью»). тогда не нужно ничего дополнительно менять или запоминать — не подошел с первого раза, используем альтернативный вариант.
0
Мне еще более ужасно неудобно :-) но, как вы могли заметить, в вПассе вообще нет ни одной настройки. Это потому, что я тиран и самодур, и любая необходимость что-то настраивать меня расстраивает.
Необходимость менять все пароли при смене мастер-пароля — это недостаток этой идеи в принципе. Но я с ним подружился.
Необходимость менять все пароли при смене мастер-пароля — это недостаток этой идеи в принципе. Но я с ним подружился.
+1
Неплохо, но есть ведь supergenpass, который тоже работает из bookmarklet-a и у него есть настройки. Раньше пользовался им, потом пересел на LastPass из-за всяких дополнительных плюшек.
+1
Спасибо, как раз он меня как-то и натолкнул на эту идею. Мне интерфейс его не понравился. Работа с вПасс у меня занимает 3 клавиши, без мышки —
— курсор на поле ввода пароля
— Cmd-P (навесил shortcut на extension — Chrome уже это умеет, Settings — Extensions — Configure Commands)
— набираю мастер-пароль
— Enter
— Esc
— курсор на поле ввода пароля
— Cmd-P (навесил shortcut на extension — Chrome уже это умеет, Settings — Extensions — Configure Commands)
— набираю мастер-пароль
— Enter
— Esc
+2
Ну ваш поудобнее, да.
0
Есть плагин SuperChromePass (правда в github), который позволяет запомнить мастер пароль, достаточно одного клика мышью или нажать клавиатурное сочетание. При этом пароль можно и скопировать, что иногда приходится делать, например, если пароль требуется вводить в обычное поле ввода.
SuperGenPass формирует такие символы, которые точно везде проходят, не уверен, что в некоторых местах vPass 2 пройдёт валидацию пароля, что сводит его применение к нулю.
А почему выбрали другой алгоритм? Ведь можно было бы написать плагин под SuperGenPass, и получить совместимую вещь. Ведь если подсел на какой-то алгоритм, то с него будет очень сложно потом слезать. Я когда-то сделал для себя такую штуку, потом долго перебирался на другой алгоритм.
SuperGenPass формирует такие символы, которые точно везде проходят, не уверен, что в некоторых местах vPass 2 пройдёт валидацию пароля, что сводит его применение к нулю.
А почему выбрали другой алгоритм? Ведь можно было бы написать плагин под SuperGenPass, и получить совместимую вещь. Ведь если подсел на какой-то алгоритм, то с него будет очень сложно потом слезать. Я когда-то сделал для себя такую штуку, потом долго перебирался на другой алгоритм.
0
На Android есть play.google.com/store/apps/details?id=krasilnikov.alexey.cryptopass&hl=ru
> Ваши пароли не хранятся где-либо, сохраняются только username и url, для удобства.
> password = base64(pbkdf2(secret, username@url))
> PBKDF2 использует SHA-256 и 5000 итераций. Пароль обрезается до требуемой длины (25 по умолчанию).
> Ваши пароли не хранятся где-либо, сохраняются только username и url, для удобства.
> password = base64(pbkdf2(secret, username@url))
> PBKDF2 использует SHA-256 и 5000 итераций. Пароль обрезается до требуемой длины (25 по умолчанию).
-1
Проблему решают менеджеры паролей, но они, как правило, только под одну платформу.
О, правда? А как же мультиплатформенный keepass? Или кроссбраузерный LastPass?но они, как правило, только под одну платформу.
А что делать в случае утечки мастер-пароля?
0
Я ж написал — как правило :) LastPass наиболее близок к моему идеалу, но не сдружились по разным причинам.
«А что делать в случае утечки мастер-пароля?» — то же, что и в случае утери пароля от LastPass — менять.
«А что делать в случае утечки мастер-пароля?» — то же, что и в случае утери пароля от LastPass — менять.
0
То есть менять пароли на всех сайтах?
0
Да. И вы, наверное, меня отругаете, но я подумал и решил не считать это (большим) недостатком. Час делов, в экстренном случае. Это цена за возможность нигде не хранить пароли.
0
Вообще, по-хорошему и в случае угона мастер-пароля от keepass или lastpass тоже надо бы поменять пароли везде. Так что, ваше решение таки стимулирует к хорошему. Только вот в таком случае надо ещё хранить где-то список сайтов. У меня в keepass их около 50. Все их за час не вспомнишь.
0
KeePass (http://keepass.info) есть под кучу платформ. Windows, Android, iOS, Linux, Mac OS, J2ME, Windows Phone 7, Palm, BlackBerry — при условии хранения самой базы, например в DropBox — проблем не возникает.
0
Остроумная идея, но на практике разбивается о нюансы, которых не счесть:
— Один и тот же логин на разных доменах (amazon/myhabit).
— Несколько логинов на одном сайте (почта, youtube etc.).
— Сайты, которые периодически требуют менять пароль (форумы, банки).
— Практически нереально сменить мастер-пароль.
Я когда-то делал то же самое, но алгоритм был в голове, намного проще, конечно. Потом надоело, ну и все недостатки все те же самые. Правда, «естественный интеллект» некоторые из них позволял успешно обходить, но все равно надоело.
Сейчас пользуюсь 1Password, тоже не 100% доволен, но это более универсальное решение, однозначно.
— Один и тот же логин на разных доменах (amazon/myhabit).
— Несколько логинов на одном сайте (почта, youtube etc.).
— Сайты, которые периодически требуют менять пароль (форумы, банки).
— Практически нереально сменить мастер-пароль.
Я когда-то делал то же самое, но алгоритм был в голове, намного проще, конечно. Потом надоело, ну и все недостатки все те же самые. Правда, «естественный интеллект» некоторые из них позволял успешно обходить, но все равно надоело.
Сейчас пользуюсь 1Password, тоже не 100% доволен, но это более универсальное решение, однозначно.
0
Итак, я открыл страничку и набрал «habrahabr.ru/ukko», мне сгенерировался пароль, злоумышленник, зная что я пользуюсь этим генератором паролей зашёл на него и набрал те же самые «habrahabr.ru/ukko», тем самым пароль на 100% совпал.
Я правильно понимаю что именно такая последовательность действий и была задумана?
Я правильно понимаю что именно такая последовательность действий и была задумана?
-2
У вас еще есть мастер-пароль, который тоже участвует в генерации пароля.
0
Итак, я открыл страничку и набрал «habrahabr.ru/ukko», мне сгенерировался пароль, злоумышленник, зная что я пользуюсь этим генератором паролей зашёл на него и набрал те же самые «habrahabr.ru/ukko», тем самым пароль на 100% совпал.
Нет.
0
Sign up to leave a comment.
vPass 2 — простой и удобный генератор безопасных паролей на Javascript