Say I have a certificate which I use to sign the software I ship. This happens in the (daily or more) build on the buildserver (Windows machine). Easiest solution would be to put the certificate file (pfx) on the buildserver and just use it there.
But like this, it could be stolen by either any guy in the company (think .. frustrated leaving guy) or a virus or whatever. This might lead to a disaster.
Currently the certificate is stored in the certificate store as "unexportable", which should be a little more safe. But how safe is this "unexportable" thing really? The server is a VM, so I guess someone could just copy the the whole thing, take it with him and sell it, or use it to sign anything.
Of course anyone with access to the buildserver could use it to sign anything on there, but I guess there isnt really a way to fix that. (And going to the office to signing malware (or whatever) seems much more unlikely than just selling the certificate or something like that, so it is assumed to be way more unlikely)
So my questions are:
- How safe is that "unexportable" thing really?
- Should it be put on a hardware machine to make it harder to steal/copy the whole thing?
- Is there a better/more secure way to handle this?