LINUX.ORG.RU

Зацените мой новый генератор паролей, совместимый с Wayland

 , ,


0

2

Потихоньку изучаю Раст и переписываю на нём различные старые поделки.

https://github.com/alexkh/passgen_rs

Скриншот на гитхабе. Не знаю как его сюда вставить.

Всем приятных выходных!

★★

Последнее исправление: hobbit (всего исправлений: 2)
$ cat Cargo.lock | grep '^name' | wc -l
     407

407 лефтпадов для генератора паролей, Карл

$ cat Cargo.lock | grep '^name' | sort | uniq | wc -l
     361

из них 46 - дублирующиеся лефтпады с другими номерами версий, Карл

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

Вот меня тоже это «переписываю» резануло.

ТС, а идеи для принципиально новых поделок уже кончились? Пусть будут хоть на расте, хоть на плюсах, хоть на fpc. Зачем работающее-то переписывать? Я вот DoubleContact подорвался писать, когда понял, что нужной мне программы нет не только под линуксом, но и под виндой не густо.

Вот, к примеру, неоднократно мной предлагавшийся простой 3D-редактор «для домохозяек» никто, кажется, так и не сделал. Что-то типа виндового SketchUp, причём если не тупо копировать существующий скетчап, а продумать UI самому… мне кажется, можно было бы сделать программульку ещё проще и нагляднее. Лично мне – уже не нужно, после того, как я увидел OpenSCAD, я понял, что всё, что можно выжать из программ такого класса, я могу заскриптовать :) и даже экспортировать в STL. Но большинству людей удобнее было бы натаскать примитивы мышкой (и, для продвинутых, подлакировать хоткеями), так что ЦА такой программы вполне очевидна.

И написать такое, КМК, было бы куда интереснее, чем переписывать работающее на новый нескучный ЯП.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 4)

Что там по криптографическому рандому у раста? В норм либах для этого специально извращаются и держат 2 рандома - быстрый и качественный. Для паролей берут качественный. В linux-е тоже есть /dev/random и /dev/urandom именно из этих соображений.

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

А что именно резануло? На курсах по программированию делал такую вещь на Питоне с использованием унылого Qt. Сейчас самостоятельно осваиваю Раст и решил переписать на Расте без всяких Qt. Результатом доволен.

svyatozar ★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Для удобства. Допустим, мне нужен читабельный пароль где нет похожих друг на друга буков типа Il и O0. И я не хочу читать документацию pwgen. Я знаю что можно с коммандной строки сгенерировать, но каждый раз когда мне это нужно, мне приходится искать как это сделать. Потому что я не могу в голове держать всякий хлам. Мне и так приходится голову загружать/разгружать всякими проектами.

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

Не знаю, знает ли это peregrine, но и random и urandom оба криптографические и алгоритмически качественные. Разница между ними не в алгоритме, а в том что первый подсчитывает входящую энтропию и не даёт сгенерить рандомных байт больше чем эта энтропия «теоретически» позволяет. То есть это чисто внешнее ограничение на скорость генерации. Подход этот спорный, не все его разделяют, есть мнение что можно пользоваться urandom без вреда для безопасности.

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

Разница в том, что традиционно из /random нельзя было вытаскивать данных больше, чем накопилось энтропии, а /urandom всегда отдаст мусор. Но с ядра 5.6 от 2020 года /random блокируется только если не инициализировался CSPRNG. Видно слишком хорошо крипта работала, надо было ослабить. Вот и ослабили. А знает ли firkax про псевдослучайные числа и энтропию я не знаю.

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

Дык, а ещё меня не интересуют всякие запятые, верхний/нижний регистр и другая муть. По этому у меня свой костыль в стиле correct-horse-battery-staple на базе словаря из RFC 2289. 64 бита энтропии вполне достаточно для большинства случаев. Никаких опций.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 3)
Ответ на: комментарий от peregrine

только если не инициализировался CSPRNG

Хм, видимо речь идёт о разовом наборе достаточной энтропии на вход генератора? Ну, похоже и правда в новых ядрах так, в 5.10 /dev/random уже не виснет, хотя мне казалось что я ещё недавно где-то такое замечал.

Видно слишком хорошо крипта работала, надо было ослабить. Вот и ослабили.

Задам традиционный вопрос: от какой модели атак защищаешься? В контексте старого линуксового поведения /dev/random ответа на этот вопрос, скорее всего, ни у кого не было, только общие слова «да вот же не хватает энтропии, а вдруг угадают» итд. В фрибсд кстати urandom симлинк на random и подсчётами энтропии оно не занимается.

Опасность отдавания рандома больше чем входная энтропия возникает тогда, когда твой криптографический генератор взломали (то есть он оказался не криптографическим) и смогли найти корреляции между его соседними генерациями рандомнов. Тогда, например, возможна такая ситуация: ты сначала сгенерировал себе rsa-ключи, затем пароль. Ключи у тебя как-то утекли, и злоумышленник, откуда-то узнав что пароль ты генерил сразу после ключей, узнал через них и пароль тоже. То есть таким способом мы пытаемся частично нейтрализовать утерю безопасности при взломе нашего криптоалгоритма. Замечу, что взлом криптоалгоритма от этого проблемой быть не перестаёт, мы тогда «подстелили» себе чтобы было чуть мягче при её возникновении. Да и, с другой стороны, оценить качество входящей энтропии должным образом ОС не может, то есть на самом деле она не знает, сколько именно энтропии ей пришло, имеющаяся оценка - крайне оценочная.

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

firkax ★★★★★
()

Потихоньку изучаю Раст и переписываю на нём различные старые поделки

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

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

На курсах по программированию делал такую вещь на Питоне с использованием унылого Qt. Сейчас самостоятельно осваиваю Раст и решил переписать на Расте без всяких Qt.

Системную тему подхватывает или же и в KDE и в Gnome выглядит как чужеродное говно?

u-235
()
Ответ на: комментарий от firkax

Не, там чачу сварили и решили что она теперь хороша на все случаи жизни. Модели угроз аж 2 (гипотетических). Первая - как ты и говоришь - угадывание, особенно на всяких встройках, где особо нет источников энтропии.

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

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

ТС, а идеи для принципиально новых поделок уже кончились?

Всё простое, что можно быстро и не напрягаясь сделать, играясь с новым языком или технологией, давно уже сделано. Такие дела. А зачинать проект на овер девять тыщ человеколет, чтобы просто изучить $языкНэйм никто в здравом уме не станет. Поэтому переделки будут и их будет больше.

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

Чача это всего лишь один из криптографических хешей. Да, это популярный сейчас алгоритм (я и сам его использую), простой в реализации, быстрый. Но каких-то уникальных (по сравнению с другими криптохешами) свойств, которые дают основание сказать «вот может быть плохой криптографический рандом, а с чача будет точно хороший» - у него нет.

Что касается твоих двух вариантов, то я не пойму почему ты это написал.

«Встройки без энтропии» на ситуацию не влияют. Рандом генератор, который ничем адекватным не сидировали, рассматривать тут не следует, речь конечно про корректное его использование, и да сравниваемых подхода такие:

1) где-то находим энтропию на инициализацию генератора, затем пользуемся им бесконечно, по возможности добавляя энтропию, когда она есть (в бсд вроде всегда было так, в линуксе сейчас тоже так)

2) после уже инициализированного генератора берём из него не больше байт, чем пришло энтропии, пусть с каким-нить коэфициентом (старое поведение /dev/random в линуксе)

Откуда мы берём энтропию тут значения для безопасности не имеет (но имеет для другого аспекта: на упомянутых тобой устройствах без энтропии второй вариант будет жёстко страдать и по сути блокировать всю работу). Я писал о том, что разница между этими двумя подходами может проявиться только если наш криптографический алгоритм окажется взломан. Это, скорее всего, будет сопровождаться новостями на всех технических сайтах вида «срочно: chacha взломали, куча зашифрованных каналов под угрозой». Хотя может быть и другой вариант когда это сделают приватно.

При чём тут разговоры вокруг sbox кузнечика вообще не понятно. Он дан извне авторами алгоритма, качеством своего рандом-генератора ты никак на него не повлияешь.

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

Да вот я думал будет ср*ч, как водится на любых русскоязычных платформах по любому поводу. Но что-то вяло сегодня. Разочарован.

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

А кто пойдёт трубить о том, что чача дырявая? АНБ или ЦРУ или кто там её делал? Им за это госизмену впаяют в США, а там не то что сильно мягче статья, чем в РФ. Всё так же будут смотреть на небо в клетке до самой смерти.

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

ну а ты посоветуй как всё по красоте сделать

по красоте для этого вообще отдельный софт не нужен. В keepassxc есть нужная функциональность. Да даже если вообще стороннего софта нет, то

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 20

типа такого

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

ну так это не исключает O, I, l, и не добавляет всякие знаки. А если нужно со знаками? Задолбаешься голову ломать как составить этот ван лайнер…

Я и сам много раз пользовался таким способом. Каждый раз приходилось гуглить, потому что мой мозг не способен держать такие длинные строки дольше 1й минуты…

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

Тема унылости Qt не раскрыта (кроме того, что Питон для неё не родной язык, вообще-то, если бы мне пришлось писать на связке Pyton+Qt, мне бы, скорее всего, тоже было бы уныло).

Что именно резануло – я подробно написал комментарием выше. Но вообще я отвечал на «и переписываю на нём различные старые поделки». Если бы ты сразу уточнил «различные старые МОИ поделки», утверждение выглядело бы по-другому, и я скорее всего, прошёл бы мимо. Свой код — да, бывает, что вполне закономерно вызывает желание переписать на других технологиях.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

я использую apg

Description-en: Automated Password Generator - Standalone version
 APG (Automated Password Generator) is the tool set for random
 password generation. It generates some random words of required type
 and prints them to standard output. This binary package contains only
 the standalone version of apg.
 Advantages:
  * Built-in ANSI X9.17 RNG (Random Number Generator)(CAST/SHA1)
  * Built-in password quality checking system (now it has support for Bloom
    filter for faster access)
  * Two Password Generation Algorithms:
     1. Pronounceable Password Generation Algorithm (according to NIST
        FIPS 181)
     2. Random Character Password Generation Algorithm with 35
        configurable modes of operation
  * Configurable password length parameters
  * Configurable amount of generated passwords
  * Ability to initialize RNG with user string
  * Support for /dev/random
  * Ability to crypt() generated passwords and print them as additional output.
  * Special parameters to use APG in script
  * Ability to log password generation requests for network version
  * Ability to control APG service access using tcpd
  * Ability to use password generation service from any type of box (Mac,
    WinXX, etc.) that connected to network
  * Ability to enforce remote users to use only allowed type of password
    generation
futurama ★★★★★
()
Ответ на: комментарий от svyatozar

Допустим, мне нужен читабельный пароль

apg

$ apg
'Shnyencuj9 (APOSTROPHE-Shnyen-cuj-NINE)
Kutifs0Knoac/ (Kut-ifs-ZERO-Knoac-SLASH)
8Oz?Froboyry (EIGHT-Oz-QUESTION_MARK-Frob-oy-ry)
usFek*framsIm8 (us-Fek-ASTERISK-frams-Im-EIGHT)
roc?Frog9 (roc-QUESTION_MARK-Frog-NINE)
?quitMorm0 (QUESTION_MARK-quit-Morm-ZERO)
futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)
Ответ на: комментарий от futurama

$ apg -a 0 -l -t :)

PoudNeer (Poud-Neer) Papa-oscar-uniform-delta-November-echo-echo-romeo
KladAbrOt/ (Klad-Abr-Ot-SLASH) Kilo-lima-alfa-delta-Alfa-bravo-romeo-Oscar-tango-SLASH
icejHigs (ic-ej-Higs) india-charlie-echo-juliett-Hotel-india-golf-sierra
uggocPalt (ugg-oc-Palt) uniform-golf-golf-oscar-charlie-Papa-alfa-lima-tango
CilEdnoad{ (Cil-Ed-noad-LEFT_BRACE) Charlie-india-lima-Echo-delta-november-oscar-alfa-delta-LEFT_BRACE
HeGhilar1 (He-Ghil-ar-ONE) Hotel-echo-Golf-hotel-india-lima-alfa-romeo-ONE
dataman ★★★★★
()
Ответ на: комментарий от svyatozar

Подскажу секрет: вывод генератора паролей не отлит в граните. Его можно прочитать глазками и при нужде внести правки ручками. Это выйдет даже быстрее, нежели руками вводить все нужные опции командной строкои.

ugoday ★★★★★
()