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.
@PaVaKe
De eerste zin is 1 van de argumenten voor het schrijven van het artikel maar is niet de kern van het artikel. Het artikel gaat over een manier om veilig van de voordelen van public cloud te genieten.
Dat public cloud bepaalde voordelen heeft staat vast. Dat cloud ook de voordelen heeft die ik noem zou je inderdaad kunnen bediscussiëren. Voor elk van de voordelen een korte uitleg.
Bereikbaarheid. Cloud betekend dat data op veel plekken wordt opgeslagen. Omdat dit op veel locaties is, is het risico klein dat een service onbereikbaar wordt als 1 van die locaties uitvalt. Omdat er veel locaties zijn, is de afstand tussen A en B ook vaak niet klein. Locaties kunnen zowel in Nederland als daarbuiten zijn, zodat de bereikbaarheid internationaal overal goed kan zijn.
Schaalbaarheid. Natuurlijk kan een groot bedrijf de schaalbaarheid zelf opvangen, maar door gebruik te maken van de cloud wordt dit veel goedkoper. Een goede infrastructuur is noodzakelijk om van verschillende serverparken gebruik te maken om – praktisch – over ongelimiteerde storage te beschikken.
Kostenbesparing. Dit voordeel vloeit natuurlijk voort uit veel andere voordelen. De kostenbesparing wordt vooral veroorzaakt doordat een gespecialiseerde partij storage goedkoper kan leveren. En over welke typische systemen heb je het? Zaken als processorkracht zijn minder relevant als applicaties client-side worden uitgevoerd.
De voorgestelde architectuur is een nieuwe manier van denken. Een manier die nadruk legt op de mogelijkheden van de client, zonder de voordelen van cloud weg te nemen.
Verder zou men andere voordelen kunnen noemen zoals elasticiteit (zie Henri’s commentaar).
@ Arie,
En wat zijn de nadelen? Denk hierbij aan migratie? Wat nu als uit deze securecloud wil? Decrypten neemt wel even tijd in beslag. Zoals Cruyff ooit eens wijs zei: “Ieder voordeel heb zijn nadeel…..”
Ik ben erg benieuwd naar jouw ervaringen.
@Arie:
Ik onderschrijf je zienswijze – bij een cloud omgeving is het zaak de app en de data als een geheel te beschouwen. Bijkomend voordeel is dat je voor meerdere devices een app als onderdeel van de dataset kunt laten zijn. Tijdens het opzetten van de (beveiligde) verbinding wordt bepaald welk device het is. En welke versie en onderdeel van de app toegestuurd wordt voor de handeling die op dat moment uitgevoerd wordt.
De performance hit bij encryptie en decryptie is een kwestie van tijd. Aan de server kant zijn accelerators al redelijk normaal. Nu nog aan de kant van de user devices.
Ik zie het meer als destijds de ondersteuning van virtualisatie in de chipset – eerst aan de server kant. En later ook aan de gebruikers kant.
@Ruud
Er zijn natuurlijk nadelen. Een dure migratie is daar zeker 1 van. Een oplossing hiervoor heb ik ook niet. Natuurlijk kan de architectuur al voor nieuwe systemen gebruikt worden. Oude systemen overzetten is veel duurder en tijdrovender.
Encrypten/decrypten is natuurlijk resource intensief. Maar de meeste devices hebben tegenwoordig krachtige processoren. Zelfs mobieltjes hebben tegenwoordig een enorme hoeveelheid rekenkracht. Het voordeel is verder dat het serverpark ontlast wordt en daar dus op bespaart kan worden.
@Will
De methode die je beschrijft zou inderdaad een optie kunnen zijn. Op die manier kun je efficiënt je applicatie inladen. En ik denk ook dat performance nu – en in de toekomst zeker niet – een groot probleem zal zijn. Die ‘evolutie’ in virtualisatietechnieken lijkt inderdaad een zelfde traject te doorlopen.
@Will
We kunnen er met zijn allen natuurlijk de meest prachtige scenario’s over bedenken en in stellingen en praktijk gerichte theorie beschrijvingen op loslaten….
De auteur stelt wat ik vanaf het begin van het hele cloudverhaal al heb gesteld. Wanneer men zich even verdiept in het hele GEC concept, en aanvullend de Home Security Act, en de Patriot Act, komt tot de eenvoudige conclusie, ‘like it or not’, dat er een hele grote ‘entiteit’ is die eenvoudig stelt; ‘Leuk wat jullie bedenken, maar hou er even rekening mee dat ALLE dat onverkort en compleet inzichtelijk dient te zijn voor ….’, en klaar ben je.
Een tweede, en niemand die mij dat natuurlijk in dank zal afnemen, ‘Private Cloud’ is alleen een verkoop praatje. Je hebt een secure verbinding met je eigen servers en al af niet encrypted data, no more, no less. U mag dat van mij natuurlijk noemen wat u wil.
Maar even terug naar redelijkheid en rede. Neen, niet alles is geschikt voor ‘cloud’, neen niet alles is geschikt voor virtualisatie, en ja, ik ben voor een vorm van automatiseren die nut heeft ook al zou het virtueel zijn. Maar kom niet aan dat virtueel of cloud je vanaf ‘any place, any where’ secure zou kunnen laten werken, er zijn vele methoden die mij die mogelijkheid verschaffen en met de voortschrijdende snelheid van verbindingen, hoeft het nergens meer echt een probleem te zijn.
De gestelde conclusie van Arie gaat mij hier m.i. erg mank. Zolang er namelijk een entiteit is die kan afdwingen dat mijn data integraal inzichtelijk moet zijn, dan is cloud alleen al daarom voor mij een hele grote ‘NOT!’ De reden? Dat verschillende data en patent cases in de VS alleen al duidelijk hebben gemaakt dat spionage heel erg ver kan gaan en vele vormen en kleuren kent.
Niet dat ik echt iets te verbergen heb maar wanneer ik bepaalde ideeen of bepaalde onderzoeken met bijzonder high potential op die manier aan ‘vreemde entiteiten’ bloot zou moeten stellen, dan begrijpt u mijn antwoord.
Overigens, ik kan me wel een aantal toepassingsmogelijkheden voorstellen waarbij cloud uitstekend zou werken. Maar voor bedrijven die zich bezighouden met vele vormen van R&D? Kan ik me zeker voorstellen dat ‘cloud’ niet eens wordt overwogen.
Allen, ik ben van mening dat er een paar zaken door elkaar gehaald worden in deze discussie. Kosten en cloudgebruik hebben niets met elkaar te maken. Een cloud oplossing is, volgens mij, niets meer dan de plaats waar je applicaties en data gehost worden. Het woord cloud is een mooier woord voor “Datacenter” Bij een Public Cloud staat het “ergens” in een datacenter en privat staat het in je eigen datacenter. Heeft dus alleen wat te maken met de geografische plaats en dan moet je iets regelen op het gebied van security. Dat is bij privat iets makkelijker als bij een public cloud, maar waar problemen zijn, zijn meestal ook oplossingen beschikbaar.
Nu de kosten. Een public cloud is altijd een dienst, die je afrekent naar gebruik. Deze dienst is meestal flexibel, schaalbaar en dus op het gebied van kosten beheersbaar. (niet per definitie altijd goedkoper!)Hier hebben wij het dus over een volledige Opex afrekening.
Een privat cloud kun je zowel als dienst, als een eigen oplossing hebben. Hier kan zowel een Opex model, als Capex model op losgelaten worden. Dit zegt dus niets over de werkelijke kosten; die hangen af van een slimme inkoop.
Voor wat betreft schaalbaarheid in een privat cloud. Ook een privat cloud kan zeer schaalbaar zijn, als je bijvoorbeeld licenties en appratuur in een dienst hebt zitten (Opex) of gebruik maakt van huurlicenties. Dit artikel en de discussie zijn dan ook, mijns insziens, niet volledig!
@NumoQuest
Als zo’n autoriteit om inzicht in de gegevens vraagt, wordt dit altijd bekend bij de eigenaar van de informatie; deze moet immers de sleutel geven om de gegevens te ontsleutelen. Op deze manier weet de eigenaar van de gegevens dan ook ‘of’ en ‘hoe vaak’ deze gegevens door autoriteiten wordt geraadpleegd. Deze extra informatie maakt public cloud mogelijk alsnog interessant voor bedrijven die met zeer gevoelige informatie werken, zoals bepaalde R&D afdelingen. Zulke wetgeving blijft natuurlijk vervelend. Mij ontbreekt het aan expertise om de precieze details en eisen van de wetgeving te kennen om hier verder op in te gaan.
@Paul
Voor mij is public cloud inderdaad datacenters bij een ander, maar wel op meer dan 1 locatie. Net zoals bijvoorbeeld Google of Dropbox datacenters op veel verschillende locaties hebben die informatie op meerdere locaties opslaan. De voordelen van cloud worden pas benut als data op veel verschillende locaties verspreid over een groot gebied staan opgeslagen. Op deze manier wordt toegankelijkheid en integriteit maximaal gewaarborgd. De SCAA draagt bij om deze voordelen maximaal te benutten omdat versleutelde gegevens in theorie “achteloos” over een groot aantal (onbetrouwbare/goedkope) datacenters verspreid kunnen worden. Verder kan door dit schaalvoordeel van public cloud providers de kosten relatief laag gehouden worden.
Ik begrijp veel van de kritiek. Toch denk ik dat een SCAA de juiste optie is om optimaal van public cloud te genieten en daarbij dus ook het kostenvoordeel te kunnen benutten. Met de SCAA komt de controle op informatie in handen van de eigenaar van de informatie. Dat is hoe information security zou moeten zijn.
De toekomst zal uitwijzen wat de uiteindelijke ontwikkelrichting zal zij.