O armazenamento de senha criptografada por Jenkins / Hudson é "seguro"?

6

Ao configurar nosso servidor Jenkins / Hudson recentemente, ficou claro que ele precisa armazenar senhas. Parece que ele armazena as senhas "cifradas" em config.xml Eu não posso ver como isso seria seguro como a cadeia de segredos tem que quebrar em algum lugar.

  • As senhas cifradas de Jenkins podem ser consideradas "seguras"?
  • Isto é apenas segurança através da obscuridade?

Eu devo especificar que estamos usando o Jenkins 1.425.

    
por Catskul 10.08.2011 / 00:33

1 resposta

5

Parece ser AES128 criptografado usando uma chave armazenada localmente. Você está exatamente certo de que é essencialmente apenas uma camada de obscuridade - conceitualmente, as únicas opções disponíveis em uma situação como essa são exigir que uma senha seja inserida no momento em que o serviço inicia como uma chave de descriptografia ou para armazenar a chave em algum lugar. localmente; um bom análogo são certificados SSL criptografados para um servidor da Web.

Os comentários no código da classe hudson.util.Secret deixam claro que eles entendem as limitações de segurança desse método:

Glorified String that uses encryption in the persisted form, to avoid accidental exposure of a secret. Note that since the cryptography relies on Hudson.getSecretKey(), this is not meant as a protection against code running in the same VM, nor against an attacker who has local file system access.

    
por 10.08.2011 / 00:54