@@ -52,16 +52,15 @@ security architecture didn’t need an immediate redesign.
52528.1 Pretty Good Privacy (PGP)
5353-------------------------------
5454
55- Pretty Good Privacy (PGP) is a widely used approach to providing
56- security for electronic mail. It provides authentication,
55+ Pretty Good Privacy (PGP) is an approach to providing authentication,
5756confidentiality, data integrity, and nonrepudiation. Originally devised
58- by Phil Zimmerman, it has evolved into an IETF standard known as
57+ by Phil Zimmerman in 1991 , it has evolved into an IETF standard known as
5958OpenPGP. As we saw in a previous chapter, PGP is notable for using a
6059“web of trust” model for distribution of keys rather than a tree-like
6160hierarchy.
6261
6362PGP’s confidentiality and receiver authentication depend on the receiver
64- of an email message having a public key that is known to the sender. To
63+ of a message having a public key that is known to the sender. To
6564provide sender authentication and nonrepudiation, the sender must have a
6665public key that is known by the receiver. These public keys are
6766predistributed using certificates and a web-of-trust PKI. PGP supports
@@ -136,19 +135,19 @@ figure out which from the context.
136135
137136To better appreciate the importance of SSH on today’s Internet, consider
138137a couple of the scenarios where it is used. Telecommuters, for example,
139- often subscribe to ISPs that offer high-speed fiber-to-the- home, and
138+ often subscribe to ISPs that offer high-speed Internet access at home, and
140139they use these ISPs (plus some chain of other ISPs) to reach machines
141140operated by their employer. This means that when a telecommuter logs
142141into a machine inside his employer’s data center, both the passwords and
143142all the data sent or received potentially passes through any number of
144143untrusted networks. SSH provides a way to encrypt the data sent over
145144these connections and to improve the strength of the authentication
146145mechanism used to log in. (A similar situation occurs when said employee
147- connects to work using the public Wi-Fi at Starbucks .) Another usage of
146+ connects to work using the public Wi-Fi at a coffee shop .) Another usage of
148147SSH is remote login to a router, perhaps to change its configuration or
149148read its log files; clearly, a network administrator wants to be sure
150149that he can log into a router securely and that unauthorized parties can
151- neither log in nor intercept the commands sent to the router or output
150+ neither log in nor intercept the commands sent to the router or the output
152151sent back to the administrator.
153152
154153The latest version of SSH, version 2, consists of three protocols:
@@ -249,21 +248,24 @@ network (VPN) using SSH tunnels in this way.
2492488.3 IP Security (IPsec)
250249-------------------------
251250
252- Probably the most ambitious of all the efforts to integrate security
253- into the Internet happens at the IP layer. Support for IPsec, as the
254- architecture is called, is optional in IPv4 but mandatory in IPv6.
251+ One of the earliest efforts to integrate security
252+ into the Internet sits at the IP layer. Support for IPsec, as the
253+ architecture is called, is optional in IPv4 but mandatory in
254+ IPv6. Indeed, better security was one of the stated goals of IPv6,
255+ although it turned out that the central ideas could also be retrofitted
256+ into IPv4 .
255257
256258IPsec is really a framework (as opposed to a single protocol or system)
257- for providing all the security services discussed throughout this
258- chapter . IPsec provides three degrees of freedom. First, it is highly
259+ for providing a broad set of security services discussed throughout this
260+ book . IPsec provides three degrees of freedom. First, it is highly
259261modular, allowing users (or more likely, system administrators) to
260262select from a variety of cryptographic algorithms and specialized
261263security protocols. Second, IPsec allows users to select from a large
262264menu of security properties, including access control, integrity,
263265authentication, originality, and confidentiality. Third, IPsec can be
264266used to protect narrow streams (e.g., packets belonging to a particular
265267TCP connection being sent between a pair of hosts) or wide streams
266- (e.g., all packets flowing between a pair of routers).
268+ (e.g., all packets flowing between a pair of routers or locations ).
267269
268270When viewed from a high level, IPsec consists of two parts. The first
269271part is a pair of protocols that implement the available security
@@ -360,7 +362,141 @@ between particular endpoints. A network of such tunnels can be used to
360362implement an entire virtual private network. Hosts communicating over a
361363VPN need not even be aware that it exists.
362364
363- 8.4 Wireless Security (802.11i)
365+ 8.4 Web Authentication (WebAuthn) and Passkeys
366+ -----------------------------------------------
367+
368+ While public key cryptography has been well understood for decades,
369+ and forms the basis for authentication of web sites using Transport
370+ Layer Security, its adoption for authentication of end-users has
371+ generally proven challenging. PGP was an early effort to allow
372+ end-users to authenticate themselves with public key cryptography, but
373+ if you need to authenticate yourself to, say, your bank, it's
374+ overwhelmingly the case today that you will use some combination of
375+ user name (maybe an account number or an email address) and a
376+ password. Encryption (using TLS) prevents your password from being
377+ seen by eavesdroppers when it is sent to the bank's site, but we
378+ normally don't use public key cryptography to authenticate users.
379+
380+ Password-based authentication had proven enormously problematic, with
381+ passwords frequently being compromised by a variety of attacks. If a
382+ user's password is obtained by an attacker, the attacker can now
383+ impersonate the user to authenticate himself. Passwords might be
384+ obtained using brute-force search, which works well on passwords that
385+ are relatively short or simple, and has become easier over time with
386+ increased computing power. Because many people re-use passwords across
387+ multiple sites, if a password is obtained from a breach of one site,
388+ it can often be used on other sites. And a range of *phishing attacks *
389+ entail somehow tricking a user into putting his login credentials
390+ into a fraudulent web site. This might be initiated with an email
391+ leading the user to input his credentials to a domain name similar
392+ to the expected one, on a site that mimics the visual style of the
393+ legitimate web site.
394+
395+ A range of efforts have been under way for many years to reduce the
396+ reliance on passwords and to drive adoption of public key
397+ cryptography. The most visible recent development has been the
398+ appearance of *passkeys *, which, as the name suggests, are a form of
399+ user authentication that replaces passwords with public key-based
400+ authentication.
401+
402+ .. can add a figure here
403+
404+ Passkeys are formally known as *discoverable credentials * and are
405+ defined in the Web Authentication (WebAuthn) specification of the W3C
406+ (World Wide Web Consortium). This work evolved from several prior
407+ efforts including those of the FIDO alliance (FIDO = Fast Identity
408+ Online).
409+
410+ The basic idea behind passkeys is simple enough: a user (or more
411+ likely, a device owned by the user) creates a private/public key pair
412+ specifically for a single web site and provides the public key to the
413+ site. The user proves their identity to the web site using some other
414+ method such as a previously established user name and password. The
415+ web site stores the public key for subsequent use. The next time that
416+ the user wants to authenticate to the web site, the site issues a
417+ challenge to the user, who uses the locally stored private key to sign
418+ their response to the challenge. The web site uses the stored public
419+ key to authenticate the user.
420+
421+ The fact that the process is bootstrapped by getting the user to
422+ authenticate using a traditional approach (such as user name and
423+ password) is clearly a bit of a weakness. At the same time, it
424+ solves the thorny problem of how to scalably bind public
425+ keys to users which has proven challenging to date. Additional steps
426+ to secure the intial authentication might include the use of
427+ multi-factor authentication.
428+
429+ Passkeys offer two protections against phishing. First, the private
430+ key is never transmitted, being used only to sign the response to a
431+ challenge. Second, passkeys are bound to a specific web site. So a
432+ user will have a different private/public key pair for every web site
433+ they want to authenticate to. When the authentication challenge is
434+ received from the web site, the client-side software checks that it is
435+ coming from the correct web site using the standard authentication
436+ methods of TLS. A fraudulent web site will fail this check, so the
437+ user will not try to authenticate to the site.
438+
439+
440+ The WebAuthn spec allows for considerable implementation flexibility,
441+ but there are two broad categories of passkey implementation. One
442+ approach binds the key to a specific piece of hardware, such as a USB
443+ key. Such keys have been around for many years and known by various
444+ names as the commercial offerings and standards around them have
445+ evolved. The generic names include U2F (universal second factor) and
446+ FIDO (from the FIDO Alliance).
447+
448+ Now that biometric
449+ authentication, such as facial and fingerprint recognition, is
450+ available on many devices, it is common to require biometric
451+ authentication to access a passkey. So a passkey might be stored on a
452+ mobile phone and require facial recognition of the owner before the
453+ passkey can be accessed.
454+
455+ The second class of passkey implementation allows the credentials to be
456+ copied among multiple devices, typically using some sort of password
457+ manager to keep the credentials secure and synchronized across
458+ devices. In this case, the private/public key pair is stored in the
459+ password manager and then is made available to the user across
460+ different devices (laptops, mobile phones, etc.) when they need the
461+ passkey.
462+
463+ Both approaches have their strengths and weaknesses. Hardware tokens
464+ make phishing attacks almost impossible, since the only way to get
465+ access to the user's credential is to have physical access to the
466+ key. A password manager, on the other hand, is a piece of software
467+ that normally has some cloud service behind it to handle
468+ synchronization across devices. If an attacker manages
469+ to get access to the credentials necessary to log in to the cloud
470+ service, then they have access to the passkeys stored within it. For
471+ this reason (among others) password managers are generally secured
472+ with some sort of multi-factor authentication. One of those factors
473+ might be biometric, or even a hardware token.
474+
475+ The downside of hardware tokens is that the private key is stored only
476+ in one place. If the hardware token is lost, there is no way to
477+ recover the private key, so some other authentication method will be
478+ needed as a backup. Also, since most hardware tokens lack biometric
479+ authentication, it is possible that a private key could be obtained
480+ and used by an attacker if he can gain access to the physical key.
481+
482+ Many of the important details of WebAuthn come down to making public
483+ key cryptography accessible to average users, rather than just the
484+ domain of the tech-savvy. This is where PGP, for example, has
485+ struggled to gain wider acceptance. WebAuthn is now part of the
486+ standards that are widely implemented for the World Wide Web, meaning
487+ that there are implementations across many browsers and web
488+ servers. There is also a well-defined API to allow authentication
489+ devices (such as FIDO keys) to communicate with browsers to manage the
490+ creation and use of private/public key pairs.
491+
492+ We are still in the relatively early days of passkeys as they start to
493+ become available on a wide variety of operating systems and web
494+ sites. Those who have led their development hope that they start to
495+ replace the ubiquitous password for user authentication.
496+
497+
498+
499+ 8.5 Wireless Security (802.11i)
364500---------------------------------
365501
366502Wireless links are particularly exposed to security threats due to the
0 commit comments