Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Так же можно делать приватный контент, который хранится в БД в зашифрованном на ключе пользователя виде. Например личные сообщения можно подписывать ключём отправителя плюс шифровать ключами отправителя и получателя.Да, хорошая идея. Я, собственно, с чего-то похожего и начинал рассуждения, но к тому времени, как додумался до подписей и «накладных» записей — уже забыл, что изначально-то как раз собирался защитить приватные данные.
закрытый ключ пользователя шифровать на пароле и хранить тут же в БДНе стоит. Это ж всё равно что хранить хэш пароля в открытом доступе.
закрытый ключ пользователя шифровать на пароле и хранить тут же в БД
Не стоит. Это ж всё равно что хранить хэш пароля в открытом доступе.
хороший пароль (например случайный 20 символов с буквами, цифрами, спецсимволами ~= 128 бит энтропии)Ну, такой запоминать, мне кажется, нереально для 99.9% пользователей :)
В конце концов, приватный ключ же может быть любым, и даже при фиксированной длине всегда можно использовать ключ вида «00000…0000МОЙКЛЮЧ».Это очень плохая идея. Т.к. при работе с паролями считают что у пароля заведомо низкая энтропия (используют алгоритмы, замедляющие перебор, и т.п.). При работе с ключами считают что у них энтропия заведомо достаточно высокая и операции с ключами проектируют так, что бы получить максимальное быстродействие (c учётом защиты от атак по побочным каналам). Поэтому использование легко запоминаемого ключа — это огромная дыра. Если что-то предполагается быть запомненным, то это должен быть только пароль.
Способ попадать в аккаунт с разных компов — хранить где-то в доступном только для себя месте свой ключ. На физ. носителе или где-нибудь в облаке. Или в голове.На физическом носителе можно хранить и пароль и ключ. В облаке — только зашифрованный пароль или зашифрованный ключ, но нужно где-то хранить пароль, на котором они зашифрованы. В голове — только пароль. Запоминание хорошего ключа бессмысленно, т.к. проще запомнить более короткий пароль, который обеспечит ту же стойкость системы. Так что всё сводится к двум вариантам — физический носитель или хороший пароль.
Погодите, а зачем нужен пароль при наличии не выложенного в публичный доступ ни в каком виде ключа?Ну если ключ доступен пользователю, то пароль не нужен. «На физическом носителе можно хранить и пароль и ключ.» — я имел ввиду что или то, или то.
Для генерации радужных таблиц потребуется времени строго больше чем для перебора 2^128 ключей (если брать цифры из моего примера выше), что делает их генерацию нереальной.Если генерация ключа — это что-то типа хэша от хэша от… от хэша пароля, то нет — делаем таблицу хэшей всех возможных паролей, а затем таблицу хэшей всех хэшей. Всё, две таблицы. В Вики расписано, кстати.
ZeroNet — Распределенные сайты через Bittorrent и Bitcoin