1
$\begingroup$

Software library without hardware based source of entropy will provide enough security to generate digital certificates. However Hardware security Modules provide hardware based source of entropy and apis to generate certificates along with other crypto operations. But buying HSM just for making certificates will be kind of spending much for just one feature. Is there any other way or device to make strong digital certificates?

$\endgroup$
  • 1
    $\begingroup$ Cover a black sheet on your webcam, and collect image sensor noise to feed PRNG, that's something. $\endgroup$ – DannyNiu Jul 6 '17 at 7:15
  • $\begingroup$ why not feed directly the webcam video? $\endgroup$ – khan Jul 6 '17 at 7:24
  • $\begingroup$ i am looking for some usb based solution which has hardware based entropy source and can provide api to make certificates. actually hsms have very high end specs as compare to my requirement $\endgroup$ – khan Jul 6 '17 at 7:26
  • $\begingroup$ Why not feed the video? Because the noise would be drown. Ambient noise from microphone should also do. I haven't tried any of these myself since I'm not quite familiar with kernel modules. $\endgroup$ – DannyNiu Jul 6 '17 at 7:42
  • 1
    $\begingroup$ If you trust all the software (including OpenSSL) on the machine on which it runs, OpenSSL makes perfectly fine certificates, and handles entropy gathering nicely (that's an issue in embedded hardware and VMs, but is considered a solved problem on modern PCs/OSes). HSMs solve other real problems, including: who is allowed to use the CA's private key and perform other administrative functions like backup; putting a strong extra obstacle preventing that the CA's private key can leak even if the machine is compromised; demonstrating conformance to auditors. $\endgroup$ – fgrieu Jul 6 '17 at 8:16
3
$\begingroup$

HSMs are not purchased just for the feature of generating certs.

  • HSMs also store the certificates very securely. You cannot use the cert in the HSM unless you are authorised
  • HSMs also provide very secure management of the HSM itself - for e.g. you can create smart cards for 5 admins & say that atleast any 3 of the cards have to be used to administer the HSM
  • HSMs provide very high speeds for signing. If you are doing really huge amount signings per second, then this reduces the load on your software.
  • HSMs also provide high speeds for key generation. This may be important for temporal certificate generation - each certificate is used only for one signing.
$\endgroup$
  • $\begingroup$ yes, thats the reason i dont want to have HSM, because it has too many extra features which infact i dont need. $\endgroup$ – khan Jul 6 '17 at 18:14
2
$\begingroup$

What I read from your comments, a HSM is not really what you need. The main purpose of an HSM is to securely store keys, including layers of physical protection. That is what makes them special (and expensive). The second most important feature of an HSM is a special processor which can execute cryptographic operations very fast (think, thousands of RSA signatures per second) - something which you apparently need neither.

There are simple hardware devices which just provide entropy out there for a lot less money, but I doubt that you will need those either.

Your operating system should provide you with pretty decent entropy. If you add some additional entropy yourself (a timestamp, a process id, log entries) you will get sufficient randomness for good keys.

$\endgroup$
1
$\begingroup$

It sounds as if you're looking for a commercial solution to entropy generation. Hardware security modules are targeted at a broader security market that also includes key management, backup and tamper detection. There's no hard decision to make. Go with a market leader in this stuff and get either a USB or PCIe quantum random number generator like:-

trng

They're from ID Quantique and only ~€1000 which you can probably write off as IT investment for tax purposes. 4MBits /s of true entropy should be sufficient and they work on Linux and the other one. It also means the full entropy rate is available immediately from boot. If plugged into your key generating code as an entropy source, you won't need any underlying PRNGs. You can use true entropy for the securest key generation.

There are cheaper USB stick things but they're not very good in my assessment, and support will be an issue as those companies frequently fail.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.