UPDATE - Re: PCI DSS - Password Storage

74 views
Skip to first unread message

N. V. R. K. RAJU

unread,
Mar 27, 2014, 3:55:52 PM3/27/14
to null-...@googlegroups.com, securit...@googlegroups.com

Our Database team is trying to apply a encryption on storing old passwords on to the database. The function that they want to use is 3DES(SHA1(clear password)). 3DES uses CBC mode.

SO the questions are is 3DES - CBC a safe encryption?

All we trying to know, is this a secure function to apply against password for database storage according to PCI DSS.

Please advise.



On Thu, Mar 27, 2014 at 12:48 PM, N. V. R. K. RAJU <nvrk...@gmail.com> wrote:

Our Database team is trying to apply a encryption on storing old passwords on to the database. The function that they want to use is 3DES(SHA1(clear password)). 

All we trying to know, is this a secure function to apply against password for database storage according to PCI DSS.

Please advise.


--
Regards,
Raju



--
Regards,
Raju

Karthik Rangarajan

unread,
Mar 27, 2014, 5:38:21 PM3/27/14
to null-...@googlegroups.com
3DES-CBC is pretty safe - however, I am not sure why you're applying encryption to your passwords. PCI DSS 8.3 says "Render all passwords unreadable during transmission and storage on all system components using strong cryptography" - this doesn't necessarily mean encryption afaik, it can also mean salted hashes - which is also the safest way to store passwords. I would recommend using something such as bcrypt to store your passwords. However, I am not qualified enough re. PCI DSS to speak about requirements, so perhaps someone more qualified than me can answer.


--
_______________________________________________________________________________
null - Spreading the right Information
null Mailing list charter: http://null.co.in/section/about/null_list_charter/
---
You received this message because you are subscribed to the Google Groups "null" group.
To unsubscribe from this group and stop receiving emails from it, send an email to null-co-in+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Regards,
Karthik Rangarajan
MS, Information Security

Twitter: @krangarajan

N. V. R. K. RAJU

unread,
Mar 27, 2014, 8:28:34 PM3/27/14
to null-...@googlegroups.com
Thank you! your response is much appreciated,

The requirement here is for storing old passwords encrypted. We are totally on par with secure password storing mechanisms. like https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet

All we are trying to make sure is if 3DES-CBC is in accordance to PCI DSS standards.

Anyway, I got an answer from my friend stating that some Modes of 3DES like CBC do not use initialization vectors so not good to use. And some have error propagation from block to block.

 

3DES has (3EEE, 3EDE, 2EEE, 2EDE) modes this  is approved  and standard set by PCI. However, AES is stronger and Sha2 is better!


Reference to attest 3DES is PCI complaint: http://www.ibmsystemsmag.com/mainframe/administrator/security/Protecting-Confidential-Data-With-Payment-Card-Ind/?page=4


However, I expect to see any more comments or advises on the same.

Regards,
Raju

Sachinraj Shetty

unread,
Mar 28, 2014, 12:08:29 AM3/28/14
to null-...@googlegroups.com
Instead of separately encrypting the hashes,  I would recommend keyed hashing algorithms like HMAC-SHA512.  You could use HMAC-SHA256, if performance is a concern. However, choosing a larger sized hash reduces the probability of collision.

SHA1 is not recommended by NIST for certain cases : 
Regards,
Sachin

Karthik Rangarajan

unread,
Mar 28, 2014, 12:25:36 AM3/28/14
to null-...@googlegroups.com
On Thu, Mar 27, 2014 at 5:28 PM, N. V. R. K. RAJU <nvrk...@gmail.com> wrote:
Thank you! your response is much appreciated,

The requirement here is for storing old passwords encrypted. We are totally on par with secure password storing mechanisms. like https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet

All we are trying to make sure is if 3DES-CBC is in accordance to PCI DSS standards.

Anyway, I got an answer from my friend stating that some Modes of 3DES like CBC do not use initialization vectors so not good to use. And some have error propagation from block to block.
Not entirely sure that's accurate. At least on Java, PBE with 3DES uses an IV, and PKCS#5 padding. http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jdk/file/7d4a292dda4f/src/share/classes/com/sun/crypto/provider/PBECipherCore.java. The implementation might vary though. 

 

3DES has (3EEE, 3EDE, 2EEE, 2EDE) modes this  is approved  and standard set by PCI. However, AES is stronger and Sha2 is better!

If you have the option to use AES and SHA512, that's quite obviously better encryption for your data.
Reply all
Reply to author
Forward
0 new messages