John Viega - Profile on Academia.edu (original) (raw)

Papers by John Viega

Research paper thumbnail of 19 Deadly Sins of Software Security

19 Deadly Sins of Software Security

... Sample Bug • CVE-2004-0115 – Microsoft Virtual PC for Macintosh • The VirtualPC Services for ... more ... Sample Bug • CVE-2004-0115 – Microsoft Virtual PC for Macintosh • The VirtualPC Services for Mac 6.0 and 6.1 allowed local attackers to truncate ... Chuck Willis, MANDIANT • Michael Howard, Microsoft • Bruce Lowenthal, Oracle Corporation • Mark J. Cox, Red Hat Inc. ...

Research paper thumbnail of 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them

24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them

Research paper thumbnail of Building Secure Software : ソフトウェアセキュリティについて開発者が知っているべきこと

Building Secure Software : ソフトウェアセキュリティについて開発者が知っているべきこと

Research paper thumbnail of Building secure software: how to avoid security problems the right way

Building secure software: how to avoid security problems the right way

... Building Secure Software : How to Avoid Security Problems the Right Way. ... Commentaire. Rés... more ... Building Secure Software : How to Avoid Security Problems the Right Way. ... Commentaire. Résumé. In the age of e-Business, information security is no longer a minor detail: its at the heart of every business process and relationship. ...

Research paper thumbnail of The Galois/Counter Mode of Operation (GCM)

The Galois/Counter Mode of Operation (GCM)

... authenticated encryption at speeds of 10 gigabits per second and above in hardware, perform w... more ... authenticated encryption at speeds of 10 gigabits per second and above in hardware, perform well in ... is summarized in Section 7. Appendix A describes the use of GCM for 64-bit block ciphers. Test data that can be used for validating AES GCM implementations is contained in ...

Research paper thumbnail of The Security and Performance of the Galois/Counter Mode of Operation (Full Version)

The Security and Performance of the Galois/Counter Mode of Operation (Full Version)

The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both ... more The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both encryption and message authenti- cation, using universal hashing based on multiplication in a binary finite field. We analyze its security and performance, and show that it is the most ecient mode of operation for high speed packet networks, by using a realistic model of a network crypto module and empirical data from studies of Internet trac in conjunction with software experiments and hardware designs. GCM has several useful features: it can accept IVs of arbitrary length, can act as a stand-alone message authentication code (MAC), and can be used as an incremental MAC. We show that GCM is secure in the standard model of concrete security, even when these fea- tures are used. We also consider several of its important system-security aspects.

Research paper thumbnail of Building Secure Software: How to Avoid Security Problems the Right Way (paperback) (Addison-Wesley Professional Computing Series)

Building Secure Software: How to Avoid Security Problems the Right Way (paperback) (Addison-Wesley Professional Computing Series)

Research paper thumbnail of Separation of Concerns for Security

Separation of Concerns for Security

... Examples of such systems include Naccio [ 4], Ariel [ 8]and PolicyMaker[ 1 ]. We anticipate i... more ... Examples of such systems include Naccio [ 4], Ariel [ 8]and PolicyMaker[ 1 ]. We anticipate incorporating this sort of tool as a small part of our total functionality. 6 C onc lusion We have identified some of the major problems plaguing software security, and discussed how sepa ...

Research paper thumbnail of CWC: A high-performance conventional authenticated encryption mode

We introduce CWC, a new block cipher mode of operation for protecting both the privacy and the au... more We introduce CWC, a new block cipher mode of operation for protecting both the privacy and the authenticity of encapsulated data. CWC is currently the only such mode having all five of the following properties: provable security, parallelizability, high performance in hardware, high performance in software, and no intellectual property concerns. We believe that having all five of these properties makes CWC a powerful tool for use in many performance-critical cryptographic applications. CWC is also the only appropriate solution for some applications; e.g., standardization bodies like the IETF and NIST prefer patent-free modes, and CWC is the only such mode capable of processing data at 10Gbps in hardware, which will be important for future IPsec (and other) network devices. As part of our design, we also introduce a new parallelizable universal hash function optimized for performance in both hardware and software.

Research paper thumbnail of Flexible and Efficient Message Authentication in Hardware and Software

Flexible and Efficient Message Authentication in Hardware and Software

Research paper thumbnail of Coping with Java Programming Stress

Coping with Java Programming Stress M any developers view Java as the language solution to comple... more Coping with Java Programming Stress M any developers view Java as the language solution to complex software engineering problems. They expect Java programs to resist system crashes, to be written once and run everywhere, and to withstand malicious attacks. For the most part, these expectations are reasonable. Java has many attributes that promote reliable, bug-free software: memory management to prevent memory leaks, strong type checking to prevent the misuse of objects, and built-in support for exception handling. Java's virtual machine model increases portability and its security model provides a degree of safety when importing externally developed code. All these features are a great improvement over C++, Java's nominal predecessor. Indeed, initial experimental results show greater programmer productivity and fewer program bugs for development with Java versus C++. 1 Unfortunately, however, no language is ideal, and some features of Java contribute to rather than alleviate programmer stress because they create obscure places for bugs to hide. We have identified seven features that can lead to particularly resistant bugs. Our goal is not to indict Java-we are strong supporters, and our own organizations have adopted Java as their primary programming language. Rather, we want programmers to better understand Java's weaknesses and know how to cope with them. In some cases, the strategies we suggest can prevent the weakness from affecting implementation. In other cases, they can minimize the damage. By being aware of these pitfalls and coping mechanisms, programmers can make sure that Java's design flaws don't make implementation more painful than it has to be.

Research paper thumbnail of Java Programmer Perils

Research paper thumbnail of Protocol Expander System and Method

Protocol Expander System and Method

Research paper thumbnail of Quality Time - Can Aspect-Oriented Programming Lead to More Reliable Software?

Quality Time - Can Aspect-Oriented Programming Lead to More Reliable Software?

Software, 2000

Research paper thumbnail of Beautiful Security - Leading Security Experts Explain How They Think

Beautiful Security - Leading Security Experts Explain How They Think

Research paper thumbnail of Flexible and Ecient Message Authentication in Hardware and Software

Flexible and Ecient Message Authentication in Hardware and Software

We present the Galois Message Authentication Code (GMAC), a generic construction based on univers... more We present the Galois Message Authentication Code (GMAC), a generic construction based on universal hashing using multiplication in the finite field GF(2128). We also present GCM, a block cipher mode of operation that provides both encryption and message integrity in a single primitive, and is based on GMAC. The inherent parallelism in our con- structs enable hardware implementations to achieve

Research paper thumbnail of The Security and Performance of the Galois/Counter Mode (GCM) of Operation

The Security and Performance of the Galois/Counter Mode (GCM) of Operation

Progress in Cryptology - INDOCRYPT 2004, 2004

The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both ... more The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both encryption and message authenti- cation, using universal hashing based on multiplication in a binary finite field. We analyze its security and performance, and show that it is the most ecient mode of operation for high speed packet networks, by using a realistic model of a network crypto module and empirical data from studies of Internet trac in conjunction with software experiments and hardware designs. GCM has several useful features: it can accept IVs of arbitrary length, can act as a stand-alone message authentication code (MAC), and can be used as an incremental MAC. We show that GCM is secure in the standard model of concrete security, even when these fea- tures are used. We also consider several of its important system-security aspects.

Research paper thumbnail of How Vulnerable Are Unprotected Machines on the Internet?

How Vulnerable Are Unprotected Machines on the Internet?

Lecture Notes in Computer Science, 2014

Research paper thumbnail of The pros and cons of Unix and Windows security policies

The pros and cons of Unix and Windows security policies

IT Professional, 2000

Supporters frequently tout Windows NT as being the most secure commercially available operating s... more Supporters frequently tout Windows NT as being the most secure commercially available operating system. Others tend to believe this opinion after hearing of Unix's many infamous security vulnerabilities. In reality, the two operating systems have far more in common from a security point of view than people expect. This, then, makes it difficult to honestly assert that NT is more

Research paper thumbnail of The Security and Performance of the Galois/Counter Mode (GCM) of Operation (Full Version)

The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both ... more The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both encryption and message authenti- cation, using universal hashing based on multiplication in a binary finite field. We analyze its security and performance, and show that it is the most ecient mode of operation for high speed packet networks, by using a realistic model of a network

Research paper thumbnail of 19 Deadly Sins of Software Security

19 Deadly Sins of Software Security

... Sample Bug • CVE-2004-0115 – Microsoft Virtual PC for Macintosh • The VirtualPC Services for ... more ... Sample Bug • CVE-2004-0115 – Microsoft Virtual PC for Macintosh • The VirtualPC Services for Mac 6.0 and 6.1 allowed local attackers to truncate ... Chuck Willis, MANDIANT • Michael Howard, Microsoft • Bruce Lowenthal, Oracle Corporation • Mark J. Cox, Red Hat Inc. ...

Research paper thumbnail of 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them

24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them

Research paper thumbnail of Building Secure Software : ソフトウェアセキュリティについて開発者が知っているべきこと

Building Secure Software : ソフトウェアセキュリティについて開発者が知っているべきこと

Research paper thumbnail of Building secure software: how to avoid security problems the right way

Building secure software: how to avoid security problems the right way

... Building Secure Software : How to Avoid Security Problems the Right Way. ... Commentaire. Rés... more ... Building Secure Software : How to Avoid Security Problems the Right Way. ... Commentaire. Résumé. In the age of e-Business, information security is no longer a minor detail: its at the heart of every business process and relationship. ...

Research paper thumbnail of The Galois/Counter Mode of Operation (GCM)

The Galois/Counter Mode of Operation (GCM)

... authenticated encryption at speeds of 10 gigabits per second and above in hardware, perform w... more ... authenticated encryption at speeds of 10 gigabits per second and above in hardware, perform well in ... is summarized in Section 7. Appendix A describes the use of GCM for 64-bit block ciphers. Test data that can be used for validating AES GCM implementations is contained in ...

Research paper thumbnail of The Security and Performance of the Galois/Counter Mode of Operation (Full Version)

The Security and Performance of the Galois/Counter Mode of Operation (Full Version)

The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both ... more The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both encryption and message authenti- cation, using universal hashing based on multiplication in a binary finite field. We analyze its security and performance, and show that it is the most ecient mode of operation for high speed packet networks, by using a realistic model of a network crypto module and empirical data from studies of Internet trac in conjunction with software experiments and hardware designs. GCM has several useful features: it can accept IVs of arbitrary length, can act as a stand-alone message authentication code (MAC), and can be used as an incremental MAC. We show that GCM is secure in the standard model of concrete security, even when these fea- tures are used. We also consider several of its important system-security aspects.

Research paper thumbnail of Building Secure Software: How to Avoid Security Problems the Right Way (paperback) (Addison-Wesley Professional Computing Series)

Building Secure Software: How to Avoid Security Problems the Right Way (paperback) (Addison-Wesley Professional Computing Series)

Research paper thumbnail of Separation of Concerns for Security

Separation of Concerns for Security

... Examples of such systems include Naccio [ 4], Ariel [ 8]and PolicyMaker[ 1 ]. We anticipate i... more ... Examples of such systems include Naccio [ 4], Ariel [ 8]and PolicyMaker[ 1 ]. We anticipate incorporating this sort of tool as a small part of our total functionality. 6 C onc lusion We have identified some of the major problems plaguing software security, and discussed how sepa ...

Research paper thumbnail of CWC: A high-performance conventional authenticated encryption mode

We introduce CWC, a new block cipher mode of operation for protecting both the privacy and the au... more We introduce CWC, a new block cipher mode of operation for protecting both the privacy and the authenticity of encapsulated data. CWC is currently the only such mode having all five of the following properties: provable security, parallelizability, high performance in hardware, high performance in software, and no intellectual property concerns. We believe that having all five of these properties makes CWC a powerful tool for use in many performance-critical cryptographic applications. CWC is also the only appropriate solution for some applications; e.g., standardization bodies like the IETF and NIST prefer patent-free modes, and CWC is the only such mode capable of processing data at 10Gbps in hardware, which will be important for future IPsec (and other) network devices. As part of our design, we also introduce a new parallelizable universal hash function optimized for performance in both hardware and software.

Research paper thumbnail of Flexible and Efficient Message Authentication in Hardware and Software

Flexible and Efficient Message Authentication in Hardware and Software

Research paper thumbnail of Coping with Java Programming Stress

Coping with Java Programming Stress M any developers view Java as the language solution to comple... more Coping with Java Programming Stress M any developers view Java as the language solution to complex software engineering problems. They expect Java programs to resist system crashes, to be written once and run everywhere, and to withstand malicious attacks. For the most part, these expectations are reasonable. Java has many attributes that promote reliable, bug-free software: memory management to prevent memory leaks, strong type checking to prevent the misuse of objects, and built-in support for exception handling. Java's virtual machine model increases portability and its security model provides a degree of safety when importing externally developed code. All these features are a great improvement over C++, Java's nominal predecessor. Indeed, initial experimental results show greater programmer productivity and fewer program bugs for development with Java versus C++. 1 Unfortunately, however, no language is ideal, and some features of Java contribute to rather than alleviate programmer stress because they create obscure places for bugs to hide. We have identified seven features that can lead to particularly resistant bugs. Our goal is not to indict Java-we are strong supporters, and our own organizations have adopted Java as their primary programming language. Rather, we want programmers to better understand Java's weaknesses and know how to cope with them. In some cases, the strategies we suggest can prevent the weakness from affecting implementation. In other cases, they can minimize the damage. By being aware of these pitfalls and coping mechanisms, programmers can make sure that Java's design flaws don't make implementation more painful than it has to be.

Research paper thumbnail of Java Programmer Perils

Research paper thumbnail of Protocol Expander System and Method

Protocol Expander System and Method

Research paper thumbnail of Quality Time - Can Aspect-Oriented Programming Lead to More Reliable Software?

Quality Time - Can Aspect-Oriented Programming Lead to More Reliable Software?

Software, 2000

Research paper thumbnail of Beautiful Security - Leading Security Experts Explain How They Think

Beautiful Security - Leading Security Experts Explain How They Think

Research paper thumbnail of Flexible and Ecient Message Authentication in Hardware and Software

Flexible and Ecient Message Authentication in Hardware and Software

We present the Galois Message Authentication Code (GMAC), a generic construction based on univers... more We present the Galois Message Authentication Code (GMAC), a generic construction based on universal hashing using multiplication in the finite field GF(2128). We also present GCM, a block cipher mode of operation that provides both encryption and message integrity in a single primitive, and is based on GMAC. The inherent parallelism in our con- structs enable hardware implementations to achieve

Research paper thumbnail of The Security and Performance of the Galois/Counter Mode (GCM) of Operation

The Security and Performance of the Galois/Counter Mode (GCM) of Operation

Progress in Cryptology - INDOCRYPT 2004, 2004

The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both ... more The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both encryption and message authenti- cation, using universal hashing based on multiplication in a binary finite field. We analyze its security and performance, and show that it is the most ecient mode of operation for high speed packet networks, by using a realistic model of a network crypto module and empirical data from studies of Internet trac in conjunction with software experiments and hardware designs. GCM has several useful features: it can accept IVs of arbitrary length, can act as a stand-alone message authentication code (MAC), and can be used as an incremental MAC. We show that GCM is secure in the standard model of concrete security, even when these fea- tures are used. We also consider several of its important system-security aspects.

Research paper thumbnail of How Vulnerable Are Unprotected Machines on the Internet?

How Vulnerable Are Unprotected Machines on the Internet?

Lecture Notes in Computer Science, 2014

Research paper thumbnail of The pros and cons of Unix and Windows security policies

The pros and cons of Unix and Windows security policies

IT Professional, 2000

Supporters frequently tout Windows NT as being the most secure commercially available operating s... more Supporters frequently tout Windows NT as being the most secure commercially available operating system. Others tend to believe this opinion after hearing of Unix's many infamous security vulnerabilities. In reality, the two operating systems have far more in common from a security point of view than people expect. This, then, makes it difficult to honestly assert that NT is more

Research paper thumbnail of The Security and Performance of the Galois/Counter Mode (GCM) of Operation (Full Version)

The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both ... more The recently introduced Galois/Counter Mode (GCM) of op- eration for block ciphers provides both encryption and message authenti- cation, using universal hashing based on multiplication in a binary finite field. We analyze its security and performance, and show that it is the most ecient mode of operation for high speed packet networks, by using a realistic model of a network