After reading your posts in this forum and others, it's wonderful how you became an expert on this subject in so little time. It seems like just yesterday (maybe because it was?) you were a n00b asking basic questions about various networking and Linux subjects, and here you are today citing wikipedia references to me (as if wikipedia was the end-all-be-all about everything.)
(And just to remind you, your original question was pertaining to authentication to a different application (OpenVPN), using certificates, not a web server. If you're such an expert on this, why are you asking this same question in various forums? I'm just curious...)
OK, let's go with it..
[QUOTE=shwick;768194]Gmail doesn't send you unencrypted data when the https connection has been established. They encrypt data with your public key.[QUOTE]
The data is encrypted over a Secure Socket Layer (SSL) connection. There *is* no "public key", since we're dealing with certificates here. If you were using GnuPG or PGP, then you have a public key, as well as a private key (which, by the way, is used for encrypting data in a different fashion, but I won't confuse you with that stuff right now.) Not so with certificates - you have the server certificate (held on the server, in your example by Google) and the client certificate installed within the browser, and BOTH of them are signed by the root Certificate Authority (aka "root CA".) A "user" is never asked about the transaction (provided the certificates are issued and signed by the same authority and still valid, and provided the certificate on the server hasn't expired or is being used at a different address.) The only "key" file that exists is used when creating a .csr with OpenSSL (in this example), and that stays on the SERVER - no clients ever come in contact with it.
Why do they encrypt data with your public key? Because they feel like it? No, because the certificate has been has been verified.
Yes, verified, but not with your "public key" - by the client certificate installed within the browser.
Gmail has received the user's certificate and used the public key contained within to decrypt the signature to obtain the hash of the "Data" part of the certificate. Gmail then hashes the "Data" part, compares the two and if they are equal the certificate has been verified.
There is no "user certificate" in this process.
Gmail does do this- if they don't care who you are, they at least make sure the public key is used to decrypt messages encrypted with the private key.
The assumption I was making was, the user gives Gmail a self signed certificate. Then Gmail verifies that certificate using the public key contained within. I don't care if you don't understand what I'm saying, I understand what I'm saying.
1. A self-signed certificate wouldn't be signed by the same root CA, so there would be no trust established.
2. The client CERTIFICATE is already installed in your browser, which is signed by the same root CA and issued by the same authority as the server certificate (held on Google's server.)
No thanks, I'll stick with authentic, accurate sources.