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.

The authentication was triggered by certain event (like approving button) on the form. In the process of client certificate authentication (in IIS), user was asked to use their PIN (private key) and after authentication, a certificate information is accessible (through x509). If I place an image of the user signature on the form after authentication, can that be served as a digital signature?

so can the authentication process be treated as signing (on empty content) and verified by the server?

share|improve this question
add comment

2 Answers

up vote 6 down vote accepted

The client authentication in SSL is just that: authentication. It convinces the server that the expected client is indeed on the other end of the line. However, the server obtains no proof that way: there is no data which the server can gather and show to a third party (a judge), which would "obviously" convince the judge that the client was indeed involved in the process and sent the request that the server claims that it received.

The relevant concept is non-repudiation. Ultimately, this is a legal concept. However, that concept, depending on the jurisdiction, will try to use the technical properties of the involved communication protocols as a sturdy (or not) foundation. The client authentication in SSL internally uses a digital signature (as part of the CertificateVerify handshake message) but that signature is computed over random challenge data, but not the application data (HTTP requests and responses) that is sent in the SSL tunnel. Indeed, this signature happens before application data is sent in either direction. Thus, technically, that signature does not provide non-repudiation, since it does not cover the actual data.

In other words, what the server may show to a judge can be a convincing proof that the client did send the alleged request only if the judge assumes that the server applied all needed verifications and is fully honest. However, such a case will be brought to the attention of a judge only in the event of some litigation between the client and the server's owner; as such, it would make little sense to arbitrarily assume that the server is honest (it would make the trial outcome quite biased).

Summary: if you consider the SSL certificate-based client authentication as a "signature", then chances are that the resulting legal value will not hold in court, at least not when the server itself (or its owner) is one of the litigating parties. It may work if you are in a context where it can be somehow proven that the server is completely honest and does not try to frame the user; that's not the usual context when considering digital signatures (usually, digital signatures are requested by the server in order to allow the server to sue the client afterwards).

share|improve this answer
add comment

Client-certificate authentication is useful for authentication (obviously) and subsequent authorisation when accessing a service, but it's not very useful for the auditing. Digital signature of messages tends to be useful for auditing, i.e. later, when the user is no longer connected.

The TLS client-certificate is used to authenticate the client for the TLS connection, not necessarily the content of the messages, especially since most stacks will deliver the application message that are on top of TLS to the server application in deciphered and non-authenticated form. The handshake itself (which is where the signature based on the client-certificate happens) is abstracted away from this, so you would lose this information when moving to the application layer.

To prove that the messages exchanged on top of a TLS connection were equivalent to them being digitally signed, you would certainly need to keep track of the entire handshake and the session keys. This can be quite convoluted, both in terms of implementation and explanation to whoever needs to perform the audit later.

TLS is about transport-level security, not message-level security.

As for placing an image of the user signature on the form after authentication (by which I presume you mean "handwritten" signature), you could indeed do that, but those signatures never really prove anything anyway. These are not even digital signatures. They can easily be replicated by any party that has ever had a copy of them. (Just like sending a photocopy of someone's passport: it doesn't prove that whoever sent it was the holder of that passport, just that they were able to get hold of a copy of its content.)

share|improve this answer
add comment

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.