Hi,I'm posting the following information because I received an email from a prominent utility asking about it:
Yes, the mechanics - the algorithms, state machines, messages and behaviour - of the key exchanges are all either described in the specification itself or in open specifications from NIST, the IETF, ISO or IEC. Our intent from the very beginning of the work was to make the specification completely open. Neither the IEC nor the DNP Users Group would have accepted the specification otherwise.
This was not just a philosophical decision, but it is also good security. It has been proven over and over again that proprietary security schemes are less secure because nobody has reviewed them to find their holes. One doesn't want to be trying to re-invent the wheel! The most secure systems are those in which the complete mechanism is known to everyone, and only the keys are secret. Bruce Schneier, the noted cryptographic expert and author of some of the definitive books on the subject, talks about this a lot:
http://www.schneier.com/crypto-gram-9902.html
http://www.schneier.com/crypto-gram-0205.html
Yes, the intent is that the method to remotely change the pre-shared keys will also be open. I am working on that project now.
Yes, there will be multiple vendors implementing the software. I know of at least three companies who are developing independent implementations. EPRI is running a project that will have the specification and multiple vendor implementations reviewed by experts, and is planning to set up interoperability testing in the new year.
The following is a list of the open standards and algorithms used in the DNP Secure Authentication specification:
- Challenge-Handshake Authentication Protocol (RFC 1994)
- FIPS 198 Keyed-Hash Message Authentication Code
- FIPS 180-2 Secure Hash Standard (SHA-1 and SHA-256)
- FIPS 186-2 Digital Signature Standard pseudo-random numbers
- FIPS 197 Advanced Encryption Standard (AES-128)
- FIPS AES Key Wrap Algorithm to distribute session keys
- IEC 62351-5 Security for IEC 60870-5 and Derivatives
- IEC 62351-3 Security for Profiles Using TCP/IP
- ISO/IEC 9798-4 Entity Authentication - Using a Security Check Function
Khaled set very specific ...