LINUX.ORG.RU

Алгоритм увеличения длины пароля

 ,


1

1

Короткие пароли легко запомнить, но они же легче и вычисляются.

Пробовал найти что-то, наподобие алгоритма или утилиты для расширения пароля. Что-то ничего не нагуглилось. Есть подобное? Чтобы имея короткий пароль, проводить шифрование как с длинным?

PS: Цель - не увеличить надёжность ключа, а предотвратить перебор.

Решение:

#!/bin/sh
#longpass.sh
#Depends: dash, coreutils

sname="LongPass"
sversion="0.20190319"
echo "$sname $sversion" >&2

tnocomp=""
tcomp="cut"
[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp"
tcomp="head"
[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp"
tcomp="sha512sum"
[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp"
if [ "x$tnocomp" != "x" ]
then
    echo "Not found:${tnocomp}!" >&2
    echo "" >&2
    exit 1
fi
length=128
sec="0000"
fhlp="false"
while getopts ":l:s:h" opt
do
    case $opt in
        l) length="$OPTARG"
            ;;
        s) sec="$OPTARG"
            ;;
        h) fhlp="true"
            ;;
        *) echo "Unknown option -$OPTARG"
            exit 1
            ;;
    esac
done
shift "$(($OPTIND - 1))"
pass="$1"
if [ "x$pass" = "x" -o "x$fhlp" = "xtrue" ]
then
    echo "Usage:"
    echo "$0 [options] password"
    echo "Options:"
    echo "    -l N    length longpass (default = 128)"
    echo "    -s str  security code (default = 0000)"
    echo "    -h      help"
    exit 0
fi

lpass="$pass$(echo ${pass}${sec} | sha512sum | cut -f1 -d' ')"

echo $lpass | head -c $length
echo ""
Deleted

Если противник узнает тот алгоритм, то пароль для него снова станет коротким. Обычно считается что нельзя увеличивать безопасность криптосистемы скрывая алгоритм. Скрытым должен быть только ключ. Хз, как там в твоем случае, но я все же советую не полагаться на это.

vlad9486 ()

наподобие алгоритма или утилиты для расширения пароля

Зачем мучаться? Вот тебе надёжный пароль: OWAmf42mfKFLohfa. Пользуйся им везде.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

сюда бы еще иероглифав добавить но не все их принимают, да и пару емодзи тоже бы в тему оказались :)

Deleted ()
Ответ на: комментарий от TheAnonymous

алсо

Интересное чтиво. А какие то утилиты есть, типа:

$ unknow -L 128 "mypassword"

И пожалуйста, твой пароль расширен до 128 знаков? Но, чтоб именно расширен. Чтобы его не надо было запоминать.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от slowpony

я не понял, что в них особенного, а точнее в их количестве получается?

Deleted ()
Ответ на: комментарий от Deleted

одно знаю, если в софт есть уязвимасти о которых каждый квартал рассказывают в смях, то никакие пороли не помогут, какой бы длины они не были, а уезвимастей там пруд еще пруди и покуда все либы, жылезки, коды не прогонят через квант на предмет устранения потенциальных уезвимастей расчитывать на что то секурное со стопроцентной уверенностью я не могу, а вот потом только смогу.

Deleted ()
Ответ на: комментарий от Deleted

никакие пороли не помогут, какой бы длины они не были

Задача всего лишь предотвратить перебор. Не более того.

Deleted ()
Ответ на: комментарий от Deleted

тогда результат он получит через не год а через два, понял.

проще думаю, если не трудно просто менять его раз в месяц или пол года и с длиной 18+ знаков, получится даже лучше наверное, но все равно удлинять придется я так понял, вот с удлинением не подскажу сарян.

Deleted ()
Ответ на: комментарий от Deleted

Может быть все же keepass? Иначе, ну костыльни однострочник, который будет по известному тебе алгоритму из «длины» и «слова» давать «пароль» (можно битовым xor с iso убунты, например).

slowpony ★★★ ()
Ответ на: комментарий от Deleted

вот с удлинением не подскажу сарян.

Понял.

Deleted ()
Ответ на: комментарий от slowpony

можно битовым xor с iso убунты, например

Кстати, а как это стандартными утилитами сделать? Спрашивал. Никто не ответил. А так то да, как вариант.

Deleted ()

Придумай мастер-пароль и вычисляй sha256(master_password || sha256(master_password || short_password)). На основании получившегося числа генерируй пароль (например через base64).

Legioner ★★★★★ ()
Ответ на: комментарий от Legioner

вычисляй sha256 ... генерируй пароль (например через base64)

Как вариант. Но битовый xor с чем-нибудь мне нравится больше. Только как сделать стандартными тулзами? Но если не найду ответ, тогда Ваш вариант.

Deleted ()
Ответ на: комментарий от i-rinat

Зачем мучаться? Вот тебе надёжный пароль: OWAmf42mfKFLohfa

Плюсую. Использую этот пароль везде, даже на ЛОРе, и ещё ни разу не ломанули!

theNamelessOne ★★★★★ ()
Ответ на: комментарий от Deleted

Человеческий мозг довольно плохой генератор случайных последовательностей, месяца через три все хорошие варианты иссякнут.

luke ★★★★★ ()
Ответ на: комментарий от Deleted

Но битовый xor с чем-нибудь мне нравится больше.

В таком случае зачем бы обращаешься за помощью, если тебя волнует не то, как правильно, а то — как больше нравится?

anonymous ()
Ответ на: комментарий от theNamelessOne

Мочераторы! Тут пароль выложил, баньте суицидника!

anonymous ()

Цель - не увеличить надёжность ключа, а предотвратить перебор.

Никто пароли уже давно переборами не взламывает. Пароли либо тырят сразу базами с сервера, либо фишингом/кейлоггером от юзера, либо пробивают по базам типа такой. Все эти бредни про смесь бокоф/цифор — все это безопасники пишут от нечего делать. Когда придет время, твой пароль утырят целиком, со всеми его буковами, циферами и подчеркиваниями.

morse ★★★★★ ()
Ответ на: комментарий от morse

Ты это расскажи кали юзерам, которые сюда каждую неделю приходят с вопросом, че у них вайфай не работает.

anonymous ()
Ответ на: комментарий от morse

уже давно переборами не взламывает

Дельно. Дельно. Но хоть, чтобы безопасников заткнуть, что-нибудь такое. Не?

PS: Или так. Безопасники хранят только короткие пароли. Их тырят. А вводить надо длинные. Не?

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

base64 -di

Если тебе нужен хэш в бинарном виде, то | cut -f1 -d' ' | xxd -r -p
sha512sum выдаёт результат в обычном hex, а не base64

TheAnonymous ★★★★★ ()
Последнее исправление: TheAnonymous (всего исправлений: 1)
Ответ на: комментарий от Legioner

На выходе у тебя всё равно единственный пароль, который может утечь точно так же. Не в уме же ты его будешь вычислять. Буфер обмена, мб где-то сохранишь или не в то поле вставишь.

WitcherGeralt ★★ ()
Ответ на: комментарий от deadNightTiger

Diceware еще не порекомендовали?

EFF - это генератор паролей. А нужен расширитель. То есть расширенный пароль должен получаться один и тот же для исходного короткого и некого доп. параметра.

$ unknow -l 256 -s 1234 "mypassword"
Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от deadNightTiger

А это идея. Только использовать нужно base36, реально быстро и удобно получится делать пароль. Главное не забывать что энтропии там 5 плюс чуть-чуть бит на символ, а не 6, как в base64.

vlad9486 ()
Ответ на: комментарий от luke

Человеческий мозг довольно плохой генератор случайных последовательностей

не думаю так, вот чловек, со всеми его предикатами в том числе и мосгом, это да, такой себе генератор, даже если с закрытыми глазами натыкивать по клаве случайные последовательности, длиною до 50 символов, нормальная нейросеть думаю быстро, теоретически имея какие то данные о чловеке этом подключившись к датам всевозможным буковским углавским и прочим, прочикает алгоритм настукивания очень быстро. но это не значит что чистый мосг не важный гениратор, мосг, мне вообще думается это орган с потенциальным квантовым уровнем функционирования и если его взять в чистом виде в отсутствии чловека, который его обычно носит, то он вполне себе сможет творить чудеса с поставленными задачами а точнее с их решениями. но без чловека он скучен так то и не смотря на всю мосчь с человеком к нему прикрепленным он все же имеет более масштабные перспективы ежели без него не смотря нато что без него он тоже на что то годится.

Deleted ()
Ответ на: комментарий от MyTrooName

моет и пятьдесят, смотря чем чекать и что, какое количество кубит требуется например что бы перебрать все варианты за 3 секунды на квантовой системе, которой дают то делоть?

Deleted ()
Ответ на: комментарий от Legioner

Если он утечёт, остальные пароли не утекут

Для этого нужно не hmac а pbkdf, и чтобы он несколько секунд процессора жрал.

DonkeyHot ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.