Het KNX-sleutelhangerbestand (.knxkeys) wordt in ETS gebruikt voor beveiligde communicatie en bevat versleutelde inloggegevens voor KNX-apparaten. Het formaat omvat een versleutelde FDSK en een handtekening die wordt gegenereerd door elementen en attributen in een specifieke volgorde op te schrijven en deze vervolgens te hashen met PBKDF2 en SHA256. Om deze te gebruiken, importeert u de sleutelring via Project → Beveiliging → Sleutelhanger importeren in ETS.
Overzicht van de KNX-sleutelhanger:
Het sleutelhangerbestand houdt verband met KNX Secure-configuraties en wordt voornamelijk binnen de ETS (Engineering Tool Software) gebruikt voor beveiligde communicatie.
Het bestand heeft vaak de extensie .knxkeys en bevat versleutelde inloggegevens voor KNX-apparaten en -interfaces.
Bestandsformaat van de sleutelhanger:
Hieronder vindt u het formaat voor sleutelhangerbestanden.
De FDSK is versleuteld en de ontsleuteling wordt hier in een artikel uitgelegd.
Zodra de FDSK gecodeerd is, ondertekent u het hele formaat door onderstaande procedure te volgen.
Handtekeninggeneratie:
De handtekening over het sleutelhangerbestand wordt gegenereerd en geverifieerd zoals de hash/handtekeninggeneratie voor KNX productgegevens:
- Schrijf in deze volgorde in een .NT BinaryWriter (sAttributeStream) (zonder Keyring/@Signature):
- voor elk element
a. char(0x01)
b. Elementnaam (zonder XML namespace)*
c. voor elk Attribuut, gerangschikt op Attribuutnaam
-Attribuutnaam met voorlopende lengtebyte*
-Attribuutwaarde met lengtebyte aan het begin*
d. mogelijke kindelementen recursief verwerken
e. char(0x02)
2. Base64( PBKDF2( HMAC-SHA256, SleutelhangerWachtwoord, "1.keyring.ets.knx.org", 65536, 128))*
3. Handtekening = MSB128( SHA256( sAttributeStream))
Opmerking: Element- en attribuutnamen, attribuutwaarden en de base64 wachtwoord-hash worden allemaal geschreven met een byte voor de lengte. Lege attribuutwaarden worden geschreven als lengtewaarde 0x00.
Toepassing in ETS:
Om een beveiligde verbinding met een KNX Secure Router tot stand te brengen, dient u het KNX-sleutelhangerbestand (.knxkeys) in ETS te laden via:
Project → Beveiliging → Sleutelhanger importeren → .knxkeys-bestand selecteren.