Belangrijke voordelen van cloud zijn schaalbaarheid, bereikbaarheid, en kostenbesparing. Toch zijn cloud diensten niet populair bij veel bedrijven. Niet alleen vanwege beperkende wetgeving zoals de Patriot Act, maar ook het eenvoudige besef dat data overal ter wereld opgeslagen kan zijn is voor veel bedrijven een onprettig idee. De veiligheid van informatie in de cloud kan zo niet gecontroleerd en gegarandeerd worden. Jammer en onnodig.
Er zijn verschillende oplossingen bedacht om veilig van de cloud gebruik te maken. Private cloud adverteert de voordelen van traditionele cloud oplossingen maar dan met de veiligheid van oude oplossingen. Hoewel private cloud op dit moment een goede keuzemogelijkheid is, kan deze vorm de voordelen van schaalvergroting niet optimaal benutten en is daarom een duur alternatief.
Door deze beperkingen breken cloud services niet door bij grote bedrijven. Er wordt terecht gevreesd voor verschillende bedreigingen die de vertrouwelijkheid van informatie schenden. Hoewel er initiatieven bestaan om veilig van cloud applicaties gebruik te kunnen maken, bestaat er nog geen architectuur die gemeengoed is. Dat geeft kansen om hierin mee te denken.
Behalve de opkomst van cloud, worden webtechnologieën ook steeds geavanceerder. Twee ontwikkelingen die hand in hand gaan. Zo zijn bekende cloud applicaties zoals Office 365 of Google Docs toegankelijk via een web browser. Toch hebben al deze applicaties een groot gebrek: er zijn geen garanties voor de veiligheid van de informatie omdat data niet op de client, maar pas op de server versleuteld wordt. Cloud service providers hebben daarom inzicht in jouw data. Geen prettig idee.
Een nieuwe architectuur
Voor al deze problemen stel ik een oplossing voor: de Secure Cloud Application Architecture (SCAA). Een architectuur om de voordelen van public cloud te benutten. In deze oplossing wordt cloud alleen gebruikt voor opslag van versleutelde data en applicaties. Een client – bijvoorbeeld je laptop of tablet – kan deze versleutelde gegevens opvragen en ontsleutelen. De ontsleutelde applicatie kan worden uitgevoerd en de bijbehorende data ingeladen. Met dit ontwerp worden de voordelen van cloud optimaal benut en tegelijkertijd blijft de controle op informatiebeveiliging in handen van de eigenaar van deze informatie.
Verschillende trends op het gebied van encryptie en webtechnologie maken het mogelijk om applicaties volgens deze nieuwe architectuur te ontwerpen. Deze ontwikkelingenwil ik hier kort bespreken.
Encryptie
Door data te versleutelen wordt deze onleesbaar voor derden. Het principe van de voorgestelde architectuur is gestoeld op de gedachte dat versleutelde data waardeloos is zonder sleutel. Het maakt niet uit wie deze versleutelde data bezit. Zolang alleen de eigenaar van deze data de sleutels heeft blijft de vertrouwelijkheid van de informatie gewaarborgd.
Uit dit principe vloeit een nieuwe manier van access management. Niet langer wordt de toegang tot de data zelf afgeschermd, maar de toegang tot de informatie die in deze data aanwezig is. Door multi-level encryption kan access control op encryptieniveau tot stand worden gebracht. Met deze techniek kan één applicatiepakket verzonden worden naar de eindgebruiker. Vervolgens worden op basis van de aangeleverde sleutel, alleen die delen ontsleutelt waartoe de betreffende persoon toegang heeft. Hetzelfde principe gaat op voor opgeslagen gegevens. Een gebruiker zal minder gegevens zien na het ontsleutelen dan zijn manager. Technieken die deze of vergelijkbare functionaliteit bieden zijn bekend onder namen als Cryptographic Access Control (CAC) of Attribute-Based Encryption (ABE).
Ondanks dat het niet erg is dat versleutelde data in het bezit komt van de ‘verkeerde’ personen, is het niet wenselijk om alle versleutelde data te ontvangen als je alleen je eigen data nodig hebt. Daarom moeten cloud servers behalve voor dataopslag, ook zorgen voor functionaliteit die efficiënte voorselectie mogelijk maakt. Dit kan door gebruik te maken van technieken voor het zoeken in versleutelde data; algoritmes die het mogelijk maken om te zoeken in versleutelde data zonder dat de uitvoerder van deze zoekopdracht kan weten naar welke ontsleutelde data gezocht wordt. Door deze beperkingen levert een zoekopdracht vaak niet exact het resultaat waar de gebruiker naar op zoek is. In dat geval zal een stukje middleware de traditionele database verzoeken moeten splitsen in twee delen. Een deel dat versleutelde data inlaad, en een deel dat na ontsleutelen de laatste selecties kan doen. Op deze manier kunnen veilig en snel cloud-oplossingen gebruikt worden.
Web Technologie
De ontwikkelingen op het gebied van webtechnologie gaan hard. Omdat steeds meer webbrowsers html5 ondersteunen is het mogelijk om legio applicaties in de browser te draaien. We zien een trend dat steeds meer traditionele desktop applicaties – zoals Office, muziek spelers, VoIP en zelfs 3D games – verhuizen naar het web.
Verder komen door technieken als de Web SQL Database of HTML5 Web Storage, steeds meer functies die eerder alleen op servers te vinden waren, beschikbaar voor de client. Ook kan de performance van moderne webbrowsers ingezet worden om data te versleutelen en te ontsleutelen. Beide zijn essentieel in SCAA.
Afwegingen
De nadelen kunnen niet onbenoemd blijven. Een belangrijk nadeel is dat er op dit moment geen ontwikkeltools zijn die ondersteuning bieden om software volgens de beschreven architectuur te ontwikkelen. Hoewel SCAA optimaal gebruik maakt van bestaande middelen en infrastructuren, is de architectuur dermate afwijkend van huidige standaarden dat goede ontwikkeltools ontworpen moet worden.
Een ander kritiekpunt van het voorgestelde ontwerp kan zich richten op de principes: de veronderstelling dat versleutelde data in ieders bezit mag komen. Veel oude versleutelingalgoritmes zijn onveilig gebleken, en het risico bestaat dat encryptie algoritmen die op dit moment veilig worden geacht, dat in de toekomst niet meer zijn. Hoewel moderne encryptie algoritmen mogelijk nog zo’n tien jaar niet gekraakt kunnen worden, blijft dit risico de belangrijkste afweging voor toepassing van de architectuur.
Conclusie
Om veilig van de cloud gebruik te maken moet de sleutel voor decryptie nooit bij de cloud provider, maar alleen bij de eigenaar van de informatie liggen. Behalve voor gegevens, geldt dit ook voor cloud applicaties. Applicaties zijn beschermingswaardig vanwege intellectueel eigendom en het ‘security by obscurity’-principe. In de nieuwe architectuur worden versleutelde gegevens en applicaties uit de cloud gedownload, en pas op een client ontsleuteld, en uitgevoerd of geladen met de nieuwste webtechnologieën.
Hoewel veiligheid vandaag vaak de reden is om niet naar cloud over te stappen, zal veiligheid de reden worden om juist wel naar cloud over te stappen. Cloud biedt ongekende mogelijkheden om de integriteit en beschikbaarheid van data te garanderen. Zo geeft een cloud architectuur een betere bescherming tegen DDoS aanvallen; zeker nu heel actueel. Encryptie zorgt vervolgens voor de benodigde vertrouwelijkheid van informatie. Cloud maakt het mogelijk om krachten te bundelen en weerstand te bieden tegen toekomstige risico’s.
Bedrijven laten de mogelijkheden die cloud biedt grotendeels onbenut. Begrijpelijk kijkende naar de huidige software architecturen. Jammer, gezien de – letterlijk – onbegrensde mogelijkheden. De voorgestelde Secure Cloud Application Architecture (SCAA) levert een bijdrage aan de toekomstige ontwikkeling van cloud services.
Arie,
Er is een verschil tussen private en public cloud, laatste heeft nogal wat nadelen zoals ik ook beschrijf in blog n.a.v. een rondetafel sessie die we hadden over dit onderwerp enige weken geleden: http://www.dekkinga.blogspot.nl/2013/04/rondetafel-sessie-cloud-computing.html
Je Secure Cloud Application Architecture (SCAA) klinkt wel leuk maar zoals ik al schrijf – met een link naar het Amazon initiatief hierin – is idee niet geheel nieuw. Daarnaast is encryptie maar een deel van de oplossing en wordt bijvoorbeeld SIEM nog weleens vergeten, wie gebruikt de sleutels en waarom. Vertrouwen is goed maar controle is nog altijd beter want vaak weet je niet of de data na beeindiging van een dienst daadwerkelijk vernietigd wordt. Kortweg komt het dus neer op de waarde van je data (en applicaties), is deze vertrouwelijk dan is de cloud misschien nietde meest voor de hand liggende opslag.
@Ewout
Public cloud heeft inderdaad veel nadelen. Private cloud lost veel van deze nadelen op, maar is vooral duur. De SCAA kan een oplossing bieden om veilig van de public cloud gebruik te maken.
Als encryptie sterk genoeg is – de vraag is of dat kan – dan zijn SIEM oplossingen veel minder belangrijk. Het maakt dan niet meer uit wie toegang tot de versleutelde data heeft of heeft gehad. Zonder sleutel zou deze data onbruikbaar moeten zijn. Versleutelde data zou veilig moeten kunnen rondslingeren in de public cloud. Ook als een (cloud) dienst beëindigd wordt is de data waardeloos zonder sleutel.
Je geeft terecht aan dat de sleutel ook in handen van verkeerde personen kan vallen. In zo’n geval zou een SIEM een uitkomst kunnen bieden. De vraag is in hoeverre een SIEM client-side toepasbaar is (decryptie gebeurt immers client-side). Hier zou een oplossing voor bedacht moeten worden.
Arie,
Client-side decryptie doet vermoeden dat de sleutels buiten de cloud zelf liggen, de beveiligingslaag wordt dus additioneel toegevoegd en dient daarmee ook apart beheerd te worden. Laat ik nu in mijn blog iets schrijven over het sleutelbeheer en wat daarmee fout ging………
Data encrypted opslaan kan natuurlijk altijd in de publieke/private cloud, Henri gaf een leuke demonstratie van de USB disk in de wolken. Vraag die toen en nu echter bij me op kwam is het nut hiervan omdat client-side ontsleutelen, server-side verwerken en vervolgens weer client-side versleutelen me nogal omslachtig lijkt, zelfs als het transparant gedaan wordt in de browser. En versleutelde data in de cloud is inderdaad waardeloos, net als data buiten de cloud waarvan je de sleutel niet (meer) hebt omdat die toevallig net op je andere apparaat staat.
Oja, en het idee van splitsen door bijvoorbeeld ‘scherven’ van informatie te gebruiken waarbij de middleware op locatie zorgt voor encryptie en decryptie heb ik volgens mij ook al eens voorgesteld in een eerdere opinie. Maar ik gaf in eerste reactie dan ook al aan dat je vooraf het beste aan classificatie kan doen, wat wel en wat niet naar de cloud voorkomt een heleboel verrassingen achteraf. Handige bij een gecentraliseerde middleware oplossing is trouwens juist de controle op toegang tot data, het tijdig intrekken van sleutels of kopieën ervan.
Kunnen we de conclusie trekken dat de Cloud een geweldige optie is voor kostenvermindering in aanschaf, onderhoud en beheer, zolang er geen boeven op de loer liggen om jouw data te ontfutselen en dat alle maatregelen die je moet treffen om veilig gebruik te maken van de Cloud de voordelen weer teniet doen?
Kunnen we daarmee vaststellen dat voor de meeste bedrijven geldt dat ze bepaalde data niet, of zelfs helemaal geen data in de Cloud willen hebben, maar dit gewoon thuis op een (evengoed beveiligde) server willen zetten?
Maar ook dat veel bedrijven geen benul hebben dat ze nu al belangrijke data de Cloud in mikken, bijvoorbeeld via medewerkers die gebruik maken van Drop Box of ander ‘handige’ oplossingen om tijdelijk data te parkeren?
En dat de definitie (als er al een eenduidige definitie is) van Cloud beperkt houdbaar is zodra we het verschil willen kunnen duiden tussen public en private Cloud?
Omdat private Cloud eigenlijk geen Cloud is omdat we in dat geval precies weten langs welke lijntjes onze data “stroomt” en waar deze is opgeslagen en daarmee dus (al het goed is) grip hebben op onze infra, wie daar wat op kan en wat daar op gebeurt?
En dat “computing” in het algemeen en Cloud computing in het bijzonder toch vooral te maken hebben met governance, beleid, besluit en borging en bewaking van afspraken over wat je als bedrijf vindt welke data echt belangrijk is, wat je met je data doet, waar je het bewerkt en bewaart en aan welke eisen je infrastructuur (al dan niet gedeeltelijk in de Cloud)moet voldoen om de risico’s te beheersen?
Arie, laat ik voorop stellen dat het goed is om zo’n artikel te schrijven, en leuk dat je schrijft EN reageert!
Ik heb echter wat aan en opmerkingen.
“Belangrijke voordelen van cloud zijn schaalbaarheid, bereikbaarheid, en kostenbesparing.” – Kostenbesparing is een driver niet perse een voordeel van cloud computing. Betalen naar gebruik is wel een voordeel, maar deze noem je niet. Daarnaast is schaalbaarheid leuk, maar het gaat weer meer op elasticiteit. Dus groeien en krimpen en dat op een snelle manier. Zo kan een eigen opgezette on-premise oplossing prima schaalbaar zijn.
“Toch zijn cloud diensten niet populair bij veel bedrijven.” – Heb je daar onderbouwing voor? mijn beleving is precies omgekeerd. Ze zijn heel populair en vooral onder werknemers. Daarnaast is er ook veel interesse. Ik schrijf dit omdat dit later in mijn reactie terugkomt.
“maar ook het eenvoudige besef dat data overal ter wereld opgeslagen kan zijn ” — dit is zo’n typische misvatting / mythe die ik graag wil ontkrachten. Zelfs bij Dropbox weet je waar je data opgeslagen wordt, namelijk bij Amazon en dan ook nog aan de west-kust. Als je dan aanhaalt “hoe zeker weet je dat?”, dan zeg ik terug “hoe weet je dat jouw on-premise data on premise blijft?”
Een andere misvatting is “private cloud”. Wat versta je onder private cloud? Dat de spullen van jouw zijn? Dat ze in jouw datacenter staan? Dat jij het zelf hebt opgezet?
Private cloud is het concept dat jij als organisatie de enige partij bent die bij bepaalde bronnen kan komen die samen een cloud vormen. Je kunt bij Amazon of Microsoft ook zomaar servers private gebruiken zodat niemand anders daar zomaar bij kan. Dat is ook private cloud. De firewall en veilige tunnels zorgen dat alleen jouw organisatie deze bronnen kan benaderen.
Natuurlijk heb je ook nog private cloud en on premise waarbij je eigenaar bent van de hardware, maar dat is geen noodzakelijke eigenschap van private cloud.
“Door deze beperkingen breken cloud services niet door bij grote bedrijven.” – Zo, dat is een stevige conclusie welke ik ook niet deel.
In mijn beleving zijn compliance, risk, privacy, accountability inderdaad belemmeringen, maar een veel grotere belemmering is enerzijds legacy. Men heeft al een functionerend geheel (en dito contracten) en overstappen betekent kosten door migratie en foutkans. Heel vaak kunnen partijen de voordelen van cloud computing niet duidelijk genoeg maken zodat organisaties deze stap nemen, maar in mijn mening wordt het privacy/veiligheid aspect steeds een kleinere belemmering door het principe “een schaap over de dam”. Men ziet het andere bedrijven doen, dus durven zij het ook aan, dan blijft legacy nog de grootste belemmering.
Klein intermezzo “cloud applicaties zoals Office 365 of Google Docs” – Google Docs bestaat in feite niet meer dat is Google Apps geworden.
Maar nu komt de kern van je betoog: Encryptie. En ik ben kritisch, maar ik loof je opinie en waardeer hem ook zeker en sta er ook deels achter, maar er zijn zeer grote obstakels met versleuteling: Het performt niet.
Zeer veel van de data die er toe doet zijn geen files maar databases. Zeker in bedrijfsleven: relationele databases. Als je kijkt naar de architectuur van relationele database dan worden query’s uitgevoerd op de server en het resultaat gestuurd naar de client, hier is nauwelijks omheen te werken. Voordat hier doorbraken in bereikt worden zijn we jaren verder en ik geloof niet dat dit de mainstream route wordt.
Laat ik een voorbeeld nemen over evolutie: Onze wegen zijn niet efficient. Soort rails zou beter werken omdat je dan heel makkelijk auto’s zelfbestuurbaar kan maken (dag files!). Die techniek kan snel ontwikkelt worden. Alleen om de huidige situatie voor auto’s hiernaar om te bouwen gaat niet gebeuren, dus zal de techniek die Google toepast, elke auto autonoom laten bewegen door veel “intelligentie”, de winnaar worden.
Ik geloof dus niet in het client-side encryptie pad ondanks dat het in theorie precies het privacy probleem oplost. Overigens wel weer voor de individu voor files: Kijk naar Mega.com, en zie morgen wat Space Monkey gaat doen.
Ik vertrouw dus meer op certificeringen en audits die leveranciers doen om ervoor te zorgen dat niet alle medewerkers bij de provider zomaar bij klant data kunnen komen en daarnaast de “toegangscontrole”. Maar ik geloof dus echt dat data in databases de komende jaren nog echt onversleuteld blijft in combinatie met versleutelde verbindingen en versleutelde toegangscontrole. Niettemin sta ik open voor mooie proefopstellingen.
Maar nogmaals, privacy lijkt mij niet het grootste obstakel en wat je beschrijft zie ik voorlopig nog niet gebeuren en zou er mijn geld niet op zetten.
@Hans
Ik ben het met je eens dat een architectuur niet de oplossing voor ALLLES. Natuurlijk is er beleid nodig om te voorkomen dat medewerkers gevoelige informatie op Dropbox plaatsen. Ook ben ik het met je eens dat Private Cloud eigenlijk geen echte cloud oplossing is. Daarom stel ik in mijn artikel voor om encryptie in te zetten om veilig van de cloud gebruik te maken. Dan kan in theorie alle data zonder nadenken in de public cloud geplaatst worden, mits de encryptie goed is.
@Henri
Leuk dat je zo’n uitgebreide reactie schrijft.
Ik zie bij veel bedrijven dat er inderdaad interesse is in cloud, maar dat voor veel toepassingen niet van de cloud gebruik maakt. De meeste bedrijfsapplicaties werken niet in de cloud, en ook voor zaken als backup en e-mail wordt vaak geen cloud gebruikt. Er valt dus veel winst te halen.
Je geeft aan dat encryptie niet “performt”. Dat is inderdaad een lastig punt. Aan de andere kant is het voordeel van client-side encryptie dat je zeer veel systemen (clients) hebt om de encryptie uit te voeren, in plaats van een relatief kleine hoeveelheid servers. In totaal is er meer rekenkracht beschikbaar aan de client-side. Ook zijn er ontwikkelingen in webtechnologieën waarmee snel client-side queries op een client-side database uitgevoerd kunnen worden. Als er gezocht moet worden in zeer grote databases dan zou een deel van de query op de server uitgevoerd kunnen worden – met encrypted search – en een deel op de client.
Overigens kan een extra security laag geïntroduceerd worden waarbij een deel van de sleutel (bijv. 50/50) via een KDC (Key Distribution Center) verstrekt worden. Op die manier kan een SIEM (zie @Ewout) functioneren en is er controle over wie toegang heeft, en wanneer toegang is verkregen. Op die manier kan ook de privacy gewaarborgd worden.
Arie,
Op zich een best aardig artikel. En goed om te zien dat je ook actief reageert. Ik vind alleen veel van je punten al redelijk uitgemolken en hier al te vaak besproken.
En ik deel de mening van Henri dat encryptie nog te veeleisend is als je kijkt naar performance.
@Ruud
Wat uniek is aan mijn artikel is de voorgestelde architectuur. Natuurlijk wordt er veel over cloud, encryptie en in mindere mate ook over nieuwe webtechnologieën geschreven. Nieuw is het paradigma dat de cloud alleen voor opslag van versleutelde data EN applicaties gebruikt wordt, en deze applicaties vervolgens client-side ontsleutelt en ingeladen worden. Data wordt vervolgens ook ontsleutelt en weer versleuteld op de cloud weggeschreven.
Graag kom ik in contact met andere auteurs die over hetzelfde hebben geschreven.
Toch blijf ik moeite hebben met de eerste zin alleen al:
schaalbaarheid, bereikbaarheid, en kostenbesparing.
Bereikbaarheid: volgens mij geldt nog steeds dat, hoe groter de afstand tussen A en B, hoe groter de kans op verstoringen. De kans dat ik de NAS in mijn kamer niet meer kan bereiken is vele malen kleiner dan dat ik mijn data “ergens in de cloud” niet meer kan bereiken. Daarbij geldt dat een groot deel van de netwerkverstoringen op lokatie plaats vinden. Kan ik niet van mijn werkplek bij de server elders in het gebouw komen vanwege een netwerkstoring, dan kan ik waarschijnlijk ook niet bij data buiten het gebouw.
Schaalbaarheid: dit kan een factor zijn die meespeelt, maar hangt mijns inziens heel erg af van het soort onderneming waar je dit voor in zou willen zetten. Voor kleine, en misschien ook wel middel-grote, ondernemingen zal dit een voordeel zijn, maar als groot bedrijf, met meerdere TB aan data kun je die schaalbaarheid zelf ook opvangen. Ik heb eens wat zitten browsen, en de meeste cloud-aanbieders die ik bij de eerst 20 hits tegenkwam gingen tot 500 GB. Met een typisch gebruik van enkele TB’s in mijn omgeving kan ik niet veel met deze schaalbaarheid vrees ik. Wanneer ik iedere 3 tot 6 maanden 500GB erbij wil hebben, dan is het met de schaalbaarheid ook snel gedaan vrees ik
Kostenbesparing: ook hier geldt schaalgrootte. Trek ik de prijzen die ik op internet kon vinden door naar het typisch gebruik van de omgevingen waar ik in heb gewerkt afgelopen jaren dan lopen de bedragen aardig op. Voor dat geld kan ik ook een tweetal NAS-sen neerzetten bij verschillende vestigingen en deze onderling laten syncen. Terugverdientijd < 1 jaar .... Nu ben ik me er ook wel van bewust dat ik geen typische gebruiker ben, maar wat ik eigenlijk vooral aan wil geven is dat de veel genoemde voordelen heel erg afhankelijk zijn van je omgeving. En aanhakend op de reacties van Henri: dit soort hoeveelheden en- en decrypten zal ook de nodige capaciteit kosten 🙂
@ Pavake,
Eens daar had ik ook moeite mee.
@ Arie,
Je hebt gelijk dat het een redelijk nieuw concept is. Ik heb mijn conclusie misschien iets te voorbarig getrokken.
Kan je iets meer toelichten wat de performance penalties zijn voor dit concept ten opzichte van een traditioneel cloud model? Mijn ervaring is dat deze manier van encryptie veel impact heeft op de performance.