Разработчик jaseg с сайта Github опубликовал элегантный алгоритм генерации уникальных паролей для каждого сайта, и на первый взгляд этот алгоритм выглядит вполне надёжным. Автор даже предложил тому, кто первым найдёт уязвимость, назвать алгоритм в его честь. Итак, суть в том, что уникальный пароль генерируется командой в шелле: (sha512sum ~/.salt -<<<www.example.com;sha512sum -)|cut -d\ -f1|sha512sum|cut -c-32 Первые 32 символа из результата sha512sum и являются уникальным паролем, который генерируется на основе трёх исходных данных: файл с солью, URL сайта и мастер-пароль. Самое замечательное, что каждый раз, когда вы вводите эту команду, она возвращает одинаковый пароль, при условии, что файл с солью остаётся неизменным, URL остаётся тем же самым, и вы не забыли мастер-пароль. Таким образом, главное преимущество алгоритма в том, что пароли нигде физически не хранятся, они постоянно регенерируются. Если вам нужно ввести пароль для определённого сайта, то просто заново запускаете эту команду с указанием нужного URL. В качестве соли можно использовать любой файл, или сгенерировать отдельный файл с использованием случайных данных: (dmesg;env;head -c16 /dev/random)|sha512sum>>~/.salt; chmod 400 ~/.salt Получатся, что если злоумышленник получит доступ к вашему компьютеру, то он получит доступ только к файлу с солью. Конечно, зная соль и зная несколько паролей с разных сайтов, злоумышленник получает в распоряжение две из трёх частей «головоломки». Теоретически он может восстановить мастер-пароль по этой информации, но на практике функция SHA-512 обеспечивает вполне достаточную защиту против такого брутфорса (кстати говоря, кто сказал, что все менеджеры паролей используют разную соль для каждого пароля?). Кроме того, для начала злоумышленник должен получить пароли с нескольких сайтов, что само по себе нетривиальная задача. Кстати, похожим способом генерирует пароли стэнфордская программа PwdHash, реализованная в виде плагина к браузеру. Дата: 13.08.2012 http://www.xakep.ru/post/59141/
Метод прекрасный, но все портит одно: непереносимость. Вот надо мне с планшета зайти или с телефона на сайт и все, я этого сделать не смогу. С чужого компьютера тоже.