O ficheiro de chaves KNX (.knxkeys) é utilizado no ETS para garantir uma comunicação segura, contendo credenciais encriptadas para dispositivos KNX. O seu formato inclui um FDSK encriptado e uma assinatura gerada através da escrita de elementos e atributos numa ordem específica, seguida de um cálculo de hash com PBKDF2 e SHA256. Para o utilizar, importe o conjunto de chaves através de «Projeto → Segurança → Importar conjunto de chaves» no ETS.
Visão geral do porta-chaves KNX:
O ficheiro de chaves está relacionado com as configurações do KNX Secure e é utilizado principalmente no ETS (Engineering Tool Software) para garantir uma comunicação segura.
Este ficheiro tem frequentemente a extensão .knxkeys e contém credenciais encriptadas para dispositivos e interfaces KNX.
Formato de ficheiro do porta-chaves:
Abaixo está o formato do arquivo de chave criptografada.
O FDSK está encriptado e a desencriptação é explicada no artigo aqui.
e assim que o FDSK estiver criptografado, assine todo o formato seguindo o procedimento abaixo.
Geração de assinaturas:
A assinatura sobre o arquivo de chave criptografada é gerada e verificada de forma semelhante à geração de hash / assinatura para os dados de produtos KNX:
- Em um .NT BinaryWriter (sAttributeStream), escreva nesta ordem (omitindo a chave criptografada/@Assinatura):
-por cadaelemento
a. char(0x01)
b. Nome do elemento (sem qualquer espaço de nomes XML)*
c. atributos foreach, ordenados por Nome de Atributo
- Nome do atributo com o comprimento principal de byte*
- Valor do atributo com o byte de comprimento inicial*
d. processar recursivamente possíveis elementos filhos
e. char(0x02)
2. Base64( PBKDF2( HMAC-SHA256, KeyringPassword, "1.keyring.ets.knx.org", 65536, 128))*
3. Assinatura = MSB128( SHA256( sAttributeStream))
Nota: Os nomes de elementos e atributos, bem como os valores de atributos e o hash de senha base64 são todos escritos com um byte de comprimento inicial. Os valores de atributos vazios são escritos com o valor de comprimento 0x00.
Utilização no ETS:
Para estabelecer uma ligação segura com um Router KNX Secure, deve carregar o ficheiro do conjunto de chaves KNX (.knxkeys) no ETS através do seguinte caminho:
Project → Security → Import Keyring → Selecionar ficheiro .knxkeys.