Relevant Links




Your Ad Here

Did Stephane Dion hand over the secret keys to ClimateForChange.ca?

In trying to understand the strange set of connections between ClimateForChange.ca, the non-profit non-partisan environmental group threatening to sue the Conservative government of Stephen Harper for not making Kyoto work, and the federal Liberal Party, I keep coming back to the SSL certificate:

IP Information for 64.26.141.35
IP Location: Canada Canada Ottawa Peter Pundy Consulting Inc
Resolve Host: lp1.campaigngear.net
IP Address: 64.26.141.35 [Whois] [Reverse-Ip] [Ping] [DNS Lookup] [Traceroute]
SSL Cert: stephanedion.ca SSL Certificate has expired.

The domain name ClimateForChange.ca resolves to the IP addres 64.26.141.35. And there is the SSL certificate: stephanedion.ca. That site, the online home of Stephane Dion's leadership campaign, no longer exists, but is 301 redirected to the official website of the Liberal Party of Canada.

Another blogger points out that this shared key is seriously strange. So I decided to review the principle behind SSL certificates, as I was only vaguely aware of how they worked. I knew it depended on a pair of keys:

The encryption using a private key/public key pair ensures that the data can be encrypted by one key but can only be decrypted by the other key pair. This is sometime hard to understand, but believe me it works. The keys are similar in nature and can be used alternatively: what one key emcrypts, the other key pair can decrypt. The key pair is based on prime numbers and their length in terms of bits ensures the difficulty of being able to decrypt the message without the key pairs. The trick in a key pair is to keep one key secret (the private key) and to distribute the other key (the public key) to everybody. Anybody can send you an encrypted message, that only you will be able to decrypt. You are the only one to have the other key pair, right? In the opposite , you can certify that a message is only coming from you, because you have encrypted it with you private key, and only the associated public key will decrypt it correctly. Beware, in this case the message is not secured you have only signed it. Everybody has the public key, remember!

One of the problem left is to know the public key of your correspondent. Usually you will ask him to send you a non confidential signed message that will contains his publick key as well as a certificate.

Let's say I send an encrypted message to ClimateForChange.ca. The obvious would be an online donation that includes my credit card number, my mailing address, and my phone number. That information is encrypted using the public key that ClimateForChange.ca sent to my browser via the SSL certificate, which is tied to a website and managed by a third party. My personal data is encrypted using the public key extracted from that certificate and transmitted back to ClimateForChange.ca.

ClimateForChange.ca can decrypt that message and process my credit card donation because it has the private key.

No one else should have that private key. As long as ClimateForChange.ca is the only place that private key exists, I can be assured that anyone else who collects that message will only see gibberish.

But we know that the key is known to the people who ran the stephanedion.ca website. That means the Liberal Party, in principle, can decrypt any SSL-encrypted message sent to ClimateForChange.ca. Likewise, ClimateForChange.ca could decrypt any message sent to the Liberal Party, assuming the Liberal Party is still using that key (it is not clear whether it is -- the party donation page seems to use a different key, but who knows what other encrypted communications channels exist).

But none of this makes sense. How would ClimateForChange.ca have ever gotten hold of the stephanedion.ca key in the first place? Either the people who made the ClimateForChange.ca website were given the key by Stephane Dion's people directly, or the same people created both sites and just used the same key.

But I don't know that it is even as simple as that. They certificate has to be connected to the website. You just can't use a certificate on a website other than the one for which it was issued unless some sort of proactive transfer happens with a third party involved:

How do you know that you are dealing with the right person or rather the right web site. Well, someone has taken great length (if they are serious) to ensure that the web site owners are who they claim to be. This someone, you have to implicitly trust: you have his/her certificate loaded in your browser (a root Certificate). A certificate, contains information about the owner of the certificate, like e-mail address, owner's name, certificate usage, duration of validity, resource location or Distinguished Name (DN) which includes the Common Name (CN) (web site address or e-mail address depending of the usage) and the certificate ID of the person who certifies (signs) this information. It contains also the public key and finally a hash to ensure that the certificate has not been tampered with.

I think that means if the stephanedion.ca certificate was being used by ClimateForChange.ca, someone had to tell the third party that manages the certificates to ensure the integrity of the SSL system that ClimateForChange.ca was an authorized user. Presumably only the owner of the stephanedion.ca certificate can do that, and only by establishing that ClimateForChange.ca is just another site in a family of sites owned by the same organization and one of several sites that share information.

Maybe that last bit is a stretch, but it makes sense to me.

If I'm all wrong on this, can some expert on online security explain how this is supposed to work?

Your Ad Here
Relevant Links




Your Ad Here

Create Commons License 2.5
Angry in the Great White North by Steve Janke is licensed under a Creative Commons Attribution-Share Alike 2.5 Canada License. Based on a work at stevejanke.com.
Valid XHTML 1.0 Strict
[Valid Atom 1.0]
Valid CSS!