The Oxford Dictionary defines trust as the “firm belief in the reliability, truth, ability, or strength of someone or something.” A wonderful article on ChangingMinds.org offers multiple interpretations for trust. When considering trust in the digital world, one in particular is especially relevant:
Trust means making an exchange with someone when you do not have full knowledge about them, their intent and the things they are offering to you. (Trust—changingminds 2017)
The Oxford Dictionary defines trust as the “firm belief in the reliability, truth, ability, or strength of someone or something.” A wonderful article on ChangingMinds.org offers multiple interpretations for trust. When considering trust in the digital world, one in particular is especially relevant:
Trust means making an exchange with someone when you do not have full knowledge about them, their intent and the things they are offering to you. (Trust—changingminds 2017)
In the physical world, trust is established based on identity or context, built on familiarity (the frequency of our interactions), and ultimately dependent on experience. Just as importantly, trust is nuanced: We do not trust everyone equally. For example, we generally find that people trust friends and family more than neighbors or casual acquaintances. There are exceptions, of course, but in general, the notion of trust in an entity is built over time and dependent on the frequency and the nature of our interactions with that entity.
Yet frequently, we must trust people that we do not see often, such as doctors, mechanics, and tax accountants. What gives us the confidence to depend on these people? Specifically, how do we know that a doctor is a doctor? The fact that we can “see” that the doctor is accredited or affiliated with a well-known hospital certainly helps, as do physical attributes such as the doctor’s office, location, and the notion of reviews by other people.
Now let us contrast how we build trust in the physical world with how we establish trust in the digital world, where we cannot see anything. For example, I connect to my bank, my e-mail provider, and a variety of e-commerce sites—each of which requires me to provide personally identifiable information (PII) and, in some cases, credit card data. I can identify the websites I frequently visit based on the logo, colors, and layout, but attacks such as phishing have long since rendered my ability to recognize the “look and feel” of an (online) entity practically useless. Without a tangible identity, there is no way I can build familiarity and, hence, trust.
How then do I know I am connecting to the online service provider that I want to use? This is where digital keys and certificates have such an important role to play. A certificate, much like a credit card or a passport, is issued by a “trusted” authority (an enterprise or a financial or government institution in the real world) and has an associated validity and purpose.
The similarities end there, however. Although we can “view” certificates, the attributes that make them unique (and, hence, linked irrevocably to a physical entity) can only be “verified” by applications such as a web browser or an e-mail client. Theoretically, it should then be possible for an application to identify and, over time, trust an entity, should it not?
Not so fast. There are a couple of reasons that this is not practical yet:
As the lines between the physical and the digital world blur, the role of identity in establishing trust that translates across both worlds becomes critical. As we look at the interactions in our daily lives, we can see the increasing dependence on smart “things” to enable us in our functions and responsibilities—phones, cars, homes, utilities, health, finance, and education. As the famed futurist Larry Kurzweil notes, in the next 10–15 years, the following will take place:
One thing that will not change, however, is the necessity to identify (and eventually, trust) who we interact with, regardless if they are humans or machines. The notion of human identity, even in the digital world, is relatively well understood—whether it is for e-mail, social networking, or logging into travel portals, we normally identify ourselves using a “username” (typically an e-mail address) and a “password.” We normally set our own passwords and end up using some form of mnemonic device that is easy enough for us to remember, instead of having to write it down. However, since these passwords are generated by humans, they are inherently easy to “crack” as well—today, there are automated password-cracking tools that can run more than a million variations of a password in about 24 hours. As such, we are very sensitive to password security:
Organizations such as National Institute of Standards and Technology have mapped out the different types of identities through documents such as SP 800-63 and the risk/assurance they provide in establishing trust online (SP800-63 2017). Passwords/passphrases are generally regarded as having the lowest level of “assurance.” On the other end of the scale are cryptographic keys, generally not only associated with high value systems—think of these as “machine identities”—but also used by security-focused organizations such as the government and the military to protect humans through the use of devices such as smart cards.
Unlike humans, machines have the capability to generate long and complex passwords to identify themselves, both to humans and to other machines. Machines, however, do not (yet) have the cognitive capability to remember passwords without having to store them—power down a machine, and it loses its ability to recollect the password/passphrase it is required to use for its interactions. It is for these reasons that cryptographic keys have been widely adopted and accepted as the best practice to identify machines. Cryptographic keys are generally much longer and stronger than passwords, rendering them comparatively immune to cracking attempts.
While we as an industry have spent billions of dollars trying to protect passwords, there has been very little thought and effort put into the security of machine identities. This gap becomes all the more glaring when we consider the rate at which encryption has become ubiquitous, while the pace of innovation reaches dizzying heights. In 2017, the volume of encrypted Internet traffic surpassed traffic that is unencrypted, hitting a seminal milestone that signals the increase in the usage of keys and certificates (Encrypted Web 2017). This will only continue to grow as browsers such as Google Chrome have started to penalize web sites that are not encrypted by default. In addition, as organizations start to embrace the cloud and development and operations (DevOps) practices, infrastructures will become a lot more ephemeral, necessitating more identities to be generated and trusted for short periods. Indeed, banks such as Monzo (https://monzo.com) have shown the way to become viable financial institutions while maintaining literally no physical presence.
On a related, but different note, every connected device in the Internet of things (IoT) space will need keys to identify itself. Autonomous vehicles, such as self-driving cars, will have millions of certificates. We expect that 34 billion IoT devices will be connected by 2020, and considering that these devices will all need identities in order to be able to communicate and trust each other, the implications of the protection of machine identities assume truly staggering proportions (IOT stats 2015).
All organizations rely on cryptographic keys and digital certificates to secure their business. These software devices were designed to solve the original Internet security problem—accurately identifying servers and browsers so that they could safely communicate back and forth independently. Machines rely exclusively on keys and certificates to know what to trust and what not to trust in our digital world. Any time data are being transferred, whether it be your business or personal information, there is a key or certificate that is being used to protect it. If the communication channel is not trusted, your data are not secure.
Secure sockets layer (SSL) was first introduced in the 1990s by Netscape to protect digital communication just as the Internet, and e-commerce, was taking off and was implemented in their Navigator browser. It served as the de facto standard for encryption for a number of years and has been updated over the years (the last, SSLv3 was only deprecated in 2015) to address vulnerabilities and account for stronger security standards. It is for this reason that cryptographic protocols are often referred to as “SSL.”
At a high level—there are two primary benefits that keys and certificates afford in the context of digital interactions:
There are a number of common applications of keys and certificates that readers may be familiar with.
In summary, keys and certificates are in play any time you are moving data via SSL/transport layer security (TLS); secure shell (SSH); and mobile, cloud, and IoT connections. While these are common applications of keys and certificates, in truth, any application that is used today, whether it is for personal, professional, or public access, needs to be secured, and cryptography is the foundation of cybersecurity. At the very minimum, every interface of applications, whether it be for administrative interfaces [for example, information technology (IT) administrators configuring their web application firewalls] or user interfaces (citizens checking their private e-mail), needs to be protected using digital keys and certificates. By extension, a compromise of the underlying cryptolayer can end up compromising the entire security fabric of the organization’s application.
Now that we have identified some of the reasons why keys and certificates are foundational to security for digital transactions, let us consider some of the concepts that will be useful to become familiar with. Public key cryptography (sometimes referred to as asymmetric cryptography) uses pairs of keys, which are derived from two random long prime numbers. The private key is, as the name indicates, meant to keep secret and is only known to the owner of the key. The public key, on the other hand, is meant to be shared with relying entities in digital transactions. Typically, the public key is shared in a standard format—a digital certificate—that provides data about the key owner and the intended usage for the key pair (which includes the private key). The private and public keys are cryptographically related by the fact that operations performed by one of the keys can be verified by, and only by, the other key. Which key is used depends on the function being performed.
For public key encryption, the sender of the information encrypts data to be transmitted with the public key of the recipient (that is accessible using the recipient’s digital certificate). Once encrypted, only someone with access to the private key (which should be the recipient—hence the reason to keep it private) can decrypt data that were sent. This ensures the confidentiality of data for the intended recipient—all the sender needs is the recipient’s certificate, which is shareable.
For public key signatures, the sender of the information attaches a hash of the data that are being sent, encrypts this hash with their private key, and appends it to the data. To verify the integrity of the data (that is, to ensure that what was sent by the sender has not been modified in transit by a malicious actor or corrupted by other means), the recipient decrypts the hash using the public key from the sender’s certificate and compares it a hash of raw data that the recipient generates on their own. If the two hashes are identical, it proves that only someone with access to the private key (which should be the sender) could have sent the message. This ensures both the origin of the data and its integrity.
Figures 3.1 and 3.2 serve to illustrate the two processes:
Figure 3.1 Public key encryption. (Courtesy of US Naval Academy, Annapolis, MD, http://usna.edu.)
Figure 3.2 Public key signatures and encryption. (Courtesy of US Naval Academy, Annapolis, MD, http://usna.edu.)
Now that we have talked about how keys and certificates can be used to guarantee the integrity and confidentiality of data that are transmitted electronically, let us look into different types of keys and certificates that are commonly used.
Keys are used to encrypt data, and there are different types of algorithms that are used to generate these keys. The most commonly used key algorithm is RSA, originally pioneered by Ron Rivest, Adi Shamir, and Leonard Adleman in 1977, out of the Massachusetts Institute of Technology. While RSA keys are still the de facto standard, there are a number of other algorithms that have also been used over the years: Digital signature algorithm and elliptic curve cryptography (ECC). Of these, ECC offers the advantage of smaller key sizes (for the same amount of computational complexity) that makes it ideal for resource-constrained environments such as IoT devices.
Certificates are vehicles that make it possible to share the public key component of an entity’s key pair (Figure 3.3). X509 is a standard that is widely deployed and understood when it comes to defining the format of digital certificates. A typical certificate, much like a physical passport, has a number of properties that can be used to identify the owner of the key pair and its intended usage. Some of these are as follows:
Figure 3.3 Digital certificate properties.
Public key infrastructure (PKI) is used to refer to the ecosystem that controls the issuance, storage, and distribution of digital certificates and includes the following components:
As described earlier, public key cryptography provides two distinct benefits—authentication and encryption. Cryptographic protocols utilize both of these benefits to secure communications over computer networks. In any such interaction, there is a “client” (for example, a browser) that initiates the transaction to a “server” (say, a website). To secure the data that are being transmitted (say, credit card information in an e-commerce transaction), and to ensure that the data are being sent to the right server (for example, a retail website), an elaborate exchange takes place between the two parties in the transaction:
We introduced SSL earlier in this section. TLS was proposed as a stronger alternative to SSL in 1999 and is now the required by most modern applications for encryption. Like with SSL, TLS has gone through multiple versions with TLS 1.3 being the latest version of the protocol.
While SSL/TLS are most often associated with websites, where the client application is typically a web browser, these protocols can also be used by other applications such as e-mail, instant messaging, voice over Internet protocol (VoIP) and printing/faxing.
We introduced the notion of “symmetric keys” as part of the discussion on cryptographic protocols in the previous section. Unlike asymmetric key encryption where there are separate public and private keys, symmetric key algorithms use the same keys for both encryption and decryption. Symmetric keys are preferred over asymmetric keys as they offer better encryption performance, yet have the requirement of both parties in a transaction needing access to the (same) symmetric key. It is for this reason that symmetric keys are typically used to secure data at rest—disk encryption, file encryption, database encryption, etc. To secure data in motion, symmetric key encryption is used (to encrypt the data) in conjunction with asymmetric key pairs (to authenticate the participants and encrypt the symmetric key used for a session).
SSH is another example of a cryptographic protocol that is best known for accessing and administering remote servers, mostly for non-Windows platforms, although Microsoft has recently added support for SSH in Windows 2016. SSH can be used to establish secure communication channels over unsecured networks, typically for remote login scenarios. If SSL/TLS is how applications interact with one another, SSH is how users can administer these applications. SSH can also be used by machines to move data between machines in different networks and hence serves as an identification and access protocol. While SSH also depends on asymmetric key cryptography, there are important differences—there is not a notion of certificates with SSH, only keys. As such, there is no identifying meta-data about SSH keys, beyond where they are located, that can be used to identify the owner of the SSH key pair (be it a human or a machine identity). There is also no validity associated with an SSH key pair—SSH keys can live forever. Most importantly, SSH keys are typically self-generated—there is no notion of an issuing authority such as a CA for certificates. This last distinction becomes important in the context of how trust is established for SSH sessions, a concept that will be described in detail in the next section.
There are a number of risks associated with encryption keys and certificates:
CAs, as described earlier, can be public or private. The list of publicly trusted CAs is maintained and managed by the CA Browser (CAB) forum (https://cabforum.org/) and is dependent on the community to control which CAs are trusted by default on various computer systems. With private CAs, it is typically up to the enterprise that owns and operates the CA to govern where they are trusted. Regardless of public or private CAs, one of the biggest advantages of a PKI is the ability to scale trust within and outside the enterprise. There are essentially two trust models:
Keeping the aforementioned trust models in mind, there are a few well-understood attack vectors that malicious actors have tried to exploit to circumvent the security afforded by the PKI trust models:
Just as with web sites, a code also needs to be identified before applications or operating systems allow the code to be executed. The goal is to provide assurance about the publisher of the code and that the originator code has not been tampered with (this mitigates the threat of a malicious actor modifying otherwise legitimate code for nefarious purposes). As such, the signing of code is considered to be an important business function, but is rarely a centralized process today. Instead, most organizations enable developers or build systems to have direct access to code-signing keys, which leads to very little visibility about what is being signed and by whom. Even worse, the distributed nature of these credentials makes it hard to secure them, and thus, they are a popular target for malware. As such, code-signing keys are the most attacked type of cryptographic credentials, which is borne out by data—the total number of signed malicious binaries exceeded 20 million in 2016 (McAfee Threat Report 2016). In response to this threat vector, the CA Security Council released recommendations on best practices (Code-signing requirements 2016), which include the need for the following:
As we have established in previous chapters, cryptographic credentials are foundational to cybersecurity. It is no surprise, therefore, that they are high-value targets for malicious actors. In a recent survey conducted by the Ponemon Institute, 100% of respondents from Global 2000 companies reported that they have had at least one attack on keys and certificates in the last 2 years.
Digital keys and certificates are being stolen—and increasingly often. Individuals and state-sponsored organizations are targeting them with the specific goal of misrepresenting themselves to steal sensitive information. Given the fact that keys and certificates are the most widely used means for establishing online identity, they are constantly under attack. This is borne out by the analysis of stolen data that is available on the dark web. While a stolen social security number goes for as little as $3, a stolen code-signing certificate goes for much as $1500—orders of magnitude more than what is considered PII.
As recent research from McAfee Labs (Q1, 2017) shows, SSL/TLS vulnerabilities account for as much as 33% of network attacks today, and this number is only growing as encryption is being rolled out across almost all web-facing infrastructure (McAfee Threat Report 2017).
Here is a brief history of significant key- and certificate-related attacks and breaches—mostly as a result of lax security controls implemented by the issuers of these credentials (CAs):
While not related to certificate mis-issuance, there are a couple of other noteworthy events that speak to the overall impact of encryption technology on our lives today that cross the boundaries between normal, day-to-day business or personal interactions and the trade-off between security and privacy in general.
Edward Snowden was a former Central Intelligence Agency employee and contractor for the US government who copied and leaked classified information to several news publications, without authorization, in 2013, from the National Security Agency (NSA) while employed by Booz Allen Hamilton (Snowden 2017). The contents of the classified documentation revealed several global surveillance programs that were run by the US government, with the cooperation of telecommunication companies and several European governments.
While the intent of his actions has been under a lot of debate, what was noteworthy was this comment:
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. (Snowden 2013)
Put another way, Snowden disclosed aspects of encryption that were being exploited by nation states to monitor individuals and organizations around the world. Yet Snowden himself leveraged encrypted channels to exfiltrate data from the NSA, one of the most security-conscious organizations in the world. His preceding comment was to highlight the difference between the theoretical and practical aspects of implementing encryption.
A number of the tools and applications that were used by Snowden became popular in the aftermath of this incident—so much so that James Clapper, then director of National Intelligence, had this to say:
As a result of the Snowden revelations, the onset of commercial encryption has accelerated by seven years. (Snowden 2016)
Asked to explain this comment, he then followed up with the following:
The projected growth maturation and installation of commercially available encryption—what they (the NSA) had forecasted for seven years ahead, three years ago, was accelerated to now, because of the revelation of the leaks.
Indeed, the Internet hit a seminal milestone early in 2017—more than 50% of all web traffic is now encrypted, per the Electronic Frontier Foundation (EFF) (Encrypted Web 2017). Most popular messaging applications have implemented “end-to-end” encryption today, with the intent of reassuring their customers about the security and privacy of their data and communications. This extra layer of security afforded by encryption has in turn been leveraged by malicious actors and terrorists to escape detection in their attempts to cause damage. One such incident is outlined next.
In response to the San Bernadino terror attacks of 2015 in the United States, the Federal Bureau of Investigation (FBI) needed to inspect the communication of the perpetrators to identify enablers of the attack and determine the possibility of other terrorist cells within the country. The data in question were encrypted on the iPhone of one of the attackers, and because of how encryption is implemented within the Apple ecosystem, getting access to the data proved to be especially hard for the FBI that was tasked with identifying the origins of the attack and potentially others in the future. As such, the FBI requested Apple’s help in decrypting the encrypted content, but the vendor refused, citing privacy concerns about the implications of providing a “backdoor” to government agencies that could then exploit these data to spy on other citizens or foreign nationals. A six-week-long legal battle ensued, potentially setting the landscape for the battle for the balance between privacy and law enforcement in an age where communications are increasingly conducted online. On one hand, bad actors are exploiting the advantages of end-to-end encryption built in to popular apps such as WhatsApp, iMessage, and Signal to cover their tracks and advance their agenda. On the other, governments around the world including the United States, United Kingdom, and Russia are stipulating requirements that grant them access to sensitive data that can be used to work around privacy stipulations. In a worrisome twist to the proceedings, the Department of Justice ultimately was able to decrypt the communications via as yet undisclosed means, precluding Apple from having to implement and hand over a decryption mechanism to the government. While this particular incident ended without requiring cooperation with the government, more events will surely occur in the not too distant future, which will reinvigorate this debate.
The United States is not alone in their attempts to crack encryption—a number of governments around the world have required access to technology that can inspect encrypted traffic, leading to intense debate around the line that exists between protecting data . . . and exploiting it.
While keys and certificates are here to stay as evidenced by the use cases that they address, and the lack of viable alternatives, there are a number of initiatives, at varying degrees of maturity, that are poised to impact the growth of machine identities, and the resulting dependency on them, even further.
While the notion of virtualization has been around since the age of the mainframe (originally conceived in the 1960s), the use of cloud computing to improve the efficiency of resource utilization is relatively newer. As organizations increasingly look to the use of DevOps and cloud (Gartner expects that by 2020, a corporate “no cloud” policy will be as rare as a “no Internet” policy today) to accelerate innovation without incurring significant expenses, they have started to look at ephemeral, “immutable” infrastructures that are deployed only for as long as they need to exist. How this impacts machine identities is that there is now a need for rapid certificate issuance, in response to elastic workloads, and that machine identities are relatively short lived. Organizations are now building up and tearing down their IT infrastructures multiple times a day as they embrace the idea of “infrastructure as code” as they attempt to realize efficiencies of operation and cost savings.
This has surfaced a need for better management frameworks for keys and certificates—how do you effectively address the trust issues caused by continuously changing identities, wherein new credentials are being issued, and reissued, at very high frequencies? Additionally, since certificates will not need to “live” long, hitherto recommended best practices such as expiration monitoring, instance validation, etc. will cease to be as important as these credentials will be replaced well before they expire. Conversely, machine identities that are no longer current will need to be effectively destroyed to mitigate the impact of unauthorized access to a trusted credential.
Popular cloud providers such as Amazon (AWS), Microsoft (Azure), and Google (GCP) now offer some level of certificate issuance and management capabilities as they bolster their infrastructure-as-a-service and platform-as-a-service offerings to address customer needs.
As was referenced in previous sections, one of the most viable, and hence exploited, threat vectors relevant to keys and certificates is to attack the issuers of these machine identities—the CAs that are trusted by computing systems of all types and sizes. As malicious actors and nation states attempt to get access to sensitive data, e-mail communications are a popular target. E-mail providers such as Google and Yahoo are as such among the most targeted vendors, as evidenced by the attacks listed earlier in this section. In response to these attacks, most notably the DigiNotar CA compromise, Google proposed the Certificate Transparency (CT) initiative (https://www.certificate-transparency.org/) in 2011.
CT is essentially a framework for monitoring and auditing the issuance of certificates in near real time. Google has helped promote this by requiring that certificates have publicly accessible issuance records in order to be treated as the most trustworthy within the Chrome browser—currently indicated by a green lock icon in the browser’s address bar, which can be interpreted by Internet users as Google-provided confidence in the validity of the site that they intend to visit. Conversely, websites that operate with certificates that do not have CT records (in essence, those without a publicly auditable record of issuance) will be treated as potentially insecure. Google currently only requires that EV certificates be logged in CT log servers, but has signaled an intent to extend CT requirements to cover all types of certificates, including domain validation and organization validation certificates by early 2018. This will force all public CAs to log all their certificates to Google-approved CT log servers to prevent a degraded user experience, which will in turn impact their customers.
One of the effects of recording the issuance of certificates and having this be publicly auditable is that anyone can monitor the generation of these credentials. This is particularly revealing in the case of machine identities as the certificate provides information about both who it was issued to and who issued it, in effect exposing the list of CAs’ customers to potential competition in a market which is increasingly commoditized and hence fiercely competitive. This was understandably met with opposition by the CA community when first proposed to the CAB forum—which the vendor wants to publish their rolodex of customers?—but because of Google’s significant market share and increasing frequency of incidents of certificate misissuance, CT has started to gain traction, with Firefox and Opera being popular browsers that support the initiative and a number of CAs starting to participate in it as well.
While CT is still in “experimental” status with the Internet Engineering Task Force (IETF), it has garnered widespread support, partly because of the popularity of the Google Chrome browser. CT is both an open standard and an open-source framework, and this has helped other vendors, most notably Mozilla, both contribute to and benefit from this initiative. There is now an ecosystem of CT log operators and CT log monitors that help sustain the viability of this initiative and have helped surface instances of unauthorized issuance around the world, including the aforementioned incidents with CNNIC, INIC, and Symantec.
In addition to certificate transparency, there are other initiatives such as pubic key pinning, DNS-based authentication of named entities and CA authorization records that have been implemented with varying degrees of success, all with intent to improve the digital certificate system that serves as the backbone (of trust) for the Internet.
As part of their efforts to transition the Internet to run over secure, encrypted channels, the EFF, an international nonprofit digital rights group that is funded by industry heavyweights such as Cisco, Akamai and Mozilla, launched a free CA in 2016—Let’s Encrypt (the web) (Let’s Encrypt 2014). In a relatively short period, Let’s Encrypt has risen to become, by far, the most popular CA for Internet-facing systems—in early 2017, they hit the milestone of 1 million issued certificates a day, which is orders of magnitude more than the number issued by any other public CA. As a means of comparison, the next most popular CA issues 100,000 certificates a month.
In addition to the no-cost aspect to getting a certificate, what has heavily accelerated the adoption of this particular CA is a protocol that they introduced that essentially automates the certificate issuance (and, down the line, renewal) process—Automatic Certificate Management Environment (ACME spec 2017). ACME is currently an IETF draft and was designed to simplify the process by which certificates were issued, while attempting to validate the legitimacy of the requestor. As the need for ubiquitous encryption rises, the number of ACME implementations has exploded, as is evidenced by the wide variety of development frameworks that support this protocol. ACME/Let’s Encrypt issues only domain-validated certificates today, as certificates with a higher level of assurance require a level of verification that is currently not possible via automated means.
This access to a free, publicly trusted CA with limited vetting capabilities has made Let’s Encrypt attractive to exploits as well. Over 15,000 unauthorized certificates have been issued thus far to Paypal, a popular online payments platform, as part of phishing campaigns intended to trick Paypal customers into revealing their access credentials (Let’s Encrypt 2017).
Figure 3.4 captures the criticality of this problem very well.
Figure 3.4 Top network attacks. (From Lawrence, Eric, Certified Malice, Text/Plain, https://textslashplain.com/2017/01/16/certified-malice.)
To the average Internet user, there is no difference between the website on the left and the one on the right—both are treated as trusted by the browser, as they were issued by trusted CAs. Yet only one of these is a legitimate PayPal property, while the other has been issued to “paypal.com.summary-spport.com” that may look like a PayPal website, especially on a resource-constrained device such as a smartphone, but has nothing to do with the PayPal brand. What is more worrisome is the fact that the phishing campaign used perfectly legal techniques to register their domain and obtain a trusted certificate in an automated manner that allows the perpetrator to, in effect, repeat the attack (by registering a different domain) and incur very little cost. Even if this certificate were to be detected, there is very little PayPal or the CA can do to mitigate its use. Partly in response to these attack vectors, the US government enacted the Anti-cybersquatting Consumer Protection Act in 1999 to prevent using domain names that are confusingly similar to, or dilutive of a trademark belonging to, another entity. CT, as previously noted, can help surface these kinds of issues since the certificates that are used in these sort of attacks will be publicly logged, monitored, and audited.
The IoT is a rapidly growing market, poised to exceed 20 billion devices by 2020, per estimates from Gartner. IoT is the quintessential machine-to-machine interaction use case, and while that is not a new concept, what is unique is the dependence on the Internet to serve as the backbone for these communications—and the possibilities and challenges it affords. On one hand, access to the Internet has significantly accelerated innovation in markets such as home automation, autonomous vehicles, and “smart” utilities. On the other hand, the rate at which these devices are being rolled out has made it necessary to depend on the Internet to scale to administer and manage these devices. This is where unrestricted access to these devices by anyone on the Internet has significantly increased their risk of compromise while exposing another threat surface—hacking these devices and using them to attack other Internet-facing systems, essentially simplifying the capability to launch “distributed denial of service” attacks at very little cost to malicious actors.
The Mirai attacks of 2016 serve as a glaring example of the risks posed by Internet-enabled systems that have been improperly secured. Mirai is malware that infects consumer IoT devices such as IP cameras and home routers and utilizes them as part of a “botnet” to conduct large-scale network attacks. The source code for Mirai is freely accessible and has been adapted and used to disrupt a number of highly networked websites including those belonging to Twitter, Netflix, Airbnb, Reddit, and GitHub (Mirai Malware 2017). Mirai attacks IoT devices by attempting to gain administrative access to these devices, exploiting poor access credentials (typically weak usernames/passwords that are shared across multiple devices) to take control of the device and then redirecting its traffic to attack other Internet-facing applications. This is where the enhanced security afforded by keys and certificates can significantly reduce the probability of compromise:
As such, IoT vendors need to look at machine identities to enhance their security postures and reduce the possibility of compromise and subsequent attacks. As this area of additional security afforded by cryptography is not very well understood, there is a need for IoT security vendors to offer strong machine identities as part of their platform offerings.
While still relatively new, the concept of Blockchain has received a lot attention in recent years, primarily because of the success of Bitcoin as a cryptocurrency, and the disruption it has caused to the peer-to-peer payment industry. This has taken out the need for an intermediary, typically a financial institution such as a bank, to enable the transfer of money between the participants in the transaction. Additionally, details of the transaction are then signed for integrity and logged into a readable “ledger” using nodes (“blocks”) that can be distributed, but cryptographically connected (and secured) in that one block builds on top of another, providing an auditable, tamper-resistant system that is decentralized as well. It is for this reason that Blockchain is sometimes referred to as a distributed ledger. In reality, Bitcoin, which is a very compelling alternative to current payment networks because of the security, transparency, and financial implications, is just the most well-known implementation of a distributed ledger network.
The use cases for distributed ledgers are still being developed—in addition to payment networks, land registries are another practical example where a distributed ledger brings significant advantages over currently used methods.
Hopefully, this chapter has established that cryptographic keys and certificates are the bedrock on which trust is established in the digital world and serve to enable many mission-critical use cases, including access to the Internet through wired/wireless networks, encryption of data (both at-rest and in-motion), messaging/communication platforms, and pretty much every application that needs to be secured for privileged access.
Keys and certificates are poised for explosive growth fueled in part by trends in virtualization, cloud, DevOps, and IoT. Yet they are also among the least understood concepts of cybersecurity, as evidenced by the low investment in good cryptography management practices. This is especially stark when compared to the billions of dollars we spend as an industry to protect older, less secure technology such as usernames and passwords.
It is because of this lack of awareness that malicious actors, whether it be private groups of individuals or nation states, target vulnerabilities in the implementation of cryptographic security—SSL/TLS attacks dwarf all other forms of network attacks today, and this difference will only continue to grow. The technology itself is mature and, when implemented correctly does what it is supposed to do, it secures sensitive data, protects its integrity, and authenticates the participants in any digital interaction. This robustness of the technology is now being utilized for malicious purposes, leading to an ongoing debate between the benefits afforded by security/confidentiality on one hand and the threats they pose to citizens from all walks of life on the other.