Mały szyfrujący scalak

Szukam układu który miałby następujące właściwości:

- możliwość jednorazowego zapisu klucza bez możliwości jego odczytu,

- na zapytanie losową wartością dostawałbym odpowiedź szyfrowaną zaprogramowanym kluczem (szyfrowanie AES lub ewentualnie jakieś inne np. XXTEA),

- interfejs I2C (ewentualnie SPI, lub jakiś inny prosty z szeregową transmisją),

- małe wymiary.

Mógłbym to zrobić na jakimś małym mikrokontrolerze, ale wolałbym jakiś gotowe rozwiązanie. Może coś zasugerować?

Reply to
Bool
Loading thread data ...

W dniu 2015-02-26 o 10:31, Bool pisze:

Możecie coś zasugerować?

Reply to
Bool

W dniu 2015-02-26 o 10:31, Bool pisze:

Sprawdź to:

formatting link

Reply to
Zbych

Mam wrażenie że chcesz tylko sprawdzić czy to coś jest twoje.

Jesli tak to prawdopodobnie szukasz czegoś podobnego do:

formatting link
Nie wymaga on zapytania. Czyli redukuje się tylko do 1 lini "scalak"->system i samodzielnie co jakiś czas wysyła kod autoryzujący do systemu. Microchip produkuje tanie scalaki.

Reply to
Sebastian Biały

Przypisy do w/w artykułu typu: "How to steal cars" albo "A complete break of the KeeLoq access control system" robią wrażenie ;)

Reply to
Marek

Bop KeeLoq jest stary. Przypuszczam że można wzmocnić szyfrowanie samemu rozbudowując długośc kluczy i zwiększając poziom mieszania. Ale jesli to urzadznie ma zapewnić np. że sterownik pieca bedzie pracował tylko z jakimś konkretnym piecem, to żaden kowalski tego nie zlamie.

Reply to
Sebastian Biały

No teraz nie jestem już taki pewien (a kiedyś byłem i podzielałem Twoje zdanie). Ostatnio zrobiła się moda na "łamanie" tudzież wyszukiwanie podatności w czymkolwiek co ma zaimplementowaną komunikację (czajnik bezprzewodowy, BMW itp.). Czasy są takie, że lepiej implementować porządną kryptografię niż taką-sobie.

Reply to
Marek

W dniu 2015-02-26 o 10:49, Zbych pisze:

Dziękuję za odpowiedź. Właśnie czegoś takiego szukałem.

Reply to
Bool

W dniu 2015-02-26 o 20:25, Sebastian Biały pisze:

Nie za bardzo rozumiem jak to działa. Przypuśćmy że chcę aby moja aplikacja weryfikowała czy jest odpalona na moim sprzęcie. Załóżmy że uruchamiam tą aplikację pod Linuxem. Scalak co jakiś czas wysyła dane i jakiś sterownik odbiera te dane i przeprowadza weryfikację?

Reply to
Bool

Kryptografia w czajniku ?

Reply to
Akond ze Skwak

Bool pisze:

To chyba Ty musisz określić czego potrzebujesz.

Reply to
AlexY

aplikacja weryfikowała czy jest

Linuxem. Scalak co jakiś czas

Twój hardware wysyła dane, które są "podpisane" (lub zaszyfrowane) kluczem znanym tylko jemu i aplikacji. Ale wtedy aplikacja jest łatwiejszym targetem na atak wydobywający klucz. Nie wiem czy bez krypt. asymetrycznej da się to zrobić zadawalająco bezpiecznie.

Reply to
Marek

formatting link
Keeloq standardowo używany jest w sytuacji nadajnik radiowy (pilot) -> odbiornik. Zadaniem szyfrowania jest nie tylko uniemożliwić obcej osobie wysłania pakietu otwierającego bramę ale rownież producent może zaszyć w scalaku własny "podpis" przez co może zarabiać na zastepczych pilotach (bo tylko podpisane zadziałają i da się je sparować zodbiornikiem). Ataki na keeloq nie są trywialne i do prostych zastosowań w zupełności wystarczy.

Reply to
Sebastian Biały

W dniu 2015-02-28 o 13:51, Marek pisze:

Czegoś nadal tu nie rozumiem. W takim dużym uproszczeniu zakładałem że u mnie wymiana informacji będzie wyglądała tak, że aplikacja wysyła jakiś losowy ciąg danych i dostaję odpowiedź z mojego hardwaeru zaszyfrowaną przy pomocy tajnego klucza. Później aplikacja ją rozszyfrowuje przy pomocy tego samego klucza i sprawdza czy odpowiedź jest poprawna.

Jeśli komunikacja jest tylko w jedną stronę hardware -> aplikacja. To skąd mam wiedzieć jak weryfikować te dane odebrane. Oczywiście mogę je odszyfrować przy pomocy tego samego klucza, którym były szyfrowane, ale skąd mam wiedzieć co one oznaczają. Dodatkowo ktoś może podsłuchać tą transmisję i dobudować układ, który będzie wysyłał dokładnie takie same ramki danych.

Reply to
Bool

że u mnie wymiana informacji

i dostaję odpowiedź z mojego

aplikacja ją rozszyfrowuje przy pomocy

To skąd mam wiedzieć jak

pomocy tego samego klucza, którym

ktoś może podsłuchać tą

same ramki danych.

Poczytaj jak się zabezpieczyć przed reply attack. Wprowadza się nr sekwencyjne. Odbiorca odrzuca dane jeśli mają ten sam nr. Sekwencja może być rosnąca/malejąca whatever. W keeloq (i w podobnych) masz kod sekwencyjny zabezpieczający przed atakiem powtórzeniowym. No i oczywiście losowy wektor inicjujący aby zabezpieczyć się w przpadku szyfrowania pakietów danych zawierających w początkowych blokach te same dane.

Reply to
Marek

Ano. Sa czajniki sterowane komorka.

Pozdrawiam

Marek

Reply to
Marek Borowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.