Como posso usar criptografia de chave pública para luks?

1

Eu tenho executado luks com os seguintes comandos:

$ sudo dd if=/dev/urandom of=/keyfile bs=1024 count=4
$ sudo cryptsetup luksFormat /dev/XXX keyfile
$ sudo cryptsetup luksDump /dev/XXX

E isso me mostra a seguinte mensagem:

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
MK digest:      f3 79 af 60 e6 34 5c 6e 27 6a e4 fe b6 f0 b2 95 8a 85 5c 31 
MK salt:        14 33 6b 95 f8 3d a9 e2 84 67 85 a1 18 be 70 58 
                af 10 10 28 c5 5b d1 1a 31 8e 8f e1 5a 93 51 12 
MK iterations:  45250
UUID:           776d4a78-3487-42df-8d3c-38708fdea60d

Key Slot 0: ENABLED
    Iterations:             181146
    Salt:                   da cf b7 36 fc 98 7c 5c 73 68 ca 44 f4 00 55 52 
                            47 46 68 50 bf aa 2e bb ac 47 83 0f 76 05 a6 05 
    Key material offset:    8
    AF stripes:             4000

De acordo com a saída, Nome da criptografia é aes e não é criptografia da chave pública . Ele é usado para criptografar apenas a chave mestra ou criptografa conteúdo também? Se ele criptografa somente a chave mestre , como o conteúdo é criptografado?

Tenho certeza de que aes também é muito seguro. Mas acho que a criptografia de chave pública é mais segura do que outros métodos, como aes . Assim, tentei descobrir como usar gpg ou qualquer outro método de criptografia para luks na página man do cryptsetup , mas não consegui encontre uma solução.

Como posso usar criptografia de chave pública para luksFormat ?

    
por xiaodongjie 03.12.2014 / 10:46

1 resposta

2

A criptografia de chave pública é realmente útil somente se você quiser que outras pessoas criptografem mensagens para você, e você não quer se dar ao trabalho de secretamente dar a elas sua chave de criptografia secreta. Então você publica sua chave pública para o mundo ver e criptografar mensagens para você, que só você pode ler.

Não seria benéfico para você criptografar seus arquivos em seu próprio computador. Pode-se supor que a criptografia de chave pública é menos segura do que a criptografia convencional (como AES, Blowfish, Camellia ...), já que você está distribuindo parte da informação de criptografia (a parte pública). Embora, na prática, ambos sejam efetivamente "inquebráveis" em qualquer vida humana.

E você pode não saber como o programa de criptografia de chave pública PGP / GPG realmente funciona, ele convencionalmente criptografa mensagens e, em seguida, criptografa a chave convencional usando criptografia de chave pública .

Aqui está uma citação de uma documentação do PGPi mais antiga (mas ainda válida), explicando-a, e um pouco sobre Por que alguém pode pensar que um método é mais seguro do que o outro, se eles estiverem apenas comparando os tamanhos das chaves:

  
    

O PGP combina algumas das melhores características de criptografia convencional e de chave pública . O PGP é um criptosistema híbrido. Quando um usuário criptografa o texto sem formatação com PGP, o PGP primeiro comprime o texto simples. A compactação de dados economiza tempo de transmissão do modem e espaço em disco e, mais importante, fortalece a segurança criptográfica. A maioria das técnicas de criptoanálise explora padrões encontrados no texto simples para decifrar a cifra. A compressão reduz esses padrões no texto simples, aumentando assim a resistência à criptoanálise. (Os arquivos que são muito curtos para compactar ou que não são bem compactados não são compactados.)

         

O PGP cria então uma chave de sessão, que é uma chave secreta única. Essa chave é um número aleatório gerado a partir dos movimentos aleatórios do mouse e das teclas digitadas. Esta chave de sessão funciona com um algoritmo de criptografia convencional muito seguro e rápido para criptografar o texto simples; o resultado é o texto cifrado. Depois que os dados são criptografados, a chave da sessão é criptografada na chave pública do destinatário. Essa chave de sessão criptografada por chave pública é transmitida junto com o texto cifrado para o destinatário.

         

...

         

A combinação dos dois métodos de criptografia combina a conveniência da criptografia de chave pública com a velocidade da criptografia convencional. A criptografia convencional é cerca de 1.000 vezes mais rápida que a criptografia de chave pública . A criptografia de chave pública, por sua vez, fornece uma solução para os principais problemas de distribuição e transmissão de dados. Usados em conjunto, o desempenho e a distribuição de chaves são aprimorados sem sacrificar a segurança.

         

...

         

No entanto, o tamanho da chave pública e o tamanho da chave secreta da criptografia convencional não são totalmente relacionados. Uma chave convencional de 80 bits tem a força equivalente de uma chave pública de 1024 bits. Uma chave convencional de 128 bits é equivalente a uma chave pública de 3000 bits. Novamente, quanto maior a chave, mais seguro, mas os algoritmos usados para cada tipo de criptografia são muito diferentes e, portanto, a comparação é como a das maçãs com as laranjas.

  

Se você quiser usar algum método que envolva o GPG para usar sua chave pública para criptografar a frase secreta ou o arquivo de chaves em seu contêiner LUKS, você poderá fazer isso se desejar. Mas se sua chave privada do GPG já foi comprometida ou perdida, o mesmo aconteceria com o seu contêiner LUKS.

E você pode escolher uma cifra diferente com cryptsetup, ela usaria a cifra para criptografar todos os dados. Veja man cryptsetup para informações como:

   --cipher, -c <cipher-spec>
          Set the cipher specification string.

E sob um Ubuntu padrão, pelo menos, essas cifras devem ser suportadas:

loop-AES: aes, chave 256 bits
plain: aes-cbc-essiv: sha256, Chave: 256 bits
LUKS1: aes-xts-plain64, Chave: 256 bits

    
por Xen2050 04.02.2015 / 11:04