Suomalainen Xiphera on pitkänä kehittänyt ratkaisuja internet-liikenteen laitepohjaiseen salaukseen. Eilisessä webinaarissa yhtiön perustaja Kimmo Järvinen muistutti, että salaus kannattaa aina tehdä laitetasolla.
Xiphera perustettiin Aalto-yliopistossa vuonna 2017. Viime vuonna se esitteli salauslohkot, jotka voidaan toteuttaa FPGA-piirille. Intelin FPGA-kortilla (kuvassa) demottiin ratkaisua, jossa sekä kryptografisten operaatioiden laskenta ja avaintenhallinta ovat täysin FPGA-pohjaisia, mikä mahdollistaa täydellisen riippumattomuuden ohjelmistopohjaisia järjestelmiä uhkaavista heikkouksista.
Laitesalauksen ylivoimaa Järvinen perusteli eilen seikkaperäisesti. Ohjelmistopohjaisena salaus pitää mapata prosessorin käskykantaan, joka ei ole helppoa. Prosessit vievät käskyjä, mikä aiheuttaa latenssia salaukseen. -Raudalla, esimerkiksi FPGA-piirillä salaus voidaan optimoida bitti- ja kellojaksotasolla, Järvinen muistutti.
Periaatteessa ohjelmistopohjainen salaus on vain ohjelma ja dataa. Avaimet tallentuvat käyttömuistiin ja ohjelmistopinon virheet ja toiminnot voivat riskeerata turvallisuuden. - Salauspinot kuten Arm:n TrustZone parantavat tilannetta, mutta niihinkin voidaan kohdistaa hyökkäyksiä, Järvinen muistutti.
Laitepohjainen salaus muuttaa kuvion täysin. Salauslaskenta ja avaimet voidaan eristää toisistaan. Vaikka ohjelmisto murrettaisiin, avaimet pysyisivät suojattuna. Näin on tehty esimerkiksi Xipheran IP-ratkaisussa, jossa salausprosessointi ja avaimet ovat eristettynä FPGA-matriisissa.
Softasalauksen ongelmat nousivat esiin esimerkiksi kuuluisassa Heartbleed-haavoittuvuudessa. Open SSL -protokolla altistui verkkopyynnöille, joissa pyydettiin pidempiä merkkijonoja. Kun avaimet ja muut suojauksen kannalta kriittiset arvot ovat samassa muistissa, pyyntö palautti myös sensitiivistä dataa. Dataa luettiin yli sallitun eli kyse oli ns. over-read -bugista.
- Jos salaus on erillisessä laitteistossa, avaimia ei voi saada haltuunsa, koska ne eivät ole samassa muistissa koskaan, Järvinen korosti.
Ei kuitenkaan riitä, että avaimet ovat omassa suojatussa laiteosiossaan, jos ohjelmisto voi tehdä kutsuja siihen. Mikäli ohjelmisto murretaan, koko järjestelmän turvallisuus todennäköisesti murtuu joskus. Rataisu tähän on rakentaa luottamus luotetun HW-komponentin avulla. Tätä kutsutaan nimellä Root-of-Trust eli luottamuksen juuri.
Yksi tärkeä ominaisuus salauksessa on ketteryys (crypto agility). Se tarkoittaa Järvisen mukaan kykyä lisätä, korvata tai poistaa algoritmeja laitteen valmistuksen jälkeen. Tällä voidaan vastata esimerkiksi tulevan kvanttisalauksen vaatimuksiin, mitä ei ole vielä standardoitu.
FPGA-pohjaisissa toteutuksissa tärkeää on myös piirin ulkopuolelta flash-muistista ladattavan konfigurointidatan suojaaminen. Moderneissa FPGA-piireissä tämä ei ole ongelma, sillä ne tukevat salattua ja antentikoitua konfigurointia. Konfigurointidata voidaan purkaa vain FPGA:lle tallennetulla salausavaimella.
Järvisen mukaan Xipheran salaus on tarjolla kolmena eri kategoriana. Niistä kompaktein sopisi myös pienemmille FPGA-piireille ja periaatteessa mahdollistaisi myös IoT-laitteiden laitepohjaisen salauksen.