Получить максимальную отдачу от Yubikey (3 серии части)
Зачем хранить свой ключ RSA на Yubikey?
Цифровая безопасность, как правило, намного сложнее, чем физическая безопасность. Если бы у меня был секрет, написанный на листе бумаги, я мог бы спрятать эту бумагу где -нибудь, я мог бы оставить ее на своем лице, я мог бы поместить ее в боковую коробку безопасности. Все это довольно хорошие способы убедиться, что никто не читает все, что находится на бумаге, и все так просто рассуждать. Однако, если у меня есть тот же секрет на моем ноутбуке, то есть гораздо больше, о чем подумать. Каждая часть программного обеспечения, которое я запускаю, имеет разрешение на чтение этого файла.
У моего ноутбука есть сетевое соединение, поэтому злоумышленнику не нужно когда -либо встречаться со мной, чтобы украсть мой секрет. Yubikey почти превращает проблему цифровой безопасности в физическую безопасность.
Если ваш SSH -ключ хранится на Yubikey, его нельзя скопировать, его нельзя было украдено удаленно, и программное обеспечение на любой машине, в которую вы его придерживаетесь, не может его прочитать. Вы даже можете закрепить ключ, что означает, что если кто -то физически крадет вашу Yubikey, ему придется правильно угадать пин -код, чтобы иметь возможность использовать его, и даже тогда он не сможет извлечь ключ.
PGP может использовать ряд алгоритмов шифрования для генерации своих ключей. Одним из них является Ривест -Шамир -Адлман (RSA). RSA назван в честь своих разработчиков, Рона Ривеста, Ади Шамира и Леонарда Адлмана, которые разработали алгоритм в 1978 году.
RSA был одним из первых асимметричных алгоритмов шифрования, опубликованных. И его личный ключ, и открытый ключ могут быть использованы для шифрования и расшифровки данных. Что бы ни использовалось для шифрования, другой используется для расшифровки.
Установите штифты Yubikey
Установите GPG, используя диспетчер пакетов вашей операционной системы, чтобы вы могли взаимодействовать с Yubikey.
Подключите свою Yubikey и запустите GPG-Change-Pin, чтобы изменить PIN-код по умолчанию 123456. Это булавка, которую вам просят ввести, когда вам нужно получить доступ к закрытому ключу, например, при протоколе GIT.
$ gpg --change-pin 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit Your selection? 1 Please enter the PIN New PIN New PIN PIN changed.
Если вы введете свой вновь настройку неверно трижды три раза, то Yubikey будет заблокирован, и вы должны разблокировать его, используя контакт администратора, который по умолчанию составляет 12345678.
Вы также должны изменить контакт администратора, снова выполнив одну и ту же команду, на этот раз, выбрав опцию 3:
$ gpg --change-pin 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit Your selection? 3 gpg: 3 Admin PIN attempts remaining before card is permanently locked Please enter the Admin PIN New Admin PIN New Admin PIN Admin PIN changed.
Если вы позже введите штифт администратора неправильно три раза, вам нужно будет на заводе-набор Yubikey.
Настройте машины для использования агента GPG
Во -первых, вам необходимо настроить SSH на машинах, над которыми вы будете работать, чтобы использовать GPG -AGENT для обработки аутентификации, которая, в свою очередь, загрузит ключ RSA из вашего Yubikey — при условии, что вы введете правильный вывод.
Приведенный ниже фрагмент добавляет соответствующую конфигурацию к вашему .bashrc (Если вы используете ZSH, вам нужно будет добавить эти строки в ~/.ZSHRC вместо этого).
$ cat <> ~/.bashrc export GPG_TTY=$(tty) gpg-connect-agent updatestartuptty /bye unset SSH_AGENT_PID export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) EOF $ . ~/.bashrc
Создайте ключ RSA на Yubikey для знака GPG
Я рекомендую создать ваш ключ RSA на самом Yubikey, а не генерировать ключ на вашем компьютере, а затем копировать его в Yubikey. Таким образом, вы знаете, что она никогда не была в файловой системе, где ее можно было бы привлечь.
$ gpg --card-edit Reader ...........: Yubico YubiKey OTP FIDO CCID 00 00 Application ID ...: D****************************0 Application type .: OpenPGP Version ..........: 2.1 Manufacturer .....: Yubico Serial number ....: 10300768 Name of cardholder: Paul Micheli Language prefs ...: en Salutation .......: URL of public key : [not set] Login data .......: [not set] Signature PIN ....: not forced Key attributes ...: rsa2048 rsa2048 rsa4096 Max. PIN lengths .: 127 127 127 PIN retry counter : 3 0 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none]
Введите аргумент администратора, чтобы включить команды администратора
gpg/card> admin Admin commands are allowed
Запустите команду Generate, чтобы сгенерировать ключ RSA.
gpg/card> generate
Вас спросят, хотите ли вы сделать резервную копию ключа шифрования. Если вы используете только этот ключ для аутентификации SSH, я бы порекомендовал вам этого не делать. Это довольно легко пойти, хотя этот процесс снова снова, если вы потеряете свою Yubikey, и это означает, что ваш ключ никогда не покинет ваш Yubikey.
Make off-card backup of encryption key? (Y/n) n Please note that the factory settings of the PINs are PIN = `123456' Admin PIN = `12345678' You should change them using the command --change-pin gpg: gpg-agent is not available in this session Please enter the PIN What keysize do you want for the Signature key? (2048) What keysize do you want for the Encryption key? (2048) What keysize do you want for the Authentication key? (2048) Please specify how long the key should be valid. 0 = key does not expire= key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years
По умолчанию ваш ключ не истекает. Я бы порекомендовал установить дату истечения срока действия.
Key is valid for? (0) 1y Key expires at Thu 11 Aug 2021 14:18:02 GMT Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter)" Real name: Paul Micheli Email address: paul@*********.com> Comment: You selected this USER-ID: "Paul Micheli " Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O gpg: generating new key gpg: 3 Admin PIN attempts remaining before card is permanently locked Please enter the Admin PIN gpg: please wait while key is being generated ... gpg: key generation completed (4 seconds) gpg: signatures created so far: 0 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (6 seconds) gpg: signatures created so far: 1 gpg: signatures created so far: 2 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (9 seconds) gpg: signatures created so far: 3 gpg: signatures created so far: 4 gpg: key A4D581D2 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: public key of ultimately trusted key 53157188 not found gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u gpg: next trustdb check due at 2018-11-14 pub 2**/********2 2017-11-14 [expires: 2018-11-14] Key fingerprint = 3***************************2 uid Paul Micheli > sub 2***/*********A 2020-08-11 [expires: 2021-08-11] sub 2***/*********A 2020-08-11 [expires: 2021-08-11]
Покидать
gpg/card> quit
Ваш ключ RSA теперь генерируется, а открытый ключ хранится в вашей ключевой матче GPG.
Просмотр открытого ключа
С вашим Yubikey вставили и разблокированы, найдите идентификатор своего ключа GPG:
$ gpg --list-secret-keys --keyid-format LONG /home/paulmicheli/.gnupg/pubring.kbx ------------------------------------ sec r***/*********E 2020-07-30 [SC] [expires: 2022-07-30] 6**************************************E uid [ultimate] Paul Michelissb r***/*********0 2020-07-30 [E] [expires: 2022-07-30] sec> r***/*********4 2020-07-30 [SC] 7**************************************H Card serial no. = 0006 10300768 uid [ultimate] Paul Micheli ssb r***/********8 2020-07-30 [E]
Затем получите свой открытый ключ, чтобы вы могли рассказать об этом GitHub. Аргумент здесь является длинным идентификатором из приведенной выше команды:
$ gpg --armor --export A97FDF705EF51C50 -----BEGIN PGP PUBLIC KEY BLOCK----- mQG********************kyd [NOPE NOT HAVING THE MIDDLE] I**********************== =ZDdO -----END PGP PUBLIC KEY BLOCK-----
У меня есть целая серия советов и хитростей Yubikey, если кто -то заинтересован, дайте мне знать
- Использование вашей Yubikey для подписанных GIT Commits
- Использование ваших Yubikeys с присягой MFA
- Использование Yubikey для хранения вашего SSH -ключа (RSA 4096)
- Использование Yubikey в качестве смарт -карты в MacOS
- Использование вашей Yubikey для двухфакторной аудитории с GitHub
Получить максимальную отдачу от Yubikey (3 серии части)
Оригинал: «https://dev.to/paulmicheli/using-your-yubikey-to-get-started-with-gpg-3h4k»