Dobrý den všem. Začnu pozadím toho, co mě vedlo k provedení tohoto výzkumu, ale nejprve vás varuji: všechny praktické akce byly provedeny se souhlasem řídících struktur. Jakýkoli pokus použít tento materiál ke vstupu do omezené oblasti bez práva tam být je trestným činem.
Všechno to začalo, když jsem si uklízel stůl a omylem jsem přiložil RFID klíč od vchodu na čtečku ACR122 NFC - představte si mé překvapení, když... Windows Zařízení přehrálo zvuk detekce nového zařízení a LED dioda se rozsvítila zeleně. Do té doby jsem předpokládal, že tyto klávesy fungují pouze se standardem Proximity.

Ale protože to čtenář viděl, znamená to, že klíč splňuje jeden z protokolů nad rámec normy ISO 14443 (aka Near Field Communication, 13,56 MHz). Na úklid se hned zapomnělo, protože jsem viděl možnost se sady klíčů úplně zbavit a klíč od vchodu si ponechat v telefonu (byt je již dávno vybaven elektronickým zámkem). Když jsem začal studovat, zjistil jsem, že pod plastem je skrytá značka Mifare 1k NFC - stejný model jako u podnikových odznaků, dopravních karet atd. Pokusy dostat se do obsahu sektorů zpočátku nepřinášely úspěch a když byl klíč konečně prolomen, ukázalo se, že byl použit pouze 3. sektor a v něm bylo duplikováno UID samotného čipu. Vypadalo to příliš jednoduše a ukázalo se, že tomu tak je, a nebyl by žádný článek, kdyby vše šlo přesně podle plánu. Dostal jsem tedy droby klíče a nejsou žádné problémy, pokud potřebujete zkopírovat klíč na jiný stejného druhu. Úkolem ale bylo přenést klíč do mobilního zařízení, což jsem udělal. Tady začala zábava - máme telefon - iPhone SE s nainstalovaným iOS 13.4.5 Beta sestavení 17F5044d a některé vlastní komponenty pro bezproblémový provoz NFC – z řady objektivních důvodů nebudu zacházet do detailů. Pokud chcete, vše, co je popsáno níže, platí i pro tento systém. Android, ale s určitými zjednodušeními.
Seznam úkolů k řešení:
- Přístup k obsahu klíče.
- Implementujte schopnost emulovat klíč zařízením.
Zatímco první byl relativně jednoduchý, druhý přinášel problémy. První verze emulátoru nefungovala. Problém byl rychle odhalen – na mobilních zařízeních (iOS i Android) v emulačním režimu je UID dynamické a kolísá bez ohledu na to, co je v obrazu pevně zakódováno. Druhá verze (spuštěná s oprávněními superuživatele) uzamkla sériové číslo na vybrané – dveře se otevřely. Chtěl jsem ale udělat všechno perfektně a nakonec jsem sestavil kompletní emulátor, který dokázal otevřít Mifare výpisy a emulovat je. Z rozmaru jsem změnil sektorové klíče na libovolné a pokusil se otevřít dveře. A ono... OTEVŘENO! Po chvíli jsem si uvědomil, že se otevírají jakýkoli dveře s tímto zámkem, a to i ty, ke kterým se původní klíč nevešel. V tomto ohledu jsem vytvořil nový seznam úkolů, které je třeba splnit:
- Zjistěte, jaký typ ovladače je zodpovědný za práci s klávesami
- Pochopte, zda existuje síťové připojení a společná základna
- Zjistěte, proč se prakticky nečitelný klíč stává univerzálním
Po rozhovoru s inženýrem ze správcovské společnosti jsem se dozvěděl, že jednoduché ovladače Iron Logic z5r se používají bez připojení k externí síti.
Čtečka CP-Z2 MF a ovladač IronLogic z5r
Dostal jsem sadu vybavení pro experimenty:

Jak je odtud zřejmé, systém je zcela autonomní a extrémně primitivní. Nejprve jsem si myslel, že ovladač je v režimu učení - to znamená, že klíč načte, uloží do paměti a otevře dveře - tento režim se používá, když je potřeba zaznamenat všechny klíče, např. při výměně klíče. zámek v bytovém domě. Tato teorie se ale nepotvrdila - tento režim je softwarově vypnutý, propojka je v pracovní poloze - a přesto, když zařízení zvedneme, vidíme následující:
Snímek obrazovky procesu emulace na zařízení

... a ovladač signalizuje, že přístup byl udělen.
To znamená, že problém spočívá v softwaru ovladače nebo čtečky. Zkontrolujeme čtečku – funguje v režimu iButton, připojíme tedy bezpečnostní desku Bolid – budeme moci prohlížet výstupní data ze čtečky.
Deska bude později připojena přes RS232

Metodou více testů zjistíme, že čtečka v případě selhání autorizace vysílá stejný kód s: 1219191919
Situace se začíná vyjasňovat, ale v tuto chvíli mi není jasné, proč ovladač na tento kód reaguje kladně. Je předpoklad, že při naplnění databáze - náhodně nebo záměrně byla předložena karta s jinými sektorovými klíči - odeslala čtečka tento kód a kontrolér jej uložil. Bohužel nemám proprietárního programátora od IronLogic, který by se podíval do databáze klíčů řadiče, ale doufám, že se mi podařilo upozornit na skutečnost, že problém existuje. K dispozici je videoukázka práce s touto chybou zabezpečení .
PS Teorii náhodného sčítání oponuje skutečnost, že v jednom obchodním centru v Krasnojarsku se mi také podařilo otevřít dveře stejnou metodou.
Zdroj: www.habr.com
