This core functionality is offered as a virtual
machine that is running on servers with a minimum
of 256 GB Ram as fast memory access is the most
important technical requirement.
A key hierarchy defined by a Wibu controlled root
key is responsible for granting keys to ISVs to issue
license (keys). This key hierarchy is also used to
enable authentication of the cloud with respect to a
client.
For functionality such as managing user identities
and accounts a set of REST services will be offered
in combination with traditional full-stack web-
frameworks (e.g. Angular or VAADIN) that will run
on basis of out-of-the-box cloud services such as
Amazon RDS in combination with, for example,
scalable Amazon Beanstalk application servers.
3.2 Future Extensions
As part of the nationally funded “CloudProtect”
project we will investigate how to use existing trust
technologies in the overall scope of software
protection.
As a secure element on the client side we will
evaluate proven TPM functionality (for example to
protect additional local encryption keys) or to serve
as a random number generator. We will specifically
address IoT clients running on minimal hardware
such as a Raspberry 3 with an additional Optiga TPM
(TPM, 2017) chip.
On both, the client as well as server side we will
evaluate SGX (Intel, 2017) and TEE technologies to
support isolated execution of functions.
Though we are aware of current limitations of
such technologies and existing attacks (Xu et al.,
2015, Brasser et al., 2017, Lee et al. 2017 and
Moghimi et al. 2017) we are still convinced that we
need such isolated execution environments in the long
run.
First technical mitigations against known attacks
against SGX technologies have been presented by the
community already (Shih et al., 2017, Chen et al.,
2017 and Gruss et al., 2017).
4 RELATED WORK
Software Protection has been scientifically discussed
as early as (Kent, 1980), around the same time as
Wibu-Systems offered the first commercial solutions
as a printer port extension.
Oorschot later identified 4 approaches to software
protection (Oorschot, 2003): Obfuscation via
automated code-transformation; white-box
cryptography; Software Tamper Resistance; and
Software Diversity. Attacks on obfuscated software
(Rolles et al., 2009) and the resulting improvements
(Averbuch et al., 2013) are two competing disciplines
and hardware supported isolated execution has been
analysed extensively (Suh et al., 2007, Costan et al.,
2016, Koeberl et al, 2014 and Strackx et al. 2010).
On the commercial side, there are vendors that
already offer cloud-based license management
(Flexera, 2018). Prominent services such as STEAM
(Valve, 2018) also do, for example, offer the APIs
which application developers use to enforce such
access control checks. However, in both cases this is
not true software protection but rather an access-
control check based on a purchased license. The
Steam Bind service does in fact offer cryptographic
protection but has been reported to be broken
(Steamless, 2016).
5 CONCLUSIONS
In this paper we shared some of our experiences in the
development of an early proof of concept for a cloud-
based software protection and licensing service.
We discussed traditional approaches to software
protection and licensing, defined some high-level
requirements for a cloud-based service, presented an
architecture as well as touched on some commercial
considerations of how to get this service into
production and generate revenue.
This will now be further validated and extended in the
context of the “CloudProtect” project funded by the
German Ministry of Education & Research (BMBF)
where we will provide a fully implemented proof-of-
concept including trusted computing technologies as
well as an analysis of the commercial dimensions.
While we cannot share too many of the technical
details at this stage – mainly due to the fact that we
are still in the evaluation phase of the technologies we
will use for realizing, for example, the load balancer
or persistence - we hope to have provided some useful
insights into the applied usage of cryptography for
software protection in industrial settings.
REFERENCES
Averbuch, A., Kiperberg, M., Zaidenberg, N. 2013. Truly-
Protect: An Efficient VM-Based Software Protection.
IEEE Systems Journal.
Brasser, F., Müller, U., Dmitrienko, A., Kostiainen, K.,
Capkun, S., and Sadeghi, A.-R. 2017. Software Grand
Towards a Cloud-based System for Software Protection and Licensing
535