Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am looking for a list of typical mistakes someone can make when implementing d

ID: 660140 • Letter: I

Question

I am looking for a list of typical mistakes someone can make when implementing digital signatures for a software. And of course why they are mistakes and how an attacker could take advantage of them.

I do not mean implementing the crypto itself but applying/using a library (like GPG or something alike) in your own project.

What I thought of so far:

- Using weak algorithms for encryption and/or hashing. -> Attacker could fake a valid signature because he is able to find collisions.
- Wrong handling of public keys (for example a application just downloads a public key it needs for verification of a unknown signature). -> Man in the Middle attackers could replace the downloaded public key with their own and the application would verify files of the attacker.
- Signatures are not verified correctly (for example the software just tests if there is a signature, not if its valid.) -> Attacker could use "fake" signatures.

Are those possible mistakes to make? Are the implications correct?

Please give me your ideas on the topic.

Thanks in advance!

Explanation / Answer

Ok here is a good one that is not commonly mentioned as a digital signature security risk.

There is a technique called blind signature. Which usually used for anonymous authentication like in anonymous P2P network, electronic voting, digital cash, etc.

Now, if the system use the same private key for regular digital signature and for blind digital signature there is a huge risk that an attacker can foul the system and cover data encrypted by the server public key. See Blind Signature for more details.

Of course, the solution is to use different private keys, one for regular digital signature and one for blind signature