Fui solicitado a migrar do CentOS 6.8 para 7.4 em todos os nossos dispositivos Linux. Eu estou correndo em um problema com o carregamento de associações de segurança no kernel do Linux. Estou usando a implementação de setkey do ipsec-tools para fazer isso. Originalmente no CentOS 6.8, isso funcionava bem com a chave e o algoritmo definidos (chave 3des-cbc de 192 bits) no arquivo out setkey.conf. Eu poderia inserir "setkey -D" e ver o SA listado lá.
No CentOS 7.4, ele não consegue carregar o SA. Em ambos os casos, eu tenho o parâmetro "fips = 1" definido na instrução da linha de comando do Grub na inicialização, que deve forçar a conformidade com o FIPS. Descobri que, se eu remover o parâmetro "fips = 1" na instrução da linha de comando do grub na minha caixa executando o CentOS 7.4, ele carregará a SA com êxito. Isso faz com que eu pense que a conformidade com o FIPS mudou entre o CentOS 6.8 e o CentOS 7.4 e que o 3des-cbc não é mais um algoritmo aprovado.
Eu tentei me afastar da implementação do setkey pelo ipsec-tools e, em vez disso, use ip xfrm para carregá-lo, mas obtive os mesmos resultados. Eu não tentei usar o openswan ainda, mas acho que ele tenta fazer o mesmo carregando o SA no kernel e; portanto, espero encontrar o mesmo problema.
Aqui estão mais detalhes:
CENÁRIO 1:
- CentOS 6.8
- Kernel: 2.6.32-642.6.2.el6.x86_64
- ipsec-tools 0.8.2-1
- A instrução de linha de comando do Grub inclui fips = 1
O arquivo
setkey.conf contém:
# Flush the SAD and SPD
flush;
spdflush;
# ESP SAs using 192 bit long keys (168 + 24 parity)
add 0.0.0.0 192.168.121.138 esp 0x201 -E 3des-cbc
<OUR KEY>;
# Security policies
spdadd 0.0.0.0/0 [any] 192.168.121.138 [1960] any -P in ipsec
esp/transport//require;
CENÁRIO 2:
- CentOS 7.4
- Kernel: 3.10.0-693.11.1.el7.x86_64
- ipsec-tools 0.8.2-1
- A instrução de linha de comando do Grub inclui fips = 1
O arquivo - setkey.conf é o mesmo que acima.
Nesta configuração setkey -D retorna um erro dizendo: "No SAD Entries" Se eu tentar ler o arquivo setkey.conf no kernel com "setkey -f /etc/setkey.conf" então recebo um erro dizendo : "O resultado da linha 10: (NULL)."
Existe uma maneira melhor de carregar as SAs no Kernel do Linux? O 3des-cbc não é mais considerado compatível com FIPS? Devemos mudar para um algoritmo de criptografia diferente que seja compatível com FIPS? Em caso afirmativo, qual algoritmo deverá permanecer compatível no futuro previsível?