Jak radzić sobie z podróbkami baterii?

| Technika

Akumulatorki licznych urządzeń przenośnych coraz częściej wymagają potwierdzenia ich autentyczności. Pojawia się coraz więcej doniesień o przegrzewających się, a nawet eksplodujących bateriach w tak powszechnie używanych urządzeniach, jak komputery, czy telefony komórkowe baterii. Skala tego problemu okazuje się znaczna, a baterie nadal eksplodują i wywołują uszkodzenia ciała.

Jak radzić sobie z podróbkami baterii?

Doniesienia o pojawianiu się niecertyfikowanych baterii nie ograniczają się do telefonów komórkowych i komputerów przenośnych. Awarie zdarzają się także w komputerkach przenośnych PDA, ładowarkach, kamerach cyfrowych, urządzeniach rozrywkowych, przyrządach przenośnych, narażonych na kontakt z niebezpiecznymi bateriami. Podstawową przyczyną ich awarii są wady produkcyjne. Należy tu wyraźnie stwierdzić, że oryginalni ich producenci zazwyczaj nie są za to odpowiedzialni. Pośredni dostawcy, zwłaszcza producenci działający w szarej strefie, dostarczają ich jako atrakcyjnych, tańszych zamienników. Często oznakowanie opakowań i znajdujących się w nich baterii niemal niczym nie różnią się od oryginalnych. Ekspert może je rozróżnić, ale nie wszyscy są ekspertami.

Rys. 1. Bateria zasila przenośne urządzenie połączeniem bezpośrednim. Połączenie to obejmuje kanał łączności, przenoszący kod uwierzytelniania baterii, a także informację o jej "dobroci"

W tej sytuacji producenci OEM starają się zorganizować obronę przez fałszerstwami przez zaopatrzenie swoich produktów w środki, uwierzytelniające je programowo i sprzętowo. Zapewnia to ochronę przed niebezpieczeństwem oraz osłonę marki fabrycznej i własności intelektualnej. Oprogramowanie w kontrolerze lub procesorze realizuje procedurę uwierzytelniania w ładowarce, a także w samym pakiecie baterii (rys. 1). Zabezpieczenie sprzętowe chroni przed zwarciem, przegrzaniem, czy nadmiernym rozładowaniem. W razie stwierdzenia któregoś z tych stanów, sygnalizuje go użytkownikowi albo całkowicie wyłącza urządzenie. Potwierdzenie autentyczności akumulatora realizuje oprogramowanie hosta tak jak pokazano to na rys. 1. Jest ono charakteryzowane przez złożoność obliczeniową, długość bitową zapytania i odpowiedzi oraz klucze szyfracji i deszyfracji.

Przykładową skuteczną techniką uwierzytelniania baterii może być znana z lotnictwa wojskowego technika IFF (Identify Friend or Foe - sprawdź: przyjaciel czy wróg), która upraszcza proces sprawdzenia, stosując formuły obliczane zamiast raz ustalonych. W tym prostym systemie kontroler hosta zapytuje baterię wysyłając dużą liczbę. Kontroler w baterii oblicza odpowiedź i przesyła ją do hosta. Host porównuje ją z obliczoną. Powtarzanie kilkukrotnie tej procedury zwiększa poziom bezpieczeństwa i wiarogodności.

IFF jest wojskową techniką, używaną do identyfikacji i uwierzytelniania zbliżających się samolotów. W systemie IFF różne bazy wojskowe wysyłały do nadlatujących samolotów cyfrowe zapytanie, odczekiwały na ich cyfrową odpowiedź, i sprawdzały ją przygotowanym obliczeniem matematycznym. Na tej podstawie następowała identyfikacja samolotów, czy są sprzymierzone, czy wrogie.

Obecnie technika ta jest używana w systemie opartym na transponderze, w którym host wysyła do transpondera losowe zapytanie, czeka na odpowiedź, a następnie weryfikuje jej wiarogodność, wykonując to samo obliczenie. W większości systemów do obliczania odpowiedzi używa się zdefiniowanego równania matematycznego (algorytmu) i unikalnej informacji systemowej (klucza szyfrującego).

Tabela 1. Przykładowe algorytmy używane przy sprawdzaniu autentyczności komponentów elektronicznych

Łączność hosta z baterią ma służyć do uwierzytelnienia baterii. Łatwo do tego zastosować stałe hasła i nazwy użytkownika, ale przesyłanie ich w nieszyfrowanym formacie jest bardzo niekorzystne. Istnieje obawa, że nieupoważniony użytkownik może te dane odczytać, a następnie odtwarzać. W innym systemie stosuje się metodę kryptografii symetrycznej z weryfikacją połączenia. Jest on prosty, ale stosunkowo bezpieczny. Host do uwierzytelniania stosuje tajność typu wspólnego (klucz i hasło), a tajna informacja nie jest przesyłana siecią. Proces uwierzytelniania dokonywany jest przez:

  • przyłączenie baterii,
  • przesłanie przez hosta do baterii wygenerowanej losowo liczby,
  • otrzymanie przez baterię tej liczby od hosta, zaszyfrowanie jej przy użyciu klucza (tajność wspólna) i wysłanie jej z powrotem do hosta.

Host otrzymuje więc zaszyfrowaną liczbę, którą uprzednio wysłał do baterii, i porównuje hasło ze swoim. Jeśli odpowiedź jest poprawna, bateria zostaje połączona. Jeśli nie, host kończy połączenie. Na tab. 1 zestawiono podstawowe charakterystyki kilku popularnych algorytmów szyfrujących, jakie mogą być wykorzystane do realizacji procesu sprawdzenia.

Szyfrowanie Keeloq

Szyfr Keeloq jest techniką typu code-hopping firmy Microchip, opartą na symetrycznym algorytmie szyfrującym o 32-bitowym bloku, używającym 64-bitowego klucza szyfrującego. Technika ta może być używana w aplikacjach uwierzytelniających w różnych systemach, od systemów kontroli dostępu typu Remote Key Entry (RKE) i Passive Keyless Entry (PKE), do prostego uwierzytelniania firmowego. Wykonywanie kodu Keeloq trwa 16k cykli, jeśli używa się mikrokontrolera PIC16C62x firmy Microchip (tab. 1). Szyfr ten nie jest oparty na mieszaniu, w którym sumę kontrolną lub sygnaturę oblicza się z różnych danych wejściowych, ale na możliwości odzyskiwania aktualnych danych wejściowych przez odwrotne stosowanie algorytmu (szyfrowanie-deszyfrowanie). Stosunkowo krótki kod, z 47 słów, umożliwia stosowanie mniejszych mikrokontrolerów, takich jak PIC10F, mieszczącego się w obudowie SOT-23 o 6 wyprowadzeniach.

Obliczenia matematyczne w technice Keeloq nie są tajne. Jej bezpieczeństwo polega na uniemożliwieniu dostępu do danych wejściowych i ich powiązań z danymi wyjściowymi. Algorytmy bezpieczeństwa analizuje się na podstawie ich nieliniowej natury, która utrudnia odkrycie sekwencji zestawów par danych wejściowych i wyjściowych, tak jak i długości szyfrowanych danych i długości klucza szyfrującego. Im większy jest rozmiar danych oraz wielkość kluczy szyfrujących, tym istnieje większa liczba możliwych kombinacji. Na tyle zwiększa to czas potrzebny do przeprowadzenia ataku siłowego (przez próbowanie wszystkich kombinacji), że staje się on niewykonalny. Algorytm Keeloq jest analizowany ze względu na siłę obliczeń matematycznych. Łączy ona 32 bity danych z 64 bitami klucza, tworząc algorytm wystarczający dla kontroli dostępu i identyfikacji własności. Bezpieczeństwo zależy od długości algorytmu i sposobu operowania kluczami szyfrującymi.

Zarządzanie kluczami obejmuje sposób, w który system bezpieczeństwa wyznacza unikalny klucz szyfrujący, będący częścią algorytmu dla danego urządzenia. Jednym z tych sposobów jest użycie ogólnego kodu systemowego producenta, przechowywanego w pamięci każdego hosta, i dobrze zabezpieczonego w czasie produkcji. Kod ten tworzy klucz szyfrujący danej jednostki podsystemu (np. baterii) z odczytanego jej numeru identyfikacyjnego (lub seryjnego). Jednostka podsystemu ma dostęp do swojego numeru seryjnego i unikalnego klucza szyfrującego, dobrze zabezpieczonego i zaprogramowanego w czasie produkcji we własnej pamięci nieulotnej.

Użycie tylko 32-bitowej liczby do obliczania par zapytanie-odpowiedź tworzy 4,3 miliardy możliwych kombinacji. Jeśli nie wydaje się to dostatecznie dużą liczbą, to należy jeszcze wziąć pod uwagę fakt, że w algorytmie Keeloq stosuje się unikalny 64-bitowy klucz dla każdej jednostki, uzyskiwany z jej kodu producenckiego. W kombinacji z wyznaczanym przez hosta tworzonym losowo i zawsze zmieniającym się 32-bitowym zapytaniem, zwiększa to liczbę możliwych permutacji do 264·232 = 296, co niewątpliwie jest liczbą bardzo dużą. Host oprócz tego może realizować wielostopniową procedurę uwierzytelniania, w której jest potrzebne więcej niż jedno obliczenie 32-bitowego zapytania i odpowiedzi do uzyskania uwierzytelnienia i ewentualnie dodawać opóźnienie czasowe do odpowiedzi negatywnej, co znacznie przedłuża czas testowania licznych kombinacji.

Tiny Encryption Algorithm

Tiny Encryption Algorithm, TEA, został opracowany przez Davida Wheelera i Rogera Needhama i opiera się na symetrycznym algorytmie szyfrującym o 64-bitowym bloku, używającym 128-bitowego klucza szyfrującego. Wykonywanie kodu w TEA jest szybsze niż w Keeloq, i zajmuje 6,5k cykli, jeśli używa się mikrokontrolera PIC16C62x firmy Microchip (tab. 1), ale szybkość nie jest ważnym czynnikiem w zastosowaniu do baterii. Szyfr ten nie jest oparty na mieszaniu, w którym sumę kontrolną lub sygnaturę oblicza się z różnych danych wejściowych, ale na możliwości odzyskiwania aktualnych danych wejściowych przez odwrotne stosowanie algorytmu (szyfrowanie-deszyfrowanie). Wielkość kodu 240 słów czyni TEA nieprzydatnym do mniejszych mikrokontrolerów.

W TEA klucz szyfrujący ma 128 bitów. Z tego powodu nie ma praktycznej możliwości odnalezienia klucza przez skanowanie par liczb zapytanie-odpowiedź. Klucz ten mógłby zostać przejęty jedynie w razie kradzieży jednego z hostów. W takim przypadku w czasie ustawiania hosta należy zmienić standardowe hasło. Do TEA może także się zdarzyć włamanie, gdy używa się prostych haseł, typu „duch” lub „imię mojej żony”.

Tiny Encryption Algorithm wersji 2 (XTEA) jest mniejszy od TEA. XTEA opracowano z potrzeby poprawienia słabej struktury TEA. Bezpieczeństwo XTEA zostało wzmocnione przez zwiększenie liczby wykonywanych iteracji szyfrowania. Dla maksymalnego bezpieczeństwa zaleca się stosowanie 64 iteracji, ale 32 wystarcza na kilka dekad, a 16 w przypadku aplikacji o mniejszych wymaganiach bezpieczeństwa.

Data Encryption Standard

Data Encryption Standard (DES) jest techniką używaną przez organizacje federalne w USA. Opiera się na symetrycznym algorytmie szyfrującym o 64-bitowym bloku, używającym 56-bitowego klucza szyfrującego. Wykonywanie kodu DES trwa 10,4k cykli, jeśli używa się mikrokontrolera PIC18F242 firmy Microchip (tab. 1). Również ten szyfr nie jest oparty na mieszaniu, w którym sumę kontrolną lub sygnaturę oblicza się z różnych danych wejściowych, ale na możliwości odzyskiwania aktualnych danych wejściowych przez odwrotne stosowanie algorytmu (szyfrowanie-deszyfrowanie). Stosunkowo długi kod, 1171 słów, uniemożliwia jego użycie z małymi mikrokontrolerami.

Klucz składa się z 64 bitów (zer lub jedynek), 56 z których jest generowanych losowo i bezpośrednio używanych przez algorytm. Pozostałe 8 bitów, nieużywanych przez algorytm, służy do wykrywania błędów. Tych 8 bitów, jest używanych do ustalania parzystości każdego z 8-bitowych bajtów tak, że w każdym 8-bitowym bajcie jest nieparzysta liczba jedynek. Upoważnieni użytkownicy zaszyfrowanych danych komputerowych, do ich odszyfrowania muszą posiadać klucz, którym je zaszyfrowano. W standardzie tym używa się ogólnie znanego algorytmu szyfrującego. Wybrany dla danej aplikacji unikalny klucz, służy do szyfrowania danych za pomocą algorytmu. Wyniki szyfrowania tych samych danych różnymi kluczami są różne. Kryptograficzne bezpieczeństwo danych zależy od bezpieczeństwa klucza używanego do szyfrowania i deszyfrowania danych.

Dane mogą zostać uzyskane z szyfru jedynie przez użycie tego samego klucza, który został użyty do ich zaszyfrowania. Nieupoważnieni odbiorcy szyfru, znający algorytm, ale nie znający właściwego klucza, nie mogą algorytmicznie odtworzyć oryginalnych danych, tak jak każdy znający algorytm i klucz. Standardowy algorytm oparty na bezpiecznym kluczu stanowi podstawę do wymieniania się zaszyfrowanymi danymi komputerowymi, przez udostępnianie klucza użytego do szyfrowania, tym, którzy są upoważnieni do dysponowania danymi.

Advanced Encryption Standard

Advanced Encryption Standard (AES) jest udoskonaloną techniką DES. Podobnie opiera się na symetrycznym algorytmie szyfrującym o 128-bitowym bloku, używającym 1286-bitowego klucza szyfrującego. Czas wykonywania tego kodu zajmuje 7,3k cykli na PIC16C628. W szyfrze tym również odzyskuje się aktualne dane wejściowe przez odwrotne stosowanie algorytmu (szyfrowanie-deszyfrowanie). Kod złożony z 1100 słów nadaje się do użytku tylko z większymi mikrokontrolerami.

AES zastępuje DES i Triple DES. AES ma stosunkowo krótki klucz, 56-bitowy, i jest podatny na ataki siłowe. Początkową motywacją powstania AES było przyspieszenie czasu procesora, aby zredukować podatność na ataki, i uczynić go bardziej nadającym się dla platform o ograniczonych zasobach. Algorytm AES jest zwykle używany z mikrokontrolerami PIC18F i DSP dsPIC firmy Microchip.

Zakończenie

Istnieje wiele publicznych algorytmów uwierzytelniania (Message-Authentication Code, MAC), które obliczają nieodwracalne, bezkolizyjne odpowiedzi o wysokim stopniu wiarygodności. Trzeba jednak wiedzieć, że niektóre algorytmy szyfrujące mogą dostarczać tych samych odszyfrowanych rezultatów za pomocą różnych kombinacji danych wejściowych. Obniża to całkowitą liczbę możliwych kombinacji potrzebnych do złamania algorytmu.

Bonnie C. Baker