21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 3, Input Validation, teaches you how to protect your programs from malicious<br />

user input. In this chapter, we demonstrate techniques for preventing things<br />

like buffer overflow problems, cross-site scripting attacks, format string errors, and<br />

SQL-injection attacks.<br />

Chapter 4, Symmetric Cryptography Fundamentals, covers basic encoding and storage<br />

issues that are often helpful in traditional encryption.<br />

Chapter 5, Symmetric Encryption, shows how to choose and use symmetric encryption<br />

primitives such as AES, the Advanced Encryption Standard.<br />

Chapter 6, Hashes and Message Authentication, focuses on ensuring data integrity<br />

using message authentication codes.<br />

Chapter 7, Public Key Cryptography, teaches you how to use basic public key algorithms<br />

such as RSA.<br />

Chapter 8, Authentication, shows you how to manipulate login credentials. We focus<br />

on implementing password-based systems as securely as possible, because this is<br />

what most people want to use. Here we also cover a wide variety of technologies,<br />

including PAM and Kerberos.<br />

Chapter 9, Networking, provides code for securing your network connections. We<br />

discuss SSLand TLS, and also describe more lightweight protocols for when you do<br />

not want to set up a public key infrastructure. We strongly encourage you to come<br />

here before you go to the cryptography chapters, because it is exceedingly difficult to<br />

build a secure network protocol from parts.<br />

Chapter 10, Public Key Infrastructure, is largely a supplement for Chapter 9 for when<br />

you are using a public key infrastructure (PKI), as well as when you are using the<br />

SSL/TLS protocol. In this chapter, we demonstrate best practices for using a PKI<br />

properly. For example, we show how to determine whether certificates have expired<br />

or are otherwise invalid.<br />

Chapter 11, Random Numbers, describes how to get secure random data and turn<br />

such data into an efficient and secure stream of pseudo-random numbers.<br />

Chapter 12, Anti-Tampering, gives you the foundations necessary to start protecting<br />

your software against reverse engineering. There are no absolute solutions in this<br />

area, but if you are willing to put a lot of effort into it, you can make reverse engineering<br />

significantly more difficult.<br />

Chapter 13, Other Topics, contains a potpourri of topics that did not fit into other<br />

chapters, such as erasing secrets from memory properly, writing a secure signal handler,<br />

and preventing common attacks against the Windows messaging system.<br />

In addition, our web site contains a glossary providing a comprehensive listing of the<br />

many security-related terms used throughout this book, complete with concise definitions.<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.<br />

Preface | xxi

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!