O que é uma senha de desafio?

170

Estou configurando o SSL em um servidor Ubuntu. Um dos campos solicitados como parte da configuração do CSR é uma "senha de desafio". O que é isso? O padrão está em branco. Preciso inserir um?

Will Martin
fonte

Respostas:

152

A "senha de desafio" solicitada como parte da geração do CSR é diferente da frase secreta usada para criptografar a chave secreta ( solicitada no momento da geração da chave ou quando uma chave de texto simples é criptografada posteriormente - e solicitada novamente sempre que o SSL ativado serviço que o utiliza inicia ).

Aqui está uma chave sendo gerada e o início da chave gerada:

$ openssl genpkey -algorithm rsa -out foo.key
............++++++
...++++++

$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt

Esta chave não possui senha. Não fui solicitado a criar um e não o inseri. Agora, vamos gerar uma chave criptografada:

$ openssl genpkey -algorithm rsa -des3 -out bar.key
...........................................++++++
.....................................++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

$ head -3 bar.key
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQInfwj1iv3icMCAggA
MBQGCCqGSIb3DQMHBAizMHBklBexiwSCAoDtRKf1WtMiVMH7HraGTIG0rlQS6Xuj

Portanto, deve ficar claro como uma chave privada criptografada (qual apache, ou qualquer outro servidor habilitado para SSL, precisará ser desbloqueado quando for iniciada) e uma chave privada de texto sem formatação (que não requer desbloqueio no horário de início do serviço) . Agora vou gerar um CSR com uma senha de desafio a partir da chave não criptografada :

$ openssl req -new -key foo.key
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:asdfasdf
An optional company name []:
-----BEGIN CERTIFICATE REQUEST-----
MIIBmzCCAQQCAQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0
eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEAn2M0Abg2jL/+v9J54r+ASAY5XQFmbQJiaBJAaPg/o3dwmw+U
awbzSopPFMXCgSJeczcFV4GkN1eEYq2Cmam3tH6t8mVDh0/UryJSWBsaFm9mh9RF
gIpP0hEkYZTf/0X+X06ukt9S/Id9Z/tVgPsZA3TcNjNhJfVaTm81/4ykq8UCAwEA
AaAZMBcGCSqGSIb3DQEJBzEKDAhhc2RmYXNkZjANBgkqhkiG9w0BAQUFAAOBgQCa
ivuDRBlHOhBjg6wPbH9NvCnvEnxeEAkYi0Sl/Grdo/WCk17e+sv9wgqEW1QSIdbV
XzMeWidurv4AtcATwhfk9tBcYBCTxANkTONzhJG7Yk9OAz8g8Ljo8EEvPf4oHqpw
tBg10DCD2op0lCwL2LBdPO3RG20f/HD6fEXPVxZdOQ==
-----END CERTIFICATE REQUEST-----

E apenas para mostrar que a chave não foi magicamente criptografada:

$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt

Então, repito: a "senha de desafio" solicitada como parte da geração de CSR não é a mesma coisa que uma senha usada para criptografar a chave secreta. A "senha de desafio" é basicamente um não-segredo compartilhado entre você e o emissor do certificado SSL (também conhecido como Autoridade de Certificação ou CA), incorporado no CSR, que o emissor pode usar para autenticar você, sempre que necessário. Alguns emissores de certificados SSL tornam isso mais claro que outros; olhar para baixo na parte inferior da página para ver onde eles dizem a senha desafio é necessária - é não quando você reiniciar o apache:

Se você optar por inserir e usar uma senha de desafio, precisará salvar a senha em um local seguro. Se você precisar reinstalar seu certificado por qualquer motivo, será necessário inserir essa senha.

Chapeleiro Louco
fonte
2
Existe uma diferença entre um "Emissor SSL" e uma CA (Autoridade de Certificação)?
31416 Jonathan
3
Tecnicamente, eles não estão emitindo o próprio protocolo SSL, mas um certificado compatível com SSL. Sinto que o emissor SSL é menos claro. Emissor de certificado SSL seria claro, na minha humilde opinião.
Jonathan
6
Resposta muito (muito) completa, quando não era necessário IMHO. Com base na pergunta, você pode eliminar todas as suas respostas, exceto que o seguinte 'A "senha de desafio" é basicamente um nonce de segredo compartilhado ...'. Acredito que isso teria respondido à pergunta da mesma maneira, com informações não pertinentes menos perturbadoras.
Joe
3
@joe obrigado! O que você não pode ver (porque você não tem o representante) é que eu estava respondendo a uma resposta anterior excluída por um usuário com uma classificação muito alta (que estava nesse caso, infelizmente, errado), por isso tinha que fazer uma refutação ponto a ponto. Sua exclusão subsequente, que não foi feita pelo autor, faz com que a minha pareça um pouco estranha, mas até agora decidi deixá-la em pé. Se outras pessoas apoiarem seu ponto de vista, votando positivamente em seu comentário, alterarei minha resposta.
MadHatter 23/02
3
Fiquei desconcertado com essa mesma pergunta e achei esta resposta não muito útil para minha compreensão limitada do assunto (devido ao modo como está escrito), mas felizmente encontrei minha resposta em security.stackexchange.com/a/77082/67048
precisa saber é