
Network Security with OpenSSL
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Network Security with OpenSSL
- SPECIAL OFFER: Upgrade this ebook with O'Reilly
- A Note Regarding Supplemental Files
- Preface
- About This Book
- Conventions Used in This Book
- Comments and Questions
- Acknowledgments
- 1. Introduction
- 1.1. Cryptography for the Rest of Us
- 1.1.1. Goals of Cryptography
- 1.1.2. Cryptographic Algorithms
- 1.1.2.1. Symmetric key encryption
- 1.1.2.2. Public key encryption
- 1.1.2.3. Cryptographic hash functions and Message Authentication Codes
- 1.1.2.4. Digital signatures
- 1.2. Overview of SSL
- 1.3. Problems with SSL
- 1.3.1. Efficiency
- 1.3.1.1. Cryptographic acceleration hardware
- 1.3.1.2. Load balancing
- 1.3.2. Keys in the Clear
- 1.3.3. Bad Server Credentials
- 1.3.4. Certificate Validation
- 1.3.5. Poor Entropy
- 1.3.6. Insecure Cryptography
- 1.4. What SSL Doesn't Do Well
- 1.4.1. Other Transport Layer Protocols
- 1.4.2. Non-Repudiation
- 1.4.3. Protection Against Software Flaws
- 1.4.4. General-Purpose Data Security
- 1.5. OpenSSL Basics
- 1.6. Securing Third-Party Software
- 1.6.1. Server-Side Proxies
- 1.6.2. Client-Side Proxies
- 2. Command-Line Interface
- 2.1. The Basics
- 2.1.1. Configuration Files
- 2.2. Message Digest Algorithms
- 2.2.1. Examples
- 2.3. Symmetric Ciphers
- 2.3.1. Examples
- 2.4. Public Key Cryptography
- 2.4.1. Diffie-Hellman
- 2.4.1.1. Examples
- 2.4.2. Digital Signature Algorithm
- 2.4.2.1. Examples
- 2.4.3. RSA
- 2.4.3.1. Examples
- 2.5. S/MIME
- 2.5.1. Examples
- 2.6. Passwords and Passphrases
- 2.7. Seeding the Pseudorandom Number Generator
- 3. Public Key Infrastructure (PKI)
- 3.1. Certificates
- 3.1.1. Certification Authorities
- 3.1.1.1. Private Certification Authorities
- 3.1.1.2. Public Certification Authorities
- 3.1.2. Certificate Hierarchies
- 3.1.3. Certificate Extensions
- 3.1.4. Certificate Revocation Lists
- 3.1.5. Online Certificate Status Protocol
- 3.2. Obtaining a Certificate
- 3.2.1. Personal Certificates
- 3.2.2. Code-Signing Certificates
- 3.2.3. Web Site Certificates
- 3.3. Setting Up a Certification Authority
- 3.3.1. Creating an Environment for Your Certification Authority
- 3.3.2. Building an OpenSSL Configuration File
- 3.3.3. Creating a Self-Signed Root Certificate
- 3.3.4. Issuing Certificates
- 3.3.5. Revoking Certificates
- 4. Support Infrastructure
- 4.1. Multithread Support
- 4.1.1. Static Locking Callbacks
- 4.1.2. Dynamic Locking Callbacks
- 4.2. Internal Error Handling
- 4.2.1. Manipulating Error Queues
- 4.2.2. Human-Readable Error Messages
- 4.2.3. Threading and Practical Applications
- 4.3. Abstract Input/Output
- 4.3.1. Source/Sink BIOs
- 4.3.1.1. Memory sources/sinks
- 4.3.1.2. File sources/sinks
- 4.3.1.3. Socket sources/sinks
- 4.3.1.4. BIO pairs
- 4.3.2. Filter BIOs
- 4.4. Random Number Generation
- 4.4.1. Seeding the PRNG
- 4.4.2. Using an Alternate Entropy Source
- 4.5. Arbitrary Precision Math
- 4.5.1. The Basics
- 4.5.2. Mathematical Operations
- 4.5.3. Generating Prime Numbers
- 4.6. Using Engines
- 5. SSL/TLS Programming
- 5.1. Programming with SSL
- 5.1.1. The Application(s) to Secure
- 5.1.2. Step 1: SSL Version Selection and Certificate Preparation
- 5.1.2.1. Background
- 5.1.2.2. Certificate preparation
- 5.1.2.3. Our example extended
- 5.1.3. Step 2: Peer Authentication
- 5.1.3.1. Background
- 5.1.3.2. Incorporating trusted certificates
- 5.1.3.3. Certificate verification
- 5.1.3.4. Incorporating certificate revocation lists
- 5.1.3.5. Post-connection assertions
- 5.1.3.6. Further extension of the examples
- 5.1.4. Step 3: SSL Options and Cipher Suites
- 5.1.4.1. Setting SSL options
- 5.1.4.2. Ephemeral keying
- 5.1.4.3. Cipher suite selection
- 5.1.4.4. The final product
- 5.1.4.5. Beyond the example
- 5.2. Advanced Programming with SSL
- 5.2.1. SSL Session Caching
- 5.2.1.1. Client-side SSL sessions
- 5.2.1.2. Server-side SSL sessions
- 5.2.1.3. An on-disk, session caching framework
- 5.2.2. I/O on SSL Connections
- 5.2.2.1. Reading and writing functions
- 5.2.2.2. Blocking I/O
- 5.2.2.3. Non-blocking I/O
- 5.2.3. SSL Renegotiations
- 5.2.3.1. Implementing renegotiations
- 5.2.3.2. Renegotiations in 0.9.7
- 5.2.3.3. Further notes
- 6. Symmetric Cryptography
- 6.1. Concepts in Symmetric Cryptography
- 6.1.1. Block Ciphers and Stream Ciphers
- 6.1.2. Basic Block Cipher Modes
- 6.2. Encrypting with the EVP API
- 6.2.1. Available Ciphers
- 6.2.1.1. AES
- 6.2.1.2. Blowfish
- 6.2.1.3. CAST5
- 6.2.1.4. DES
- 6.2.1.5. DESX
- 6.2.1.6. Triple DES
- 6.2.1.7. IDEA
- 6.2.1.8. RC2T
- 6.2.1.9. RC4T
- 6.2.1.10. RC5T
- 6.2.2. Initializing Symmetric Ciphers
- 6.2.3. Specifying Key Length and Other Options
- 6.2.4. Encryption
- 6.2.5. Decryption
- 6.2.6. Handling UDP Traffic with Counter Mode
- 6.3. General Recommendations
- 7. Hashes and MACs
- 7.1. Overview of Hashes and MACs
- 7.2. Hashing with the EVP API
- 7.3. Using MACs
- 7.3.1. Other MACs
- 7.3.1.1. CBC-MAC
- 7.3.1.2. XCBC-MAC
- 7.3.1.3. XOR-MAC
- 7.3.1.4. UMAC
- 7.4. Secure HTTP Cookies
- 8. Public Key Algorithms
- 8.1. When to Use Public Key Cryptography
- 8.2. Diffie-Hellman
- 8.2.1. The Basics
- 8.2.2. Generating and Exchanging Parameters
- 8.2.3. Computing Shared Secrets
- 8.2.4. Practical Applications
- 8.3. Digital Signature Algorithm (DSA)
- 8.3.1. The Basics
- 8.3.2. Generating Parameters and Keys
- 8.3.3. Signing and Verifying
- 8.3.4. Practical Applications
- 8.4. RSA
- 8.4.1. The Basics
- 8.4.2. Generating Keys
- 8.4.3. Data Encryption, Key Agreement, and Key Transport
- 8.4.4. Signing and Verifying
- 8.4.5. Practical Applications
- 8.5. The EVP Public Key Interface
- 8.5.1. Signing and Verifying
- 8.5.2. Encrypting and Decrypting
- 8.6. Encoding and Decoding Objects
- 8.6.1. Writing and Reading DER-Encoded Objects
- 8.6.2. Writing and Reading PEM-Encoded Objects
- 9. OpenSSL in Other Languages
- 9.1. Net::SSLeay for Perl
- 9.1.1. Net::SSLeay Variables
- 9.1.2. Net::SSLeay Error Handling
- 9.1.3. Net::SSLeay Utility Functions
- 9.1.4. Net::SSLeay Low-Level Bindings
- 9.2. M2Crypto for Python
- 9.2.1. Low-Level Bindings
- 9.2.2. High-Level Classes
- 9.2.2.1. M2Crypto.SSL
- 9.2.2.2. M2Crypto.BIO
- 9.2.2.3. M2Crypto.EVP
- 9.2.2.4. Miscellaneous crypto
- 9.2.3. Python Module Extensions
- 9.2.3.1. Extensions to httplib: httpslib
- 9.2.3.2. Extensions to urllib: m2urllib
- 9.2.3.3. Extensions to xmlrpclib: m2xmlrpclib
- 9.3. OpenSSL Support in PHP
- 9.3.1. General Functions
- 9.3.2. Certificate Functions
- 9.3.3. Encryption and Signing Functions
- 9.3.4. PKCS#7 (S/MIME) Functions
- 10. Advanced Programming Topics
- 10.1. Object Stacks
- 10.2. Configuration Files
- 10.3. X.509
- 10.3.1. Generating Requests
- 10.3.1.1. Subject name
- 10.3.1.2. X.509 Version 3 extensions
- 10.3.1.3. Putting it all together
- 10.3.2. Making Certificates
- 10.3.3. X.509 Certificate Checking
- 10.4. PKCS#7 and S/MIME
- 10.4.1. Signing and Verifying
- 10.4.2. Encrypting and Decrypting
- 10.4.3. Combined Operations
- 10.4.4. PKCS#7 Flags
- 10.5. PKCS#12
- 10.5.1. Wrapping Information into a PKCS#12 Object
- 10.5.2. Importing Objects from PKCS#12 Data
- A. Command-Line Reference
- asn1parse
- ca
- ciphers
- crl
- crl2pkcs7
- dgst
- dhparam
- dsa
- dsaparam
- enc
- errstr
- gendsa
- genrsa
- nseq
- passwd
- pkcs7
- pkcs8
- pkcs12
- rand
- req
- rsa
- rsautl
- s_client
- s_server
- s_time
- sess_id
- smime
- speed
- spkac
- verify
- version
- x509
- Index
- About the Authors
- Colophon
- SPECIAL OFFER: Upgrade this ebook with O'Reilly
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.