This web site belongs to Dr. Rick Smith, whose experiences include software development, systems engineering, security, and scholarship. Dr. Smith is a writer, information security consultant, and occasional teacher. He has taught at the University of St. Thomas in St. Paul, Minnesota, the University of Minnesota, and Boston University.
Topics covered on this web site are strongly influenced by Dr. Smith's experiences with large scale information security problems, with the information security challenges of the defense community, and with the materials addressed in his books: Elementary Information Security (Jones and Bartlett, 2011), Internet Cryptography (Addison-Wesley, 1997) and Authentication: From Passwords to Public Keys (Addison-Wesley, 2002).
I am available for consulting to private and educational organizations, government contractors, and government agencies. Click here for contact information.
Here are examples of consulting activities I have performed over the years.
A law firm requires a technical expert in security technology. This most often occurs in patent cases. I help the attorneys understand the technical issues and develop explanations for the judge or jury. I also draw on my 30 years of experience in computing to locate documents addressing key elements of the dispute.
The client has certain security and program requirements and must determine which alternative best meets those requirements. For example, the designers are using cryptographic mechanisms and need an independent review, or they need to incorporate cross-domain or multilevel features into a new system design. Or, an organization is building a device that requires a third-party security evaluation. I provide the needed analysis, recommendations, or tutorial. I will also draft evaluation documents if needed.
The client has a team that needs to be brought "up to speed" on a particular set of security concepts or technologies. Typically the result is a seminar based on PowerPoint slides, though this is not what I usually do in my undergraduate college classes.
A school, publisher, or other educational concern seeks certification under the NSA's Information Awareness Courseware Evaluation (IACE) program. Having successfully completed such a certification, as well as having worked on other NSA-related certifications, I can provide help in understanding the process and in developing a submission for certification. If the institution's existing courses don't cover all required topics, I can help develop training materials to cover the missing topics.
I have extensive experience with multilevel security, cross domain systems, and cryptographic systems designed to US government specifications.
Here are typical outputs of my work:
Reports - I prefer to produce written reports, since it is the clearest way to present the conclusions and supporting data for a complex study.
Presentation Slides (PowerPoint) - When necessary or appropriate, I produce PowerPoint slides. This happens most often when developing training or proposal-related materials.
Document Archive - If the work involves extensive Internet research, I will usually try to save copies of significant source materials. These will be placed on a CD-ROM or DVD-ROM for the customer, if desired.
Workshops and Technical Meetings - Some people can absorb the information from a document, and some from a presentation, but others absorb it best when there's a give-and-take between writer and reader. Technical meetings give the client's technical experts a chance to talk over the concepts, evidence, and conclusions. This often gives them the most benefits from the work I have done.
I hold a CISSP: Certified Information System Security Professional.
I hold the companion certifications in Security Architecture and Security Engineering; the latter is the NSA-sponsored certification that reflects familiarity with defense-related information security concerns.
My textbook, Elementary Information Security, has been certified to comply fully with the U.S. government training standard for information security professionals (NSTISSI 4011) established by the Committee on National Security Systems.
I have published three books: Elementary Information Security, appearing in the summer of 2011, Authentication: From Passwords to Public Keys (2002), and Internet Cryptography (1997). I have also published numerous articles and papers, and given lots of lectures. Course materials are posted at the schools where I maintain faculty status.
Jones & Bartlett Learning, November, 2011.
The only textbook verified by the US Government to conform fully to the Committee on National
Security Systems' national training standard for information security professionals (NSTISSI 4011)
This comprehensive, accessible Information Security text is ideal for the one-term, undergraduate college course. The text integrates risk assessment and security policy throughout the text, since security systems work best at achieving goals they are designed to meet, and security policy ties real-world goals to security mechanisms. Early chapters in the text discuss individual computers and small LANS, while later chapters deal with distributed site security and the Internet. Cryptographic topics follow the same progression, starting on a single computer and evolving to Internet-level connectivity. Mathematical concepts throughout the text are defined and tutorials with mathematical tools are provided to ensure students grasp the information at hand.
ISBN 0-201-61599-1, Addison Wesley, 2002.
Authentication provides a thorough examination of authentication concepts and techniques, from the password systems introduced in the 1960s to the public key systems of today. Each technique is described through diagrams and examples, covering both how they work and how attackers might defeat them. This provides readers with the essential understanding they need to choose the best techniques for their particular situation.
This book examines computer-based authentication systems: what works, what doesn't work, and why. It examines good and bad ways to use passwords, and examines the strengths and weaknesses of the alternatives. Like Internet Cryptography, this book explains and illustrates the different techniques by looking and how attackers try to subvert them, often successfully.
Although we're all inspired by engineering triumphs, we often learn the most from engineering failures. Not only do failures have important lessons to teach, but they have a special power to capture one's interest unlike a dry recitation of technical criteria or even the breathless evocation of some techno-utopian ideal.
Authentication: From Passwords to Public Keys looks at the problem of authentication: how computers can confidently associate an identity with a person. Most computers use passwords to do this, but even password systems can pose subtle and difficult problems for users, administrators, and developers. Once we decide to use something fancier than a list of passwords stored in a server, we face a broad range of choices and their associated risks. In this book we explore those choices by looking at situations where different techniques fail and by examining ways to strengthen them. Often it becomes a game of ping-pong in which the new defense falls to a new attack, which inspires an even newer defense, and so on.
Individual security measures don't work in a vacuum: they work in an interconnected web with other measures. This book takes a high-level, architectural view of that web instead of diving into the details. Discussions cover physical and procedural requirements for security as well as technical requirements. Moreover, our technical discussions will only bring up as much detail as needed to clarify the security issues. Readers can find the exact order of bits for a particular protocol elsewhere. Here we focus on why the bits need to be there and what the need to convey. We look at what could happen, or may have happened, if we omit that part of the protocol.
I've tried to include real world examples of every important concept and mechanism. Such examples take abstract concepts and make them concrete. Every example here has a published source or comes from my own experiences assisting others with computer security. In the latter case, names must often be changed to protect the privacy of people and enterprises. When not threatened with retribution, people can be quite honest about how they handle passwords, and about unauthorized shortcuts they might employ. Names have been changed or omitted to protect both the innocent and the guilty.
This book is written for people who want to understand both the how and why of computer authentication. Such people may be designers, developers, administrators, planners, or managers. Authentication is often their first line of defense against attack. The book's principal focus is on existing, off-the-shelf solutions. But in order to understand what we can buy, we often need enough design detail to guide an independent developer to achieve the same security results.
The book assumes a general familiarity with computer systems and the Internet as people typically use them today. It will not require specific knowledge about operating systems, networking protocols, or computer security. The book explains new technical concepts before discussing their implications, and uses plain English, graphical diagrams, and examples to make the important points. Some people learn by reading, others by seeing, and still others by doing. The book tries to accommodate the first two groups directly and, at least, entertain the third with stories of disaster.
It isn't practical to purge mathematical notation entirely from a book like this, even though some readers confront it like a poorly understood second language. Since there are a few places where a little simple algebra goes a long way, the book doesn't try to avoid algebraic notation entirely, but strives to make it straightforward.
Abridged Preface from Authentication is Copyright © 2002 Addison Wesley Longman, Inc.
Here is the complete table of contents for Authentication. Embedded links lead to on-line versions of material from the book. The on-line Chapter 1 is a copy of the chapter as it appears in the book. The on-line Preface is an excerpt. The on-line version of the Web and Vendor Resources section is an updated version of the published material.
Revised Attacks and Revised Defenses
Passwords Under Attack
Sniffing in Software
Van Eck Sniffing
The M-209 Hash
The DES Hash
Randomness and Bit Spaces
Biases in Base Secrets
Average Attack Space
Insiders and Outsiders
Users and Administrators
Carriers and Crackers
Enrollment in Person
Changing the Initial Password
Statistical Bias in Text
Estimating Bias in Password Selection
Therapeutic Password Cracking
Automatic Password Generation
Proactive Password Checking
Limitations on Password Strength
Protecting Software Authentication
Hardware Protection of Authentication
Ease of Authentication
Indirect Authentication Protocols
Shortcut Attacks on Encryption
Trial-and-Error Attacks on Encryption
Theoretical Guess-Rate Limitations
Key Escrow and Crypto Politics
Passwords and Usability
Forcing Functions and Mouse Pads
Operator-Controlled Password Display
Report Incorrect User Names
Allow Many Password Guesses
Report Incorrect Password Attempts
Avoid Periodic Password Changes
External and Administrative Passwords
6.7 Sequences and Groups of Passwords
Forward Secrecy With Theme Words
Passwords From Songs and Poems
Promise and Reality
Uses of Biometrics
Measuring Physical Traits
Measuring Behavioral Traits
Feedback During Biometric Input
Forging a Physical Trait
Example: A Trivial Hand Geometry Biometric
Enrolling a User
Trading Off Usability and Security
Average Attack Space
Authenticity of Biometric Data
The Problem of Biometric Exploitation
Identification via Dial-Back
Dial-Up Identification: Caller ID
Addressing on the ARPANET
Internet Protocol Addresses
IP Address Theft
Denial of Service Attacks
The "r" Commands
Remote Procedure Calls, NFS, and NIS
Counter-Based One-Time Passwords
Clock-Based One-Time Passwords
Man in the Middle Attack
PIN Appended to an External Password
PIN as an Internal Password
PIN as Part of the Base Secret
Challenge Response and X9.9
Known Ciphertext Attack on ANSI X9.9
Handling Multiple Servers
Attacking the LANMAN Hash
Plaintext Passwords on Windows
Attacking Windows Challenge Response
Attacking the NT Password Database
Attacking NTLM Challenge Response
Network Boundary Control
One-Time Password Products
LAN Resource Control
A RADIUS Logon
Protecting RADIUS Messages
RADIUS Challenge Response
Politics, Encryption, and Technical Choices
Secure Channel Keying
Attacks on Secure Channels
The Authentication Server
Authenticating to a Server
Realms and Referral Tickets
Master Keys and Workstation Authentication
Service and Protocol Support
Attacking RSA Keys
Attacking Digital Signatures
LOCKOut Fortezza Authentication Protocol
FIPS 196 Authentication
Establishing Keys with SSL
Authentication with Typical SSL
SSL Client Authentication
Using the Right Certificate
Certificates and Access Control
Proprietors as Certificate Authorities
Commercial Certificate Authorities
Certified by Reputation
Certified by a Web of Trust
Certificate Revocation List
Off-Card Key Generation
On-Card Key Generation
Novell NetWare: Key Downloading
Safeword Virtual Smart Card: Data Uploading
Material from Authentication is Copyright © 2002 Addison Wesley Longman, Inc.
ISBN 0-201-92480-3, Addison Wesley, 1997
Why would anyone buy an ancient book on cryptography?
Here's why: Internet Cryptography presents crypto from a practical perspective. It explains the underlying issues and mechanisms behind classic Internet security technologies, from SSL to public keys to firewalls. The book is also part of the Common Body of Knowledge (CBK) used in the CISSP certification examination.
Using real-life case studies, examples, and commercially available software products, cryptography is presented as a practical solution to specific, everyday security challenges. And, much though we might wish that a magic bullet has since solved all of our security problems, many of the things we did in 1997 we are still doing today.
Materials from Internet Cryptography are copyright 1997, Addison Wesley Longman, and are reproduced by permission.
Even though this book was written in 1997, there are two good reasons to read it:
Since 1997, many details of Internet cryptography have changed, but the higher-level concepts have remained constant. The book examines cryptography and Internet security from the point of view of what goes wrong, which makes it easier to understand why security experts choose such odd ways of doing things. In addition, the book contains prioritized checklists of security features that successful Internet security systems and products should have. These lists were designed to stand the test of time and the evolution of new things, like the Advanced Encryption Standard. While specific recommendations regarding individual crypto algorithms and protocols may become obsolete, the underlying recommendations (that you use proven techniques that have been investigated by the open cryptography community) remain true today.
Following a surge of sales when it first came out, the book has continued to sell steadily, if modestly. The comments I most often hear from satisfied readers is that they appreciate the simple, clear explanations of complex technical mechanisms. Even though there are a lot of cryptography books out there, this one offers some of the clearest descriptions of network cryptography mechanisms.
|Who this Book is For||xv|
|How this Book is Organized||xvi|
|Crypto Today and Tomorrow||xviii|
|Comments and Questions||xviii|
Chapter 1 Introduction
|1.1 The Basic Problem||1|
|1.2 Essentials of Crypto||4|
|1.2.1 Crypto is Hard to Use||6|
|1.2.2 Balancing Crypto Use with Your Objectives||7|
|1.3 Essentials of Networking and the Internet||8|
|1.3.1 Protocol Layers and Network Products||9|
|1.3.2 Internet Technology||12|
|1.3.3 Internet Protocols in Your Host||14|
|1.3.4 The Internet Security Problem||16|
|1.3.5 An Internet Rogue's Gallery||19|
|1.4 Setting Realistic Security Objectives||20|
|1.5 Appropriate Communications Security||22|
|1.5.1 Communications Security Goals||23|
|1.5.2 Internet Crypto Techniques||25|
|1.6 Legal Restrictions||27|
|1.7 For Further Information||30|
Chapter 2 Encryption Basics
|2.1 Encryption Building Blocks||33|
|2.1.1 Stream Ciphers||34|
|2.1.2 Block Ciphers||36|
|2.2 How Crypto Systems Fail||42|
|2.2.1 Cryptanalysis and Modern Codes||44|
|2.2.2 Brute Force Cracking of Secret Keys||46|
|2.2.3 Attacks on Improper Crypto Use||50|
|2.3 Choosing Between Strong and Weak Crypto||51|
|2.3.1 Properties of Good Crypto Algorithms||52|
|2.3.2 Crypto Algorithms to Consider||55|
|2.3.3 Selecting a Block Cipher Mode||57|
|2.3.4 Identifying a Safe Key Length||58|
|2.3.5 Levels of Risk for Different Applications||60|
|2.4 For Further Information||62|
Chapter 3 Link Encryption
|3.1 Security Objectives||63|
|3.2 Product Example: In-line Encryptor||65|
|3.2.1 Red/Black Separation||66|
|3.2.2 Crypto Algorithm and Keying||67|
|3.2.3 Encryptor Vulnerabilities||68|
|3.2.4 Product Security Requirements||71|
|3.3 Deployment Example: Point-to-Point Encryption||72|
|3.3.1 Point-to-Point Practical Limitations||73|
|3.3.2 Physical Protection and Control||74|
|3.3.3 Deployment Security Requirements||75|
|3.4 Deployment Example: IP-routed Configuration||76|
|3.4.1 Site Protection||77|
|3.4.2 Networkwide Security||78|
|3.4.3 Deployment Security Requirements||81|
|3.5 Key Recovery and Escrowed Encryption||82|
|3.6 For Further Information||85|
Chapter 4 Managing Secret Keys
|4.1 Security Objectives||87|
|4.2 Basic Issues in Secret Key Management||88|
|4.3 Technology: Random Key Generation||89|
|4.3.1 Random Seeding||90|
|4.3.2 Pseudorandom Number Generators||92|
|4.3.3 Technical Security Requirements||95|
|4.4 Deployment Example: Manual Key Distribution||95|
|4.4.1 Preparing Secret Keys for Delivery||96|
|4.4.2 Batch Generation of Keys||98|
|4.4.3 Printing Keys on Paper||102|
|4.4.4 Key Packaging and Delivery||103|
|4.4.5 Key Splitting for Safer Delivery||104|
|4.4.6 Deployment Security Requirements||106|
|4.5 Technology: Automatic Rekeying||107|
|4.5.1 ANSI X9.17 Point-to-Point Rekeying||108|
|4.5.2 Variations of X9.17||110|
|4.5.3 Technical Security Requirements||112|
|4.6 Key Distribution Centers (KDCs)||113|
|4.7 Maintaining Keys and System Security||116|
|4.8 For Further Information||117|
Chapter 5 Security at the IP Layer
|5.1 Security Objectives||119|
|5.2 Basic Issues with Using IPSEC||120|
|5.3 Technology: Cryptographic Checksums||121|
|5.3.1 One-way Hash Functions||123|
|5.3.2 Technical Security Requirements||126|
|5.4 IPSEC: IP Security Protocol||127|
|5.4.1 IPSEC Authentication||130|
|5.4.2 IPSEC Encryption||131|
|5.5 IPSEC Key Management||134|
|5.6 Other TCP/IP Network Security Protocols||137|
|5.7 For Further Information||139|
Chapter 6 Virtual Private Networks
|6.1 Security Objectives||142|
|6.2 Basic Issues with VPNs||142|
|6.3 Technology: IPSEC Proxy Cryptography||143|
|6.3.1 ESP Tunnel Mode||145|
|6.3.2 ESP Transport Mode||147|
|6.4 Product Example: IPSEC Encrypting Router||148|
|6.4.1 Blocking Classic Internet Attacks||149|
|6.4.2 Product Security Requirements||151|
|6.5 Deployment Example: Site-to-Site Encryption||153|
|6.5.1 Header Usage and Security||156|
|6.5.2 Deployment Security Requirements||159|
|6.6 For Further Information||159|
Chapter 7 Remote Access with IPSEC
|7.1 Security Objectives||161|
|7.2 Basic Issues with IPSEC Clients||162|
|7.3 Product Example: IPSEC Client||163|
|7.3.1 Client Security Associations||165|
|7.3.2 Client Self-Defense on the Internet||166|
|7.3.3 Client Theft and Key Protection||167|
|7.3.4 Product Security Requirements||169|
|7.4 Deployment Example: Client-to-Server Site Access||171|
|7.4.1 Remote Access Security Issues||172|
|7.4.2 Deployment Security Requirements||175|
|7.5 For Further Information||176|
Chapter 8 IPSEC and Firewalls
|8.1 Security Objectives||177|
|8.2 Basic Issues with IPSEC and Firewalls||178|
|8.3 Internet Firewalls||179|
|8.3.1 What Firewalls Control||180|
|8.3.2 How Firewalls Control Access||181|
|8.3.3 Firewall Control Mechanisms||183|
|8.4 Product Example: IPSEC Firewall||187|
|8.4.1 Administering Multiple Sites||189|
|8.4.2 Product Security Requirements||190|
|8.5 Deployment Example: A VPN with a Firewall||191|
|8.5.1 Establishing a Site Security Policy||192|
|8.5.2 Chosen Plaintext Attack on a Firewall||193|
|8.5.3 Deployment Security Requirements||195|
|8.6 For Further Information||195|
|9.1 Public Key Cryptography||197|
|9.1.1 Evolution of Public Key Crypto||199|
|9.1.2 Diffie-Hellman Public Key Technique||200|
|9.2.1 Brute Force Attacks on RSA||205|
|9.2.2 Other RSA Vulnerabilities||208|
|9.2.3 Technical Security Requirements||211|
|9.3 Technology: Secret Key Exchange with RSA Crypto||212|
|9.3.1 Attacking Public Key Distribution||213|
|9.3.2 Public Key versus Secret Key Exchange||215|
|9.3.3 Technical Security Requirements||218|
|9.4 Secure Sockets Layer||218|
|9.4.1 Other SSL Properties||222|
|9.4.2 Basic Attacks Against SSL||223|
|9.4.3 SSL Security Evolution||226|
|9.5 For Further Information||228|
|10.1 Security Objectives||229|
|10.2 Basic Issues in Internet Transaction Security||230|
|10.3 Transactions on the World Wide Web||232|
|10.3.1 Transactions with Web Forms||233|
|10.3.2 Web Form Security Services||235|
|10.4 Security Alternatives for Web Forms||236|
|10.4.1 Password Protection||237|
|10.4.2 Network-level Security (IPSEC)||237|
|10.4.3 Transport-level Security (SSL)||238|
|10.4.4 Application-level Security (SHTTP)||239|
|10.4.5 Client Authentication Alternatives||240|
|10.5 Product Example: Web Browser with SSL||242|
|10.5.1 Browser Cryptographic Services||244|
|10.5.2 Authentication Capabilities||245|
|10.5.3 Client Security and Executable Contents||247|
|10.5.4 Product Security Requirements||250|
|10.6 Product Example: Web Server with SSL||252|
|10.6.1 Web Server Vulnerabilities||253|
|10.6.2 Mandatory Protection||257|
|10.6.3 Product Security Requirements||258|
|10.7 Deployment Example: Vending with Exportable Encryption||259|
|10.7.1 Export Restrictions and Transaction Security||261|
|10.7.2 Site Configuration||262|
|10.7.3 Deployment Security Requirements||264|
|10.8 For Further Information||266|
Chapter 11 Secured Electronic Mail
|11.1 Security Objectives||267|
|11.2 Basic Issues with E-Mail Security||268|
|11.3 Basics of Internet Electronic Mail||269|
|11.3.1 Internet E-Mail Software Architecture||271|
|11.3.2 E-Mail Security Problems||272|
|11.4 Technology: Off-line Message Keying||275|
|11.4.1 Encryption Tokens||276|
|11.4.2 Technical Security Requirements||277|
|11.5 Technology: Digital Signatures||278|
|11.5.1 Attacks on Digital Signatures||280|
|11.5.2 The Digital Signature Standard||284|
|11.5.3 Technical Security Requirements||286|
|11.6 Product Example: Secure E-Mail Client||287|
|11.6.1 Basic Secure Client Features||288|
|11.6.2 E-Mail Client Security Issues||290|
|11.6.3 Product Security Requirements||292|
|11.7 E-Mail Deployment||293|
|11.8 For Further Information||294|
Chapter 12 Public Key Certificates
|12.1 Security Objectives||295|
|12.2 Distributing Public Keys||296|
|12.3 Technology: Public Key Certificates||299|
|12.3.1 Generating Public Key Pairs||301|
|12.3.2 Certificate Revocation||302|
|12.3.3 Certification Authority Workstation||303|
|12.3.4 Technical Security Requirements||305|
|12.4 Certificate Distribution||306|
|12.4.1 Transparent Distribution||307|
|12.4.2 Interactive Distribution||308|
|12.5 Centralized Certification Authority||310|
|12.5.1 Netscape Server Authentication||311|
|12.5.2 Handling Multiple Certification Authorities||312|
|12.6 Hierarchical Certification Authority||313|
|12.6.1 PEM Internet Certification Hierarchy||314|
|12.6.2 Private Trees||316|
|12.7 PGP "Web of Trust"||316|
|12.8 For Further Information||319|
Appendix A: Glossary
Appendix B: Bibliography
This book is about delivering data safely across unsafe territory. The features that give the Internet its vitality also make it unsafe, like the streets of a major city. People do not walk carelessly in a vital, teeming city. Likewise, a careful person approaches the Internet with caution. Business data that crosses the public Internet can be forged, modified, or stolen. The Internet's technology and style don't fit well in the traditional mold of common carrier communications, so traditional security techniques don't fit well either.
Cryptography has emerged as the only alternative to protect Internet data, and it does the job well. Modern crypto techniques have evolved from the secret codes of decades past, brilliantly augmented with a deep knowledge of modern mathematics. New cryptographic products and technologies have been developed particularly for Internet applications. This book describes the principal techniques used in today's products, how they work, and how to use them. While we must talk about people "cracking" codes, we will spend far more time looking at system configurations and operating procedures. Configuration and operating errors have often been the bane of crypto system security. Mathematical details alone don't ensure the security of practical crypto systems. Even the most capable products can be defeated by carelessness.
Effective use of crypto systems requires a clear understanding of what your security objectives are and how they depend on important system properties. This book applies cryptographic techniques to particular Internet security goals like site protection, message secrecy, or transaction security. These goals are lined up against today's off-the-shelf products to show which are best suited to meet particular business and security objectives.
This book is intended for people who know very little about cryptography but need to make technical decisions about cryptographic security. Many people face this situation when they need to transmit business data safely over the Internet. This often includes people responsible for the data, like business analysts and managers, as well as those who must install and maintain the protections, like information systems administrators and managers. These people are the book's primary audience. Cryptographic concepts are explained using diagrams to illustrate component relationships and data flows. At every step we examine the relationship between the security measures and the vulnerabilities they address. This will guide readers in safely applying cryptographic techniques.
This book requires no prior knowledge of cryptography or related mathematics. Descriptions of low-level crypto mechanisms focus on presenting the concepts instead of the details. Programmers and product developers must look elsewhere for implementation details, and each chapter ends with a list of appropriate references. However, developers will still find a few useful insights here, like why crypto experts are so picky about mathematical arcana like random number generators ("No, it's a pseudorandom number generator!") or why their theoretically unbreakable system is vulnerable to attack.
This book also contains some general tutorial material about the Internet Protocol (IP) and its cousins, but it is best if readers already have a general familiarity with computers, networking, and the Internet. In particular, it helps if readers already understand the notion of message and packet formatting-in other words, your information must be embedded in other information for the network to deliver it correctly.
We start with cryptographic basics, apply them to product evaluation, and then look at example deployment to achieve various business and security objectives. When we understand the risks against which various security measures might protect, we can reasonably trade off between conflicting techniques. Each chapter ends with a list of references that may provide you with deeper explanations when needed. If your particular problem cannot be solved with available products, the references can provide the technical details for implementing custom solutions.
This book is organized around a small number of basic security objectives that are addressed by a few basic Internet cryptographic technologies. The objective of extending one's internal site via the Internet is illustrated with link encryption and network encryption using the IP Security Protocol (IPSEC). The objective of transaction security is illustrated using Secure Socket Layer (SSL) as applied to the World Wide Web. Message-based security is illustrated using Pretty Good Privacy (PGP) and Privacy Enhanced Mail (PEM).
The book's contents fall roughly into three parts, starting with low-level but simple techniques and working upward to high-level, complex crypto systems.
Most chapters follow the same general organization. A typical chapter introduces a security service and a particular cryptographic mechanism underlying that service. Chapter information is usually organized in these general sections:
The crypto mechanisms and products appearing in this book were chosen because they illustrate what people can buy off the shelf and use today. Simple, commercially available solutions are given preference over more sophisticated techniques that require extensive vendor support or custom engineering. Naturally this limits the discussion to a fraction of what the technologies can do. However, it is risky to speculate about the behavior of nonexistent products. Countless implementation details will affect their practical effectiveness, so it's pointless to speculate about how they might best work.
This book does not try to predict which future technologies will succeed or fail as easy-to-use products. An elaborate cryptographic infrastructure for safely sharing keys among computer users worldwide has been on the drawing boards for more than a dozen years; the enabling technology and its relatively modest success in off-the-shelf products is described in Chapter 12. Likewise, the chapters on IP security focus on today's products and not on the draft standards for tomorrow. The future is left to future books.
Send comments and questions to this site via Internet e-mail. While I tried to focus on techniques that have been used successfully, many of the techniques have not seen extensive use. I'd value any "war stories" or "been there; done that" evaluations based on personal experience.
Here is a list of articles and papers I have produced. Where possible, I include a link to the paper. If there are co-authors, they are listed at the end of the entry.
"Boundaries and flows: a strategy for introducing information security to undergraduates" (PDF), Proceedings of the 2008 Annual Conference of the American Society of Engineering Education, Pittsburgh, PA, June 22-24, 2008.
“Trends in Security Product Evaluations" (PDF), Information Systems Security 16 (4), 2007.
"A spreadsheet based simulation of CPU instruction execution" (PDF), Proceedings of the 2007 American Society of Engineering Education Conference, Honolulu, HI, June 2007. I have posted additional information on Spreadsheet CPU (SSCPU) on this site.
“Multilevel Security,” Chapter 205 in Handbook of Information Security, Volume 3, Threats, Vulnerabilities, Prevention, Detection and Management, Hossein Bidgoli, ed., ISBN 0-471-64832-9, John Wiley, 2006. (click here for a similar introduction to multilevel security).
"Experimenting with Security Policy,” Proc. DARPA Information Survivability Conference and Exposition II, IEEE Computer Society Press, 2001.
“A Releasable Data Products Framework,” Proc. DARPA Information Survivability Conference and Exposition II, IEEE Computer Society Press, 2001 (with Charles Payne).
“Historical Survey of Security Product Evaluations" (PDF),” Proc. 22nd National Information Systems Security Conference, 2000.
“Using Type Enforcement to Assure a Configurable Guard,” Proc. 13th Annual Computer Security Applications Conference, December 1997 (with Paula Greve and John Hoffman).
“Mandatory Protection for Internet Server Software" (PDF), Proc. 12th Annual Computer Security Applications Conference, December 1996.
“Securing Client/Server TCP/IP,” Chapter 8 of Securing Client/Server Computer Networks, Peter Davis, ed., ISBN 0-07-015841-X, McGraw-Hill, 1996.
“Constructing a High Assurance Mail Guard" (PDF), Proc. 17th National Computer Security Conference, 1994.
“High Assurance Multilevel Data Sharing with LOCKServer,” Proc. 11th Annual Computer Security Applications Conference, 1993.
“Error management for robot programming,” Journal of Intelligent Manufacturing, vol. 2, 1991, (with Maria Gini).
“A Historical Overview of Computer Architecture,” Annals of the History of Computing, vol. 10, no. 4, 1988.
“Reliable Real-Time Robot Operation Employing Intelligent Forward Recovery,” Journal of Robotic Systems, vol. 3, no. 3, Fall 1986, pp. 281-300 (with Maria Gini).
“Monitoring Robot Actions for Error Detection and Recovery,” Proc. Workshop on Space Telerobotics, NASA Jet Propulsion Laboratory, 1987. (with Maria Gini).
“Robot Tracking and Control Issues in an Intelligent Error Recovery System,” Proc. 1986 IEEE International Conference on Robotics and Automation, San Francisco, CA, April 1986. (with Maria Gini).
“The Role of Knowledge in the Architecture of a Robust Robot Control,” Proc. 1985 IEEE International Conference on Robotics and Automation, St. Louis, MO, March 1985. (with M. Gini, R. Doshi, M. Gluch, and I. Zualkernan).
“How Authentication Technologies Work,” Chapter 1 of Biometrics: Identity Assurance in the Information Age, John Woodward, ed., ISBN 0-07-222227-1,McGraw-Hill, 2003.
“A Curricular Strategy for Information Security Engineering,” Proceedings of the 2007 ASEE North Midwest Sectional Conference, September 22, 2007, Houghton, MI.
“Extending the Spreadsheet to Illustrate Basic CPU Operations in a Computer Literacy Course”, Proceedings of the 2006 ASEE North Midwest Regional Conference, University of Wisconsin- Milwaukee, October 7-9, 2006. I have posted additional information on Spreadsheet CPU (SSCPU) on this site.
“Crypto Alphabet Soup: Making Sense of Today’s Algorithms,” Information Security, January 2003.
“The Strong Password Dilemma,” Computer Security Journal, Summer 2002.
“Deciphering the Advanced Encryption Standard (PDF),” Network Magazine, March 2001.
“Authentication: Patterns of Trust," Information Security, August 2000.
“Security assurance issues for open source software,” white paper for the NSA/DARPA Open Source Workshop, 1999 (with Charles Payne).
“Internet Cryptography,” Chapter 15 of ICSA Guide to Cryptography, Randall Nichols, ed., ISBN 0-07-913759-8, McGraw-Hill, 1999.
“Sidewinder: Defense in Depth Using Type Enforcement" (PDF), International Journal of Network Management, vol. 5, no. 4, July-August 1995.
“Task Planning Issues for an In-Orbit Service Manipulator,” Space Station Automation IV: Proc. SPIE, Wun C. Chiou, Sr., ed., vol. 1002, 1988, pp. 71-78.
“Hierarchical Multiprocessing Software for High Performance Robotics,” Intelligent Robotics and Computer Vision: Seventh in a Series; Proc. SPIE, David P. Casasent, Emery L. Moore, eds., vol. 1006, 1988, pp. 444-451.
“A Language and Multi-Tasking Operating System to Support an Eight-Channel Speech Input Terminal,” paper given at the 50th Anniversary Meeting, Acoustical Society of America, Cambridge, MA, 1979 (with A. Stowe and S. Glazer).
“Plate Construction and Layout,” chapter 43 in Juell & Rod, eds., Encyclopedia of United States Stamps and Stamp Collecting, Minneapolis: Kirk House, 2006. Also appeared in United States Specialist 76 (5), pp. 199-207, May, 2005.
“Secure Computing Legislative Policy Recommendations on Encryption,” 1998-1999.
This page provides links to the presentation slides for talks I have given.
The Challenge of Multilevel Security, Black Hat Federal, Tyson's Corner, VA, October 2003. PDF
Authentication: Cautionary Tales, Black Hat Briefings, Las Vegas, NV, July 2003. PDF
The Biometrics Dilemma, Black Hat Briefings, Las Vegas, NV, July 2002. Powerpoint
An Overview of Authentication Techniques, Webcast, February 28, 2002. PDF.
Site-Specific Planning for Authentication Systems, 28th Annual CSI Security Conference, Washington DC, October 2001. PDF
E-Commerce Security Workshop, University of St Thomas, Fall 1999. One file (900K).
Cryptographic Vulnerabilities: Beyond Algorithms and Key Lengths, University of Minnesota colloquium, 1998. One file (340K).
Choosing and Using Network Cryptographic Products, brief talk given to many audiences, 1997. One file (380K).
I post photo galleries here