Network Security

Network Security

Private Communication in a Public World

Speciner, Mike; Perlman, Radia; Kaufman, Charlie; Perlner, Ray

Pearson Education (US)

10/2022

544

Dura

Inglês

9780136643609

15 a 20 dias

Descrição não disponível.
Chapter 1 Introduction

1.1 Opinions, Products

1.2 Roadmap to the Book

1.3 Terminology

1.4 Notation

1.5 Cryptographically Protected Sessions

1.6 Active and Passive Attacks

1.7 Legal Issues

1.7.1 Patents

1.7.2 Government Regulations

1.8 Some Network Basics

1.8.1 Network Layers

1.8.2 TCP and UDP Ports

1.8.3 DNS (Domain Name System)

1.8.4 HTTP and URLs

1.8.5 Web Cookies

1.9 Names for Humans

1.10 Authentication and Authorization

1.10.1 ACL (Access Control List)

1.10.2 Central Administration/Capabilities

1.10.3 Groups

1.10.4 Cross-Organizational and Nested Groups

1.10.5 Roles

1.11 Malware: Viruses, Worms, Trojan Horses

1.11.1 Where Does Malware Come From?

1.11.2 Virus Checkers

1.12 Security Gateway

1.12.1 Firewall

1.12.2 Application-Level Gateway/Proxy

1.12.3 Secure Tunnels

1.12.4 Why Firewalls Don't Work

1.13 Denial-of-Service (DoS) Attacks

1.14 NAT (Network Address Translation)

1.14.1 Summary

Chapter 2 Introduction to Cryptography

2.1 Introduction

2.1.1 The Fundamental Tenet of Cryptography

2.1.2 Keys

2.1.3 Computational Difficulty

2.1.4 To Publish or Not to Publish

2.1.5 Earliest Encryption

2.1.6 One-Time Pad (OTP)

2.2 Secret Key Cryptography

2.2.1 Transmitting Over an Insecure Channel

2.2.2 Secure Storage on Insecure Media

2.2.3 Authentication

2.2.4 Integrity Check

2.3 Public Key Cryptography

2.3.1 Transmitting Over an Insecure Channel

2.3.2 Secure Storage on Insecure Media

2.3.3 Authentication

2.3.4 Digital Signatures

2.4 Hash Algorithms

2.4.1 Password Hashing

2.4.2 Message Integrity

2.4.3 Message Fingerprint

2.4.4 Efficient Digital Signatures

2.5 Breaking an Encryption Scheme

2.5.1 Ciphertext Only

2.5.2 Known Plaintext

2.5.3 Chosen Plaintext

2.5.4 Chosen Ciphertext

2.5.5 Side-Channel Attacks

2.6 Random Numbers

2.6.1 Gathering Entropy

2.6.2 Generating Random Seeds

2.6.3 Calculating a Pseudorandom Stream from the Seed

2.6.4 Periodic Reseeding

2.6.5 Types of Random Numbers

2.6.6 Noteworthy Mistakes

2.7 Numbers

2.7.1 Finite Fields

2.7.2 Exponentiation

2.7.3 Avoiding a Side-Channel Attack

2.7.4 Types of Elements used in Cryptography

2.7.5 Euclidean Algorithm

2.7.6 Chinese Remainder Theorem

2.8 Homework

Chapter 3 Secret Key Cryptography

3.1 Introduction

3.2 Generic Block Cipher Issues

3.2.1 Blocksize, Keysize

3.2.2 Completely General Mapping

3.2.3 Looking Random

3.3 Constructing a Practical Block Cipher

3.3.1 Per-Round Keys

3.3.2 S-boxes and Bit Shuffles

3.3.3 Feistel Ciphers

3.4 Choosing Constants

3.5 Data Encryption Standard (DES)

3.5.1 DES Overview

3.5.2 The Mangler Function

3.5.3 Undesirable Symmetries

3.5.4 What's So Special About DES?

3.6 3DES (Multiple Encryption DES)

3.6.1 How Many Encryptions?

3.6.1.1 Encrypting Twice with the Same Key

3.6.1.2 Encrypting Twice with Two Keys

3.6.1.3 Triple Encryption with Only Two Keys

3.6.2 Why EDE Rather Than EEE?

3.7 Advanced Encryption Standard (AES)

3.7.1 Origins of AES

3.7.2 Broad Overview

3.7.3 AES Overview

3.7.4 Key Expansion

3.7.5 Inverse Rounds

3.7.6 Software Implementations of AES

3.8 RC4

3.9 Homework

Chapter 4 Modes of Operation

4.1 Introduction

4.2 Encrypting a Large Message

4.2.1 ECB (Electronic Code Book)

4.2.2 CBC (Cipher Block Chaining)

4.2.2.1 Randomized ECB

4.2.2.2 CBC

4.2.2.3 CBC Threat-Modifying Ciphertext Blocks

4.2.3 CTR (Counter Mode)

4.2.3.1 Choosing IVs for CTR Mode

4.2.4 XEX (XOR Encrypt XOR)

4.2.5 XTS (XEX with Ciphertext Stealing)

4.3 Generating MACs

4.3.1 CBC-MAC

4.3.1.1 CBC Forgery Attack

4.3.2 CMAC

4.3.3 GMAC

4.3.3.1 GHASH

4.3.3.2 Transforming GHASH into GMAC

4.4 Ensuring Privacy and Integrity Together

4.4.1 CCM (Counter with CBC-MAC)

4.4.2 GCM (Galois/Counter Mode)

4.5 Performance Issues

4.6 Homework

Chapter 5 Cryptographic Hashes

5.1 Introduction

5.2 The Birthday Problem

5.3 A Brief History of Hash Functions

5.4 Nifty Things to Do with a Hash

5.4.1 Digital Signatures

5.4.2 Password Database

5.4.3 Secure Shorthand of Larger Piece of Data

5.4.4 Hash Chains

5.4.5 Blockchain

5.4.6 Puzzles

5.4.7 Bit Commitment

5.4.8 Hash Trees

5.4.9 Authentication

5.4.10 Computing a MAC with a Hash

5.4.11 HMAC

5.4.12 Encryption with a Secret and a Hash Algorithm

5.5 Creating a Hash Using a Block Cipher

5.6 Construction of Hash Functions

5.6.1 Construction of MD4, MD5, SHA-1 and SHA-2

5.6.2 Construction of SHA-3

5.7 Padding

5.7.1 MD4, MD5, SHA-1, and SHA2-256 Message Padding

5.7.2 SHA-3 Padding Rule

5.8 The Internal Encryption Algorithms

5.8.1 SHA-1 Internal Encryption Algorithm

5.8.2 SHA-2 Internal Encryption Algorithm

5.9 SHA-3 f Function (Also Known as KECCAK-f)

5.10 Homework

Chapter 6 First-Generation Public Key Algorithms

6.1 Introduction

6.2 Modular Arithmetic

6.2.1 Modular Addition

6.2.2 Modular Multiplication

6.2.3 Modular Exponentiation

6.2.4 Fermat's Theorem and Euler's Theorem

6.3 RSA

6.3.1 RSA Algorithm

6.3.2 Why Does RSA Work?

6.3.3 Why Is RSA Secure?

6.3.4 How Efficient Are the RSA Operations?

6.3.4.1 Exponentiating with Big Numbers

6.3.4.2 Generating RSA Keys

6.3.4.3 Why a Non-Prime Has Multiple Square Roots of One

6.3.4.4 Having a Small Constant e

6.3.4.5 Optimizing RSA Private Key Operations

6.3.5 Arcane RSA Threats

6.3.5.1 Smooth Numbers

6.3.5.2 The Cube Root Problem

6.3.6 Public-Key Cryptography Standard (PKCS)

6.3.6.1 Encryption

6.3.6.2 The Million-Message Attack

6.3.6.3 Signing

6.4 Diffie-Hellman

6.4.1 MITM (Meddler-in-the-Middle) Attack

6.4.2 Defenses Against MITM Attack

6.4.3 Safe Primes and the Small-Subgroup Attack

6.4.4 ElGamal Signatures

6.5 Digital Signature Algorithm (DSA)

6.5.1 The DSA Algorithm

6.5.2 Why Is This Secure?

6.5.3 Per-Message Secret Number

6.6 How Secure Are RSA and Diffie-Hellman?

6.7 Elliptic Curve Cryptography (ECC)

6.7.1 Elliptic Curve Diffie-Hellman (ECDH)

6.7.2 Elliptic Curve Digital Signature Algorithm (ECDSA)

6.8 Homework

Chapter 7 Quantum Computing

7.1 What Is a Quantum Computer?

7.1.1 A Preview of the Conclusions

7.1.2 First, What Is a Classical Computer?

7.1.3 Qubits and Superposition

7.1.3.1 Example of a Qubit

7.1.3.2 Multi-Qubit States and Entanglement

7.1.4 States and Gates as Vectors and Matrices

7.1.5 Becoming Superposed and Entangled

7.1.6 Linearity

7.1.6.1 No Cloning Theorem

7.1.7 Operating on Entangled Qubits

7.1.8 Unitarity

7.1.9 Doing Irreversible Operations by Measurement

7.1.10 Making Irreversible Classical Operations Reversible

7.1.11 Universal Gate Sets

7.2 Grover's Algorithm

7.2.1 Geometric Description

7.2.2 How to Negate the Amplitude of |k?

7.2.3 How to Reflect All the Amplitudes Across the Mean

7.2.4 Parallelizing Grover's Algorithm

7.3 Shor's Algorithm

7.3.1 Why Exponentiation mod n Is a Periodic Function

7.3.2 How Finding the Period of ax mod n Lets You Factor n

7.3.3 Overview of Shor's Algorithm

7.3.4 Converting to the Frequency Graph-Introduction

7.3.5 The Mechanics of Converting to the Frequency Graph

7.3.6 Calculating the Period

7.3.7 Quantum Fourier Transform

7.4 Quantum Key Distribution (QKD)

7.4.1 Why It's Sometimes Called Quantum Encryption

7.4.2 Is Quantum Key Distribution Important?

7.5 How Hard Are Quantum Computers to Build?

7.6 Quantum Error Correction

7.7 Homework

Chapter 8 Post-Quantum Cryptography

8.1 Signature and/or Encryption Schemes

8.1.1 NIST Criteria for Security Levels

8.1.2 Authentication

8.1.3 Defense Against Dishonest Ciphertext

8.2 Hash-based Signatures

8.2.1 Simplest Scheme - Signing a Single Bit

8.2.2 Signing an Arbitrary-sized Message

8.2.3 Signing Lots of Messages

8.2.4 Deterministic Tree Generation

8.2.5 Short Hashes

8.2.6 Hash Chains

8.2.7 Standardized Schemes

8.2.7.1 Stateless Schemes

8.3 Lattice-Based Cryptography

8.3.1 A Lattice Problem

8.3.2 Optimization: Matrices with Structure

8.3.3 NTRU-Encryption Family of Lattice Encryption Schemes

8.3.3.1 Bob Computes a (Public, Private) Key Pair

8.3.3.2 How Bob Decrypts to Find m

8.3.3.3 How Does this Relate to Lattices?

8.3.4 Lattice-Based Signatures

8.3.4.1 Basic Idea

8.3.4.2 Insecure Scheme

8.3.4.3 Fixing the Scheme

8.3.5 Learning with Errors (LWE)

8.3.5.1 LWE Optimizations

8.3.5.2 LWE-based NIST Submissions

8.4 Code-based Schemes

8.4.1 Non-cryptographic Error-correcting Codes

8.4.1.1 Invention Step

8.4.1.2 Codeword Creation Step

8.4.1.3 Misfortune Step

8.4.1.4 Diagnosis Step

8.4.2 The Parity-Check Matrix

8.4.3 Cryptographic Public Key Code-based Scheme

8.4.3.1 Neiderreiter Optimization

8.4.3.2 Generating a Public Key Pair

8.4.3.3 Using Circulant Matrices

8.5 Multivariate Cryptography

8.5.1 Solving Linear Equations

8.5.2 Quadratic Polynomials

8.5.3 Polynomial Systems

8.5.4 Multivariate Signature Systems

8.5.4.1 Multivariate Public Key Signatures

8.6 Homework

Chapter 9 Authentication of People

9.1 Password-based Authentication

9.1.1 Challenge-Response Based on Password

9.1.2 Verifying Passwords

9.2 Address-based Authentication

9.2.1 Network Address Impersonation

9.3 Biometrics

9.4 Cryptographic Authentication Protocols

9.5 Who Is Being Authenticated?

9.6 Passwords as Cryptographic Keys

9.7 On-Line Password Guessing

9.8 Off-Line Password Guessing

9.9 Using the Same Password in Multiple Places

9.10 Requiring Frequent Password Changes

9.11 Tricking Users into Divulging Passwords

9.12 Lamport's Hash

9.13 Password Managers

9.14 Web Cookies

9.15 Identity Providers (IDPs)

9.16 Authentication Tokens

9.16.1 Disconnected Tokens

9.16.2 Public Key Tokens

9.17 Strong Password Protocols

9.17.1 Subtle Details

9.17.2 Augmented Strong Password Protocols

9.17.3 SRP (Secure Remote Password)

9.18 Credentials Download Protocols

9.19 Homework

Chapter 10 Trusted Intermediaries

10.1 Introduction

10.2 Functional Comparison

10.3 Kerberos

10.3.1 KDC Introduces Alice to Bob

10.3.2 Alice Contacts Bob

10.3.3 Ticket Granting Ticket (TGT)

10.3.4 Interrealm Authentication

10.3.5 Making Password-Guessing Attacks Difficult

10.3.6 Double TGT Protocol

10.3.7 Authorization Information

10.3.8 Delegation

10.4 PKI

10.4.1 Some Terminology

10.4.2 Names in Certificates

10.5 Website Gets a DNS Name and Certificate

10.6 PKI Trust Models

10.6.1 Monopoly Model

10.6.2 Monopoly plus Registration Authorities (RAs)

10.6.3 Delegated CAs

10.6.4 Oligarchy

10.6.5 Anarchy Model

10.6.6 Name Constraints

10.6.7 Top-Down with Name Constraints

10.6.8 Multiple CAs for Any Namespace Node

10.6.9 Bottom-Up with Name Constraints

10.6.9.1 Functionality of Up-Links

10.6.9.2 Functionality of Cross-Links

10.6.10 Name Constraints in PKIX Certificates

10.7 Building Certificate Chains

10.8 Revocation

10.8.1 CRL (Certificate Revocation list

10.8.2 Online Certificate Status Protocol (OCSP)

10.8.3 Good-Lists vs. Bad-Lists

10.9 Other Information in a PKIX Certificate

10.10 Issues with Expired Certificates

10.11 DNSSEC (DNS Security Extensions)

10.12 Homework

Chapter 11 Communication Session Establishment

11.1 One-way Authentication of Alice

11.1.1 Timestamps vs. Challenges

11.1.2 One-Way Authentication of Alice using a Public Key

11.2 Mutual Authentication

11.2.1 Reflection Attack

11.2.2 Timestamps for Mutual Authentication

11.3 Integrity/Encryption for Data

11.3.1 Session Key Based on Shared Secret Credentials

11.3.2 Session Key Based on Public Key Credentials

11.3.3 Session Key Based on One-Party Public Keys

11.4 Nonce Types

11.5 Intentional MITM

11.6 Detecting MITM

11.7 What Layer?

11.8 Perfect Forward Secrecy

11.9 Preventing Forged Source Addresses

11.9.1 Allowing Bob to Be Stateless in TCP

11.9.2 Allowing Bob to Be Stateless in IPsec

11.10 Endpoint Identifier Hiding

11.11 Live Partner Reassurance

11.12 Arranging for Parallel Computation

11.13 Session Resumption/Multiple Sessions

11.14 Plausible Deniability

11.15 Negotiating Crypto Parameters

11.15.1 Suites vs. a la Carte

11.15.2 Downgrade Attack

11.16 Homework

Chapter 12 IPsec

12.1 IPsec Security Associations

12.1.1 Security Association Database

12.1.2 Security Policy Database

12.1.3 IKE-SAs and Child-SAs

12.2 IKE (Internet Key Exchange Protocol)

12.3 Creating a Child-SA

12.4 AH and ESP

12.4.1 ESP Integrity Protection

12.4.2 Why Protect the IP Header?

12.4.3 Tunnel, Transport Mode

12.4.4 IPv4 Header

12.4.5 IPv6 Header

12.5 AH (Authentication Header)

12.6 ESP (Encapsulating Security Payload)

12.7 Comparison of Encodings

12.8 Homework

Chapter 13 SSL/TLS and SSH

13.1 Using TCP

13.2 StartTLS

13.3 Functions in the TLS Handshake

13.4 TLS 1.2 (and Earlier) Basic Protocol

13.5 TLS 1.3

13.6 Session Resumption

13.7 PKI as Deployed by TLS

13.8 SSH (Secure Shell)

13.8.1 SSH Authentication

13.8.2 SSH Port Forwarding

13.9 Homework

Chapter 14 Electronic Mail Security

14.1 Distribution Lists

14.2 Store and Forward

14.3 Disguising Binary as Text

14.4 HTML-Formatted Email

14.5 Attachments

14.6 Non-cryptographic Security Features

14.6.1 Spam Defenses

14.7 Malicious Links in Email

14.8 Data Loss Prevention (DLP)

14.9 Knowing Bob's Email Address

14.10 Self-Destruct, Do-Not-Forward,

14.11 Preventing Spoofing of From Field

14.12 In-Flight Encryption

14.13 End-to-End Signed and Encrypted Email

14.14 Encryption by a Server

14.15 Message Integrity

14.16 Non-Repudiation

14.17 Plausible Deniability

14.18 Message Flow Confidentiality

14.19 Anonymity

14.20 Homework

Chapter 15 Electronic Money

15.1 ECASH

15.2 Offline eCash

15.2.1 Practical Attacks

15.3 Bitcoin

15.3.1 Transactions

15.3.2 Bitcoin Addresses

15.3.3 Blockchain

15.3.4 The Ledger

15.3.5 Mining

15.3.6 Blockchain Forks

15.3.7 Why Is Bitcoin So Energy-Intensive?

15.3.8 Integrity Checks: Proof of Work vs. Digital Signatures

15.3.9 Concerns

15.4 Wallets for Electronic Currency

15.5 Homework

Chapter 16 Cryptographic Tricks

16.1 Secret Sharing

16.2 Blind Signature

16.3 Blind Decryption

16.4 Zero-Knowledge Proofs

16.4.1 Graph Isomorphism ZKP

16.4.2 Proving Knowledge of a Square Root

16.4.3 Noninteractive ZKP

16.5 Group Signatures

16.5.1 Trivial Group Signature Schemes

16.5.1.1 Single Shared Key

16.5.1.2 Group Membership Certificate

16.5.1.3 Multiple Group Membership Certificates

16.5.1.4 Blindly Signed Multiple Group Membership Certificates

16.5.2 Ring Signatures

16.5.3 DAA (Direct Anonymous Attestation)

16.5.4 EPID (Enhanced Privacy ID)

16.6 Circuit Model

16.7 Secure Multiparty Computation (MPC)

16.8 Fully Homomorphic Encryption (FHE)

16.8.1 Bootstrapping

16.8.2 Easy-to-Understand Scheme

16.9 Homework

Chapter 17 Folklore

17.1 Misconceptions

17.2 Perfect Forward Secrecy

17.3 Change Encryption Keys Periodically

17.4 Don't Encrypt without Integrity Protection

17.5 Multiplexing Flows over One Secure Session

17.5.1 The Splicing Attack

17.5.2 Service Classes

17.5.3 Different Cryptographic Algorithms

17.6 Using Different Secret Keys

17.6.1 For Initiator and Responder in Handshake

17.6.2 For Encryption and Integrity

17.6.3 In Each Direction of a Secure Session

17.7 Using Different Public Keys

17.7.1 Use Different Keys for Different Purposes

17.7.2 Different Keys for Signing and Encryption

17.8 Establishing Session Keys

17.8.1 Have Both Sides Contribute to the Master Key

17.8.2 Don't Let One Side Determine the Key

17.9 Hash in a Constant When Hashing a Password

17.10 HMAC Rather than Simple Keyed Hash

17.11 Key Derivation

17.12 Use of Nonces in Protocols

17.13 Creating an Unpredictable Nonce

17.14 Compression

17.15 Minimal vs. Redundant Designs

17.16 Overestimate the Size of Key

17.17 Hardware Random Number Generators

17.18 Put Checksums at the End of Data

17.19 Forward Compatibility

17.19.1 Options

17.19.2 Version Numbers

17.19.2.1 Version Number Field Must Not Move

17.19.2.2 Negotiating Highest Version Supported

17.19.2.3 Minor Version Number Field

Glossary

Math

M.1 Introduction

M.2 Some definitions and notation

M.3 Arithmetic

M.4 Abstract Algebra

M.5 Modular Arithmetic

M.5.1 How Do Computers Do Arithmetic?

M.5.2 Computing Inverses in Modular Arithmetic

M.5.2.1 The Euclidean Algorithm

M.5.2.2 The Chinese Remainder Theorem

M.5.3 How Fast Can We Do Arithmetic?

M.6 Groups

M.7 Fields

M.7.1 Polynomials

M.7.2 Finite Fields

M.7.2.1 What Sizes Can Finite Fields Be?

M.7.2.2 Representing a Field

M.8 Mathematics of Rijndael

M.8.1 A Rijndael Round

M.9 Elliptic Curve Cryptography

M.10 Rings

M.11 Linear Transformations

M.12 Matrix Arithmetic

M.12.1 Permutations

M.12.2 Matrix Inverses

M.12.2.1 Gaussian Elimination

M.13 Determinants

M.13.1 Properties of Determinants

M.13.1.1 Adjugate of a Matrix

M.13.2 Proof: Determinant of Product is Product of Determinants

M.14 Homework

Bibliography





9780136643609 TOC 8/2/2022

Este título pertence ao(s) assunto(s) indicados(s). Para ver outros títulos clique no assunto desejado.
cryptography; applied cryptography; quantum cryptography; quantum computing; electronic money; blockchain security; homomorphic encryption; secure multiparty communication; secure protocols; message digests; secure hash algorithms; public key cryptography; secret key cryptography; cryptographic signatures; authentication; nonces; speke; srp; pdm; ddos; Kerberos; ipsec; ssh; tls/ssl; s/mime; computer security; cybersecurity