Een USB-stick hoeft zich niet per se als een USB-stick te gedragen

USB-stick die zo is geconfigureerd dat hij zich anders gedraagt dan standaard verwisselbare opslag

De meeste mensen denken dat ze wel weten wat er gaat gebeuren wanneer ze een USB-stick in een computer steken. Er verschijnt een stationsletter, er wordt een bepaalde opslagcapaciteit weergegeven en je kunt bestanden erop zetten of er weer vanaf halen. Dat is wat een USB-stick doet.

Behalve dat hij zich helemaal niet per se zo hoeft te gedragen.

USB-opslag wordt niet alleen bepaald door de NAND-flash die in de kunststof behuizing zit. Tussen de USB-connector en dat NAND-geheugen bevindt zich een controller, en die controller speelt een belangrijke rol bij het bepalen hoe het apparaat zichzelf identificeert en hoe de hostcomputer ermee communiceert.

Daar wordt het interessant, want een USB-stick kan volkomen normale NAND-flash bevatten en zich tegelijkertijd aan de computer presenteren als iets heel anders.

Een voorbeeld is een USB-stick die op het niveau van de hardwarecontroller zo is geconfigureerd dat hij zich gedraagt als een CD-ROM-apparaat.

En nee, het gaat er niet simpelweg om dat de bestanden alleen-lezen worden gemaakt.

De computer weet eigenlijk niet wat er in de stick zit

Wanneer je een USB-apparaat in een computer steekt, kijkt het besturingssysteem niet op de een of andere manier door de kunststof behuizing heen om daar NAND-flash te ontdekken. Er vindt een gesprek plaats tussen de USB-host en het apparaat, waarbij het apparaat informatie geeft over wat het is en hoe de computer ermee moet communiceren.

Zie het een beetje als iemand die naar de immigratiebalie op een luchthaven loopt.

Die persoon toont legitimatie die in feite zegt:

“Ik ben dit type apparaat. Zo identificeer ik mezelf. Dit soort functies bied ik. En zo communiceer je met mij.”

Bij een USB-stick wordt een groot deel van dat gesprek door de controller afgehandeld.

Bij een gewone USB-stick presenteert de controller de opslag op een manier die het besturingssysteem herkent als schijfachtige opslag. Windows, Linux of macOS laadt vervolgens de juiste ondersteuning en communiceert op die manier met het apparaat.

Maar de NAND-flash zelf hoeft helemaal niet op die manier te worden gepresenteerd.

Een controller die is ontworpen en geconfigureerd voor CD-ROM-emulatie kan NAND-flash gebruiken en daaruit een logisch opslagapparaat beschikbaar stellen dat zich als optische media gedraagt. Vanuit het perspectief van de hostcomputer kan die daardoor ineens te maken hebben met iets dat veel meer op een CD-ROM-apparaat lijkt dan op een gewone beschrijfbare USB-stick.

Het maakt de computer eigenlijk niet zoveel uit dat de fysieke opslag eronder in werkelijkheid NAND-flash is.

Dat is juist het fascinerende eraan.

De fysieke opslagtechnologie en het opslagapparaat dat aan de computer wordt gepresenteerd hoeven niet noodzakelijk hetzelfde te zijn.

Dit is ook waar het onderscheid tussen softwaretrucs en echt gedrag op controllerniveau belangrijk wordt. We hebben dat verschil uitgebreider behandeld in onze uitleg over USB CD-ROM-emulatie en firmware- versus softwaremethoden. De korte versie is dat het veranderen van de manier waarop een controller opslag presenteert fundamenteel iets anders is dan alleen een bestandsattribuut aanpassen of via software een ISO-bestand koppelen.

Zie het als een gebouw met een ander bord op de deur

Stel je één fysiek gebouw voor.

Zet buiten een bord met BANK erop, en bezoekers lopen naar binnen met de verwachting dat ze loketten, rekeningen, stortingen en opnames aantreffen.

Verander het bord in BIBLIOTHEEK, en mensen benaderen exact hetzelfde gebouw met een totaal andere verwachting. Ze lopen niet naar de balie om geld te proberen storten. Ze zoeken boeken en verwachten de regels van een bibliotheek.

Het gebouw zelf hoeft helemaal niet te zijn veranderd.

Wat wel is veranderd, is de identiteit die wordt gepresenteerd en de regels die bij die identiteit horen.

Een USB-controller kan conceptueel iets soortgelijks doen.

De onderliggende opslag kan nog steeds NAND-flash zijn, maar in plaats van die te presenteren als gewone beschrijfbare schijfachtige opslag, kan de controller een logisch apparaat presenteren dat het besturingssysteem begrijpt als opslag in CD-ROM-stijl.

Het besturingssysteem reageert daar vervolgens op de juiste manier op.

Dit is een belangrijk onderscheid, want CD-ROM-media op een USB-stick creëren is niet hetzelfde als in Windows op een bestand klikken en “Alleen-lezen” selecteren.

Het is ook niet noodzakelijk hetzelfde als bij gewone USB-opslag schrijfbewerkingen blokkeren.

Die benaderingen proberen te bepalen wat iemand met een opslagapparaat kan doen.

CD-ROM-emulatie gaat een stap verder door te veranderen welk type opslagapparaat überhaupt aan de host wordt gepresenteerd.

Waarom zou iemand dit willen doen?

Op het eerste gezicht klinkt het nogal achterhaald om een moderne USB-stick zo te configureren dat hij zich gedraagt als technologie uit het CD-ROM-tijdperk.

Maar er zijn een paar verrassend praktische redenen om dit juist wel te doen.

Denk bijvoorbeeld aan een industriële machine die 15 of 20 jaar geleden is gebouwd.

De servicesoftware ervan kan zijn ontwikkeld in een periode waarin CD-ROM-stations overal aanwezig waren. De toepassing verwacht misschien dat updates, kalibratiebestanden, installatiepakketten, referentiemateriaal of herstelhulpmiddelen via optische media worden aangeleverd.

Uiteindelijk begeeft het fysieke CD-station het.

Vervangende optische stations worden moeilijker te vinden. Gebrande schijven onderhouden wordt onhandig. Misschien is de oorspronkelijke computer het niet waard om vervangen te worden, maar de industriële apparatuur die ermee verbonden is absoluut wel.

Die computer vervangen kan bovendien een heel ander probleem veroorzaken. Industriële systemen zijn niet altijd omgevingen waar je even een nieuwe pc neerzet, een paar programma’s kopieert en vervolgens zegt dat je dinsdagmiddag klaar bent.

Er kunnen gespecialiseerde drivers zijn, propriëtaire hardware, validatievereisten, certificeringskwesties of software die al jaren niet is bijgewerkt omdat die gewoon al die tijd prima zijn werk heeft gedaan.

De machine kan 100.000 dollar waard zijn terwijl de computer die hem aanstuurt een besturingssysteem draait dat de meeste mensen niet meer hebben gezien sinds hun kinderen op de basisschool zaten.

Dat is het moment waarop compatibiliteit waardevoller wordt dan iets nieuws.

Een USB-apparaat dat zichzelf op de juiste manier als optische media kan presenteren, kan mogelijk een brug vormen tussen die verschillende generaties technologie.

In plaats van de oude toepassing opnieuw te schrijven zodat die moderne opslag begrijpt, laat je moderne opslag de taal spreken die de oude toepassing al kent.

Bij CD-ROM-emulatie gaat het minder om doen alsof je een cd bent en meer om CD-ROM spreken tegen een computer die verwacht precies die taal te horen.

Embedded systemen kunnen nog veel kieskeuriger zijn

Moderne desktopbesturingssystemen zijn opmerkelijk flexibel.

Steek een gewone USB-stick in een actuele Windows-computer en de kans is behoorlijk groot dat Windows begrijpt wat het apparaat is en je toegang geeft tot de bestanden.

Embedded systemen kunnen een heel ander beest zijn.

Denk aan CNC-machines, diagnoseapparatuur, laboratoriuminstrumenten, productiesystemen, kiosken, apparatuur voor autoservice, kassasystemen en gespecialiseerde meetapparatuur.

Veel van deze machines zijn niet ontworpen als computers voor algemeen gebruik.

De programmeurs wisten exact wat de machine moest doen, exact welke hardware die zou gebruiken en in veel gevallen ook exact op welke manier informatie moest worden aangeleverd.

Er was weinig reden om een prachtig flexibele opslagroutine te schrijven die elk apparaat aankon dat iemand misschien 20 jaar later ooit op de machine zou aansluiten.

Als in de oorspronkelijke specificatie stond dat software via CD-ROM zou worden aangeleverd, dan is dat waar de programmeur het systeem omheen heeft ontworpen.

Het systeem kan daardoor aannames doen over het type apparaat, het gedrag van het medium, de bestandssysteemstructuur, logische eenheden of andere eigenschappen van het opslagapparaat.

En precies daar wordt emulatie veel meer dan alleen een aardige technische truc.

In plaats van het hostsysteem te veranderen, verander je wat het USB-apparaat tegen de host zegt dat het is.

Voor oude of gespecialiseerde apparatuur die duur, moeilijk of onmogelijk aan te passen is, kan dat een bijzonder nuttige optie zijn.

Een USB-stick is meer dan een connector en wat geheugen

Dit legt ook een van de interessantere misverstanden over USB-sticks bloot.

Het is makkelijk om een USB-stick voor te stellen als een eenvoudige vergelijking:

USB-connector + NAND-flash = USB-stick

Maar in die vergelijking ontbreekt een belangrijk onderdeel.

De controller.

De USB-controller zit tussen de hostcomputer en het NAND-flashgeheugen. Een van zijn taken is vertalen tussen wat de host vraagt en wat er daadwerkelijk binnen de flashopslag gebeurt.

De controller helpt ook bepalen hoe het apparaat zichzelf identificeert, hoe de opslag beschikbaar wordt gesteld, welke eigenschappen worden gemeld en hoe het apparaat reageert op opdrachten van de host.

Dat betekent dat twee USB-apparaten met vergelijkbare NAND-flash zich heel anders kunnen gedragen wanneer ze op exact dezelfde computer worden aangesloten.

Het ene apparaat kan zich presenteren als conventionele verwisselbare opslag.

Een ander kan zo zijn geconfigureerd dat het zich als een vaste schijf gedraagt.

Een andere implementatie kan een logische CD-ROM-eenheid beschikbaar stellen.

En sommige controllerarchitecturen kunnen iets nog interessanters doen: meerdere logische opslagapparaten via één fysieke USB-verbinding beschikbaar stellen.

Eén USB-stekker kan naar twee verschillende kamers leiden

Stel je voor dat je één USB-stick op een computer aansluit.

De computer ontdekt een gebied in CD-ROM-stijl met:

INSTALLATIEPROGRAMMA
HANDLEIDINGEN
DRIVERS
HERSTELTOOLS

Maar hetzelfde fysieke USB-apparaat biedt ook conventionele beschrijfbare opslag met:

LOGBESTANDEN
RAPPORTEN
CONFIGURATIEBESTANDEN
GEBRUIKERSGEGEVENS

Er is nog steeds maar één USB-connector en één fysiek apparaat dat je in je hand houdt.

Logisch gezien heeft de computer echter twee verschillende opslagomgevingen gekregen, ontworpen voor twee verschillende taken.

Het CD-ROM-gedeelte kan het originele door de fabrikant gepubliceerde materiaal bevatten, terwijl het beschrijfbare gedeelte beschikbaar blijft voor informatie die tijdens gebruik in het veld wordt gegenereerd.

Een technicus kan één apparaat bij zich dragen met de oorspronkelijke diagnosesoftware en servicedocumentatie, terwijl hij een ander gedeelte van datzelfde apparaat gebruikt om testresultaten, apparatuurlogs of klantspecifieke configuratiebestanden op te slaan.

Het onderscheid hier is belangrijk.

Dit is niet simpelweg hetzelfde als een gewone USB-stick in twee partities verdelen.

Partities verdelen de capaciteit van een schijfachtig opslagapparaat. Beide partities maken nog steeds deel uit van hetzelfde basistype opslagomgeving.

Een USB-controller kan in plaats daarvan meerdere logische eenheden beschikbaar stellen, soms LUNs genoemd, waardoor één fysiek apparaat duidelijk verschillende opslagidentiteiten aan de host kan presenteren. We hebben een aparte uitleg over LUNs versus partities en waarom één USB-stick als twee schijven kan verschijnen voor lezers die nog wat verder dat konijnenhol in willen.

CD-ROM-emulatie kan dus het gedrag en de identiteit veranderen van het logische opslagapparaat dat aan de host wordt gepresenteerd, in plaats van alleen de beschikbare opslagcapaciteit te verdelen.

Het is het verschil tussen één kamer met een muur opdelen en twee kamers creëren die bedoeld zijn voor compleet verschillende taken.

Er is ook een voordeel voor de distributie van inhoud

CD-ROM’s hadden nog een nuttige eigenschap waar de meesten van ons op een gegeven moment niet meer over nadachten, simpelweg omdat optische media nu eenmaal zo werkten.

De uitgever bepaalde de oorspronkelijke inhoud.

Twintig jaar geleden kocht je software op CD-ROM en installeerde je die op je computer. Door de software te installeren veranderde de cd zelf niet.

Je kon niet per ongeluk je vakantiefoto’s naar de installatiemap op de schijf slepen. Een medewerker kon niet zomaar de helft van het installatieprogramma verwijderen. En iemand kon niet besluiten dat er nog 300 MB opslagruimte nodig was en daarom de documentatie wissen.

Het medium was in feite een gepubliceerd object.

USB-sticks hebben optische schijven in vrijwel ieder praktisch opzicht verbeterd. Ze zijn kleiner, sneller, makkelijker mee te nemen en hebben een enorm veel grotere opslagcapaciteit.

Maar gewone beschrijfbare USB-opslag heeft ook het onderscheid vervaagd tussen degene die de inhoud publiceert en degene die de inhoud gebruikt.

Voor documentatie, softwaredistributie, servicetools, trainingsmateriaal, herstelhulpmiddelen en andere gecontroleerde inhoud kan dat onderscheid soms juist heel nuttig zijn.

Een logisch gebied in CD-ROM-stijl kan een plaats bieden voor inhoud die in de oorspronkelijke verspreide staat moet blijven, terwijl andere opslag op het apparaat kan worden gebruikt voor informatie die terecht wel moet kunnen veranderen.

Dit is niet hetzelfde als beveiliging

Er is één belangrijke grens die duidelijk moet blijven.

CD-ROM-emulatie moet niet automatisch worden omschreven als een volledig beveiligingssysteem.

Opslag zich laten gedragen als optische media vervangt geen cryptografische handtekeningen, secure-bootmechanismen, versleuteling, authenticatie of andere technologieën die bedoeld zijn om vast te stellen of software of gegevens kunnen worden vertrouwd.

Die lossen andere problemen op.

De waarde van CD-ROM-emulatie ligt vooral in apparaatgedrag, compatibiliteit, gecontroleerde distributie en het behouden van gepubliceerde inhoud.

In sommige toepassingen is het bijzonder nuttig om normale wijzigingen te voorkomen. Maar “moeilijk voor de gebruiker om te wijzigen” en “cryptografisch bewezen authentiek” zijn niet hetzelfde.

Dat verschil begrijpen is belangrijk, vooral wanneer deze apparaten in industriële of gespecialiseerde omgevingen worden gebruikt.

Soms wil je juist niet dat een USB-stick zich als een USB-stick gedraagt

Het verdwijnen van fysieke CD-ROM-stations betekent niet automatisch dat alle nuttige eigenschappen van optische opslag daarmee ook zijn verdwenen.

Soms verwacht een oudere computer optische media.

Soms is gespecialiseerde software daaromheen ontworpen.

Soms is het veel eenvoudiger om je aan een embedded systeem aan te passen dan dat systeem zelf te veranderen.

Soms wil een fabrikant de oorspronkelijke documentatie of software gescheiden houden van opslag die de gebruiker juist wel hoort te veranderen.

En soms is de meest praktische oplossing niet om een oud systeem ervan te overtuigen iets nieuws te begrijpen.

Het is iets nieuws zich laten gedragen als iets wat het oude systeem al begrijpt.

Dat is een van de interessante aspecten van USB-technologie die verborgen raken achter de eenvoud van gewoon een USB-stick inpluggen.

Wat je in je hand houdt kan NAND-flashgeheugen bevatten, maar NAND alleen bepaalt niet wat de computer ziet.

De controller heeft ook iets te zeggen in dat gesprek.

En met de juiste controller en configuratie hoeft een USB-stick zich dus niet per se als een USB-stick te gedragen.

Opmerking over technische ervaring: GetUSB werkt al vele jaren met USB-stickconfiguraties op controllerniveau en documenteert deze, waaronder gedrag als verwisselbare media, configuraties als vaste schijf, schrijfbeveiliging, meerdere logische eenheden en CD-ROM-emulatie. Het belangrijke onderscheid in dit artikel is dat CD-ROM-gedrag op het niveau van de flashcontroller kan worden gecreëerd in plaats van alleen via een Windows-bestandsinstelling of een via software gekoppeld imagebestand. De daadwerkelijke mogelijkheden zijn afhankelijk van de USB-controller en firmware die in het flashmedium worden gebruikt. De afbeelding is gemaakt met kunstmatige intelligentie en gebaseerd op een concept dat verband houdt met een bedrijf dat USB CD-ROM-oplossingen aanbiedt.

Meer artikelen lezen

Blijf ontdekken met meer verhalen, analyses en technische inzichten.