Plik (brelok) kluczy KNX (.knxkeys) jest wykorzystywany w programie ETS do zapewnienia bezpiecznej komunikacji i zawiera zaszyfrowane dane uwierzytelniające dla urządzeń KNX. Jego format obejmuje zaszyfrowany plik FDSK oraz podpis wygenerowany poprzez zapisanie elementów i atrybutów w określonej kolejności, a następnie obliczenie skrótu przy użyciu algorytmów PBKDF2 i SHA256. Aby z niego skorzystać, należy zaimportować pęk kluczy (brelok) w programie ETS, wybierając opcję Projekt → Bezpieczeństwo → Importuj brelok.
Przegląd breloka KNX:
Plik kluczy służy do konfiguracji protokołu KNX Secure i jest wykorzystywany przede wszystkim w oprogramowaniu ETS (Engineering Tool Software) w celu zapewnienia bezpiecznej komunikacji.
Plik ten często ma rozszerzenie .knxkeys i zawiera zaszyfrowane dane uwierzytelniające dla urządzeń i interfejsów KNX.
Format pliku breloka:
Poniżej znajduje się format pliku breloka.
FDSK jest zaszyfrowany, a deszyfrowanie zostało wyjaśnione w artykule tutaj.
a po zaszyfrowaniu FDSK proszę podpisać cały format, postępując zgodnie z poniższą procedurą.
Tworzenie podpisu cyfrowego:
Podpis nad plikiem breloka jest generowany i weryfikowany podobnie do generowania hashu/podpisu dla danych produktu KNX:
- W .NT BinaryWriter (sAttributeStream) proszę zapisać w następującej kolejności (pomijając Keyring/@Signature):
-dla każdegoElementu
a. char(0x01)
b. Nazwa elementu (bez przestrzeni nazw XML)*
c. dla każdego atrybutu, uporządkowany według nazwy atrybutu
-Nazwa atrybutu z wiodącym bajtem długości*
-Wartość atrybutu z wiodącym bajtem długości*
d. rekurencyjnie przetwarzać możliwe elementy podrzędne
e. char(0x02)
2. Base64( PBKDF2( HMAC-SHA256, KeyringPassword, "1.keyring.ets.knx.org", 65536, 128))*
3. Podpis = MSB128( SHA256( sAttributeStream))
Uwaga: Nazwy elementów i atrybutów, a także wartości atrybutów i hash haseł base64 są zapisywane z bajtem długości wiodącej. Puste wartości atrybutów są zapisywane jako wartość długości 0x00.
Zastosowanie w ETS:
Aby nawiązać bezpieczne połączenie z routerem KNX Secure, należy załadować plik kluczy KNX (.knxkeys) do programu ETS, wykonując następujące czynności:
Projekt → Bezpieczeństwo → Importuj pęk kluczy → Wybierz plik .knxkeys.