<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kkenan</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kkenan"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Kkenan"/>
		<updated>2026-05-06T14:19:37Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=100383</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=100383"/>
				<updated>2011-01-14T06:58:19Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: Cleaning up.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Note that integrity should use a MAC such as HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion. Also ensure that random algorithms are seeded with sufficient entropy.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use widely accepted implementations of cryptographic algorithms ====&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Prefer authenticated encryption modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both confidentiality and authenticity. Recommended modes include counter with CBC-MAC (CCM) mode and Galois/counter mode (GCM). These authenticated encryption (AE) modes resist padding oracle attacks which can be used in many cases to recover plaintext from ciphertext without knowledge of the encryption key. &lt;br /&gt;
&lt;br /&gt;
If an authenticated encryption mode is not available, then the best option is to consult with a professional cryptographer. Ask the cryptographer to review and customize the system to counter padding oracle attacks. This customization will typically involve the use of a message authentication code (MAC) that must be carefully employed in order to be effective.&lt;br /&gt;
&lt;br /&gt;
In the worst case, where neither an AE mode nor a professional cryptographer is available, then the cryptography is definitely vulnerable to a padding oracle attack. The best that can be done in this situation is to design the overall system so that the decryption function is only given ciphertext retrieved directly from a canonical source which must itself be protected by other integrity controls. While this technique will help reduce the risk of a padding oracle attack, it does not eliminate the risk, and it should be treated as a temporary workaround until an AE-based solution can be implemented.&lt;br /&gt;
&lt;br /&gt;
When selecting a cryptographic mode for this worse case, cipher-block chaining (CBC) mode is a strong choice as it has been carefully studied, is well understood, and is readily available in many cryptographic APIs. In all cases avoid the electronic codebook (ECB) mode. If using cipher modes that create streaming ciphers from block ciphers, such as the output feedback (OFB) or cipher feedback (CFB) modes, be careful not to repeat the IV for the same encryption key. &lt;br /&gt;
&lt;br /&gt;
See [http://www.cryptopp.com/wiki/Authenticated_Encryption Authenticated Encryption] on the Crypto++ wiki for a more complete discussion of the technique. NIST's CRSC [http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html Current Modes] and [http://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.html Modes Development] documents offer an abbreviated list of cipher modes. Additional block cipher modes can be found in Wikipedia's [http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation Block cipher modes of operation] article.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Store the hashed and salted value of passwords ===&lt;br /&gt;
&lt;br /&gt;
Store the salted hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Use independent keys when multiple keys are required ====&lt;br /&gt;
&lt;br /&gt;
Ensure that key material is independent. That is, do not choose a second key which is easily related to the first (or any preceeding) keys.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Keys should remain in a protected key vault at all times. In particular, ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
==== Rule - Rekey data at least every one to three years ====&lt;br /&gt;
&lt;br /&gt;
Rekeying refers to the process of decrypting data and then re-encrypting it with a new key. Periodically rekeying data helps protect it from undetected compromises of older keys. The appropriate rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. All new data entering the system must encrypted with the new key. While it is recommended that existing data be rekeyed with the new key, as per the Rekey data at least every one to three years rule above, it is not clear that the PCI DSS requires this.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=100350</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=100350"/>
				<updated>2011-01-14T00:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Rule - Prefer authenticated encryption modes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Note that integrity should use a MAC such as HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion. Also ensure that random algorithms are seeded with sufficient entropy.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use widely accepted implementations of cryptographic algorithms ====&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Prefer authenticated encryption modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both confidentiality and authenticity. Recommended modes include counter with CBC-MAC (CCM) mode and Galois/counter mode (GCM). These authenticated encryption (AE) modes resist padding oracle attacks which can be used in many cases to recover plaintext from encrypted text without knowledge of the encryption key. &lt;br /&gt;
&lt;br /&gt;
If an authenticated encryption mode is not available, then the best option is to consult with a professional cryptographer. Ask the cryptographer to review and customize the system to counter padding oracle attacks. This customization will typically involve the use of a message authentication code (MAC) that must be carefully employed in order to be effective.&lt;br /&gt;
&lt;br /&gt;
In the worst case, where neither an AE mode nor a professional cryptographer is available, then the cryptography is definitely vulnerable to a padding oracle attack. The best that can be done in this situation is to design the overall system so that the decryption function is only given ciphertext retrieved directly from a canonical source which must itself be protected by other integrity controls. While this technique will help reduce the risk of a padding oracle attack, it does not eliminate the risk, and it should be treated as a temporary workaround until an AE-based solution can be implemented.&lt;br /&gt;
&lt;br /&gt;
When selecting a cryptographic mode for this worse case, cipher-block chaining (CBC) mode is a strong choice as it has been carefully studied, is well understood, and is readily available in many cryptographic APIs. In all cases avoid the electronic code book (ECB) mode. If using cipher modes that create streaming ciphers from block ciphers, such as the output feedback (OFB) or cipher feedback (CFB) modes, be careful not to repeat the IV for the same encryption key. &lt;br /&gt;
&lt;br /&gt;
See [http://www.cryptopp.com/wiki/Authenticated_Encryption Authenticated Encryption] on the Crypto++ wiki for a more complete discussion of the technique. NIST's CRSC [http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html Current Modes] and [http://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.html Modes Dvelopment] offer an abbreviated list of cipher modes. Additional block cipher modes can be found at Wikipedia's [http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation Block cipher modes of operation].&lt;br /&gt;
&lt;br /&gt;
=== Rule - Store the hashed and salted value of passwords ===&lt;br /&gt;
&lt;br /&gt;
Store the salted hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Use independent keys when multiple keys are required ====&lt;br /&gt;
&lt;br /&gt;
Ensure that key material is independent. That is, do not choose a second key which is easily related to the first (or any preceeding) keys.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Keys should remain in a protected key vault at all times. In particular, ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
==== Rule - Rekey data at least every one to three years ====&lt;br /&gt;
&lt;br /&gt;
Rekeying refers to the process of decrypting data and then re-encrypting it with a new key. Periodically rekeying data helps protect it from undetected compromises of older keys. The appropriate rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. All new data entering the system must encrypted with the new key. While it is recommended that existing data be rekeyed with the new key, as per the Rekey data at least every one to three years rule above, it is not clear that the PCI DSS requires this.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=100349</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=100349"/>
				<updated>2011-01-13T23:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: Revised rule regarding AE.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Note that integrity should use a MAC such as HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion. Also ensure that random algorithms are seeded with sufficient entropy.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use widely accepted implementations of cryptographic algorithms ====&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Prefer authenticated encryption modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both confidentiality and authenticity such as counter with CBC-MAC (CCM) and Galois/counter mode (GCM). These authenticated encryption (AE) modes resist padding oracle attacks which can be used in many cases to recover plaintext from encrypted text without knowledge of the encryption key. &lt;br /&gt;
&lt;br /&gt;
If an authenticated encryption mode is not available, then the best option is to consult with a professional cryptographer. Ask the cryptographer to review and customize the system to counter padding oracle attacks. This customization will typically involve the use of a message authentication code (MAC) that must be carefully employed in order to be effective.&lt;br /&gt;
&lt;br /&gt;
In the worst case, where neither an AE mode nor a professional cryptographer is available, then the cryptography is definitely vulnerable to a padding oracle attack. The best that can be done in this situation is to design the overall system so that the decryption function is only given ciphertext retrieved directly from a canonical source which must itself be protected by other integrity controls. While this technique will help reduce the risk of a padding oracle attack, it does not eliminate the risk, and it should be treated as a temporary workaround until an AE-based solution can be implemented.&lt;br /&gt;
&lt;br /&gt;
When selecting a cryptographic mode for this worse case, cipher-block chaining (CBC) mode is a strong choice as it has been carefully studied, is well understood, and is readily available in many cryptographic APIs. In all cases avoid the electronic code book (ECB) mode. If using cipher modes that create streaming ciphers from block ciphers, such as the output feedback (OFB) or cipher feedback (CFB) modes, be careful not to repeat the IV for the same encryption key. &lt;br /&gt;
&lt;br /&gt;
See [http://www.cryptopp.com/wiki/Authenticated_Encryption Authenticated Encryption] on the Crypto++ wiki for a more complete discussion of the technique. NIST's CRSC [http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html Current Modes] and [http://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.html Modes Dvelopment] offer an abbreviated list of cipher modes. Additional block cipher modes can be found at Wikipedia's [http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation Block cipher modes of operation].&lt;br /&gt;
&lt;br /&gt;
=== Rule - Store the hashed and salted value of passwords ===&lt;br /&gt;
&lt;br /&gt;
Store the salted hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Use independent keys when multiple keys are required ====&lt;br /&gt;
&lt;br /&gt;
Ensure that key material is independent. That is, do not choose a second key which is easily related to the first (or any preceeding) keys.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Keys should remain in a protected key vault at all times. In particular, ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
==== Rule - Rekey data at least every one to three years ====&lt;br /&gt;
&lt;br /&gt;
Rekeying refers to the process of decrypting data and then re-encrypting it with a new key. Periodically rekeying data helps protect it from undetected compromises of older keys. The appropriate rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. All new data entering the system must encrypted with the new key. While it is recommended that existing data be rekeyed with the new key, as per the Rekey data at least every one to three years rule above, it is not clear that the PCI DSS requires this.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Podcast&amp;diff=82303</id>
		<title>OWASP Podcast</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Podcast&amp;diff=82303"/>
				<updated>2010-04-23T05:26:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== About ====&lt;br /&gt;
&lt;br /&gt;
'''OWASP Podcast Series Hosted by Jim Manico'''&lt;br /&gt;
&lt;br /&gt;
* The OWASP foundation presents the OWASP PODCAST SERIES hosted by [http://manico.net Jim Manico].&lt;br /&gt;
* Listen as Jim interviews OWASP volunteers, industry experts and leaders within the field of web application security. &lt;br /&gt;
* Questions? Comments? Please email [mailto:podcast@owasp.org podcast@owasp.org]&lt;br /&gt;
* Care to join our email list? Sign up here [https://lists.owasp.org/mailman/listinfo/owasp-podcast https://lists.owasp.org/mailman/listinfo/owasp-podcast]&lt;br /&gt;
* Want to see the process and equipment behind the show? [https://www.owasp.org/index.php/Talk:OWASP_Podcast click here] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
[http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=300769012 http://www.owasp.org/download/jmanico/OWASP_Podcast_200x200.jpg]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;150&amp;quot;&amp;gt;&lt;br /&gt;
Subscribe&amp;lt;br/&amp;gt;[http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=300769012 http://www.owasp.org/download/jmanico/itunes.jpg] [http://www.owasp.org/download/jmanico/podcast.xml https://www.owasp.org/images/d/d3/Feed-icon-32x32.png]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;paypal&amp;gt;OWASP Podcast&amp;lt;/paypal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest Shows====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;#&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Date&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Actions&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;71&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 19, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_71.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Top Ten with Robert Hansen (Redirects)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;70&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 19, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_70.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Top Ten with Michael Coates (TLS)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;69&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 19, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_69.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Top Ten with Eric Sheridan (CSRF)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;68&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 19, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_68.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Top Ten with Kevin Kenan (Cryptographic Storage)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;67&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 19, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_67.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Top Ten with Jeff Williams (XSS)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;66&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 14, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_66.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Brad Arkin (Adobe)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;65&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 13, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_65.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;AppSec Roundtable with Boaz Gelbord, Dan Cornell, Jeff Williams, Johannes Ullrich and Jim Manico (File Upload)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;64&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 30, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_64.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Andy Ellis (Availability)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 17, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_63.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Ed Bellis (eCommerce)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;62&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 12, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_62.mp3 Listen Now] | [[Podcast_62|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Amichai Shulman (WAF)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;61&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 10, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_61.mp3 Listen Now] | [[Podcast_61|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Richard Bejtlich (Network Monitoring)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;60&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 5, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_60.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Jeremiah Grossman and Robert Hansen (Google pays for vulns)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;59&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 3, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_59.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;AppSec Roundtable with Boaz Gelbord, Ben Tomhave, Dan Cornell, Jeff Williams, Andrew van der Stock and Jim Manico (Aurora+)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;58&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 2, 2010&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_58.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Ron Gula (Web Server Scanning, IDS/IPS)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;57&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;December 21, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_57.mp3 Listen Now] | [[Podcast_57|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with David Linthicum (Cloud Computing)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;56&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;December 7, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_56.mp3 Listen Now] | [[Podcast_56|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Adar Weidman (Regular Expression DOS)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;55&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;November 26, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_55.mp3 Listen Now] | [[Podcast_55|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;AppSec Roundtable with Boaz Gelbord, Jason Lam, Jim Manico and Jeff Williams (AppSec Justification)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;54&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;November 24, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_54.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with George Hesse (German Chapter Leader)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;53&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;November 24, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_53.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Amichai Shulman (WAF)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;52&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;November 5, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_52.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Sandro Gauci ([http://code.google.com/p/waffit/ wafw00f])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;51&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_51.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Michael Coates (Real Time Defenses, [http://www.owasp.org/index.php/Category:OWASP_AppSensor_Project OWASP AppSensor])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_50.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Eldad Chai (Business Logic Attacks)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;49&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_49.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Andre Riancho (OWASP w3af)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;48&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_48.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Giorgio Fedon (Browser Security in Banking)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;47&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 23, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_47.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Erlend Oftedal (Agile)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;46&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 23, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_46.mp3 Listen Now]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Luca Carettoni and Stefano Di Paola (HTTP Parameter Pollution)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;45&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 16, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_45.mp3 Listen Now] | [[Podcast_45|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Buanzo ([http://www.buanzo.com.ar/pro/eng.html Enigform ])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;44&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 8, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_44.mp3 Listen Now] | [[Podcast_44|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Andy Steingruebl (PayPal Secure Development Manager)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;43&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 2, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_43.mp3 Listen Now] | [[Podcast_43|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Mike Smith (http://www.guerilla-ciso.com/)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;42&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;October 1, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_42.mp3 Listen Now] | [[Podcast_42|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Roundtable with Matt Fisher, Jim Manico, Dan Philpott, Jack Whitsitt and Doug Wilson (FISMA, US Federal Cybersecurity)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;41&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;September 26, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_41.mp3 Listen Now] | [[Podcast_41|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with David Rice (Author of Geekonomics)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;September 23, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_40.mp3 Listen Now] | [[Podcast_40|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Rohit Sethi (OWASP J2EE Pattern Project)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;39&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;August 25, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_39.mp3 Listen Now] | [[Podcast_39|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Gunnar Peterson (Webservices)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;38&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;August 25, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_38.mp3 Listen Now] | [[Podcast_38|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with the OWASP Global Education Committee&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;37&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;August 22, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_37.mp3 Listen Now] | [[Podcast_37|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Jason Lam and Johannes Ullrich (SANS Institute)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;36&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;August 15, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_36.mp3 Listen Now] | [[Podcast_36|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;May 2009 News Commentary Recorded July 23 with Boaz Gelbord, Andre Gironda, Jason Lam, Jim Manico, Alex Smolen, Ben Tomhave, Andrew van der Stock and Jeff Williams (part 2)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;35&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;August 4, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_35.mp3 Listen Now] | [[Podcast_35|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Anton Chuvakin, Ph.D (PCI)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;34&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;July 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_34.mp3 Listen Now] | [[Podcast_34|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Amichai Shulman (WAF)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;33&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;July 25, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_33.mp3 Listen Now] | [[Podcast_33|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Paolo Perego (OWASP Orizon)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;32&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;July 21, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_32.mp3 Listen Now] | [[Podcast_32|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;May 2009 News Commentary Recorded June 11 with Arshan Dabirsiaghi, Boaz Gelbord, Jim Manico, Andrew van der Stock and Jeff Williams (part 1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;July 4, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_31.mp3 Listen Now] | [[Podcast_31|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Mark Curphey (OWASP Founder)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;July 2, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_30.mp3 Listen Now] | [[Podcast_30|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Billy Hoffman and Matt Wood (HP Application Security Research)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;29&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_29.mp3 Listen Now] | [[Podcast_29|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Justin Clarke (SQL Injection)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;28&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 26, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_28.mp3 Listen Now] | [[Podcast_28|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Ross J. Anderson&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;27&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 26, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_27.mp3 Listen Now] | [[Podcast_27|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Rafal Los (The Skeletor of AppSec)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;26&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 17, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_26.mp3 Listen Now] | [[Podcast_26|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 2009 News Commentary Recorded May 28 with Tom Brennan, Andre Gironda, Jim Manico, Alex Smolen and Jeff Williams (part 2)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;25&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 15, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_25.mp3 Listen Now] | [[Podcast_25|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with James McGovern&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 12, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_24.mp3 Listen Now] | [[Podcast_24|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 2009 News Commentary Recorded May 14 with Andre Gironda, Jim Manico, Alex Smolen and Jeff Williams (part 1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;23&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;June 1, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_23.mp3 Listen Now] | [[Podcast_23|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Dr. Boaz Gelbord&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;22&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;May 22, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_22.mp3 Listen Now] | [[Podcast_22|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Dan Cornell (Membership Committee)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;21&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;May 20, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_21.ogg Listen Now] | [[Podcast_21|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Richard Stallman&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;20&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;May 13, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_20.mp3 Listen Now] | [[Podcast_20|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Mike Bailey&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;19&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;May 11, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_19.mp3 Listen Now] | [[Podcast_19|Show Notes]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 2009 News Commentary by Arshan Dabirsiaghi, Andre Gironda, Jim Manico and Jeff Williams (part 2)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;18&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_18.mp3 Listen Now] | [[Podcast_18|Show Notes]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Jeremiah Grossman&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;17&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 21, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_17.mp3 Listen Now] | [[Podcast_17|Show Notes]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Robert Hansen&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 9, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_16.mp3 Listen Now] | [[Podcast_16|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Dave Aitel (Demonstrates Cool)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;April 4, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_15.mp3 Listen Now] | [[Podcast_15|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Brian Chess (BSIMM)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;14&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 25, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_14.mp3 Listen Now] | [[Podcast_14|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Pravir Chandra (OWASP SAMM)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 23, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_13.mp3 Listen Now] | [[Podcast_13|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 2009 News Commentary by Arshan Dabirsiaghi, Andre Gironda, Jim Manico and Jeff Williams (part 1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;12&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 11, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_12.mp3 Listen Now] | [[Podcast_12|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Ryan Barnett (OWASP ModSecurity Core Ruleset)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;11&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;March 4, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_11.mp3 Listen Now] | [[Podcast_11|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with MITRE (Steve Christey and Bob Martin)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 26, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_10.mp3 Listen Now] | [[Podcast_10|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Ken van Wyk&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 20, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_9.mp3 Listen Now] | [[Podcast_9|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 2009 News Commentary by Arshan Dabirsiaghi, Andre Gironda, Jim Manico and Jeff Williams (part 2)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 20, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_8.mp3 Listen Now] | [[Podcast_8|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;February 2009 News Commentary by Arshan Dabirsiaghi, Andre Gironda, Jim Manico and Jeff Williams (part 1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;January 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_7.mp3 Listen Now] | [[Podcast_7|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Jeff Williams&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;January 24, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_6.mp3 Listen Now] | [[Podcast_6|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Roundtable with Andre Gironda, Brian Holyfield, Jim Manico, Marcin Wielgoszewski&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;January 15, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_5.mp3 Listen Now] | [[Podcast_5|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Gary McGraw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;January 13, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_4.mp3 Listen Now] | [[Podcast_4|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Andrew van der Stock (OWASP Developers Guide)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;December 30, 2009&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_3.mp3 Listen Now] | [[Podcast_3|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Matt Tesauro (OWASP Live CD)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;December 20, 2008&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_2.mp3 Listen Now] | [[Podcast_2|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;Interview with Stephen Craig Evans (OWASP WebGoat/ModSecurity Project)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;November 21, 2008&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td NOWRAP VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;[http://www.owasp.org/download/jmanico/owasp_podcast_1.mp3 Listen Now] | [[Podcast_1|Show Notes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;News Commentary by Arshan Dabirsiaghi, Jeremiah Grossman, Jim Manico and Jeff Williams&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Contributors and Sponsors ====&lt;br /&gt;
&lt;br /&gt;
'''Host and Executive Producer'''&lt;br /&gt;
* [[User:Jmanico|Jim Manico]]&lt;br /&gt;
&lt;br /&gt;
'''Host and Producer'''&lt;br /&gt;
* Matt Tesauro&lt;br /&gt;
&lt;br /&gt;
'''Mastering, Effects, Audio Tech, Producer'''&lt;br /&gt;
* Kevin Coons from ManaTribe &lt;br /&gt;
&lt;br /&gt;
'''News Commentary Copy Editors'''&lt;br /&gt;
* [[User:dre|Andre Gironda]] &lt;br /&gt;
* Mike Boberski&lt;br /&gt;
&lt;br /&gt;
'''Audio Editors'''&lt;br /&gt;
* [[User:Jmanico|Jim Manico]]&lt;br /&gt;
* [[User:Marcin|Marcin Wielgoszewski]]&lt;br /&gt;
* Kevin Coons from ManaTribe &lt;br /&gt;
&lt;br /&gt;
'''News Commentary Team'''&lt;br /&gt;
* Mike Boberski&lt;br /&gt;
* [[User:brennan|Tom Brennan]]&lt;br /&gt;
* Arshan Dabirsiaghi&lt;br /&gt;
* Andre Gironda&lt;br /&gt;
* [[User:Jmanico|Jim Manico]]&lt;br /&gt;
* Alex Smolen&lt;br /&gt;
* Andrew van der Stock&lt;br /&gt;
* Jeff Williams&lt;br /&gt;
&lt;br /&gt;
'''Artwork'''&lt;br /&gt;
* Larry Casey&lt;br /&gt;
* Gareth Heyes&lt;br /&gt;
&lt;br /&gt;
'''Sponsors'''&lt;br /&gt;
* The OWASP Foundation&lt;br /&gt;
* Music by [http://www.twistedmusic.com/artists/shpongle/ Shpongle] courtesy of [http://www.twistedmusic.com/ Twisted Records]&lt;br /&gt;
&lt;br /&gt;
'''Illuminati-like influence over the Podcast'''&lt;br /&gt;
* Tom Brennan&lt;br /&gt;
* Jeff Williams&lt;br /&gt;
* Dinis Druz&lt;br /&gt;
* Kate Hartmann&lt;br /&gt;
* [[User:Marcin|Marcin Wielgoszewski]]&lt;br /&gt;
* Tracey Schavone&lt;br /&gt;
* The OWASP Leadership eList&lt;br /&gt;
&lt;br /&gt;
==== Twitter ====&lt;br /&gt;
&lt;br /&gt;
[http://twitter.com/owasp_podcast http://twitter.com/owasp_podcast]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;twitter&amp;gt;20208646&amp;lt;/twitter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Artwork ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[http://www.owasp.org/download/jmanico/OWASP_Podcast_200x200.jpg http://www.owasp.org/download/jmanico/OWASP_Podcast_200x200.jpg]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Larry Casey&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[http://www.owasp.org/download/jmanico/OWASP_Podcast2_200x200.jpg http://www.owasp.org/download/jmanico/OWASP_Podcast2_200x200.jpg]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Gareth Heyes&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;headertabs/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76226</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76226"/>
				<updated>2010-01-14T05:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Secure Cryptographic Storage Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Should note that integrity should be use a MAC (i.e., a keyed hash) and not a MIC (message integrity code). A MIC can be used as a keyed hash via&lt;br /&gt;
&lt;br /&gt;
	MIC(msg) = Secure_Hash( salt + msg )&lt;br /&gt;
&lt;br /&gt;
but that is not as good as using something like HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store the hash value of passwords ====&lt;br /&gt;
&lt;br /&gt;
Store the hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion.&lt;br /&gt;
&lt;br /&gt;
TODO: This probably could use further explanation especially how entropy used to seed PRNGs plays an important role as well.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use widely accepted implementations of cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use strong cryptographic cipher modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both authenticity and confidentiality&lt;br /&gt;
&lt;br /&gt;
ECB should almost unequivocally be avoided. If you use a cipher mode that treats a block cipher as a streaming mode, such as OFB or CFB, be careful you don't repeat the IV for the same encryption key. In general CBC is a decent cipher mode to use if message authenticity is not an issue and it a cipher mode that is almost always available. Better cipher modes are ones that offer&lt;br /&gt;
both authenticity and confidentiality such as those mentioned under the Wikipedia &amp;quot;Authenticated Encryption&amp;quot; article. See the &amp;quot;see also&amp;quot; section of &amp;lt;http://en.wikipedia.org/wiki/Authenticated_encryption&amp;gt; for a list of such cipher modes.&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Cryptographic_Ciphers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if the database access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Ideally, keys should remain in a protected key vault at all times. In particular ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
=== Rule - Rekey data at least every one to three years ===&lt;br /&gt;
&lt;br /&gt;
Rekeying refers to the process of decrypting data and then re-encrypting it with a new key. Periodically rekeying data helps protect it from undetected compromises of older keys. The appropriate rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. The new key will be used to encrypt all of the existing data with the new key.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76225</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76225"/>
				<updated>2010-01-14T05:55:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Rule - Rekey data at least every one to three years */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Should note that integrity should be use a MAC (i.e., a keyed hash) and not a MIC (message integrity code). A MIC can be used as a keyed hash via&lt;br /&gt;
&lt;br /&gt;
	MIC(msg) = Secure_Hash( salt + msg )&lt;br /&gt;
&lt;br /&gt;
but that is not as good as using something like HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store the hash value of passwords ====&lt;br /&gt;
&lt;br /&gt;
Store the hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion.&lt;br /&gt;
&lt;br /&gt;
TODO: This probably could use further explanation especially how entropy used to seed PRNGs plays an important role as well.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use widely accepted implementations of cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use strong cryptographic cipher modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both authenticity and confidentiality&lt;br /&gt;
&lt;br /&gt;
ECB should almost unequivocally be avoided. If you use a cipher mode that treats a block cipher as a streaming mode, such as OFB or CFB, be careful you don't repeat the IV for the same encryption key. In general CBC is a decent cipher mode to use if message authenticity is not an issue and it a cipher mode that is almost always available. Better cipher modes are ones that offer&lt;br /&gt;
both authenticity and confidentiality such as those mentioned under the Wikipedia &amp;quot;Authenticated Encryption&amp;quot; article. See the &amp;quot;see also&amp;quot; section of &amp;lt;http://en.wikipedia.org/wiki/Authenticated_encryption&amp;gt; for a list of such cipher modes.&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Cryptographic_Ciphers&lt;br /&gt;
&lt;br /&gt;
=== Rule - Rekey data at least every one to three years ===&lt;br /&gt;
&lt;br /&gt;
Rekeying refers to the process of decrypting data and then re-encrypting it with a new key. Periodically rekeying data helps protect it from undetected compromises of older keys. The appropriate rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if the database access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Ideally, keys should remain in a protected key vault at all times. In particular ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. The new key will be used to encrypt all of the existing data with the new key.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76224</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76224"/>
				<updated>2010-01-14T05:53:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Secure Cryptographic Storage Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Should note that integrity should be use a MAC (i.e., a keyed hash) and not a MIC (message integrity code). A MIC can be used as a keyed hash via&lt;br /&gt;
&lt;br /&gt;
	MIC(msg) = Secure_Hash( salt + msg )&lt;br /&gt;
&lt;br /&gt;
but that is not as good as using something like HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store the hash value of passwords ====&lt;br /&gt;
&lt;br /&gt;
Store the hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion.&lt;br /&gt;
&lt;br /&gt;
TODO: This probably could use further explanation especially how entropy used to seed PRNGs plays an important role as well.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use widely accepted implementations of cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use strong cryptographic cipher modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both authenticity and confidentiality&lt;br /&gt;
&lt;br /&gt;
ECB should almost unequivocally be avoided. If you use a cipher mode that treats a block cipher as a streaming mode, such as OFB or CFB, be careful you don't repeat the IV for the same encryption key. In general CBC is a decent cipher mode to use if message authenticity is not an issue and it a cipher mode that is almost always available. Better cipher modes are ones that offer&lt;br /&gt;
both authenticity and confidentiality such as those mentioned under the Wikipedia &amp;quot;Authenticated Encryption&amp;quot; article. See the &amp;quot;see also&amp;quot; section of &amp;lt;http://en.wikipedia.org/wiki/Authenticated_encryption&amp;gt; for a list of such cipher modes.&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Cryptographic_Ciphers&lt;br /&gt;
&lt;br /&gt;
=== Rule - Rekey data at least every one to three years ===&lt;br /&gt;
&lt;br /&gt;
Periodically rekeying data helps protect it from undetected key compromises. The rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year. &lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if the database access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Ideally, keys should remain in a protected key vault at all times. In particular ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. The new key will be used to encrypt all of the existing data with the new key.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76223</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=76223"/>
				<updated>2010-01-14T05:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Secure Cryptographic Storage Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Should note that integrity should be use a MAC (i.e., a keyed hash) and not a MIC (message integrity code). A MIC can be used as a keyed hash via&lt;br /&gt;
&lt;br /&gt;
	MIC(msg) = Secure_Hash( salt + msg )&lt;br /&gt;
&lt;br /&gt;
but that is not as good as using something like HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store the hash value of passwords ====&lt;br /&gt;
&lt;br /&gt;
Store the hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion.&lt;br /&gt;
&lt;br /&gt;
TODO: This probably could use further explanation especially how entropy used to seed PRNGs plays an important role as well.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use widely accepted implementations of cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use strong cryptographic cipher modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both authenticity and confidentiality&lt;br /&gt;
&lt;br /&gt;
ECB should almost unequivocally be avoided. If you use a cipher mode that treats a block cipher as a streaming mode, such as OFB or CFB, be careful you don't repeat the IV for the same encryption key. In general CBC is a decent cipher mode to use if message authenticity is not an issue and it a cipher mode that is almost always available. Better cipher modes are ones that offer&lt;br /&gt;
both authenticity and confidentiality such as those mentioned under the Wikipedia &amp;quot;Authenticated Encryption&amp;quot; article. See the &amp;quot;see also&amp;quot; section of &amp;lt;http://en.wikipedia.org/wiki/Authenticated_encryption&amp;gt; for a list of such cipher modes.&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Cryptographic_Ciphers&lt;br /&gt;
&lt;br /&gt;
=== Rule - Rekey data at least every one to three years ===&lt;br /&gt;
&lt;br /&gt;
Periodically rekeying data helps protect it from undetected key compromises. The rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year. &lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Ideally, keys should remain in a protected key vault at all times. In particular ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard was introduced in 2008 and an update to the standard is expected in 2010. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4 You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5 Protect cryptographic keys used for encryption of cardholder data against both disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data, this means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI&amp;amp;nbsp;DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. The new key will be used to encrypt all of the existing data with the new key.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of old or suspected compromised cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities'''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=75770</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=75770"/>
				<updated>2010-01-06T07:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Secure Cryptographic Storage Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WORK IN PROGRESS =&lt;br /&gt;
&lt;br /&gt;
= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only Store Sensitive Data That You Need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only Use Strong Cryptographic Algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Should note that integrity should be use a MAC (i.e., a keyed hash) and not a MIC (message integrity code). A MIC can be used as a keyed hash via&lt;br /&gt;
&lt;br /&gt;
	MIC(msg) = Secure_Hash( salt + msg )&lt;br /&gt;
&lt;br /&gt;
but that is not as good as using something like HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store the Hash Value of Passwords ====&lt;br /&gt;
&lt;br /&gt;
Store the hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure That Random Numbers are Cryptographically Strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion.&lt;br /&gt;
&lt;br /&gt;
TODO: This probably could use further explanation especially how entropy used to seed PRNGs plays an important role as well.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only Use Widely Accepted Implementations of Cryptographic Algorithms ===&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only Use Strong Cryptographic Cipher Modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both authenticity and confidentiality&lt;br /&gt;
&lt;br /&gt;
ECB should almost unequivocally be avoided. If you use a cipher mode that treats a block cipher as a streaming mode, such as OFB or CFB, be careful you don't repeat the IV for the same encryption key. In general CBC is a decent cipher mode to use if message authenticity is not an issue and it a cipher mode that is almost always available. Better cipher modes are ones that offer&lt;br /&gt;
both authenticity and confidentiality such as those mentioned under the Wikipedia &amp;quot;Authenticated Encryption&amp;quot; article. See the &amp;quot;see also&amp;quot; section of &amp;lt;http://en.wikipedia.org/wiki/Authenticated_encryption&amp;gt; for a list of such cipher modes.&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Cryptographic_Ciphers&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure That Any Secret Key Is Protected From Unauthorized Access ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Ideally, keys should remain in a protected key vault at all times. In particular ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build Support For Changing Keys Periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow Applicable Regulations On Use Of Cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI Data Security Standard requirement 3, you must protect cardholder data ====&lt;br /&gt;
&lt;br /&gt;
PCI DSS compliance is mandatory by 2008 for merchants and anyone else dealing with credit cards. Good practice is to never store unnecessary data.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
'''Other Articles in the OWASP Prevention Cheat Sheet Series'''&lt;br /&gt;
&lt;br /&gt;
* [[XSS (Cross Site Scripting) Prevention Cheat Sheet]]&lt;br /&gt;
* [[Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet]]&lt;br /&gt;
* [[SQL Injection Prevention Cheat Sheet]]&lt;br /&gt;
* [[Transport Layer Protection Cheat Sheet]]&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim.manico[at]aspectsecurity.com &lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=75769</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=75769"/>
				<updated>2010-01-06T07:40:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Secure Cryptographic Storage Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WORK IN PROGRESS =&lt;br /&gt;
&lt;br /&gt;
= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide variety of products, methods and mechanisms for cryptographic storage that this cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only Store Sensitive Data That You Need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses use payment providers that store the credit card for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only Use Strong Cryptographic Algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 / SHA1/ Favor safer. The definition of a &amp;quot;strong&amp;quot; cryptographic algorithms change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
This is a good default if one doesn't have AES and one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC, None of these cipher modes are authentication encryption modes. (That's why I added it explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc then some of these authentication encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Should note that integrity should be use a MAC (i.e., a keyed hash) and not a MIC (message integrity code). A MIC can be used as a keyed hash via&lt;br /&gt;
&lt;br /&gt;
	MIC(msg) = Secure_Hash( salt + msg )&lt;br /&gt;
&lt;br /&gt;
but that is not as good as using something like HMAC-SHA1 or even better, HMAC-SHA256.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store the Hash Value of Passwords ====&lt;br /&gt;
&lt;br /&gt;
Store the hashed value of the password. Salt each hash. Use a different random salt for each password hash. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure That Random Numbers are Cryptographically Strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion.&lt;br /&gt;
&lt;br /&gt;
TODO: This probably could use further explanation especially how entropy used to seed PRNGs plays an important role as well.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only Use Widely Accepted Implementations of Cryptographic Algorithms ===&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Use widely accepted algorithms and widely accepted implementations only. Ensure that an implementation has, at least, had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only Use Strong Cryptographic Cipher Modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both authenticity and confidentiality&lt;br /&gt;
&lt;br /&gt;
ECB should almost unequivocally be avoided. If you use a cipher mode that treats a block cipher as a streaming mode, such as OFB or CFB, be careful you don't repeat the IV for the same encryption key. In general CBC is a decent cipher mode to use if message authenticity is not an issue and it a cipher mode that is almost always available. Better cipher modes are ones that offer&lt;br /&gt;
both authenticity and confidentiality such as those mentioned under the Wikipedia &amp;quot;Authenticated Encryption&amp;quot; article. See the &amp;quot;see also&amp;quot; section of &amp;lt;http://en.wikipedia.org/wiki/Authenticated_encryption&amp;gt; for a list of such cipher modes.&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Cryptographic_Ciphers&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure That Any Secret Key Is Protected From Unauthorized Access ===&lt;br /&gt;
&lt;br /&gt;
=== Rule - Store unencrypted keys away from the encrypted data ===&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Protect keys in a key vault ===&lt;br /&gt;
&lt;br /&gt;
Ideally, keys should remain in a protected key vault at all times. In particular ensure that there is a gap between the threat vectors with direct access to the data and the threat vectors with direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
=== Rule - Define a key lifecycle ===&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rule - Document concrete procedures for managing keys through the lifecycle ===&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Build Support For Changing Keys Periodically ===&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
=== Rule - Document concrete procedures to handle a key compromise ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow Applicable Regulations On Use Of Cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI Data Security Standard requirement 3, you must protect cardholder data ====&lt;br /&gt;
&lt;br /&gt;
PCI DSS compliance is mandatory by 2008 for merchants and anyone else dealing with credit cards. Good practice is to never store unnecessary data.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
'''Other Articles in the OWASP Prevention Cheat Sheet Series'''&lt;br /&gt;
&lt;br /&gt;
* [[XSS (Cross Site Scripting) Prevention Cheat Sheet]]&lt;br /&gt;
* [[Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet]]&lt;br /&gt;
* [[SQL Injection Prevention Cheat Sheet]]&lt;br /&gt;
* [[Transport Layer Protection Cheat Sheet]]&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim.manico[at]aspectsecurity.com &lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26820</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26820"/>
				<updated>2008-03-19T17:01:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Wednesday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
6:00pm-8:00pm Wednesday, March 26&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way &amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
[http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=555+International+Way&amp;amp;sll=44.04988,-123.08892&amp;amp;sspn=0.29907,0.482712&amp;amp;ie=UTF8&amp;amp;ll=44.086599,-123.036243&amp;amp;spn=0.037361,0.060339&amp;amp;z=14 Google Maps]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defending Against Cross-Site Scripting&amp;lt;br&amp;gt;&lt;br /&gt;
Kevin Kenan, K2 Digital Defense&lt;br /&gt;
&lt;br /&gt;
Cross-site scripting, a.k.a. XSS, leads the OWASP top ten and is perhaps&lt;br /&gt;
the most common vulnerability found on web sites today. It is a key&lt;br /&gt;
component of many phishing attacks and can allow an attacker to hijack&lt;br /&gt;
user sessions. This talk will demonstrate the different types of&lt;br /&gt;
cross-site scripting, explore how to find XSS vulnerabilities, and&lt;br /&gt;
discuss how to protect your site.&lt;br /&gt;
&lt;br /&gt;
This meeting is free and open to all so please forward this message to your&lt;br /&gt;
colleagues who are interested in application security. You can read more&lt;br /&gt;
about OWASP at:&lt;br /&gt;
&lt;br /&gt;
   http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
   https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26806</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26806"/>
				<updated>2008-03-19T00:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Wednesday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
6:00pm-8:00pm Wednesday, March 26&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way &amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
[http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=555+International+Way&amp;amp;sll=44.04988,-123.08892&amp;amp;sspn=0.29907,0.482712&amp;amp;ie=UTF8&amp;amp;ll=44.086599,-123.036243&amp;amp;spn=0.037361,0.060339&amp;amp;z=14 Google Maps]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defending Against Cross-Site Scripting&amp;lt;br&amp;gt;&lt;br /&gt;
Kevin Kenan, K2 Digital Defense&lt;br /&gt;
&lt;br /&gt;
Cross-site scripting, a.k.a. XSS, leads the OWASP top ten and is perhaps&lt;br /&gt;
the most common vulnerability found on web sites today. It is a key&lt;br /&gt;
component of many phishing attacks and can allow an attacker to hijack&lt;br /&gt;
user sessions. This talk will demonstrate the different types of&lt;br /&gt;
cross-site scripting, explore how to find XSS vulnerabilities, and&lt;br /&gt;
discuss how to protect your site.&lt;br /&gt;
&lt;br /&gt;
This meeting is open to all so please forward this message to your&lt;br /&gt;
colleagues who are interested in application security. You can read more&lt;br /&gt;
about OWASP at:&lt;br /&gt;
&lt;br /&gt;
   http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
   https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26805</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26805"/>
				<updated>2008-03-19T00:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Wednesday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
6:00pm-8:00pm Wednesday, March 26&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way &amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defending Against Cross-Site Scripting&amp;lt;br&amp;gt;&lt;br /&gt;
Kevin Kenan, K2 Digital Defense&lt;br /&gt;
&lt;br /&gt;
Cross-site scripting, a.k.a. XSS, leads the OWASP top ten and is perhaps&lt;br /&gt;
the most common vulnerability found on web sites today. It is a key&lt;br /&gt;
component of many phishing attacks and can allow an attacker to hijack&lt;br /&gt;
user sessions. This talk will demonstrate the different types of&lt;br /&gt;
cross-site scripting, explore how to find XSS vulnerabilities, and&lt;br /&gt;
discuss how to protect your site.&lt;br /&gt;
&lt;br /&gt;
This meeting is open to all so please forward this message to your&lt;br /&gt;
colleagues who are interested in application security. You can read more&lt;br /&gt;
about OWASP at:&lt;br /&gt;
&lt;br /&gt;
   http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
   https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=555+International+Way&amp;amp;sll=44.04988,-123.08892&amp;amp;sspn=0.29907,0.482712&amp;amp;ie=UTF8&amp;amp;ll=44.086599,-123.036243&amp;amp;spn=0.037361,0.060339&amp;amp;z=14 Google Maps]&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26804</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26804"/>
				<updated>2008-03-19T00:23:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Wednesday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Wednesday, March, 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
Agenda coming....&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way&amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=555+International+Way&amp;amp;sll=44.04988,-123.08892&amp;amp;sspn=0.29907,0.482712&amp;amp;ie=UTF8&amp;amp;ll=44.086599,-123.036243&amp;amp;spn=0.037361,0.060339&amp;amp;z=14 Google Maps]&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26556</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26556"/>
				<updated>2008-03-10T18:47:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Next Meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, March, 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
Agenda coming....&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way&amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=555+International+Way&amp;amp;sll=44.04988,-123.08892&amp;amp;sspn=0.29907,0.482712&amp;amp;ie=UTF8&amp;amp;ll=44.086599,-123.036243&amp;amp;spn=0.037361,0.060339&amp;amp;z=14 Google Maps]&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26554</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26554"/>
				<updated>2008-03-10T18:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, March, 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
Agenda coming....&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way&amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26553</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26553"/>
				<updated>2008-03-10T18:46:00Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, March 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;RSVP: Coming&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, March, 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
Agenda coming....&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way&amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26552</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=26552"/>
				<updated>2008-03-10T18:45:30Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;Symantec, Vista Room&amp;lt;br&amp;gt;RSVP: Coming&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, March, 26, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
Symantec, Vista Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
Agenda coming....&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
555 International Way&amp;lt;br&amp;gt;&lt;br /&gt;
Springfield, OR&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Kkenan&amp;diff=25716</id>
		<title>User:Kkenan</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Kkenan&amp;diff=25716"/>
				<updated>2008-02-21T16:35:03Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{OWASP Book|1401307}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.kevinkenan.com Kevin Kenan] is the Managing Director of [http://www.k2dd.com K2 Digital Defense] and the author of [http://www.0xc0deshop.com/citdb_code.html Cryptography in the Database]. He can be reached at  [mailto:kevin@k2dd.com kevin@k2dd.com] and blogs at [http://www.0xc0deshop.com &amp;lt;tt&amp;gt;0xC0DEShop&amp;lt;/tt&amp;gt;].&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Kkenan&amp;diff=25713</id>
		<title>User:Kkenan</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Kkenan&amp;diff=25713"/>
				<updated>2008-02-21T16:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OWASP Book|1401307}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.kevinkenan.com Kevin Kenan] is the Managing Director of [http://www.k2dd.com K2 Digital Defense] and the author of [http://www.0xc0deshop.com/citdb_code.html Cryptography in the Database]. He can be reached at  [mailto:kevin@k2dd.com kevin@k2dd.com] and blogs at [http://www.0xc0deshop.com &amp;lt;tt&amp;gt;0xC0DEShop&amp;lt;/tt&amp;gt;].&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Kkenan&amp;diff=25711</id>
		<title>User:Kkenan</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Kkenan&amp;diff=25711"/>
				<updated>2008-02-21T16:31:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OWASP Book|1401307}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.kevinkenan.com Kevin Kenan] is the Managing Director of [http://www.k2dd.com K2 Digital Defense] and the author of [http://www.0xc0deshop.com/citdb_code.html Cryptography in the Database]. He can be reached at  [mailto:kevin@k2dd.com kevin@k2dd.com] and blogs at [http://www.0xc0deshop.com &amp;lt;tt&amp;gt;0xC0DEShop&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25709</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25709"/>
				<updated>2008-02-21T16:29:24Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[User:Kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25708</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25708"/>
				<updated>2008-02-21T16:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [[kkenan|Kevin Kenan]]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25599</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25599"/>
				<updated>2008-02-20T01:13:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 2em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25598</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25598"/>
				<updated>2008-02-20T01:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.50em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25597</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25597"/>
				<updated>2008-02-20T01:12:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 2em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25596</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25596"/>
				<updated>2008-02-20T01:12:23Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.50em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25595</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25595"/>
				<updated>2008-02-20T01:11:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25594</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25594"/>
				<updated>2008-02-20T01:11:05Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next&amp;lt;br&amp;gt;Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25593</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25593"/>
				<updated>2008-02-20T01:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&amp;lt;br&amp;gt;See [[#Next_Meeting|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25592</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25592"/>
				<updated>2008-02-20T01:09:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;EWEB Community Meeting Room&amp;lt;br&amp;gt;RSVP: http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
== February Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25591</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25591"/>
				<updated>2008-02-20T01:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa; border-left: 10px solid #000066;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | '''Next Meeting'''&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | Thursday, February, 28, 6:00pm-8:00pm&lt;br /&gt;
EWEB Community Meeting Room&lt;br /&gt;
RSVP: http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
== February Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25590</id>
		<title>Eugene</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Eugene&amp;diff=25590"/>
				<updated>2008-02-20T01:01:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Chapter Template|chaptername=Eugene, Oregon|extra=The chapter leader is [mailto:kevin@k2dd.com Kevin Kenan]|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-eugene|emailarchives=http://lists.owasp.org/pipermail/owasp-eugene}}&lt;br /&gt;
&lt;br /&gt;
== February Meeting ==&lt;br /&gt;
&lt;br /&gt;
Thursday, February, 28, 6:00pm-8:00pm&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Meeting Room&amp;lt;br&amp;gt;&lt;br /&gt;
Free and open to all&lt;br /&gt;
&lt;br /&gt;
You are invited to the kick-off meeting for the Eugene Chapter of the&lt;br /&gt;
Open Web Application Security Project (OWASP). The Chapter leader, Kevin&lt;br /&gt;
Kenan, will present an introduction to OWASP and web application&lt;br /&gt;
security. The presentation will highlight the free resources that OWASP&lt;br /&gt;
provides for securing web applications. In addition, we will have an&lt;br /&gt;
open discussion about what you and your fellow chapter members want to&lt;br /&gt;
achieve with your participation in the Eugene Chapter of OWASP and what&lt;br /&gt;
we can do to shape future meetings and events to accomplish those goals.&lt;br /&gt;
Ample time will also be provided for you to meet and network with your&lt;br /&gt;
fellow chapter members.&lt;br /&gt;
&lt;br /&gt;
Doors open at 6:00pm and the presentation begins promptly at 6:30. Pizza&lt;br /&gt;
and soft drinks will be provided. Please RSVP by registering for the &lt;br /&gt;
event at:&lt;br /&gt;
&lt;br /&gt;
http://eugeneowaspfeb2008.eventbrite.com&lt;br /&gt;
&lt;br /&gt;
Or RSVP by posting to the Eugene Chapter mailing list (see below). This&lt;br /&gt;
meeting is open to all so please forward this message to your colleagues&lt;br /&gt;
and friends who are interested in application security. You can read&lt;br /&gt;
more about OWASP at:&lt;br /&gt;
&lt;br /&gt;
http://www.owasp.org&lt;br /&gt;
&lt;br /&gt;
To join the Eugene Chapter, simply sign-up for the mailing list at:&lt;br /&gt;
&lt;br /&gt;
https://lists.owasp.org/mailman/listinfo/owasp-eugene&lt;br /&gt;
&lt;br /&gt;
Participation in the Eugene Chapter is free and open to all. &lt;br /&gt;
&lt;br /&gt;
Thanks to Eugene Water &amp;amp; Electric Board for providing the space for this&lt;br /&gt;
meeting. EWEB furnishes public meeting rooms as a community service and&lt;br /&gt;
does not sponsor or endorse activities or groups using EWEB's&lt;br /&gt;
facilities.&lt;br /&gt;
&lt;br /&gt;
Location Details:&amp;lt;br&amp;gt;&lt;br /&gt;
EWEB Community Room&amp;lt;br&amp;gt;&lt;br /&gt;
500 E 4th Ave&amp;lt;br&amp;gt;&lt;br /&gt;
Eugene, OR 97401&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Chapter]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25456</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25456"/>
				<updated>2008-02-15T19:29:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://stores.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. To use the template, put the following text at the beginning of the project's main page:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; in the above is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://stores.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that &amp;lt;tt&amp;gt;1400974&amp;lt;/tt&amp;gt; is the catalog number since the URL for the book at Lulu is [http://www.lulu.com/content/1400974 http://www.lulu.com/content/1400974].&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
The template supports a second parameter that is to be used to keep the page on which the template appears off the OWASP Book category list. The primary reason for this is so that the template can be used in examples (such as the example above) without putting the example page on the category list. If it is used, simply add a space as the second parameter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974| }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25455</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25455"/>
				<updated>2008-02-15T19:28:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OWASP_Books_logo.png|right|thumb|200px|Book logo]]&lt;br /&gt;
Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://stores.lulu.com/owasp http://stores.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
Application security is a rapidly developing field and so OWASP periodically publishes new editions of the books. The latest and most up-to-date information is always on this wiki where it is available for anyone to read and edit. A project's books offer a snapshot of that information after it has been reviewed and vetted by the project's leaders.&lt;br /&gt;
&lt;br /&gt;
If you are a project leader and need to indicate that your project has an associated book, please use the OWASP Books template. Instructions for its use are available on the [[:Template:OWASP Book|template's page.]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25454</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25454"/>
				<updated>2008-02-15T19:27:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://stores.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. To use the template, put the following text at the beginning of the project's main page:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; in the above is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://stores.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that &amp;lt;tt&amp;gt;1400974&amp;lt;/tt&amp;gt; is the catalog number since the URL for the book at Lulu is [http://www.lulu.com/content/1400974 http://www.lulu.com/content/1400974].&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
The template supports a second parameter that is to be used to keep the page on which the template appears off the OWASP Book category list. The primary reason for this is so that the template can be used in examples (such as the example above) without putting the example page on the category list. If it is used, simply add a space as the second parameter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974| }}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25453</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25453"/>
				<updated>2008-02-15T19:26:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://stores.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. To use the template, put the following text at the beginning of the project's main page:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; in the above is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://stores.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that &amp;lt;tt&amp;gt;1400974&amp;lt;/tt&amp;gt; is the catalog number since the URL for the book at Lulu is [http://www.lulu.com/content/1400974 http://www.lulu.com/content/1400974].&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
The template supports a second parameter that is to be used to keep the page on which the template appears off the OWASP Book category list. The primary reason for this is so that the template can be used in examples (such as the example above) without putting the example page on the category list. If it is used, simply add a space as the second parameter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974| }}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25446</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25446"/>
				<updated>2008-02-15T17:50:52Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. To use the template, put the following text at the beginning of the project's main page:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; in the above is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that &amp;lt;tt&amp;gt;1400974&amp;lt;/tt&amp;gt; is the catalog number since the URL for the book at Lulu is [http://www.lulu.com/content/1400974 http://www.lulu.com/content/1400974].&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
The template supports a second parameter that is to be used to keep the page on which the template appears off the OWASP Book category list. The primary reason for this is so that the template can be used in examples (such as the example above) without putting the example page on the category list. If it is used, simply add a space as the second parameter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974| }}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25445</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25445"/>
				<updated>2008-02-15T17:49:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. The template is used as such:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; in the above is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that &amp;lt;tt&amp;gt;1400974&amp;lt;/tt&amp;gt; is the catalog number since the URL for the book at Lulu is [http://www.lulu.com/content/1400974 http://www.lulu.com/content/1400974].&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
The template supports a second parameter that is to be used to keep the page on which the template appears off the OWASP Book category list. The primary reason for this is so that the template can be used in examples (such as the example above) without putting the example page on the category list. If it is used, simply add a space as the second parameter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974| }}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25444</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25444"/>
				<updated>2008-02-15T17:48:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. The template is used as such:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; in the above is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that &amp;lt;tt&amp;gt;1400974&amp;lt;/tt&amp;gt; is the catalog number since the URL for the book at Lulu is [http://www.lulu.com/content/1400974 http://www.lulu.com/content/1400974].&lt;br /&gt;
&lt;br /&gt;
The template supports a second parameter that is to be used to keep the page on which the template appears off the OWASP Book category list. The primary reason for this is so that the template can be used in examples (such as the example above) without putting the example page on the category list. If it is used, simply add a space as the second parameter:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974| }}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25443</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25443"/>
				<updated>2008-02-15T17:44:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book. It should be placed at the top of the project's main page. The template is used as such:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974| }}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second parameter can be anything and is to be used when the template is being used in an example and the page isn't really to be included in the OWASP Books category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25442</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25442"/>
				<updated>2008-02-15T17:39:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book.&lt;br /&gt;
&lt;br /&gt;
The template is used as such:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974|EXAMPLE}}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second parameter can be anything and is to be used when the template is being used in an example and the page isn't really to be included in the OWASP Books category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25441</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25441"/>
				<updated>2008-02-15T17:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book.&lt;br /&gt;
&lt;br /&gt;
The template is used as such:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{OWASP Book|1234}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974|EXAMPLE}}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{OWASP Book|1400974}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second parameter can be anything and is to be used when the template is being used in an example and the page isn't really to be included in the OWASP Books category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25440</id>
		<title>Template:OWASP Book</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Template:OWASP_Book&amp;diff=25440"/>
				<updated>2008-02-15T17:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width: 80%; margin: 0 auto; border-collapse: collapse; background: #FBFBFB; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; valign=&amp;quot;center&amp;quot; | [[Image:OWASP_Books_logo.png|100px]]&lt;br /&gt;
| style=&amp;quot;padding: 0.25em 0.25em;&amp;quot; | This project has produced a book that can be [http://www.lulu.com/content/{{{1}}} downloaded or purchased.]&amp;lt;br&amp;gt;Feel free to browse the [http://www.lulu.com/owasp full catalog of available OWASP books.]&lt;br /&gt;
|}&amp;lt;includeonly&amp;gt;{{{2|[[Category:OWASP Books]] }}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to generate a message box indicating that a project has published a book.&lt;br /&gt;
&lt;br /&gt;
The template is used as such:&lt;br /&gt;
&lt;br /&gt;
 {{OWASP Book|1234}}&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;tt&amp;gt;1234&amp;lt;/tt&amp;gt; is the catalog number used to reference the book at Lulu. To get this number, click on the book's title in the Lulu [http://www.lulu/owasp catalog.] The catalog number is the number that appears in the URL.&lt;br /&gt;
&lt;br /&gt;
As an example, here is a message box for the &amp;lt;i&amp;gt;OWASP Top 10, 2007 Edition&amp;lt;/i&amp;gt; book:&lt;br /&gt;
&lt;br /&gt;
{{OWASP Book|1400974|EXAMPLE}}&lt;br /&gt;
&lt;br /&gt;
This tag would be produced on the Top 10 project page with the following code:&lt;br /&gt;
&lt;br /&gt;
 {{OWASP Book|1400974}}&lt;br /&gt;
&lt;br /&gt;
The second parameter can be anything and is to be used when the template is being used in an example and the page isn't really to be included in the OWASP Books category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25439</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25439"/>
				<updated>2008-02-15T17:29:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OWASP_Books_logo.png|right|thumb|200px|Book logo]]&lt;br /&gt;
Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://www.lulu.com/owasp http://www.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
Application security is a rapidly developing field and so OWASP periodically publishes new editions of the books. The latest and most up-to-date information is always on this wiki where it is available for anyone to read and edit. A project's books offer a snapshot of that information after it has been reviewed and vetted by the project's leaders.&lt;br /&gt;
&lt;br /&gt;
If you are a project leader and need to indicate that your project has an associated book, please use the OWASP Books template. Instructions for its use are available on the [[:Template:OWASP Book|template's page.]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25438</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25438"/>
				<updated>2008-02-15T17:20:51Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OWASP_Books_logo.png|right|thumb|200px|Book logo]]&lt;br /&gt;
Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://www.lulu.com/owasp http://www.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
Application security is a rapidly developing field and so OWASP periodically publishes new editions of the books. The latest and most up-to-date information is always on this wiki where it is available for anyone to read and edit. A project's books offer a snapshot of that information after it has been reviewed and vetted by the project's leaders.&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25437</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25437"/>
				<updated>2008-02-15T17:20:04Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
[[Image:OWASP_Books_logo.png|right|thumb|200px|Book logo]]&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://www.lulu.com/owasp http://www.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
Application security is a rapidly developing field and so OWASP periodically publishes new editions of the books. The latest and most up-to-date information is always on this wiki where it is available for anyone to read and edit. A project's books offer a snapshot of that information after it has been reviewed and vetted by the project's leaders.&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25435</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25435"/>
				<updated>2008-02-15T17:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:OWASP_Books_logo.png|right|thumb|200px|Book logo]]&lt;br /&gt;
Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://www.lulu.com/owasp http://www.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
To browse the entire catalog of books,&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25434</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25434"/>
				<updated>2008-02-15T17:07:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
[[Image:OWASP_Books_logo.png|left|thumb|200px|Book logo]]&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://www.lulu.com/owasp http://www.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
To browse the entire catalog of books,&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25433</id>
		<title>Category:OWASP Books</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Category:OWASP_Books&amp;diff=25433"/>
				<updated>2008-02-15T17:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kkenan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Many OWASP projects have produced books regarding the project's subject. The books range from technical manuals to vulnerability catalogs to best practice guides. Readers may download PDFs of the books for free or they may purchase the actual physical books. The physical books are offered at cost and OWASP does not make a profit from their sale. The books are provided as part of OWASP's mission to make application security visible.&lt;br /&gt;
&lt;br /&gt;
If a project features a book, then the project's main page will include a message box at the top of the page displaying the OWASP Books logo and links to download or purchase the book as well as view the entire catalog. The catalog of books is hosted at Lulu and may be viewed at [http://www.lulu.com/owasp].&lt;br /&gt;
&lt;br /&gt;
To browse the entire catalog of books, &lt;br /&gt;
&lt;br /&gt;
[[Image:OWASP_Books_logo.png|left|thumb|200px|Book logo]]&lt;/div&gt;</summary>
		<author><name>Kkenan</name></author>	</entry>

	</feed>