Thank you very much David for your response. > > I doubt if self signed certificate will be a good idea, as > > against a signed > > certificate. > > With the approach I am proposing, the server installer itself works like a > > CA. > > Only an authorized person will have access to this installer (say > > admin) and > > can generate a signed certificate. > > I don't know if you're familiar with how real CAs operate, but trust me, > restricting access to your installer won't provide anywhere near the > security that real CAs do. >
Here is my understanding about a real CA. A real CA would be an agency or like, which would have the infrastructure required to sign certificate requests (say openssl toolkit, its own key pair, its own root certificate etc). In addition to this, it would have capabilities / mechanism to verify the information provided by the requester (subject) in the certificate request. Once the CA verifies that the information provided in the certificate request is correct, it would sign the request, and provide the signed certificate to the requester (subject). If I am missing anything that is important to know, I will be really happy to learn about it. > > Now what happens if someone changes the key and the certificate in the > > server? > > If I am using a self signed certificate, this change will not be detected. > > Perhaps you misunderstand what I'm proposing. If you use a self-signed > certificate, the change will be detected because the certificate will now be > different. I'm suggesting the client use the public key itself as the > server's identity. > Hmm ... So are you suggesting that my clients would store the certificate produced by the server, the first time they connect to the server, and thereafter each time they connect to the server, they check if the certificate has changed? As I understand, a self signed certificate can be verified using the public key present in the certificate iteself. So how can my client detect the change in the certificate unless they store the public key (or the certificate itself) the first time they connect to the server, and then for every successive connection attempt, check the certificate presented with this stored public key / certificate ? Am I still missing something? > > If I am using a CA signed certificate (which only the admin can do through > > the installer), any such change / modification to the server certificate > > will be detected > > as the modified certificate will not be validated at the client > > side (as it > > will not be signed). > > The problem is that anyone who has access to your installer can impersonate > any server. Absolutely true. > Whether or not this is acceptable depends upon a few factors. I > would submit that if your client is a traditional program like IE or Firefox > and your target network is the Internet, this is absolutely unacceptable. If > your client is custom software and/or your target network is private, this > might be reasonable. > Right. Now, my clients are custom software and the target (as of now) is a private network. > > This is the reason, why I plan to use a CA signed cert instead of self > > signed cert at the > > server. > > What's your client software? Is it a browser or custom software? Nops. It is a custome software. > If a browser, and you're expecting the client to add your CA as a trusted root, > you are compelling your users to trust an awful lot to anyone who might get > access to your installer, accidentally or intentionally. A leak of your > installer would mean a serious security compromise to all your users. That is right. So, my server / client are custom s/w and the target network is a private network. Please bear with me as I put down the purpose behind this whole thinking, once again. 1. I will be giving my server + clients to my customers. 2. These servers will need to have their own distinct certificates. 3. As part of shipping my s/w (server + client) to the customers, I burn them on a CD and ship them. 4. If I have to generate a unique certificate for every server, myself, I would have to burn so many different CDs. In addition to that, I will have to maintain almost a complete CA system. 5. This is doable, when the number of customers is small, say 5 - 10. But I doubt how well this would scale with the increasing number of customers. So, I was thinking that embedding certificate generation capability in my installer will be good, as it can scale well. An admin at customer C1 would have complete access to the server (h/w + s/w). As it is , it would be this admin who would have prepared the cert request, if I would be issuing signed certificate. So why not allow him to create a certificate for himself ? Now the question was, how can I embed the root CA cert + associated private key in the installer, such that it can not be retrieved easily? Has anyone ever done anything like this before? Does anyone have any better approach to suggest? Thank you very much for your help. ~ Urjit DISCLAIMER ========== This e-mail may contain privileged and confidential information which is the property of Persistent Systems Pvt. Ltd. It is intended only for the use of the individual or entity to which it is addressed. If you are not the intended recipient, you are not authorized to read, retain, copy, print, distribute or use this message. If you have received this communication in error, please notify the sender and delete all copies of this message. Persistent Systems Pvt. Ltd. does not accept any liability for virus infected mails. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]