Etikettarkiv: hårdvara

Avlyssna tangentbord med mobilen

Förra veckans tveklöst mest spännande säkerhetsartikel är (sp)iPhone: Decoding Vibrations From Nearby Keyboards With Mobile Phone Accelerometers (pdf).

I artikeln beskriver författarna Philip Marquardt, Philip Marquardt, Henry Carter och Patrick Traynor hur dom med hjälp av accelerometrar i en mobiltelefon kan detektera och tolka vad som skrivs på ett tangentbord som befinner sig på samma bord/yta som mobilen. Typ så här:

Mobilen bredvid tangentbordet.
Mobilen bredvid tangentbordet.

Med hjälp av träningsdata bygger författarna upp en databas med tolkade mönster. När sedan detektering sker matchar insamlade vibrationer med tidigare mönster.

Exempel på mönster
Exempel på mönster

Man använder både mönster för enskilda tecken, kombinationer av tecken och meningar.

Exempel på avkodad text
Exempel på avkodad text

Författarna når på detta sätt en förmåga att tolka 80% av texten som skrivs på tangentbordet.

Intressant nog gör nyare generationer av accelerometrar att attacken blir bättre. Figuren nedan visar hur det med en iPhone 3GS (övre kurvan) inte går att identifiera enskilda knapptryckningar. Men med en iPhone 4S (nedre kurvan) går det bra.

Kvalitet hos accelerometrarna
Kvalitet hos accelerometrarna

Författarna har valt att bara använda accelerometrarna. Det hade varit intressant att se hur mycket bättre tolkningen blivit om även mikrofonen användes för att samla in information till analysen. Gissningsvis kommer vi få se fler undersökningar av den här typen av mobilbaserade TEMPEST/RÖS-attacker.

En annan sak som författarna inte tar upp i texten är möjligheten att identifiera personen som skriver på tangentbordet. Att det finns biometrisk information som gör det möjligt att identifiera en person i rytmen, mönstret personen skapar genom att skriva på ett tangentbord är känt sedan länge. Svenska startupföretaget BehavioSec (Behaviometrics) bygger produkter runt idén och har skapat mobilappar med tekniken.

BehavioSecs mobillösning
BehavioSecs mobillösning använder både mönster när man skriver och/eller ritar på skärmen.

BehavioSec använder tekniken för att identifiera korrekt användare, men visar anser jag att tekniken inte bara kan tolka vad dom skrivs, utan vem som skriver. Nu vet man kanske vem som sitter och skriver på ett tangentbord om man sitter bredvid. Men om mobilen kapats (och attacken sker på distans), eller som ett sätt att skapa metainformation om en användare är detta ändå inte helt otroligt.

Så hur skyddar man sig mot den här typen av attacker? Författarna själva pekar på en svaghet i metoden – avståndet mellan tangentbord och mobil. Mycket över 30-40 cm verkar i deras undersökning göra det praktiskt omöjligt. Man kan dock anta att material i bordsskivan (något författarna även diskuterar – kakel ger bättre skydd än trä), hur tangentbordet står på bordet, samt vad bordet står på borde påverka.

Ett förslag som dök upp i diskussionerna på Hacker News (HN) var att vibrera bordet. Men antagligen behöver man vara smartare än så – annars är det bara att filtrera ut störningarna. Vad man vill göra är något liknande Danny Hillis maskin Babble som skyddar ett rum mot avlyssning genom att generera nonsensljud som låter skrämmande likt en konversation. Här skulle man istället vibrera skrivbordet som om det skrevs text (ex Lorem Ipsum – men inte just den texten då den går att identifiera och filtrera bort). Helst skulle man mappa vibrationerna med mönstret hos den riktiga användaren av skrivbordet så att det blir riktigt svårt att särskilja skyddsvibrationerna med de riktiga vibrationerna. En riktigt kul idé.

Men att inte ha mobiler på bordet, utan i en ficka, helst avstängt eller utanför rummet borde vara det som enkelt faktiskt fungerar som skydd.

För den som vill läsa lite mer rekommenderas diskussionen på HN om artikeln som är väl värd att läsa.

Sidokanaler och trojaner i ASICar

De senaste veckorna har det varit mycket diskussioner om bakdörrar och säkerhet i hårdvara. Därför är det extra spännande att läsa ett par artiklar som belyser denna problematik.

Den första artikeln, On Measurable Side-Channel Leaks inside ASIC Design Primitives tittar närmare på vad som orsakar informationsläckage via en så kallad sidokakanal i form av strömförbrukning i kundspecifika digitala kretsar. Kundspecifika digitala kretsar (ASIC:ar) designas oftast genom att använda så kallad standard cell-teknik. Det innbär att den digitala funktionen bryts ner till instanser av grindar (kallade celler) som skapats och kvalificerats för en given tillverkningsprocess hos en tillverkare. Vill vi exempelvis producera vårt nya mobilchip i TSMCs 55-nm-process behöver vi använda ett bibliotek där cellerna instansierats i testkretsar och sedan testats för att se att deras elektriska egenskaper. En sådan leverantör är EDA-draken Synopsys som har kvalificerade cellbibliotek för flera leverantörers processer.

Det artikeln nu visar är hur differentiell strömförbrukning i ASIC:ar ger upphov till sidoinformation som går att mäta. Och dom kan koppla sidoinformationen till såväl vilka celler som används och placeringen av celler på kretsytan. Den senare är speciellt intressant då det visar att valet att det inte bara är den digitala funktionen och därmed vilka celler som används, utan även placeringen av cellerna påverkar (vilket iofs krav på drivstyrka och därmed vilken storlek på cellerna som används). Sedan går tyvärr artikeln in i diskussioner om hur celler kan byggas för att skydda mot oavsiktliga sidokanaler. Men som nästa artikel visar är det minst sagt svårt.

Den andra artikeln, Stealthy Dopant-Level Hardware Trojans (PDF) som presenterades på konferensen CHES 13 är mer spektakulär. I artikeln visar författarna hur man genom att ändra den så kallade dopningen kan påverka den digitala funktionen i en krets, utan att modifiera nätlistan [1]. Genom att selektivt modifiera dopningen lyckas man åstadkomma två saker.

  1. grindar celler att låsa i ett fast läge. Exemplet som används är en fristående implementation av Intels slumptalsgenerator RdRand/Bull Mountain som finns i Ivy Bridge och senare processorer.
  2. Få grindar att ändra elektriskt beteende och därmed förbruka mer ström än som är specat för vissa bitkombinationer. Exemplet är S-boxen i AES implementerad med grindar signade för att skydda mot sidokanalsläckage.

Utgångspunkten för den modifierade funktionen i slumptalsgeneratorn är att tvinga en vanlig, enkel inverterare att alltid låsa till ett fast värde ut oavsett värde in. Förändringen är subtil (vilket visar hur svårt det skulle vara att se vid granskning). Förändringen möter även de automatiska kontroller (Design Rule Check – DRC) som körs när masksetet skapas.

Trojansk inverterare
Trojansk inverterare

Men en inverterare som fastnat – det är ju ett vanligt problem och ska detekteras som del i produktionstest av kretsen, kan man tycka. Och normalt sett, om man använt bra ASIC-metodik ska detta upptäckas. I fallet med Intels slumptalsgenerator är det dock så att man av säkerhetsskäl undantagit generatorns digitala funktioner från att finnas med i scankedjor (som används för att läsa in olika testmönster i kretsen och sedan observera resultatet). Istället används en inbyggd självtestningsfunktion (Built In Self Test – BIST). Det är den lokala BIST-funktionalitetens uppgift att testa generatorn och sedan till övriga kretsen rapportera om generatorn fungerar eller ej. Ja eller nej. Ett eller noll.

Genom att både modifiera dopningen i grindar i generatorn OCH grindar i BIST-funktionaliteten får generatorn att generera mycket sämre slumptal utan att BIST-enheten rapportera att den är trasig. Lurigt.

Den andra attacken är mer subtil. Där ändras inte den logiska funktionen i grinden. Dessutom, vilket gör det mer intressant är de celler som används inte vanliga celler, utan celler som författarna tidigare utvecklat för att skydda mot den typ av sidoläckage som den första artikeln beskriver. Celler som är mycket mer robusta än de författarna till den första artikeln föreslår. Genom att påverka dopningen i en AOI (AND-OR-Invert)-grind får man grinden att förbruka energi även om den ger en logisk nolla ut och därmed ska dra mycket lite ström.

Trojansk AOI-cell.
Trojansk AOI-cell.

Resultatet är att även om cellen är så konstruerad att den inte ska läcka information om kryptonyckeln kan författarna visa att dom kan detektera nyckelns bitar genom att observera strömförbrukningen.

Läckage av nyckelinformation.
Läckage av nyckelinformation.

För mig som gillar hårdvara och ASICar är det här otroligt fräckt. Speciellt den senare attacken där den logiska funktionen inte ändras är riktigt snygg och rätt skrämmande.

Den jag saknar i artikeln är hotbildsanalysen – vem är det som är motståndaren och vilka resurser har denne. För att kunna ändra dopningen på specifika ställen på kretsen krävs insikt om kretsens funktion så att rätt område hittas. Och dessutom behöver detta ske någonstans mellan att underlaget till kretsen skett (sign-off) och testkretsar levererats. Det är relativt kort tid för att hitta rätt ställe att modifiera, analysera kretsen och föra in modifieringar i underlag för maskset. Att förstå en krets genom att titta på masksetet är inte enkelt (för att uttrycka det milt). Den som troligen utför attacken måste nästan sitta där designen av kretsen sitter, inte hos tillverkaren för att helt enkelt ha tillgång till så mycket designinformation att modifieringarna ska hinna göras. Sedan beror detta naturligtvis på var i utvecklingskedjan överlämning från designhus till tillverkaren sker.

Att dopning kan påverka funktionaliteten, inte minst hos mer analoga funktioner är inget nytt. När man tillverkar integrerade kretsar pratar man om processhörn (process corner), vilket är det gränser över vilka de olika process-stegen tillsammans ger kretsar med olika elektriska egenskaper. Om en krets innehåller en mer analog funktion kan dess beteende påverkas. Jag drar mig till minnes att Hifn en gång i tiden tillverkade och sålde en kryptokrets med inbyggd slumptalsgenerator byggd med en kedja av inverterare. Genom en olycklig kombination av processhörn och temperatur kunde vissa kedjan av inverterare (som skapar en oscillator) låsa mot en inre klocka. Följden blev att generatorn skapade tal i ett snyggt, periodiskt och inte alls speciellt slumpmässigt mönster. (Försöker hitta info och modellnummer om detta men hittar inte. Uppdaterar när jag har mer).

[1] Sidoförklaring: Nätlistan är beskrivningen över alla grindar och ledningar som kopplar ihop grindarna till den önskade kretsen. Andra attacker som presenterats försöker modifiera nätlistan eller i källkoden som genom kompilering (syntes) omvandlas till nätlistan. Nätlistan omvandlas genom flera steg till en uppsättning med polygoner (rektanglar) som tillsammans beskriver var på kretsytan olika ämnen (metall, kiseoxid etc) ska placeras i olika lager. Uppsättningen kallas maskset. Ett steg som beskrivs är var på den renda kiselytan joner ska injekteras i ytan för att göra delen av kretsytan potentiellt negativ eller positiv. Denna tidiga process kallas dopning.

Ny version av SipHash-core med högre prestanda

Den öppna hårdvaruimplementation av den kryptografiska hashfunktionen SipHash som Secworks utvecklat finns nu i en ny version.

I den nya versionen har antalet adderare dubblerats så att den den inre iterationen nu kan utföras på en cykel. Detta gör att antalet cykler för att bearbeta ett meddelande om upp till 8 Bytes (ett block) minskat från 28 till 10 cykler. För långa meddelanden går latenstiden mot 0,5 cykler/Byte.

Storleksmässigt har SipHash-core krympt något och kräver nu Alteras Cyclone IV-teknologi 1088 LE:s, en minskning med 25%. Däremot har maximala klockfrekvensen minskad till 90 MHz. Detta gör att SipHash-core i Alteras teknologi för långa meddelanden kan hantera datatakter på mer än 1 Gbps.

Altera Cyclone IV

Den nya versionen finns i det publika repot för SipHash-core hos Gitorious.

OpenCL för FPGA-konstruktion

Uppdaterat med referens till artikel om OpenCL från Altera.

En ny version av OpenCL

För ett par veckor sedan släppte organisationen Khronos version 1.2 av OpenCL. OpenCL är en utökning av programspråket C99 samt ett ramverk med verktyg och bibliotek. Med OpenCL är det möjligt att bygga program som utnyttjar parallell beräkningskapacitet i processorer (CPU), grafikprocessorer (GPU) m.m. Inte minst viktigt är att OpenCL gör det möjligt att programmera heterogena system, dvs system där det finns olika typer av processorelement.

Kärnan i OpenCL är möjligheten att skapa segment kallade kernels av kod och data koden skall bearbeta. Det är upp till dig som programmerare att beskriva hur de parallella operationerna ska utföras, vilka dimensioner problemet ska ha etc. När väl din kernel är skapad och kompileras genereras kod som körs på den parallella hårdvaran samt sekventiell kontrollkod avsedd för en kontrollprocessor. Kontrollkoden ser till att skicka kernel och data till den parallella hårdvaran, får kernel exekverad och tar slutligen emot resultatet.

Den vanligaste användningen av OpenCL är för att programmera GPU:er i datorer. OpenCL börjar även användas för att programmera den ökande mängden processorkärnorna i vanliga processorer, nätverksprocessorer och digitala signalbehandlingsprocessorer (DSP). Inte minst är detta intressant i högpresterande inbyggda system som basstationer för mobilsystem.

För den som vill titta närmare på OpenCL 1.2 finns specifikationen här (pdf).

Sponsorer av OpenCL är företag som Apple, AMD, Intel och IBM, men även Ericsson stödjer Khronos och OpenCL.

En ny version av OpenCL är egentligen inte så intressant. Det som fick mig att reagera på EE Times artikel var istället att företaget Altera officellt börjat stödja OpenCL. Altera tillverkar inte processorer – hårdvara som har en fix instruktionsuppsättning man kompilerar sin kod till. Altera bygger FPGA:er.

Sidospår om FPGA-konstruktion

En FPGA är en digital krets fylld med små byggblock, ledningar och kopplingselement. Hur byggblocken fungerar och hur dom kopplas samman via ledningar och kopplingselementen styrs av bitar lagrade i kontrollregister. Genom att skriva ner en konfiguration i kontrollregistren går det att få FPGA:n att implementera olika digitala funktioner. Gränssnitt för Ethernet, MP3-avkodare, filter för bildbehandling och faktiskt hela processorer och digitala system går att implementera i en modern FPGA. Man kan till och med implementera en FPGA i en FPGA.

Poängen med en FPGA är att den är väldigt parallell med massor av små byggblock, men det finns ingen egentlig instruktionsuppsättning eller schemaläggare som styr hur exekveringen går till. Det är en ren digital struktur och det är upp till dig som användare att skapa den konfiguration du behöver. Detta arbete är mer likt traditionell digital konstruktion än att programmera en processor, även om du använder assembler.

Normalt används konstruktionsspråk som Verilog, SystemVerilog (SV) eller VHDL. Den generella abstraktionsnivån i dessa konstruktionsspråk är relativt låg. Så länge som jag arbetat med digital konstruktion (sedan mitten av 1990-talet) har det dock funnits en strävan, en trend mot att försöka lyfta abstraktionsnivån.

Det har kommit och gått en massa försök med högnivåsyntes till nya språk som SystemC. En i min åsikt gemensam egenskap med dessa lösningar har varit en stor komplexitet och oförmåga att leva upp till de produktivitetsökningar man utlovar. Genom att gräva ner sig i schemaläggningar, delning av resurser, optimeringar etc har verktygen blivit komplexa, svåra att arbeta med och kräver mycket datorresurser.

Altera C2H

En som tog en liten annan väg var faktiskt Altera som för några år sedan lanserade C2H. C2H är ett verktyg för att ta vanlig C-kod och konvertera till digital hårdvara. Och det som gör C2H så smart, var att de är så dum.

Du som konstruktör får hela ansvaret att skriva din C-kod så att C2H kan fatta hur motsvarande hårdvara ser ut. Använder du 17 multiplikationer i din funktion får du 17 multiplikatorer. Vill du använda färre multiplikationer får du skriva om din kod så att samma multiplikationsuttryck används flera gånger.

Å andra sidan är C2H snabb. På några minuter kan du generera hårdvara och få återmatning. Eftersom C2H även är en del av utvecklingsverktygen för Alteras processor Nios II kan du dessutom testa att köra koden som ren SW, profilera din kod och sedan försöka konvertera de kritiska funktionerna till hårdvara.

Den magi som finns i C2H är kopplingen mellan hårdvaran och den kontrollkod som skapas för Nios II-processorn som krävs för att styra den genererade hårdvaran och använda den i resten av applikationen.

För den som vill veta mer finns det utbildningsmaterial och användarguide för C2H. Det finns även ett exempel på acceleration av beräkning av Mandelbrotmängder. Den arkitektur som används ser ut så här:

Arkitekturen hos Alteras Mandelbrotsberäknare.

I exemplet nås 60 gångers prestanda jämfört med en ren SW-implementation.

Acceleratorn blir alltså en applikationsspecifik stödprocessor till processorn. Men det går att bygga coprocessorer som är kapabla att själva läsa och skriva till minnen och arbeta självständigt.

FPGA – den nya OpenCL-arkitekturen

När jag tittar igenom det material från Altera som finns om OpenCL får jag samma känsla som när jag såg C2H första gången.

Du som konstruktör får ansvaret för att styra vad som ska bli parallell hårdvara och att det data som skall bearbetas finns i rätt format etc. Och kanske det viktigaste – att försöka parallellisera de delar som spelar roll för applikationen. Den magi, infrastruktur får att få systemet att hänga ihop sköter Altera och OpenCL.

Att ha FPGA som målplattform för OpenCL öppnar upp för nya typer av heterogena arkitekturer med mulicore, GPU och FPGA:er blandat. En FPGA kommer aldrig att komma upp i de klockfeekvenser som en GPU snurrar i så för vissa applikationer kommer en FPGA inte att ersätta CPU eller GPU.

(En tumregel att en FPGA når en tiondel av klockfrekvensen som en direktimplementerad digital krets. Den funktion som implementeras kräver dessutom ungefär tio gånger så mycket digitala grindar i en FPGA.)

Fördelen med FPGA:n är istället att den är en generisk digital struktur med mängder av “processorelement”. Antalet element och hur elementen fungerar kan direkt anpassas (skapas) för att processa en OpenCL-kernel. Detta gör att du kan få mycket högre prestanda i en mer flexibel arkitektur. Och precis som med C2H kan du med OpenCL alltid pröva, och analysera din kod som ren SW-lösning på en multicore-maskin eller på GPU innan du konverterar valda delar till hårdvara.

Det finns en bra preso om OpenCl för FPGA (pdf) av Desh Singh från Altera som visar hur Altera tänker sig att det ska fungera. Från preson är det klart att Altera stödjer både system med FPGA:er på kort i traditionella datorer och system där även processorn implementeras i FPGA:n.

Det finns även en mycket bra artikel från Altera om hur OpenCL är tänkt att fungera (pdf). Artikeln visar hur OpenCL används för att skapa parallella instanser av kernelspecifik logik som processar data. Instanserna styrs sedan av kontrollkod som körs på mjuka processorer i FPGA:n (exempelvis Nios), hårda ARM-kärnor (Altera har FPGA:er med ARM-kärnor) eller x86-processorer.

I artikeln finns även ett prestandatest i form av en Black Scholes. Enligt artikeln är själva OpenCL-koden är på ungefär 300 rader och är porterbar till CPU, GPU och FPGA.

en fyrkärnig Intel Xeon-processor ger 240 miljoner simuleringar/s, en GPU 950 miljoner/s och Alteras Stratix IV-krets 2200 miljoner simuleringar/s.

Slutsatser

För hårdvaruarkitekturer är det en gammal sanning av det är programmeringsverktygen som avgör. Oavsett hur bra, snygg och smart din arkitektur är, kommer ingen att vilja använda den om det inte finns verktyg – program som gör att det effektivt går att programmera applikationer för arkitekturen. Detta gäller microcontrollers, desktopprocessorer, DSP:er, närverksprocessorer. Och FPGA:er.

Jag tror att Altera med satsningen på OpenCL visar att man faktiskt fattar detta och ger sina kunder och användare nya sätt att bygga hårdvara som implementeras i deras FPGAer. Själva poängen är ju för Altera att sälja fler FPGA:er – och gärna genom att hitta nya marknader och kunder än de som traditionellt bygger egna digitala konstruktioner.

Jag ser inte OpenCL som ersättning för C2H. Visst, du kan bygga motsvarande hårdvara med C2H som OpenCL, men egentligen är verktygen för olika typer av problemdomäner.

OpenCL ancvänder du för att bygga parallell hårdvara för att maximera prestanda i problem där du parallellisera upp delberäkningar. C2H använder du för att bygga systemet runt din parallella hårdvara.

När du byggt din AES-kernel till din parallella AES-kryptoknäckare i OpenCL använder du C2H för att bygga paketprocessing och koppla Gbit Ethernet-gränssnitten med AES-motorn. Slutligen lägger du kontrolllkod i Nios II-processorn för att få allt att arbeta ihop.

Heterogent. Inbyggt. I en FPGA-krets. Snyggt.


Fysisk säkerhet och säkerhetsanalys

Även om jag i första hand arbetar med informationssäkerhet är det intressant och nyttigt att titta på fysisk säkerhet. Under sommaren gavs flera chanser att springa på spännande säkerhetslösningar.

Bilden nedan visar en installation avsedd att förhindra obehöriga att köra in i ett område. Till vänster i bilden en väldigt imponerande bilsluss. Sex massiva kolonner i Bohusgranit och mellan dessa en stor, hydraulisk stålpelare. Pelaren styrs av en central placerad vid vägen och i två av stolparna sitter knappdosor från Bewator. Allt övervakas med radioanslutet larm. Dyrt, massivt, kraftfullt och bergsäkert med hög imponansfaktor. Här kommer ingen obehörig in.

Bilsluss och vägbom
Bilslussen till vänster och vägbommen till höger.

Men titta nu till höger. En vanlig, enkel vägbom. Och om du tittar i bakgrunden ser du att mellan de två vägarna finns en förbindelse. Dvs man kan köra till samma ställe oavsett om man passerar spärren till vänster eller den till höger. Och låt oss titta närmare på vägbommen.

Vägbommens lås
Vägbommens lås

Just det, bommen är inte låst. Bara att lyfta på tappen, öppna grinden och köra in. Undrar om beställaren av slussen är nöjd med installationen.

Vad jag tycker att exemplet ovan visar är vikten av att analysera hela systemet, att försöka identifiera alla möjliga svagheter och sedan ser till att ge den skyddsnivå som krävs genom att säkra upp alla delar.

Att säkra upp på en ställe är bortkastat om det är mycket enklare att köra runt. Detta gäller både tjusiga bilslussar med pelare i Bohusgranit såväl som inbyggda system med starkt krypto, men där den fasta nyckeln finns att få tag på genom att Googla.

Entréskydd med accesskod i en hiss

En fråga, vad är det för skillnad på dessa två knapp-paneler (förutom symboler och att det står Bewator på den andra panelen alltså):

Panel ett
Panel ett.

Panel två.
Panel två.

Rätt svar är: Antalet knappar.

Jag var idag på besök hos ett företag och fick reda på att för att komma in skulle jag slå en fyrsiffrig PIN-kod i hissen. Väl inne i hissen letade jag efter en normal knapp-panel (modell panel två ovan). Hittade ingen så jag fick gå upp, ringa på och bli insläppt. Och frågade då var kod-panelen satt. Det visade sig att det inte fanns någon, utan koden skulle slås in på hissens knapp-panel. Hoppsan!

Det är två saker jag tycker illa om den här lösningen. För det första är det väldigt ologiskt att knapparna som tar dig till olika våningar även har en annan betydelse. Det blir svåranvänt och underlättas inte av att det inte fanns en instruktion i hissen.

Men det andra och mer skrämmande är säkerheten – så länge som huset har färre än 10 våningar blir säkerheten sämre. I huset i dag finns det totalt 81 möjliga koder mot de 10000 koder som funnits om en normal panel hade använts. 81 koder borde man kunna testa på några minuter, och gissningsvis finns det inte ett larm om man gör för många försök på raken heller.

Jag kan förstå att hisstillverkaren tyckte att detta var ett bra sätt att skapa mervärde och unikitet i sin produkt. Men troligen har inte inköparen på fastighetsbolaget eller byggherren tänkt på säkerheten. Kravspecen sa en hiss med kodbaserat entréskydd – och det fick man med den här hissen.

En riktigt läskig OCH svåranvänd säkerhetslösning.

(Bara för att förtydliga: Nej panel ett är inte från det hus jag var i utan är en bild jag Googlade upp. Den riktiga panelen hade färre knappar. Bilden ovan kommer från en bloggpost om de obegripliga symbolerna på panelen.)

SecuriRAM ett annorlunda USB-minne

Jakob Schlyter pekade i en kommentar om krypterade USB-minnenSecuriRAM från Business Security.

SecuriRAM
SecuriRAM (bild från Business Security).

Med risk att få Business Security-folk på mig vill jag dock hävda att det inte är riktigt samma användningsområde. SecuriRAM verkar vara byggd för att kunna förstöra det lagrade innehållet snabbt och säkert. Det till och med förstörs automatiskt efter en viss tid (24 timmar). Det de krypterade USB-minnena försöker åstadkomma att stoppa access till känslig information.

Om jag fattar beskrivningen av SecuriRAM (pdf) rätt finns det inget som hindrar någon att läsa innehållet om man skulle råka få tag på en enhet och den inte hunnit radera informationen.

Sedan är det ett par saker jag blir nyfiken på.

Hur går raderingen till (zeriozation)? Är det hela minnet som raderas eller, vilket går snabbare, är det interna kryptonycklar som raderas och därmed förvandlar minnesinnehållet till brus?

Skriver man över innehållet i minet, eller bryter man bara strömmen till minnet? Och är det i så fall en enkel skrivning med ett mönster, eller är det en mer komplex sekvens av skrivningar? Nu ska innehållet förstöras efter 24 timmar, men minnen har annars en förmåga att minnas tidigare värden som lagrats en längre tid, även om innehållet raderats. I alla fall om det raderats på ett enklare sätt, ex enkel överskrivning med nollor.

Vidare blir jag lite nyfiken på vilken RAM-teknik det finns i och hur känslig den är för exempelvis temperatur. Det finns en del som tyder på att RAM-minnen kan behålla sitt innehåll väldigt lång tid (så kallad data remanence) efter att strömmen kopplats bort om temperaturen är låg. Detta gäller både SRAM och DRAM, men på lite olika sätt.

Jag ser att man specar användningstemperatur på ned till -10C så man har säkert tänkt på detta och testat.

Slutligen står det att det ska finnas stöd för tamper evidence, dvs att det inte ska gå att pilla på (försöka öppna) en SecruiRAM-enhet utan att det lämnar spår. Dock ser jag inte att den är FIPS 140-2-klassad.

Det borde gå att kombinera SecuriRAMs funktionalitet med krypterad lagring för att åstadkomma access-skydd. Det gå bra att lägga in ett krypterat filsystem i SecuriRAM, exempelvis TrueCrypt.

Klart intressant produkt i alla fall!