Sintaxe de Cifras no nginx

6

Em um arquivo de configuração nginx, você pode configurar uma lista de criptografias SSL como esta

ssl_ciphers                HIGH:!aNULL:!eNULL:!LOW:!ADH:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;

Qual é a sintaxe dessa string de criptografia? Ou seja, eu sei (ou acho que sei, corrija-me se estiver errado) que esta cadeia pretende fornecer uma lista de possíveis cifras SSL, bem como fornecer uma prioridade para elas. O que a documentação é menos importante é explicar o formato dessa string.

Perguntas específicas

  • A ! a é negação? Ou seja, !DSS significa não usar o DSS? Ou é !DSS o mesmo de uma cifra?

  • Os separadores de caracteres : são? Isso é o que está acima de uma lista de cifras "HIGH,! ANULL,! ENULL, etc ...", ou o : significa alguma outra coisa

  • São HIGH e LOW o mesmo das cifras, ou são meta-diretivas especiais de algum tipo

  • Não ilustrado acima, mas I vimos strings como essa AES256-GCM-SHA384:ECDHE-RSA-RC4-SHA: . Os caracteres - fazem parte do nome da cifra ou têm um significado especial?

Existe um recurso que explica como essa string funciona, ou esse é um caso em que se espera que as pessoas esperadas para trabalhar com a string leiam a fonte nginx para descobrir como ela funciona?

    
por Alan Storm 10.10.2014 / 23:47

2 respostas

4

Esta sintaxe é do OpenSSL. Consulte FORMATO DA LISTA DE CIPHER .

Mais abaixo, ele lista diferentes cifras e essas cifras meta, como HIGH

Trecho:

The cipher list consists of one or more cipher strings separated by colons. Commas or spaces are also acceptable separators but colons are normally used.

The actual cipher string can take several different forms.

It can consist of a single cipher suite such as RC4-SHA.

It can represent a list of cipher suites containing a certain algorithm, or cipher suites of a certain type. For example SHA1 represents all ciphers suites using the digest algorithm SHA1 and SSLv3 represents all SSL v3 algorithms.

Lists of cipher suites can be combined in a single cipher string using the + character. This is used as a logical and operation. For example SHA1+DES represents all cipher suites containing the SHA1 and the DES algorithms.

Each cipher string can be optionally preceded by the characters !, - or +.

If ! is used then the ciphers are permanently deleted from the list. The ciphers deleted can never reappear in the list even if they are explicitly stated.

If - is used then the ciphers are deleted from the list, but some or all of the ciphers can be added again by later options.

If + is used then the ciphers are moved to the end of the list. This option doesn't add any new ciphers it just moves matching existing ones.

...

    
por 10.10.2014 / 23:56
4

A diretiva Nginx ssl_ciphers está usando o formato de lista de cifras OpenSSL .

Esta lista de cifras é descrita como uma ou mais cadeias de cifras normalmente separadas por vírgulas ou vírgulas (espaços também são suportados pelo OpenSSL, mas você terá que quebrar a lista entre aspas com nginx).

Uma string de criptografia é um conjunto de criptografia ou conjuntos de criptografia agrupados sob uma palavra-chave .

Por padrão, o OpenSSL vem com uma lista de codificação padrão determinada no tempo de compilação da biblioteca e que exclui suítes de cifras sem criptografia ou autenticação para fins de segurança óbvios. Deve ser ALL:!aNULL:!eNULL para o OpenSSL 1.0.

Por exemplo, a string de criptografia HIGH significa todos os conjuntos de criptografia que fornecem criptografia com chaves maiores que 128 bits, enquanto a string de criptografia LOW corresponde aos conjuntos de criptografia que usam chaves de 56 ou 64 bits. Além disso, AES256-GCM-SHA384 e ECDHE-RSA-RC4-SHA são pacotes de criptografia específicos.

Símbolo ! significa remover o grupo de conjuntos de criptografia ou o conjunto de criptografia específico quando o servidor troca conjuntos de criptografia compatíveis com o cliente durante o estágio de handshake. Por exemplo, !eNULL e !aNULL significa remover pacotes de criptografia que não fornecem criptografia e autenticação.

    
por 11.10.2014 / 00:14

Tags