Deň predtým som experimentoval s GnuPG keycardom a zistil som, že dobre funguje so čítačkou čipových kariet na mojom spoľahlivom T470. Karta, ktorú som si objednal obsahuje vo vnútri RFID/NFC čip kompatibilný s Mifare DESFire EV1. Jednoducho povedané, NFC je RFID so šifrovanou komunikáciou, čo zvyšuje bezpečnosť bežného RFID. Smutné na tom je, že ani RFID, ani NFC nie sú nijako prepojené s GnuPG obvodom vo vnútri karty. V podstate je to keycard, ktorý náhodou obsahuje NFC kompatibilný tag v svojom puzdre. Nie som si istý, prečo takýto produkt vôbec existuje, keďže ho nie je možné použiť na účely OpenPGP so smartfónom (ktorý má NFC bežne k dispozícii), iba s počítačom (niektoré modely vrátane môjho majú dostupnú čítačku čipových kariet). Možno je to predchodca nejakej ďalšej verzie tejto karty, kde sa funkčnosti nakoniec spoja.
Keycard je dobrý spôsob, ako uložiť kópiu kľúčov OpenPGP vrátane súkromného, keďže tento kľúč z neho nie je možné žiadnym bežným spôsobom získať späť. Čitateľná záloha kľúča by mala byť stále uložená niekde bezpečne a dotýkať sa jej len pri niekoľkých vzácnych príležitostiach, ale keycard je navrhnutý tak, aby nepredstavoval veľkú hrozbu pre bezpečnosť pri strate alebo krádeži, keďže dáta na keycarde sú úplne zablokované po niekoľkonásobnom zadaní nesprávneho hesla. Treba poznamenať, že tento konkrétny produkt toho vie oveľa viac ako len OpenPGP – napríklad generovať TOTP tokeny – ale v tomto článku sa venujem výlučne funkcionalite OpenPGP.
Môj plán bol používať kartu na notebooku aj na Androide, kde by aplikácia OpenKeychain čítala kľúče z karty cez NFC, takže by neboli uložené v súborovom systéme telefónu. Ani notebooku, čo je výhodné, keďže obe tieto zariadenia môžu byť stratené. Viem, že existuje Yubikey NEO s USB aj NFC, takže môže fungovať na oboch mojich zariadeniach, ale tvarový faktor čipovej karty mi jednoducho oveľa viac sadne.
Stav NFC na ThinkPadoch v Linuxe #
Nejako som narazil na vlákno na Reddite zmieňujúce, že niektoré modely T470 sú dodávané aj s NFC modulom. Keď som prehľadával fórum ArchWiki, nenašiel som príliš veľa informácií o používaní NFC. Takmer všetko, čo som dokázal nájsť, bola poznámka, že NFC na Linuxe na ThinkPade X1 Carbon nie je podporované od augusta 2020, čo je opäť smutné, keďže podobný postoj pravdepodobne existuje aj voči iným modelom ThinkPad (NFC nie je oficiálne podporované v Linuxe pre nedostatočný dopyt zo strany používateľov). Existuje však jedno veľmi dôležité vlákno zmieňujúce NFC pre ThinkPad P52s:
https://github.com/nfc-tools/libnfc/issues/455
Vlákno sa konkrétne venuje rovnakému zariadeniu, aké má môj ThinkPad –
058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader. Áno, obsluhuje
funkčnosť čipovej karty, ale zdá sa, že súčasne obsluhuje aj NFC. Lenovo
T470 Hardware Maintenance Manual
opisuje NFC modul na strane 58. Strana nad tým tiež uvádza, že konektory
pre modul čipovej karty sú fyzicky vedľa NFC modulu (konektory 14 a 13).
Ich blízka proximita podporuje myšlienku, že rovnaký čip Alcor AU9540
obsluhuje oboje.
Súvisiaci softvér #
Vlákno ďalej spomína príkazy na interakciu s NFC. Konkrétne príkaz
nfctool dostupný zo služby neard a nfc-list z balíka libnfc.
Existuje aj voľne súvisiaci libfreefare-git dostupný z AUR, ktorý stojí
za zmienku.
Na mojom stroji, keď je spustená pcscd.service, nfc-list dáva
nasledujúci výstup:
nfc-list uses libnfc 1.8.0
NFC device: Alcor Micro AU9540 00 00 opened
Žiaľ, žiadny tag nebol prečítaný. No keďže libnfc našlo nejaké
kompatibilné zariadenie a s vedomím, že v Linuxe to pravdepodobne nie je
podporované hneď od začiatku, otestoval som aj spustenie Windows 10 a
inštaláciu
NXP NFC Driver for Windows 10.
Všetky programy tam hlásili niečo v tom zmysle, že sa nenašiel žiadny NFC
čítač.
ThinkPad T470 User Guide
uvádza na strane 81, že v BIOS-e pod Security > I/O Port Access >
NFC device existuje nastavenie. V zozname som žiadne NFC zariadenie nemal,
čo podporuje myšlienku, že modul na mojom modeli možno vôbec nie je
prítomný.
Rozobratie #
Neexistuje lepší spôsob, ako sa presvedčiť, že modul chýba, ako to uvidieť na vlastné oči. Keďže som bol už aj tak v BIOS-e, vybral som možnosť odpojiť internú batériu, čo je odporúčaný krok pri servise.
Po otvorení som mohol vidieť, že konektor patriaci NFC modulu je prázdny, takže nebolo potrebné žiadne ďalšie overenie. Keďže bola interná batéria už odpojená, vybral som ju tiež, aby som prezrel priestor pre celú NFC časť, ktorá sa fyzicky nachádza pod internou batériou.
Dostupnosť na trhu a budúcnosť #
Prehľadávanie bežných kanálov predaja elektroniky ma priviedlo k objavu sady troch kusov pod označením 01AX745, ktorá stojí okolo 35 EUR. Sada obsahuje:
- Flex kábel spájajúci modul s doskou
- Samotný NFC modul
- Anténu
Uvažujem o objednaní celej sady, ale pred rozhodnutím, či to vôbec vzdialene stojí za investíciu, je niekoľko otázok hodných diskusie:
Bude modul fungovať s Linuxom? Niektorí používatelia vo vlákne libnfc
uviedli, že áno. Môže si to však vyžadovať nejaké úpravy jadra. Presné
podrobnosti sú stále nedostatkové.
Ak áno, bude mi na niečo? Momentálne mám na mysli nejakú automatizáciu, napríklad vykonať nejakú úlohu pri priložení tagu k notebooku. Ale to sa nezdá byť zvlášť užitočné.
Bude komunikovať s mojím telefónom? Niektoré prípady použitia notebooku odkazujú na NFC pre komunikáciu s telefónom. To by mohlo byť zaujímavé, ale stále si nie som istý, aké dáta presne by takáto komunikácia prenášala. Pre súbory som už nastavil Syncthing. Na tomto blogu som o ňom už rozsiahlo písal a som s nastavením veľmi spokojný. Je rýchly, nevyžaduje fyzickú blízkosť, len Wi-Fi. Takže používanie NFC na prenos súborov by bolo užitočné len vtedy, keď nie je v okolí bezdrôtový router. Keďže na tento účel možno použiť bežný nabíjací kábel, s NFC by som sa neobťažoval. Maximálna rýchlosť prenosu dát cez NFC je navyše pomalšia ako Bluetooth v2, okolo 2,1 Mbit/s. Nestojí to za námahu.
Mohlo by sa použiť na bezpečnostné účely? Prenos súborov odmietnutý, bezpečná komunikácia s telefónom by sa mohla použiť ako jeden z faktorov pri viacfaktorovej autentifikácii. Aj o tom som už trochu písal. Vedel by som si predstaviť, že jednoducho položím telefón na notebook namiesto toho, aby som napríklad prepisoval 6 čísel zobrazených na telefóne do počítača, čo je stále pomerne bežný postup pri TOTP (Timed One-Time Passwords). Keďže však NFC ovládač nie je v Linuxe ani len bežne podporovaný, v kombinácii s pomalou adopciou NFC na laptopoch celkovo, predpokladám, že by to vyžadovalo veľa hackovania. Ako poznámku na okraj, v tejto oblasti som zatiaľ nerobil žiadny výskum, možno to už niekto elegantne vyriešil.
Mohlo by fungovať s bezpečnostným tokenom GnuPG na báze NFC? To je pre mňa najdôležitejšia otázka. Existuje Fidesmo Card a Fidesmo Card 2.0 (v tomto bode si nie som istý rozdielom). Ale je to môj obľúbený formát čipovej karty. Fidesmo údajne funguje s OpenKeychain. Ak to ešte nie je urobené, portovanie kódu na prácu na notebooku by nemalo byť príliš ťažké, ak sú splnené požiadavky na chipset. Používanie OpenPGP keycardu za cca 15 EUR na notebooku aj telefóne zároveň mi prichodí lákavé. Nehovoriac o iných funkciách, ktoré takéto zariadenia ponúkajú, vrátane, ale nielen, bezpečného ukladania Bitcoinu, U2F dvojfaktorovej autentifikácie, PGP šifrovania e-mailov, bezpečného generovania jednorazových hesiel a podpisovania git commitov, o ktorých som tu písal.
Pred rozhodnutím o objednaní urobím ešte nejaký výskum, ale v tomto bode som veľmi nadšený.
Toto je 49. príspevok z #100daystooffload.