28 Jul Digital Signatures
Digital signatures serve two very important functions that support secure electronic communications. First, digital signatures verify the sender of a message, giving the recipient assurance that the sender is who they say they are. This identity verification also helps enforce non-repudiation, preventing the sender from later denying that they sent the message. Second, digital signatures verify message integrity. Recipients of messages and files can use the digital signature to ensure that a document or file has not been tampered with, replaced or corrupted.
Understanding hashing and hash functions is fundamental to understanding how digital signatures are generated and applied. If you’re not already familiar with hash functions, you may wish to refresh your memory before continuing on.
How Digital Signatures Work
Digital signatures combine hashing with public key encryption. The process involves several steps for both the sender and receiver.
To digitally sign a message, the sender:
- Uses a cryptographic hashing algorithm such as SHA-3 to generate a message digest from the original plaintext message.
- Encrypts the message digest (not the message) using their private key. The encrypted message digest is the digital signature.
- Appends the digital signature to the plaintext message.
- Transmits the message with the appended digital signature.
To verify a digital signature, the recipient:
- Decrypts the digital signature using the sender’s public key.
- Uses the same cryptographic hashing function used by the sender to generate a message digest from the received plaintext message.
- Compares the decrypted digital signature with message digest just created in Step 2. If the two hashes match, then the recipient is assured that the message received was in fact transmitted by the sender and was not altered in transit.
It is very important to note that digital signatures do not provide confidentiality. If the sender and receiver require private communications, they would need to take the additional and separate step of encrypting the full message before sending it, and then decrypting the message upon receipt.
Security applications of digital signatures are not limited to text communications. They are used to verify the integrity of other digital files and are frequently used by software vendors who distribute software online. Other common uses include financial transaction verification and contract management.
Non-repudiation is an important application of digital signature protection. Non-repudiation is a legal term used to describe a scenario in which security procedures make it difficult to challenge the validity and origin of a document or transaction. Consider the example of a financial institution customer authorizing a transaction and then later attempting to deny that they gave that authorization. If the transaction was digitally signed, the financial institution has reliable evidence that that ties the transaction to the owner of the private key used to generate the signature. Because a person can be held responsible for all transactions signed using their private key, this example also illustrates the importance of keeping one’s private key secure.
The hash message authentication code (HMAC) algorithm combines a shared key with hashing. HMAC gives an additional layer of security over hashing alone, but nonetheless is only a partial digital signature. HMAC will verify the integrity of a message but does not protect against non-repudiation. However, HMAC is less computationally expensive than a full digital signature process and can be appropriate in scenarios where a higher degree of verification is not required.
Digital Signature Standard
The Federal Information Processing Standard (FIPS) 186-4, also known as the Digital Signature Standard (DSS), is published by the United States National Institute of Standards and Technology. DSS specifies the digital signature algorithms acceptable for federal government use. All of the DSS compliant digital signature algorithms use the government approved Secure Hash Algorithm (SHA) hash functions.
There are three currently approved standard encryption algorithms:
- The Digital Signature Algorithm (DSA) as specified in FIPS 186-4
- The Rivest–Shamir–Adleman (RSA) algorithm as specified in ANSI X9.31
- The Elliptic Curve DSA (ECDSA) as specified in ANSI X9.62
Selecting the Proper Key
The interplay between public and private keys, and when to apply the keys for different security tasks can be confusing. In selecting the proper key for the task, bear in mind the following four principles:
- Use the recipient’s public key to encrypt a message
- Use the recipient’s private key to decrypt a message
- Use the sender’s private key to digitally sign a message
- Use the sender’s public key to verify a digital signature
Understanding digital signatures is an important component of your preparation for a variety of security certification programs. If you’re interested in earning your next security certification, sign up for the free CertMike study groups for the CISSP, Security+, SSCP, or CySA+ exam.