OpenPGP Key Generation On-Device#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
As instruções seguintes explicam a geração das chaves OpenPGP directamente na Nitrokey. Isto é feito utilizando a interface de linha de comando do GnuPG. Assim, é necessário ter o GnuPG instalado no seu sistema. A mais recente versão do GnuPG para Windows pode ser encontrada here e a mais recente versão para MacOS pode ser encontrada here. Os utilizadores de sistemas Linux devem instalar o GnuPG com a ajuda do gestor de pacotes.
Nota
These instructions are based on GnuPG version 2.2.6 or higher. Some Linux Distributions have an older version installed. In this case please choose a different method as listed here or install a newer version if possible.
Geração de chaves#
As seguintes descrições explicam a geração básica de chaves no dispositivo através da interface de linha de comando do GnuPG. O comportamento padrão é gerar chaves RSA de tamanho 2048 bit. Se você quiser alterar o algoritmo de chave e o comprimento, dê uma olhada na próxima seção primeiro.
Abra uma linha de comando e digite gpg2 --card-edit>`
.
Para abrir a linha de comando do Windows, por favor pressione a tecla Windows-key e a tecla R. Agora digite “cmd.exe” no campo de texto e pressione enter. Para abrir um Terminal em macOS ou GNU/Linux, por favor use a busca da aplicação (por exemplo, holofotes em macOS).
> gpg2 --card-edit
Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
gpg/card>
Agora você está na interface interativa do GnuPG. Ative os comandos de administração com admin
e use `x id="104"></x>
depois para iniciar a geração das chaves.
gpg/card> admin
Admin commands are allowed
gpg/card> generate
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
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Jane Doe
Email address: jane@example.com
Comment:
You selected this USER-ID:
"Jane Doe <jane@doecom>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
gpg: key 817E149CA002B92F marked as ultimately trusted
gpg: revocation certificate stored as '/home/nitrokey//.gnupg/openpgp-revocs.d/E62F445E8BB4B5085C031F5381
7E149CA002B92F.rev'
public and secret key created and signed.
gpg/card>
</jane@doe.com></n></n></n></n>
Por favor, não crie a cópia de segurança sugerida fora do cartão. Esta «cópia de segurança» apenas guarda a chave de encriptação, mas não as chaves de assinatura e autenticação. Em caso de perda do dispositivo, você não será capaz de restaurar todo o conjunto de chaves. Portanto, por um lado não é uma cópia de segurança completa (use estas instruções em vez disso, se precisar de uma) e por outro lado arrisca-se a que outra pessoa possa ficar na posse da sua chave de encriptação. A vantagem de gerar chaves no dispositivo é garantir que as chaves sejam armazenadas com segurança. Portanto, recomendamos saltar este meio-backup.
Agora tem uma chave completa no seu dispositivo que pode ser utilizada para as várias aplicações listadas no nosso site. Tipo quit
e carregar em enter para sair.
Modificar Atributos Chave#
Esta secção trata da alteração dos atributos-chave. Se você quiser usar os valores propostos, você pode prosseguir com a próxima seção.
Abra uma linha de comando e digite gpg2 --card-edit --expert>`
.
> gpg2 --card-edit --expert
Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
Agora você está na interface interativa do GnuPG. Como você pode ver no campo «Key attributes» acima, o valor padrão rsa2048 está definido. Para alterá-los, ative os comandos admin com admin
e use key-attr
depois para alterar os atributos das chaves.
gpg/card> admin
Admin commands are allowed
gpg/card> key-attr
Changing card key attribute for: Signature key
Please select what kind of key you want:
(1) RSA
(2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Changing card key attribute for: Encryption key
Please select what kind of key you want:
(1) RSA
(2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Changing card key attribute for: Authentication key
Please select what kind of key you want:
(1) RSA
(2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Você pode escolher o atributo para cada chave (ou seja, assinatura, criptografia e chave de autenticação). A maioria das pessoas irá usar os mesmos atributos para cada chave. Digite list
para ver os resultados (veja o campo «Key attributes», que agora diz rsa4096).
gpg/card> list
Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa4096 rsa4096 rsa4096
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
Digite quit
e aperte enter para sair ou proceder diretamente com a seção anterior para realmente gerar as chaves com os atributos de chave que você acabou de definir.
A tabela a seguir ilustra qual algoritmo pode ser usado em qual dispositivo.
Início |
Pro + Armazenamento |
Pro 2 + Armazenamento 2 |
|
---|---|---|---|
rsa1024 |
✓ |
✓ |
|
rsa2048 |
✓ |
✓ |
✓ |
rsa3072 |
✓ |
✓ |
|
rsa4096 |
✓ |
✓ |
|
curva25519 (ECC) |
✓ |
||
NIST (ECC) |
✓ |
✓ |
|
Brainpool (ECC) |
✓ |
||
secp256k1 |
✓ |
Exportação de Chaves Públicas e Utilização do Servidor de Chaves#
Embora possa começar a usar a sua Nitrokey imediatamente após gerar as chaves no seu sistema, precisa de importar a sua chave pública em todos os sistemas, você quer usar a Nitrokey ligada. Por isso, para estar preparado, você tem duas opções: Ou guarda a chave pública onde quiser e usa-a noutro sistema ou guarda a chave pública num webpage/keyserver.
Geração de um arquivo de chave pública#
Para obter um ficheiro simples da sua chave pública, pode apenas usar gpg2 --armor --export keyID > pubkey.asc`
. Utilize a impressão digital como «keyID» (olhe em gpg -K
para a obter) ou utilize apenas o seu endereço de e-mail como identificador.
Você pode carregar este arquivo com você ou enviá-lo a quem quiser. Este ficheiro não é de todo secreto. Se quiser usar a Nitrokey noutro sistema, primeiro importa esta chave pública através de gpg2 --import pubkey.asc
e depois digite gpg2 --card-status
para que o sistema saiba onde procurar por esta chave. E é tudo.
Carregamento da chave pública#
Se você não quiser carregar um arquivo de chave pública com você, você pode carregá-lo no keyerver. Você pode fazer isso digitando gpg --keyserver search.keyserver.net --send-key keyID`
. Se você estiver usando outra máquina você pode simplesmente importá-la usando gpg --keyserver search.keyserver.net --recv-key keyID`
.
Outra possibilidade é alterar a configuração do URL no seu cartão. Inicie o gpg -card-edit novamente e primeiro defina o URL onde a chave está situada (por exemplo, no servidor de chaves ou na sua página web, etc.) através do comando url
. De agora em diante você pode importar a chave em outro sistema apenas usando o comando fetch
dentro do comando `x id="313"></x>
ambiente.