Cryptographic accelerators in E-Commerce

Jari Kujansuu
jkujansu@cc.hut.fi
12.11.1997

 

1. Yleistä

Kaupankäynti verkossa kasvaa hurjaa vauhtia. Tanskassa vuonna 1997 tehdyn tutkimuksen mukaan kaksikymmentä kuusi prosenttia (26%) kuluttajista uskoo ostavansa jotain verkosta seuraavan vuoden sisällä ja neljäkymmentä neljä prosenttia (44%) haastatelluista kauppiaista uskoo että internet tulee lisäämään myyntiä, mutta puolet olivat sitä mieltä että turvallisuuden puute on verkkokaupan aloittamisen esteenä. [1]

Jotta kauppiaiden huolet voitaisiin poistaa pitaa tiedonsiirrosta saada suojattua ja tämä tehdään salaamalla tieto mikä koneiden välillä liikkuu. Mutta tämä salaus vaatii palvelimelta lisätehoa. Riippuen palvelun tyypistä voi tämä vaadittu lisäteho olla hyvinkin suuri, varsinkin kun yleiskäyttöiset tietokoneet eivät ole hirmuisen tehokkaita salausalgoritmeissa tarvittavan matematiikan kanssa [2].

Laitteistotasolla suoritettu salaaminen on tunnetusti ollut nopeampaa ja varmempaa kuin mitä ohjelmallisesti suoritettu salaaminen, mutta ennen salaamiseen tarkoitetut laitteistot ovat olleet erittäin kalliita joten niiden hinta/hyöty suhde ei ole ollut niille edullinen. Mutta nykyään uudet salaukseen tarkoitetut laitteistot ovat tulleet halvemmiksi ja niiden hinta/hyöty suhde on jo parempi kuin mihin ohjelmallisesti päästään. [3]

Ensiksi kuvaan kahta yleisesti käytössä olevaa suojausprotollaa, joita käytetään lopuksi esimerkissä kuvaamaan kuinka paljon tehoa oikeastaan tiedon suojaus saattaa viedä ja kuinka paljon erillinen salaukseen tehty kortti saattaa nopeuttaa palvelimessa suoritettavaa salausta.

2. Käytössä olevia salaus protokollia

Tällä hetkellä on käytössä useita eri salausprotokollia, mutta seuraavassa mainitaan vain kaksi joita käytetään tässä tekstissä olevassa esimerkissä.

2.1 SSL - Secure Sockets Layer

SSL salaa koko yhteyden koneiden välillä, sitä käytetään yleisesti verkossa suojaamaan taloudellisesti arkaa tietoa. SSL:n. Vaikka tämä protokolla on yleisesti käytetty se ei tarkoita että se olisi paras tai ainoa, sen suosia perustuu paljonkin siihen että se oli yleisesti saatavilla kun tarvittiin jonkinlainen menetelmä tiedon salaamiseen.

Vaikkakin SSL protokollan suunnittelijoiden yksi päämäärä oli nopeus ei se kuitenkaan ole mitenkään kevyt toimenpide, sillä esittelmä RSA Data Security konferensissa paljasti että palvelimet jotka tarjoavat SSL yhteyden voivat käyttää jopa 90% tehostaan salaukseen [4].

2.2 SET - Secure Electronic Transaction

SET protokollat kehitettiin käsittelemään transaktioita joissa käytetään jonkinlaista maksukorttia, käyttäjien, kauppiaiden ja pankkien välillä. SET on tulossa hyvinkin yleiseen käyttöön kunhan Visan ja MasterCardin tarkistukset sen varmuudesta valmistuvat, mutta koska nämä tarkistukset ovat hyvin aikaavieviä ovat Suomalaiset korttiyhtiöt ruvenneet testaamaan SET:n yhteensopivuutta järjestelmissään.

SET on paljon monimutkaisempi kuin SSL, koska se ei pelkästään salaa yhtä yhteyttä vaan useita viestejä kolmen osapuolen välillä. Vaikkakin tällä tavalla päästään huomattavasti parempaan varmuuteen tiedon salauksessa on tässä haittapuolena se, että tarvittavien salausten/purkujen määrä on huomattavasti korkeampi kuin SSL protokollaa käytettäessä ja tämä kasvattaa salaukseen käytettävää samassa suhteessa. [5]

3. Palvelimen teho

Salaus vie tietenkin palvelimena toimivalta koneelta resursseja. Ja vaikka yhtä yhteyttä tarkastellessa ei tämä vaadittu tehomäärä ole mitenkään merkittävä, mutta kun yhteyksien määrä kasvaa voi niiden käyttämä teho vieda suurenkin osan koneen käytettävissä olevasta tehosta. Ja kun vielä yhtedenotot palvelimeen eivät luultavammin jakaudu tasaisesti, vaan käyttöasteessa on piikkejä joiden aikana voi palvelimeen joutua palvelemaan  moninkertaista määrää asiakkaita verrattuna normaaliin liikenteeseen. Ja jos palvelimen tehokyky on mitoitettu normaalia astetta varten voi siltä mennä pitkäkin aika ruuhkahuipun aikana kerääntyneen jonon purkamiseen, koska sen pitää samaan aikaan hoitaa normaali saapuva liikenne.

3.1 Palvelimen suorituskyky

Palvelimen suorituskyky voidaan tarkastella kolmesta eri näkökulmasta, ne voivat jokainen olla pullonkaulana tietyissä olosuhteissa.

  1. Kuinka monta suoritusta palvelin kerkeää suorittaa tietyssä ajassa
  2. Kuinka paljon tietoa voidaan siirtää käyttäjältä palvelimelle
  3. Kuinka kauan palvelimelta menee yhden toiminnon suorittamiseen
Käyttäjän kannalta kolmas on näistä kaikkein tärkein, mutta jos esimerkiksi palvelimessa on joitain ominaisuuksia jonka vuoksi sen täytyy hoitaa ylläpidollisia tehtäviä jokaisen 10 toiminnon jälkeen muodostuu tästä luultavasti pullonkaula jonka asiakkaat huomaavat vaikka yhden toiminnon suorittaminen olisi kuinka nopeaa tahansa.

Palvelimen ollessa runsaan kuormituksen alla on ensinmäinen kohta hallitseva, mutta palvelimen ollessa pienemmän käytön alla on kolmas kohta hallitseva.

3.2 Odotettavissa oleva suorituskyky

Esimerkin vuoksi oletamme etta meillä on käytettävissä 166Mhz pentium palvelin jossa on Linux. Tällainen palvelin voi hoitaa noin 12 uutta SSL yhteyttä sekunnissa. Ja SET transaktioita samainen kone voi hoitaa 2 per sekuntti. [6]

3.3 Saavutettava suorituskyky kiihdyttimellä

Koska palvelimina käytetyt koneet eivät ole hyvin luultavasti optimoituja salauksen suorittamiseen ovat ne suht tehottomia verrattuna koneisiin jotka on suunniteltu ainoastaan salauksen suorittamiseen.

Kryptograafisen kiihdyttimen, jossa on erillinen salaukseen optimoitu prosessori hoitamassa salauksen ja purkamisen, nopeuttaa salausta ja salauksen purkua huomattavasti ja esimerkiksi nCipherin nFast kiihdytin suorittaa noin 240 SSL yhteydenluontia sekunnissa, ja SET transaktioita sama, 166Mhz pentium palvelimme jossa on Linuz, nFast kiihdyttimellä varustettuna voi suorittaa 50 kappaletta sekunnissa [2]. Vaikka yhteksiin liittyvään muuhun toimintaan kuluva teho pysyy samana nostaa kryptograafinen kiihdytin palvelimen tehoa huomattavasti.

3.4 Esimerkki tilanne

Jos edellämainittu 166Mhz pentium palvelimen normaali käyttöaste on 60 SET transaktiota minuutissa. Mutta päivän aikana on tiettyinä aikoina minuutin mittainen ruuhkahuippu ja tämän minuutin aikana saapuukin 600 pyyntöä, eli 10 kertaa normaalia käyttöastetta enemmän.

Koska koneessa ei ole kiihdytintä se voi suorittaa 120 transaktiota minuutissa, eli normaalikäytössä on tietokoneen tehosta puolet käyttämättä eikä asiakkaat joudu odottamaan tapahtumien käsittelyä. Mutta ruuhkahuipun sattuessa on se auttamattomasti liian hidas ja se joutuu laittamaan transaktioita jonoon odottamaan kunnes edelliset on suoritettu ja koko ajan sen suorittaessa tapahtumia jonosta tulee jonoon lisää uusia.

Ruuhkahuippu minuutin aikana joutuu palvelin siirtämään 480 pyyntöä jonoon, joiden suorittamiseen menee 480 sekunttia (8 minuuttia), jos palvelin on tämän jälkeen normaalikuormituksella jolloin sekunnissa voidaan suorittaa yksi ylimääräinen transaktio jonosta.

Tämä osoittaa etta normaalitilanteessa esiintyvä muutaman sekunnin viive voi tälläisen ruuhkahuipun sattuessa muuttua minuuteiksi ja palvelimelta vaadittavaa salaustehoa ei voida laskea sen varaan että palvelupyyntöjen määrässä ei ole suuria heittoja.

Jos koneessa olisi ollut kiihdytinkortti olisi se pystynyt suorittamaan 3000 SET transaktiota minuutissa, joten minkäänlaista jonoa ei olisi edes päässyt kertymään. Kiihdytinkortin vaihtoehtona on myös että hankitaan tehokkaampi kone, tai mahdollisesti useita palvelimia. Mutta päästäksemme samaan tehoon, olettaen ettei palvelin tee mitään muuta kuin lähettelee ja vastaanottelee salattuja sanomia, mikä ei tietenkään voi pitää paikkaansa joten vaadittava lisäteho ei ole aivan yhtä suuri, pitäisi hankkia 25 kertaa tehokkaampi kone kuin 166Mhz pentium ja tämä voi käydä erittäin kalliiksi. Kiihdyttimen hankkiminen onkin paras hinta teho suhteen omaava ratkaisu jos salauksen runsaan määrän takia pitaa saada lisää tehoa.
 

4. Lähdeluettelo

  1. Market Research concerning the Internet - 29.8.1997 ***

  2. <http://www.pbs.dk/english/aalunduk.htm
  3. What performance can we expect with an accelerator? - 23.5.1997 ***

  4. <http://www.cnipher.com/Papers/PKS97/pks9710.htm
  5. CRYPTOGRAPHIC HARDWARE FOR INTERNET SECURITY & COMMERCE. - 26.8.1997 ****

  6. <http://www.tcel.com/~sabbott/roleHW2.html
  7. SSL - Secure Sockets Layer - 23.5.1997 ***

  8. <http://www.cnipher.com/Papers/PKS97/pks973.htm
  9. SET Secure Electronic Transaction - 23.5.1997 ***

  10. <http://www.cnipher.com/Papers/PKS97/pks974.htm
  11. What performance can we expect from a typical server? - 23.5.1997 ***

  12. <http://www.cnipher.com/Papers/PKS97/pks979.htm
5. Lisätietoja aiheesta
  1. Visa International and MasterCard International. SET Protocol Description, June 1996.

  2. <http://www.visa.com/cgi-bin/vee/sf/set/downloads.html
  3. Kipp E. Hickman. The secure socket layer protocol.

  4. Technical report, Netscape Communications Corp., February 1995.
  5. SSL Version 3.0

  6. <http://home.netscape.com/newsref/std/SSL.html
  7. SSL - Talk FAQ v.1.0.3 **

  8. <http://www.consensus.com/security/ssl-talk-faq.html
  9. Secure Electronic Transaction **

  10. <http://www.cs.purdue.edu/homes/saw/cs490w/lectures/e-commerce/set.html
  11. nCipher: The need for cryptographic accelerators in electronic commerce ****

  12. <http://www.ncipher.com/Papers/PKS97/pks97.htm
  13. S. Abbott. Performance opportunities for dedicated cryptographic processors in SSL.

  14. In 1997 RSA Data Security Conference, January 1997.