Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 13 kwi 2026, o 21:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 18 lut 2016, o 11:03 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Mam pytanie jak zrobić w miarę prosto szyfrowanie danych UART. Chciałbym zabezpieczyć przesyłane dane pomiędzy płytkami żeby nikt mi ich nie podejrzał i nie wysyłał swoich.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 12:50 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 57
Pomógł: 5

Cześć,
5 lat temu sam pisałem prace dyplomową w której szyfrowałem dane w Atmedze 128, pobierałem dane z GPSa, szyfrowałem i zapisywałem na karcie SD z użyciem algorytmu AES 128 bit.

najpierw poczytaj sobie o algorytmach szyfrujących symetrycznych i asymetrycznych, później wybierz sam algorytm: AES, DES, RSA, Blow fish

Jest dużo przykładów w internecie napisanych bibliotek w C lub w C++ które w łatwy sposób można przerobić dla atmegi.
Podstawowe umiejętności to praca z tablicami i wskaźnikami. Ja jako słabo ogarnięty z C dałem sobie radę i działało to przyzwoicie.

Są jednak minusy:
- spore użycie pamięci ram na tablice
- wydłużony czas szyfrowania w przypadku implementacji bez Lookup tables, blokujący inne operacje
- przy użyciu tablic lookup szyfrowanie jest szybsze, jednak zjadają one troche flasha co przy małych procesorach jest kłopotliwe
- spory overhead danych wysyłanych przez uart, np wysłanie "AT" będzie skutkowało wysłaniem 16 bajtów zaszyfrowanej wiadomości dla 128bitowego algorytmu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 12:57 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Dziękuję BARTB za nakierowanie, temat jest dla mnie tak obcy jak Mars więc pomocne będzie cokolwiek.
Pozdrawiam

------------------------ [ Dodano po: 4 minutach ]

Nic wielkiego, dwa moduły z komunikacją. Chodzi o to, że wyślę to w "świat" i nie chciałbym żeby to za chwile ktoś skopiował i podłączył się do mojego modułu. Program mogę zablokować fuse bitami, ale podłączając się zwykłym kablem i terminalem pomiędzy płytami każdy możne podejrzeć komunikację i dodawać swoje płytki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 13:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nie wiem jak z licncjami i innymi, ale ja mam coś takiego z uczelni zaczerpnięte. zawsze można zmieniać klucz szyfrujący.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 18:01 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2606
Pomógł: 129

Na szybko to wystarczy XORowac :)

Sent from my mobile.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 19:30 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Ale jeśli dobrze rozumiem to wszystko co powyżej nie rozwiązuje mojego problemu, już wyjaśniam. Sterownik ma uruchamiać włączać światło, opuszczać rolety, otwierać bramkę itd. Problem w tym, że niechajbym aby ktoś podłączył mi się do mojego sterownika i dodał jeszcze inne funkcje. Innymi słowy żeby nie mógł zorientować się w jaki sposób wydaję polecenia ze sterownika do układów wykonawczych, a jeśli dobrze rozumiem wystarczy (posiadając mój sterownik) wpiąć się w linię TX i RX i odczytać, że światło uruchamia się komenda znaków np. A101W99 (to oczywiście jakaś z palca wymyślona sekwencja znaków). Bo jakbym nie kodował to i tak odczytując co się na linii sygnałowej dzieję to wystarczy, że będę puszczał dokładnie takie same ramki i już. Dobrze ja to rozumiem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 19:33 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

a nie prościej użyć specjalizowanego układu szyfrującego dane ??
zresztą -- jak ktoś będzie chciał to i tak rozszyfruje .... nie takie rzeczy chińczyki podrobili
wiec niema co popadać w paranoję ....
\
:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 20:36 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

@Tom277
Do datagramu przed kodowaniem możesz dodawać np. czas.
Czyli cała zakodowana instrukcja będzie np. co sekundę wyglądała inaczej.
Kontroler odbiornika może sprawdzać czy dana instrukcja nie jest starsza niż np. 30s (trzeba dać jakiś zapas na różnicę zegarów).
No i raz na jakiś czas można wysyłać komendę zmiany klucza i synchronizacji czasu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lut 2016, o 22:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27454
Lokalizacja: Szczecin
Pomógł: 1045

Ło matko - jak ja słyszę o tych hakerach młodocianych co to rzekomo pod każdym domem w masce zorro pod każdym krzakiem z laptopem czyhają aby przejąć kontrolę nad sterownikami do rolet, które sam sobie ktoś zrobił na jakimś procku to mi ręce opadają ;)

Panie - toż właśnie fakt, że robisz coś hobbystycznie albo mało seryjnie - a produkt nie jest znany to już samo w sobie jest zabezpieczeniem, i dorzucenie byle XOR'owania zniechęci byle podsłuchiwacza ;) ... zresztą żeby się chociaż jeden taki znalazł ;) ja tam bym się cieszył bo to by znaczyło że mój produkt zaczyna być popularny i wtedy w drugiej wersji wprowadziłbym już nieco większe zabezpieczenia

Ale poważnie - włamanie się hackera do domu żeby komuś roletą pomachać i światło zapalić ... szok ;) skąd takie pomysły ... ale to tylko moje skromne i nieobiektywne zdanie ... I pewnie zaraz mi się oberwie od wszystkich którzy na co dzień wszystko zabezpieczają do granic ludzkiej możliwości nie ważne czy to odkurzacz, żelazko, roleta czy komputer ... Moim zdaniem warto oczywiście dla celów poznawczych uczyć się technik zabezpieczeń - to bardzo dobry cel ... no ale na zeusa - nie po to żeby:

Tom277 napisał(a):
Problem w tym, że niechajbym aby ktoś podłączył mi się do mojego sterownika i dodał jeszcze inne funkcje.

Żeby ktoś to mógł zrobić - to musiałby to być jakiś twój dobry ale bardzo złośliwy znajomy, który na dodatek się jeszcze na tym tak samo zna ... albo znajomy który kawał chce ci zrobić - to teraz policz ilu masz takich znajomych ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 06:51 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

mirek36 ;) Ty to zgrywus jesteś, nie wyobrażam sobie, że ktoś stoi pod moim domem z laptopem i macha do mnie moimi roletami, było by co najmniej zabawnie. Pewnie, że nie boje się machania roletami i zapalaniem światła. To zupełnie nie tak. Zrobiłem sterownik który steruje kilkoma układami wykonawczymi w maszynach tj. silnik, klatka zabezpieczająca, włączenie procesu, zapalenie lampki ostrzegawczej itd. Taki sterownik w zamierzeniu sprzedam klientowi czyli zamontuje u niego w zakładzie/domu i teraz chciałbym, żeby kiedyś w przyszłości zadzwonił do mnie i poprosił mnie o dodatkowe moduły. Natomiast mocno obawiam się, że za chwilę znajdzie się "model" który podłączy się kabelkami do mojego urządzenia (za zgodą właściciela/klienta) i zhakuję transmisję. Dalej to już tylko mały krok do zrobienia swoich małych modułów rozszerzających czego efektem będzie, że nie doczekam się telefonu. Zgadzam się z SunRiverem, że wszystko można zhakować i nie będę nawet próbował aż tak się zabezpieczać bo to poza moimi możliwościami, ale choć trochę, taka pierwsza linia obrony dla zniechęcenia, żeby nie poddawać się bez walki. Chyba każdy co coś wymyślił przesiadując nocami przed komputerem podziela moje zdanie. Dużo rzeczy robię hobbystycznie, naprawiam znajomym różne drobiazgi i robię to non profit ale czasem chciałoby się coś zarobić, co jak co ale wszyscy wiemy ile kosztuje nasze hobby, czasu i pieniędzy. Mikru Ty sam ogrom swojej wiedzy przekazujesz za darmo, ale cześć swoich "pomysłów" wyceniłeś w konkretnych pieniądzach i sam zobacz ile czasu i energii kosztuje Cię walka z pasożytami. Nie chciałbym tu nikogo absolutnie urazić, nie jestem "zaborczym kapitalistą" tak jak napisałem jak mogę, robię czasem za free, bo to fajne jest. Nie ma co się oszukiwać ja z mojego pomysłu się nie dorobię i niestety nie zapewni mi to utrzymania, ale może wystarczy na jakąś kolejna płytkę rozwojową lub chociaż garść procesorów. Budując omawiany sterownik uszkodziłem dwa procki (przez nieuwagę oczywiście) musiałem kupić dodatkowy konwerter i parę innych drobiazgów, fajnie by było, żeby nie wyszło tylko na "zero".
Wracając do tematu. Moje urządzenie to sterownik i układ wykonawczy po RS485 połączony przewodami, a w przewodach tych "lata sobie" ramka z informacją co włączyć, a co wyłączyć. jeśli zrobię to "normalnie" to podpięcie się do tych przewodów i uruchomienie PUTTY daje cały obraz sytuacji, że włączenie silnika to np ramka "A101W10" a zadziałanie blokady to ramka "B10ON11" więc jaki problem zrobić swoje urządzenia rozszerzające zamiast dzwonić do mnie i zamówić jeszcze kilka.
i to chyba wszystko co chciałem napisać :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2016, o 07:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27454
Lokalizacja: Szczecin
Pomógł: 1045

Ale widzisz ja ciebie bardzo dobrze rozumiem ... i jeśli już (a słusznie mówisz):

Tom277 napisał(a):
ale choć trochę, taka pierwsza linia obrony dla zniechęcenia, żeby nie poddawać się bez walki.

Dlatego też uważam jak kilku kolegów wyżej - że zwykle implementacja jakiegoś XOR'owania z własnym kluczem a być może jeszcze jakimś pomysłem np na dodanie sumy kontrolnej na końcu ale w taki sposób aby np jej znaki były rozrzucone w kilku miejscach ramki danych plus inny drobny gadżet i już zniechęca to takiego pierwszego magika .... bo jak zobaczy byle jakie kodowanie to od razu się przerazi że to jakiś pewnie AES leci ;)

A tego co pisałem - to nie pisałem konkretnie do ciebie tylko tak ogólnie i tak jak mówisz - gdy sam robię (teraz mniej z uwagi na pracę przy książkach) ... jakieś urządzenia projekty to mówię ci rzadko zabezpieczam transmisję ... ale czasem gdy mam podobne obawy jak ty - to właśnie coś w tym stylu robię .... jak piszę wyżej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2016, o 01:11 
Offline
Użytkownik

Dołączył(a): 26 lut 2014
Posty: 227
Lokalizacja: LDZ
Pomógł: 22

Jeśli chodzi o szyfrowanie na AVR to proponuję prosty w implementacji szyfr RC4. https://pl.wikipedia.org/wiki/RC4 Posiada on swoje słabości, ale jest dość szybki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 10:24 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Cytuj:
XORowanie nic nie da,
no już myślałem, że coś ze mną jest nie tak i nie mogę zrozumieć oczywistej rzeczy, Tak jak PCLMULQDQnapisał i jak ja starałem się wcześniej opisać, problem w tym, że jak oczytam co jest nadawane w przewodzie i wyślę dokładnie to samo to zadziała, bez względu jak będzie to zakodowane i tu jest "pies pogrzebany" Dzięki PCLMULQDQ za zrozumienie mojego problemu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 12:37 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Ale czy jak podejrzysz i odczytasz krzaki "k$3sM&6);" które w odbiorniku będą zdekodowane jako T23A21:1:1 a później wyślesz również dokładnie takie same krzaki "k$3sM&6);" to czy odbiornik nie zinterpretuje ich prawidłowo? Dla Ciebie jako podsłuchującego nie ma znaczenia co krzaki oznaczają ważne, że wyślesz dokładnie taką samą paczkę krzaków, a odbiornik odrzuci to co niepotrzebne i zdekoduje te krzaki poprawnie. Czy dobrze myślę czy się zafiksowałem w swoim błędnym myśleniu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 12:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1188
Lokalizacja: Kraków
Pomógł: 95

Chyba nie do końca o to chodziło. Z tego, co ja zrozumiałem:
Z wysyłanego ciągu znaków ważne są np. znaki pierwszy, trzeci, piąty i szósty. Pozostałe są losowe.
W odbiorniku odczytujesz te "ważne", a pozostałe odrzucasz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 12:59 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27454
Lokalizacja: Szczecin
Pomógł: 1045

Tom277 napisał(a):
Czy dobrze myślę czy się zafiksowałem w swoim błędnym myśleniu.

Kolega się zakręcił jak bączek chyba ... bo squez ma oczywiście rację ....

ty też poniekąd - bo jeśli ktoś wyśle DOKŁADNIE tę same krzaczki to pewnie, że komenda zostanie wykonana, ale jeśli transmisja składa się z wielu ramek a komendy są ze zmieniającymi się argumentami to już ktoś będzie podsłuchiwał wciąż różne ramki krzaczków i będzie musiał spędzić sporo czasu na wyłapanie komend czyli które która ramka krzaczki to jaka komenda i to jeszcze z konkretnymi wartościami, prościej mówiąc przecież jeśli będziesz miał przykładowo komendę

PWM:x

gdzie x może przyjąć wartości od 0-255 i to jeszcze w HEX albo ASCII - to po zakodowaniu będzie trzeba zapamiętać 255 różnych ramek krzaczków ... o ile byłoby to proste xorowanie to pewnie udałoby się wyróżnić a nawet na tej podstawie odgadnąć klucz xorowania .... no ale jeśli wpleść i to zmienną część klucza sprytynie w ramkę (kilka bajtów rozrzuconych w ramce) to znowu powodzenia

oczywiście WSZYSTKO jest do odszyfrowania .... wszystko zależy jaką ty masz komunikację - a na początku też wcale nie napisałeś że chodzi ci także o to aby ktoś nie wykorzystał tych samych zakodowanych ramek ....

Poza tym do tego co napisał squez można dodać, że wystarczy wplatać w ramkę albo w zaszyfrowaną postać ramki TimeSamp np z ważnością komendy na np kilka minut (o ile dwie strony mają w miarę zsynchronizowane zegarki) ;)

w efekcie końcowym sięgnij po jakiś AES .... albo inne tego typu metody

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 13:08 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Nooo booobra :D muszę to przemyśleć i przetrawić.
Dziękuję



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 13:49 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Dzięki squeez za zainteresowanie tak jak napisałem powyżej muszę to jeszcze raz przemyśleć i zastanowić się co mogę z tym zrobić. Nawet nie myślałem, że mnie również będzie kiedyś dotyczył taki problem (chodzi oczywiście o zabezpieczenie własnych pomysłów). Rzecz w tym że to co zrobiłem może nie jest niczym wielki, ale jednak jest zamontowane w maszynie nad która siedziałem długi czas obmyślając jak to wszystko ogarnąć i uruchomić. W końcu udało mi się stworzyć sterownik, opracować komunikację i obawiam się mocno, że teraz ktoś na pasożyta będzie się oferował, że on również może się podpiąć i sterować maszyna, de facto podpinając się pomiędzy mój sterownik i mój odbiornik który jest zamontowany w urządzeniu. Stworzy sobie swój nadajnik który będzie wysyłał takie same ramki jakich nasłuchuje mój odbiornik. Nadajnik jest prostym urządzeniem cała moja męczarnia siedzi w odbiorniku.
Przepraszam, że piszę tak ogólnikowo, ale przez Mirka działalność :) to forum stało się już tak znane i często odwiedzane, że każdy kto "kręci" się w świecie mikrokontrolerów tu zagląda nawet jeśli do tego się nie przyznaje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2016, o 18:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Kolego, działaj. Twój pomysł ma sens.
http://techcrunch.com/2015/10/24/why-io ... -critical/
Byłem niedawno na konferencji, człowiek pokazywał dokładnie to, co chcesz zrobić. Na trochę większym sprzęcie, jako wrapper do sterowników PID.
I nie chodzi o to, że to będzie tylko dla ciebie, czy dla jednego klienta. Dużo się przy takim projekcie nauczysz. Nie daj się nabierać na żadne xorowanie, zrób porządny system szyfrowania i uwierzytelniania z kluczem publicznym i prywatnym. Jak ci rozsadzi procka, zmień na większy. To czego się nauczysz, będzie bezcenne.
Powodzenia!
Tomek

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2016, o 14:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Niemal codziennie potwierdza się to, o czym napisałem.
http://www.electronicsweekly.com/news/a ... y-2016-02/
Bezpieczeństwo urządzeń embedded zaczyna byc dominującym tematem. Może to jest kolejna bańka, ale same czujniki dla inteligentnego domu to w tym roku rynek na poziomie miliarda $ rocznie.
http://navigantresearch.cmail20.com/t/V ... toc_item_2
A my co na to?

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2016, o 15:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

No właśnie, a jak chłopak chce zrobić szyfrowanie, to zaraz łeeee a po co?? A po to właśnie, że jak jest problem, to za rozwiązywanie go dobrze płacą.

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO