É possível gerar chaves GnuPG sem subchaves?

É possível gerar chaves GnuPG sem subchaves?

Uso PGP e depois GnuPG há mais de 20 anos, e minha chave mais antiga ainda está no servidor MIT desde 1996. (RSA 1024 sem subchaves...)

Com o tempo, as chaves tornaram-se pares de Principal e Subchave. Em todos esses anosEu nunca precisei da subchavefunção. Nem conheço ninguém pessoalmente que o tenha usado.

Talvez eu tenha lido todas as "Boas Razões" pelas quais as subchaves "deveriam" ser usadas. Mas nenhuma dessas razões se aplicava a mim.

Por exemplo, as subchaves são ótimas quando a chave de criptografia está comprometida!!! Mas as minhas chaves de encriptação nunca foram comprometidas. Nem conheço ninguém que tenha as chaves.

Ou supostamente é bom para organizações onde uma chave principal está associada a muitas chaves de criptografia. Eu não vi. Eu me pergunto se tal organização existe em algum lugar deste Universo. Pelo que vi, a ideia da subchave parece ser um caso deexcesso de engenhariasem uso ou muito raro na vida real. Talvez a ideia seja apenas uma racionalização do esquema DSA/elGamal.

De qualquer forma, estou trabalhando em alguns softwares onde as subchaves não são utilizadas. Além disso, quero que minhas chaves sejam compatíveis com RetroShare (um chat de mensagens instantâneas p2p seguro e troca de arquivos, usando apenas chaves únicas sem subchaves).

Alguém sabe se existe uma maneira de gerar chaves sem subchaves. Só estou ciente da opção de remover subchaves no menu --edit-key. Não sei se as chaves podem ser geradas sem elas. Há algum caminho? muito obrigado por qualquer ajuda para entender melhor esse problema.

Responder1

Vantagens de usar subchaves

A mentalidade de usar melhor as subchaves pode parecer um excesso de engenharia, mas tem alguns argumentos fortes. A necessidade quando usado com algoritmos somente de assinatura como DSA é óbvia (e não debatida). A capacidade de colocar a chave primária privada off-line (e reduzir o risco de perdê-la) e facilitar a rotação das chaves pode parecer muito importante quando não se depende fortemente da rede de confiança. Mas há outras razões: separar o uso pode reduzir o risco ao usar criptografia e assinaturas. Por exemplo, já houve uma falha com números aleatórios e chaves DSA ruins, onde a emissão de um monte de assinaturas revelava sua chave privada. Se essa chave também tivesse sido usada para criptografia, sua comunicação privada também teria sido revelada. Claro, chaves DSAnão poderiaforam usados ​​para criptografia, mas informa que problemas semelhantes não ocorrerão com o RSA?

Outro exemplo: o OpenSSH teve alguns problemas que possivelmente revelaram suas chaves SSH privadas ao servidor de chaves. Estou usando subchaves de autenticação OpenPGP junto com monkeysphere; nesse caso, minha subchave de autenticação teria sido revelada, não minha chave primária. A rolagem da subchave de autenticação levou cinco minutos, a distribuição de chaves completamente novas levaria uma hora (ou até mais).

As subchaves podem adicionar alguma complexidade, mas você realmente não vê isso e funciona bem. A sobrecarga de computação e armazenamento é insignificante, não há esforço manual adicional. Por que não aproveitar alguns (possíveis) benefícios adicionais “de graça”?

Não usá-los de qualquer maneira

Pode muito bem haver razõesnãopara usar subchaves. Talvez você queira apenas confiar em algumas partes da infraestrutura OpenPGP e não se importar com o gerenciamento de confiança e outras partes. Se você criar software para terceiros, considere não restringir seus usuários: talvez também seja razoável que alguns simplesmente forneçam uma subchave, em vez de criar um par de chaves completamente não relacionado?

A geração de chaves sem subchaves requer o uso de um algoritmo que suporte criptografia e assinaturas, o que o RSA faz (mas o DSA não). Para gerar uma chave primária de "uso geral" sem subchaves, você deve usar o --expertmenu de geração de chaves:

gpg --expert --gen-key

Então escolha(8) RSA (defina seus próprios recursos). Você poderá selecionar os possíveis usos da chave, onde C(certificação) é necessária para uma chave primária, S(assinatura), E(criptografia) e A(autenticação) podem ser selecionados arbitrariamente. Conclua o restante do assistente e você receberá uma chave primária sem nenhuma subchave com os recursos escolhidos.

Responder2

@jens-erat Obrigado pela sua resposta, estava procurando a mesma coisa. Apenas um detalhe para registro:

gpg --expert --gen-key

não funcionou para mim (GPG 2.2.4). Isso funcionou:

gpg --expert --full-generate-key

informação relacionada