Goto page 1, 2 Next
Bool
Guest
Thu Feb 26, 2015 10:31 am
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ć?
Bool
Guest
Thu Feb 26, 2015 10:43 am
W dniu 2015-02-26 o 10:31, Bool pisze:
Quote:
Może coś zasugerować?
Możecie coś zasugerować?
Zbych
Guest
Thu Feb 26, 2015 10:49 am
W dniu 2015-02-26 o 10:31, Bool pisze:
Quote:
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ć?
Sprawdź to:
http://www.atmel.com/products/security-ics/cryptoauthentication/
Sebastian BiaĹy
Guest
Thu Feb 26, 2015 8:25 pm
On 2015-02-26 10:31, Bool wrote:
Quote:
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),
Mam wrażenie że chcesz tylko sprawdzić czy to coś jest twoje.
Jesli tak to prawdopodobnie szukasz czegoś podobnego do:
http://pl.wikipedia.org/wiki/KeeLoq
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.
Marek
Guest
Thu Feb 26, 2015 11:57 pm
On Thu, 26 Feb 2015 20:25:27 +0100, Sebastian
Biały<heby@poczta.onet.pl> wrote:
Quote:
http://pl.wikipedia.org/wiki/KeeLoq
Przypisy do w/w artykułu typu:
"How to steal cars" albo "A complete break of the KeeLoq access
control system" robią wrażenie ;)
--
Marek
Sebastian BiaĹy
Guest
Fri Feb 27, 2015 7:14 pm
On 2015-02-26 23:57, Marek wrote:
Quote:
http://pl.wikipedia.org/wiki/KeeLoq
Przypisy do w/w artykułu typu:
"How to steal cars" albo "A complete break of the KeeLoq access control
system" robią wrażenie
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.
Marek
Guest
Sat Feb 28, 2015 1:42 am
On Fri, 27 Feb 2015 19:14:19 +0100, Sebastian
Biały<heby@poczta.onet.pl> wrote:
Quote:
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.
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.
--
Marek
Bool
Guest
Sat Feb 28, 2015 1:06 pm
W dniu 2015-02-26 o 10:49, Zbych pisze:
Quote:
Dziękuję za odpowiedź. Właśnie czegoś takiego szukałem.
Bool
Guest
Sat Feb 28, 2015 1:12 pm
W dniu 2015-02-26 o 20:25, Sebastian Biały pisze:
Quote:
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.
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ę?
Akond ze Skwak
Guest
Sat Feb 28, 2015 1:31 pm
Quote:
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.
Kryptografia w czajniku ?
AlexY
Guest
Sat Feb 28, 2015 1:42 pm
Bool pisze:
Quote:
W dniu 2015-02-26 o 20:25, Sebastian Biały pisze:
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.
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ę?
To chyba Ty musisz określić czego potrzebujesz.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
Marek
Guest
Sat Feb 28, 2015 1:51 pm
On Sat, 28 Feb 2015 13:12:45 +0100, Bool <nospam@nospam.com> wrote:
Quote:
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ę?
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.
--
Marek
Sebastian BiaĹy
Guest
Sat Feb 28, 2015 2:10 pm
On 2015-02-28 13:12, Bool wrote:
Quote:
W dniu 2015-02-26 o 20:25, Sebastian Biały pisze:
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.
Nie za bardzo rozumiem jak to działa.
http://ww1.microchip.com/downloads/en/AppNotes/91002a.pdf
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.
Bool
Guest
Sat Feb 28, 2015 2:21 pm
W dniu 2015-02-28 o 13:51, Marek pisze:
Quote:
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.
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.
Marek
Guest
Sat Feb 28, 2015 2:44 pm
On Sat, 28 Feb 2015 14:21:02 +0100, Bool <nospam@nospam.com> wrote:
Quote:
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.
Quote:
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.
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.
--
Marek
Goto page 1, 2 Next