💾 Archived View for tilde.team › ~rami › redhat_gnupg_pass.gmi captured on 2023-12-28 at 16:13:09. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
רמי
SUBJECT: GNUPG/PWGEN/PASS: Генерирование криптостойких паролей и их безопасное хранение
AUTHOR: Rami Rosenfeld
DATE: 15/09/22; upd. 26/11/23
TIME: 13.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, systemd, systemctl, selinux, firewalld, dnf, rpm, gnupg, pgp, pass, pwgen
Описываемый способ базируется на совокупном применений трех стандартных пакетов GNU/Linux: gpg2, pass, pwgen.
Примечание: Все действия осуществляются от имени текущего пользователя (т.е. НЕ от администратора = root)
Примечание: gpg2 некоторое время хранит вводимую парольную фразу к ключу gpg2 в оперативной памяти. По истечении N-минут она будет удалена, и парольная фраза будет запрашиваться вновь.
$ gpg2 --list-keys
pub rsa4096 2022-09-14 [SC]
10B2B413C931F13ECC43184C1EDA85ED4726202A
uid [ абсолютно ] Jabber Fan (Key for XMPP Encryption) <fan@xmpp.site>
uid [ абсолютно ] My Name (Official Key) <my@name.com>
sub rsa4096 2022-09-14 [E]
sub rsa4096 2022-09-15 [S]
$ pass init 10B2B413C931F13ECC43184C1EDA85ED4726202A
mkdir: создан каталог '/home/user/.password-store/'
Password store initialized for 10B2B413C931F13ECC43184C1EDA85ED4726202A
[UPD. 26/11/23: Для повышения уровня безопасности - создавайте и инициализируйте новый каталог в защищенной области, дополнительно зашифрованной с помощью gocryptfs; см. отдельное описание в разделе Manuals. В процессе работы с Pass - не забывайте вначале монтировать защищенную область!]
$ pass generate Email/test-1@domain.org 16
mkdir: создан каталог '/home/user/.password-store/Email'
The generated password for Email/test-1@domain.org is: L)bQ+U}l~?M7_nio
Примечание: Параметр "16" означает количество символов в парольной фразе. Меняйте его по своему усмотрению.
Проверка результата:
$ pass ls
Password Store
└── test-1@domain.org
Просмотр парольной фразы к записи test-1@domain.org:
$ pass Email/test-1@domain.org
[ЗАПРОС ПАРОЛЬНОЙ ФРАЗЫ К ТЕКУЩЕМУ КЛЮЧУ GPG]
L)bQ+U}l~?M7_nio
$ pass remove Email/test-1@domain.org
Are you sure you would like to delete Email/test-1@domain.org? [y/N]
y
удалён '/home/user/.password-store/Email/test-1@domain.org.gpg'
Проверка результата:
$ pass ls
$ pass generate -c Email/test-1@domain.org 16
mkdir: создан каталог '/home/user/.password-store/Email'
Copied Email/test-1@domain.org to clipboard. Will clear in 45 seconds.
Примечание: Ключ "-c" означает копирование в буфер обмена (автоматическое удаление парольной фразы из буфера обмена произойдет через 45 с.). Парольная фраза в консоль не выводится.
$ pass generate -n Email/test-2@domain.org 16
The generated password for Email/test-2@domain.org is: JXFJzK03SUiVoyOJ
Примечание: Ключ "-n" генерирует парольную фразу только из буквенно-цифровых символов.
Создание новой записи и группы:
$ pass generate Work/my-working.domain.com 24
mkdir: создан каталог '/home/user/.password-store/Work'
The generated password for Work/my-working.domain.com is: xJC0"UTkYe+'Ww`9C7C8T1'
Редактирование записи:
Примечание: Все сохраненные ранее данные будут удалены!
Примечание: Вводите необходимые текстовые данные, при необходимости вставляя абзацы. Завершите операцию, вставив пустой абзац и нажав на сочетание клавиш Ctrl+D.
$ pass insert -m Work/my-working.domain.com
An entry already exists for Work/my-working.domain.com. Overwrite it? [y/N]
y
Enter contents of Work/my-working.domain.com and press Ctrl+D when finished:
This is my working pass.
Site name is my-working.domain.com
My new pass is: gDemBSc85HbLnA
[Ctrl+D]
$ pass
Password Store
│ ├── test-1@domain.org
│ └── test-2@domain.org
└── Work
└── my-working.domain.com
$ pass find .com
Search Terms: .com
└── Work
└── my-working.domain.com
pass [find, show, cp, mv, insert, rm]
Примечание: Каждая из опций имеет дополнительные параметры.
Примечание: Генератор символов является псевдорандомным, т.е. не истинно произвольным.
$ pwgen -1 -B -c -n -s -y -N 3
/=>rmc7pA>eb7Cbg
%#Nv^{d4*[PHe[?x
Y(j']v/-_FK$Tvg4
-1 - выдача результатов в одну колонку;
-B - запрет на использование схожих символов, которые могут ввести в заблуждение из-за схожести, например "O" (буква) и "0" (цифра), "1" (цифра) и l (буква). Уменьшает криптостойкость и произвольность пароля;
-c - включение в пароль хотя бы одной буквы в верхнем регистре;
-n - включение в пароль хотя бы одной цифры;
-s - генерирование труднозапоминаемого пароля;
-y - включение в пароль хотя бы одного спецсимвола;
-N 3 - количество одновременно генерируемых паролей.
alias pwgen='pwgen -1 -B -c -n -s -y -N 3'
Подробнее см.:
man gpg2, pass, pwgen
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.