Discovering Cloud computing – it works.

Discovering Cloud computing – it works.

Cloud computing is not just a buzzword or academic fantasy anymore. It is a new computing paradigm that is heavily used in practice today.  Various cloud based services are offered by major companies like Google, Microsoft, and Amazon, as well as by smaller players in the form of private clouds. Millions of businesses and individuals use these services either as an extension to their existing computing infrastructure, or sometimes even as a complete replacement of that.

Advantages of cloud storage for businesses and individuals

The major advantages of cloud based services for businesses include scalability and elasticity, i.e. the possibility of requesting resources in an on-demand manner in near real-time. Thus, businesses  don’t need to worry about peak loads and operate an over-provisioned computing infrastructure. In addition, once computing is outsourced to the cloud, the company can also get rid of a large part of the infrastructure management and maintenance burden. This means that by replacing their own computing infrastructure with cloud based services, companies can reduce their IT costs significantly.

For individuals, cloud based services offer flexibility and convenience by providing access to resources anytime and anywhere. In particular, today many individuals possess multiple computing devices, such as laptop computers, tablets, and smart phones. I am sure you know what I mean saying that it is a hassle to keep the  data on all those devices synchronized.  Cloud services offer a great solution:  keep everything in one place and access the data with any number of devices. In addition, once the data (e.g., photos and videos) is uploaded to the cloud, it becomes much easier to share it with friends and colleagues.

Major concerns of moving to te cloud: security and privacy

Besides all these advantages, throwing everything in the cloud also has some potential drawbacks: our major concerns are  security and privacy.

Nowadays almost all of the cloud service providers have unlimited access to user’s data that they handle. While users may trust the service provider for storing and mainaining the uploaded data, they may not necessarily trust it for accessing and using that data. However, today, users have limited choices: either they agree the terms of use, and accept that the operator will have access to their data or they don’t sign up for the service.

Question is whether individuals realize the risks they take when they pass their private photos and e-mails to the cloud service provider. No wonder why freemium business modell is so popular on the market: companies offer their basic plan for free to allure users, and by doing so, they highlight only the advantages of signing up. However there is no free lunch. At the end, users have to pay the price of the service with giving up their their privacy. Service providers often use user’s data for profiling, and such profiles are great source and foundation of targeted advertisements, or maybe they are just shared with third parties for profit.

Companies don’t do such things at dark backrooms. They actually warn users in their legal documents like ’Terms of services’ or ’Privacy policy’. I won’t blame you if you have not read any of those. They are really thought reads, because of the language and the detailed legal descriptions they apply.

Businesses may be better prepared to assess the risk of trusting the cloud operator with their confidential company documents, databases, and mails. Maybe this is the reason that many of them actually don’t trust the service provider, and don’t upload sensitive data to the cloud. They may negotiate some special service agreement that holds the cloud operator responsible for any leakage of sensitive information but such agreements also come with a price and it is surely more expensive than the standard services provided to the masses.  Some companies work in a highly regulated industries (like health care), and legal requirements prevent the company of storing data that it handles outside the company’s premises, especially if ’outside’ means another country with data protection laws potentially completely different from those the company must be compliment with. In any case, these businesses lose the advantages of cloud computing, because they either have to set up and run their own computing infrastructure, or they need to pay extra for keeping their data private.

Encrypt your content in the cloud! – This should be a wind of change

Fortunately, this situation is not something that is carved in stone: indeed, there’s no fundamental reason why we cannot change it. In particular, we can use encryption to make the data stored by the cloud service provider unintelligible. However, one must be cautious: some service providers already offer encrypted storage, by which they mean that they encrypt the data that they store. Needless to say that server side encryption does not solve the problem that I discussed above. In that case, the service provider still has unlimited access, since they have the encryption keys, so they can decrypt the data.. What we need is client side encryption, i.e. the user should encrypt the data before it is uploaded to the cloud.

Client side encryption solves a large part of the problem, but if done naively, it makes sharing impossible. This is because if you encrypt the data with a key that only you know, then others will have access to the encrypted data via the cloud service – but they cannot decrypt the data locally. Yet sharing is a nice feature that one doesn’t want to lose.

Basically, what we need is a key management system that makes the keys required to decrypt the data stored in the cloud available to those parties that are authorized to access the data. And that’s exactly the key feature that Tresorit provides to its users. However the process may sound complicated, the software is designed to apply maximum level security without worsen usability.

Encryption is done locally by the Tresorit software, the cloud operator sees only encrypted files. Besides that, Tresorit also allows users to decide who can access their tresors. If another user is invited to access a given tresor, then the key needed to decrypt the tresor’s content is made available to the invited user via the cloud storage itself encrypted public key. So the invited user can download the encrypted content and the encrypted content’s key, and use his private key to decode the content’s key first, and then the content key to decode the content of the tresor. The software also handles all the problems that arise from concurrent accesses of multiple users to the same tresor in the cloud, as well as all the problems related to the management of the group of users authorized to access the tresor, including the invitation of new members to the group and expelling someone from the group.

Tresorit uses state-of-the-art encryption algorithms with large key sizes. The content of the tresors is encrypted with AES-256, and content keys are encrypted with RSA-2048. For authentication purposes, Tresorit uses RSA digital signatures on 512-bit long SHA hash values. In addition, it uses innovative technologies such as lazy re-encryption for efficiency purposes, and a carefully designed, own key setup protocol, called ICE, for handling the invitation of new members into a tresor’s group of users. While designing key setup protocols is a risky business, and “home made” protocols often turn out to be flawed, in this case, Tresorit leveraged my 15+ years of experience in security protocol design, and the know-how on formal verification of security protocols available in the CrySyS Lab, Budapest from which Tresorit emerged.

To sum it up, Tresorit addresses an important problem, the secure storage of information within the cloud, and by doing that, it makes cloud computing a usable option for both businesses and individuals even if they don’t trust the cloud operator and they worry about the confidentiality and privacy of their data. It provides a solution based on client side encryption and related key management protocols that are secure, yet efficient, and it preserves the possibility of sharing data within a group of users. In addition, the concept of tresors is intuitive, and the software is very easy to use. Concurrency and group management issues are handled in the background, without bothering users with details that harm their productivity. At the time of conception, Tresorit was unique, and even today, it has only very few competitors providing similar services. I believe, however, that the early start makes Tresorit a leader in this area.
Challenge us! Download and try Tresorit and share your opinion here in comments or on our social media channels!

Levente Buttyán, the author of this post is a Head of the Laboratory of Cryptography and System Security (CrySyS Lab) at Budapest University of Technology and Economics and also a co-founder and member of the Advisory Board of Tresorit. He has done research on the design and analysis of secure protocols and privacy enhancing mechanisms for wireless networked embedded systems. Recently, he has been involved in the analysis of some high profile targeted malware, such as Duqu, Flame (aka sKyWIper), MiniDuke, and TeamSpy.