Background
Recently I have read the problem of Mozilla and CNNIC. Many years ago,
I was a cryptography researcher, I worked on this problem when my
country – Vietnam – started working on a central PKI. Vietnam is
similar to China, the possibility of being cheated by rogue
certificates created under government's pressure is the risk people
must anticipate. I designed a mechanism to add another protection
layer to the current trust model, which may solve this problem quite
elegantly.

The mechanism
* When the user agent software (usually a web browser) obtains a
certificate which the agent has never seen, it uses encrypted
communication to report the fingerprint of that certificate to a
central intrusion detection server. If the server determines that the
certificate is suspicious, it will request the user agent software to
send the certificate and additional information to the server as the
evidence of violation. If this communication fails, the failure can be
treated the same way as failure of CRL or OCSP.
* The user agent software caches the fingerprint of the certificate
similar to openssh's known_hosts file to bypass this process on futher
visits, saving bandwidth. The encrypted communication may be https to
maximize the reuse of existing code base, or a more lightweight
protocol to save bandwidth.
* The intrusion detection server should determine that the certificate
is suspicious on the first time the certificate has been seen by the
server. If the server doesn't want to store too many certificates, it
may choose to only be suspicious about sensitive domains, which is
more likely to be choosen by eavesdroppers. The server may have a
mechanism to inform the owner a certificate if there are other
certificates issued with similar information such as host name,
company name, etc.
* If a CA creates a rogue certificate, the evidence will be clear,
allowing for adequate punishment of violators, justice will be redeem
later by relevant parties, users should not have to care about this
issue. But there may be an optional "paranoid mode", informing user
each time the intrusion detection server determines that a certificate
is suspicious.

Analysis of the mechanism:
* By default, there is no new user interface feature, for the users,
it just works. Relevant parties will watch over the problem.
* It strengthens the existing trust model. Even a prestigious CA with
a perfect process comes with risks: usually the weakest link in a
cryptography system is the people using it, the people managing the CA
may be corrupted or under pressure of the authority, or has some
personal desire to abuse the power.
* The fingerprint is very short so the overhead is very low, should be
lower than OCSP. Probably the different between using and not using
this mechanism won't be noticeable to users.

Conclusion
I believe this mechanism will add a missing link to improve our trust
model. "The love of money is the root of all evil", people has not
forgoten the case Verisign corrupts DNS, abuse it's trusted status, we
are putting too much trust on the list of CA, it's time to add a
protection layer allow us to punish potential violator of justice.

Please comment
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to