summaryrefslogtreecommitdiff
path: root/blogpost
diff options
context:
space:
mode:
Diffstat (limited to 'blogpost')
-rw-r--r--blogpost/ihsm-hiig-blog.txt158
1 files changed, 158 insertions, 0 deletions
diff --git a/blogpost/ihsm-hiig-blog.txt b/blogpost/ihsm-hiig-blog.txt
new file mode 100644
index 0000000..0591507
--- /dev/null
+++ b/blogpost/ihsm-hiig-blog.txt
@@ -0,0 +1,158 @@
+IHSMs for Grassroots Digital Autonomy
+=====================================
+
+In today's digital age, all of us depend on a number of large companies to mean well with us. To guard our data, or at
+least not to abuse it too much without asking. Even if we wanted, we cannot take things into our own hands and reclaim
+our digital autonomy because too much depends on too many system operators. To help small-time users and sysadmins to
+fight this dependence, Jan Götte and Björn Scheuermann from HIIG have developed Inertial Hardware Security Modules, or
+IHSMs. IHSMs enable low-budget servers to provide high security anywhere, even outside of well-protected datacenters.
+
+
+Digital Dependencies
+--------------------
+
+The rise of networked computers has revolutionized many aspects of our modern lives. However, in lock-step with all the
+quality of life improvements that the internet brought us, today we can observe a worrying trend of increasing digital
+dependency. *Opting out* of the digital life on social media or e-commerce platforms becomes increasingly difficult to
+sustain all the while the power of these platforms over their users is steadily increasing. Anyone who has ever had
+their Twitter or Facebook account suspended for an alleged Terms of Service violation or who has been locked out of
+their Google or Amaazon account pending some complicated and frustrating “account verification” process for unnamed
+“security reasons” will know how acute this dependency is. What the platform decides is law. There is no way for us as
+users to meaningfully challenge its decisions because we are the platform's product, not its customers.
+
+Don't it Yourself
+-----------------
+
+The obvious solution to this state of digital dependency is for us to take things into our own hands. On this premise,
+open-source projects such as Nextcloud <https://nextcloud.com/> and Mastodon <https://joinmastodon.org/> have created
+de-centralized alternatives to some of the big platforms. But DIY'ing has a drawback beyond the time spent on installing
+and maintaining these solutions. While open-source software has made great strides over the last decades and offers
+viable alternatives to many proprietary, centralized platforms today, this software has to run on someone's computer.
+This underlying physical infrastructure is where things get complicated. Today, the only real option to run one's own
+digital infrastructure is to rent a server (or part of one) from one of a number of large cloud providers. And in this
+case, whoever runs the data center ultimately controls access to the data stored within.
+
+At first, this fact of life might not seem concerning. After all, a data center operator would risk a lot if it
+compromised its customers' security. However, in the past we have seen several physical attacks targeting high-value
+data <https://archive.md/QpvHA> <https://en.wikipedia.org/wiki/NSA_ANT_catalog>. Large companies can mitigate such
+attacks by tightly controlling their entire infrastructure, from the application software down to the data center's
+access control systems. For smaller organizations and private individuals, this option does not exist.
+
+Inertial Hardware Security Modules
+----------------------------------
+
+# Gaining back control over our digital lives is a monumental task. In software, through an ecosystem of open source
+# projects, we have seen steady progress throughout the last decades. But all of that open source software needs to run
+# somewhere, and today that usually means renting processing time at one of the large cloud providers. Avoiding them means
+# buying your own hardware, and even then, that hardware needs to be put somewhere in a data center operated by yet
+# another large company. Security-wise, this is not great since whoever runs the cloud or the datacenter can technically
+# access everything running inside it. In the end it comes down to physical access: Even passwords or strong encryption
+# cannot (yet) prevent someone with physical access to a machine from learning everything about its contents.
+
+At HIIG, Björn and I have asked ourselves if there might be ways to claw back control over our hardware. If we can find
+a way for someone someone much smaller than an Amazon or Google to build a special physically secure server that is
+invulnerable to physical attaks, this server can be put into any commercial data center while completely decoupling the
+security of the data stored in it from the operator of the data center around it.
+
+With Inertial Hardware Security Modules (short, IHSMs) we believe we have developed a strong approach towards a solution
+to this problem. You can read the full paper here <https://tches.iacr.org/index.php/TCHES/article/view/9290>. The gist
+of our solution is that we are able to build an enclosure that physically protects a server from any attempt at
+siphoning off its secrets, no matter who tries to attack it. IHSMs are similar to a type of device used in payment
+processing applications called Hardware Security Modules. Both provide a similar level of security. The main difference
+is that IHSMs allow much larger systems to be protected and bump both size and computing power from that of a smartphone
+to that of a server, a difference of about 100 × in space, processing power and cooling capacity. IHSMs are simple to
+construct and can be built with basic tools that can be found in most electronic labs. We envision a world where small
+organizations can build their own secure servers that even a hostile secret service will not be able to compromise
+physically.
+
+IHSMs work by putting the server's mainboard, CPU, and memory inside of a tamper detection “mesh.” This mesh is a very
+delicate component that will sense when someone tries to cut, drill or poke through it. When tampering is detected, an
+alarm is activated and all sensitive data inside the server is deleted. To make the tamper detection mesh itself hard to
+tamper with, this mesh is spinning at around the speed of a washing machine during its spin cycle.
+
+Trusting and Un-trusting
+------------------------
+
+In computer security terms, what we are doing with IHSMs is that we are “untrusting” the server's physical environment.
+Computer security has a funny definition of trust that is pretty much the opposite of everyone else. In computer
+security, trust is a de-facto property of something that we de-facto rely on being good. In computer security, something
+trusted should be trustworthy (but does not have to be). Contrast that to the common-sense meaning, where something
+trustworthy should be trusted (but does not have to be).
+
+Untrusting the data center gives us the chance to decouple software security from physical security. Using an IHSM, a
+small organization such as the HIIG, the Chaos Computer Club, or a small company can operate software on a physical
+foundation that is as secure as that of the large cloud companies, but with no one but themselves holding the keys to
+the data.
+
+Examples for applications where this increased security matters are group chat, cloud photo storage, and calendar and
+contact synchronization systems. All of these already encrypt the network connection between their users phone or laptop
+and the server, but only rarely encrypt the actual data stored on these servers.
+
+# In terms of computer security, these platform behemoths are trusted parts of our lives. Not trusted as in
+# “Google/Facebook/Amazon is a trustworthy company”, but trusted in the computer security sense of the world: they are
+# de-facto trusted. We act as if we trust them, without actually considering whether they really are worth our trust. We
+# need them, and we depend on them not acting against our interests. But if they abuse our trust, there is nothing we can
+# do about it if we even notice.
+#
+# Confusingly, this computer security meaning of trustedness is the exact opposite of our common-sense understanding of
+# trust. In a common-sense world, a trustworthy thing should be trusted (but does not have to be). In the computer
+# security world, a trusted thing should be trustworthy (but does not have to be). While the two seem close at first,
+# there is a large difference in meaning. Understanding this difference is necessary to understand the things computer
+# security people say.
+#
+# The computer security concept of de-facto trust is counter-intuitve. However, its complement, which has no common-sense
+# counterpart, is very useful. In computer security, the opposite of a trusted component is an untrusted component.
+# Untrusted does not mean untrustworthy. An untrusted part is simply one that does not *need to be* trusted for things to
+# work. An example for an untrusted part is a coffeeshop wifi network. While we need it to get online, we do not have to
+# trust it to guard our data in any way since all our connections are authenticated and encrypted anyway using the TLS
+# protocol that underlies HTTPS. In this case, by basing everything on an authenticated and encrypted network protocol, we
+# remove trust from the coffeeshop wifi. We still need the wifi, but because our connections on top of it are encrypted
+# separately, we do not have to care anymore whether someone is snooping on it or not.
+#
+# From a computer security point of view, untrusting as many parts of a system as possible is highly desirable. The fewer
+# parts you trust, the fewer you can concentrate your security engineering efforts on. Not only does this save time and
+# money, the overall system will actually become more secure by doing this as more time is spent on less parts, leading to
+# better-quality results.
+
+# opposite of what everybody else calls trust. Take the sentence “Riley trusts Alex to take care of his cat.” In an
+# everyday, common-sense way this sentence parses quite easily. Apparently Riley is out of town for a vacation or
+# work-related trip and needs someone to feed their cat. Among Riley's friends, Riley asked Alex because they are
+# reliable. The key concept here is that this sentence implies that *because Alex is trustworthy*, Riley asked them to
+# take care of their cat.
+#
+# In computer-land, trust means something very different. While in the common-sense interpretation trusting something
+# implies that that thing is “trustworthy”, in computer security things are exactly backwards. In computer security, a
+# trusted part of a system is one that has to be trusted because without it the system doesn't work. The distinction here
+# is that this part *should* better be “trustworthy”, but that is not a given.
+#
+# Now, why should we care about this rather pedantic distinction? That is because we have to keep in mind this linguistic
+# quirk to correctly understand what security people mean when they are talking about computers. If we interpret things a
+# computer security person says in a common-sense way, they might seem to make sense at first, but this important detail
+# can get lost in translation.
+#
+# There is a useful concept in computer security called “untrustedness”. In computer security, a thing is untrusted when
+# we do not rely on it being trustworthy.
+
+
+#The concept of a trusted thing as “something that must be trustworthy” is useful in computer security, but its
+#complement is even more interesting. If there
+
+
+# The rise of networked computers has revolutionized many aspects of our modern lives. For most of us, the internet has
+# made everyday things more convenient and improved our overall quality of life. Large platform companies can serve
+# millions or even billions of users with only a few hundred people in design and development. However, these same
+# economies of scale that have brought us incredibly polished software products that improve our lives in many ways, also
+# have a dark side.
+#
+# Through the last few decades, we can observe a shift in how we use computers in our lives. The computer systems we use
+# have become increasingly complex and have proliferated throughout all aspects of our modern lives. At the same time, the
+# internet's economies of scale have led to the operators of these systems consolidating. For instance, while in the 2000s
+# an online business would have had to operate its own physical servers in a datacenter somewhere, today the entire
+# internet rests on a small number of cloud computing providers.
+#
+# On one axis, there is the shift towards increasing integration of digital systems into our lives. On the other axis
+# there is the shift towards large centralized operators providing the infrastructure for most of these systems. These two
+# effects compound each other to produce a steeply rising dependence towards system operators. On a national level, this
+# is seen as a threat of an emerging concept dubbed “digital sovereignty”, and is perceived to be an acute issue. However,
+# on an individual level, things are not better in any meaningful way--they are just talked about less.
+#