-
Data: 2018-03-13 19:39:22
Temat: Re: PKI a weryfikacja krótkiego podpisu (3 bajty)
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Tuesday, March 13, 2018 at 5:11:54 PM UTC+1, Adam Wysocki wrote:
> Cześć,
>
> Może Wy mnie naprowadzicie.
>
> Potrzebuję w określonej sytuacji wygenerować użytkownikowi 8-cyfrowy kod
> (ostatecznie cyfr może być więcej, ale raczej nie więcej niż 10), który
> zostanie zweryfikowany przez urządzenie i zostanie wykonana określona
> akcja. Ten kod musi być przeznaczony tylko dla tego urządzenia i ważny
> tylko przez określony czas (założyłem, że dwa dni wystarczą; użytkownik
> nie ma możliwości manipulacji datą na urządzeniu).
>
> Wymyśliłem, żeby podczas generacji złożyć do kupy nr seryjny urządzenia,
> aktualną datę, dorzucić do tego sekretny klucz, zrobić skrót SHA-256,
> wziąć pierwsze cztery bajty, zamienić je do postaci dziesiętnej i
> ewentualnie obciąć lub dopełnić zerami. Urządzenie podczas weryfikacji
> zrobiłoby to samo (a jak weryfikacja się nie uda, to dla daty dnia
> poprzedniego).
>
> Problem jest tylko taki, że sekretny klucz musi być również na urządzeniu,
> czyli potencjalnie do wyciągnięcia z urządzenia lub np. z plików update'u
> (zaszycie go gdzieś mi się nie podoba, bo on nadal tam będzie). Chciałbym,
> żeby go nie było.
>
> Pierwsze, o czym pomyślałem, to użycie kryptografii asymetrycznej i
> wrzucanie na urządzenia kluczy publicznych, a do generacji używanie klucza
> prywatnego. Wtedy podpisywałbym wspomniane dane tym kluczem (wtedy już bez
> sekretnego klucza symetrycznego), a urządzenie mogłoby sobie ten podpis
> zweryfikować.
>
> Tylko czy jest jakiś sposób, żeby przesłać sygnaturę w postaci niecałych
> czterech bajtów (8 cyfr 0-9), ewentualnie całych (jak zwiększę liczbę cyfr
> do 10)? Przecież urządzenie jej nie wygeneruje i nie obetnie sobie, żeby
> ręcznie porównać zgodność, tak jak w przypadku wspomnianego wcześniej
> skrótu.
>
> Macie jakiś pomysł, jak to inaczej zrealizować, żeby klucz, który może
> zostać użyty do generacji nowych kodów, nie znajdował się na urządzeniu?
>
> To nie jest bardzo krytyczne i jeśli nie uda się znaleźć rozwiązania, to
> zostanę przy tym pierwszym. Po prostu chciałbym to zrobić dobrze i zgodnie
> ze sztuką.
Jeśli jest ryzyko że ktoś wyciągnie dane dające się zdekodować z urządzenia,
to w urządzeniu powinny być przechowywane tylko funkcje skrótu - tak jest
np. w logowaniu do linuxa. Dlaczego nie możesz zastosować takiego rozwiązania?
Pozdrawiam
Następne wpisy z tego wątku
- 13.03.18 19:50 Roman Tyczka
- 13.03.18 20:09 M.M.
- 13.03.18 20:22 Roman Tyczka
- 14.03.18 09:40 Adam Wysocki
- 14.03.18 10:52 Roman Tyczka
- 14.03.18 12:12 M.M.
- 14.03.18 12:19 M.M.
- 14.03.18 12:29 Roman Tyczka
- 14.03.18 12:38 Adam Wysocki
- 14.03.18 12:45 Adam Wysocki
- 14.03.18 13:03 Adam Wysocki
- 14.03.18 13:07 Adam Wysocki
- 14.03.18 14:47 M.M.
- 14.03.18 14:53 Adam M
- 14.03.18 21:07 Adam Wysocki
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-05-01 Białystok => Inżynier DevOps (Kubernetes, AWS) <=
- 2024-05-01 Berlin => IT Network Engineer <=
- 2024-05-01 Poznań => Java Developer <=
- 2024-05-01 Wrocław => AI Specialist <=
- 2024-05-01 Bieruń => Administrator i wdrożeniowiec Lotus Notes/Domino <=
- 2024-05-01 Kraków => Senior Rust Software Engineer <=
- 2024-05-01 Gdańsk => Senior PHP Developer (Symfony) <=
- 2024-05-01 Trzecia płeć 2
- 2024-05-01 Lublin => Java Full Stack Developer (AI area projects) <=
- 2024-05-01 Lublin => Java Full Stack Developer (projekty w obszarze AI) <=
- 2024-05-01 twardy dysk stuka
- 2024-04-30 Oclenie alkalicznych akumulatorów
- 2024-04-30 Zniknął dźwięk na tylnym panelu
- 2024-04-30 Białystok => Inżynier DevOps (projekt JP) <=
- 2024-04-30 Kraków => Mid PHP Developer (Laravel) <=