Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

On the client side, my application accepts the server's certificate in case of the client certificate being signed by this server cert. Is this correct or may it be dangerous? Is it better to ask a user to confirm security exception every time (e.g. like browsers)?

To clarify the question:
What I have: [server-cert][CA cert] (server chain); [client-cert][server-cert'] (client chain).
What the application does: if server-cert == server-cert', then the client trusts the server. I'm asking if this is correct behavior or it can cause flaws.

share|improve this question
1  
There isn't an issue as long as the initial exchange during generation is secure. –  ewanm89 Apr 23 '12 at 11:21
    
How exactly are you performing authentication there? Are you talking about client certificate authentication during the SSL/TLS handshake, or are you just sending the certs somehow? –  Bruno Apr 23 '12 at 12:04
    
I use TLS. But actually I didn't ask about technical details, because I hadn't got any questions there. –  Andrey Atapin Apr 24 '12 at 4:36

2 Answers 2

up vote 2 down vote accepted

If the check you outline above is the only check made for authentication, then there are some major problems.

  1. The check only tests the server's cert given to the client. The server never checks the client's cert. So no mutual authentication.
  2. The client never has to prove knowledge of their private key
  3. The server never has to prove knowledge of their private key

Furthermore, as pointed out by ewanm89, there are issues if the initial cert signing is not done over a secure channel.

share|improve this answer
    
I can be sure that initial signing is secure. For sure the things you pointed are implemented and mutual authentication works there. –  Andrey Atapin Apr 23 '12 at 12:01

I don't understand the question. Can you provide more details? What are you trying to achieve?

In my experience with SSL, it would be extremely unusual to have a client cert that is signed by the server. Usually certs are signed by a CA. A CA should be a separate party from the server or the client; the CA is expected to sign certs for servers and for clients.

I'm not sure what security exception you are referring to.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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