Mam jakieś zaćmienie, problem może nie do końca z tematki grupy ale w końcu dotyczy obszaru mikrokontrolerów więc zaryzukuję. Dwa mcu komunikują się ze soba (UART), jeden wysyła polecenie (komunikat) drugiemu, ten drugi wykonuje robotę w zależności od polecenia, komunikacja jest w jedną stronę (mcu1->mcu2) i wg schematu: polecenie
-> wykonanie. Chciałbym zaszyfrować komunikację między tymi dwoma mcu, aby nie można było podsłuchać komunikatu i go później "podrzucić" do mcu2 wpinając się w uart. Założenie jest takie, że oba mcu maja "w sobie" klucz, wybieram jakis dowolny cipher. I tu pojawia się problem, bo generalnie szyfrownaie nic nie daje, bo: mcu 1 szyfruje polecenie X, dajac zaszyfrowany strumień, powiedzmy "Gk16w123clh3RZdYbGZc8g", 2 mcu mając ten sam klucz deszyfruje "Gk16w123clh3RZdYbGZc8g" dostając polecenie X i je wykonuje. Teraz wystarczy "udawać" mcu1 i wysłać do mcu2 po prostu "Gk16w123clh3RZdYbGZc8g", które zostanie odszyfrowane i spowoduje wykonanie polecenia X. Jak w miarę prosty sposób uniemożliwić taki atak? Wyobrażam sobie, że mcu2 może pierwszy nawiązywać komunikację i stowrzyć "dialog", który (jeśli będzie prawidłowy) oznaczać będzie, że druga strona ma prawidłowy klucz, czyli jest zaufana. Ale można wyobrazić sobie, że będzie można całą sekwencje odpowiedzi mcu1 podrzucic na podstawie analizy statytycznej (np. wcześniej snifująć komunkację), liczba możliwych kombinacji jesty wielka ale skończona, więc nadal problem istnieje...