Creo que ya sé la respuesta a esto, pero quería ver si alguien tenía más información sobre este problema. He realizado la fijación de certificados en aplicaciones de Android e iOS para hacerlas más seguras contra los ataques de intermediarios. Tengo curiosidad, ¿se puede hacer lo mismo en un sitio web que ejecuta llamadas Ajax? Estoy pensando que no, ya que el código Javascript podría modificarse durante el transporte, ¿alguien ha tenido alguna experiencia con esto?
Puede que te interese esto: http://caniuse.com/#search=HPKP . Los navegadores modernos ya tienen soporte para la fijación de claves públicas.
También un gran artículo sobre la prevención de ataques de intermediarios (o que los haga más difíciles de lograr, ya que parece que "prevenir" en un contexto de seguridad tiene un significado relativo): http://blog.scottlogic.com/2016/02/01 /hombre-en-el-medio.html
Y si te sientes aventurero, puedes ir a un nivel realmente bajo con una implementación nativa de TLS en JavaScript: https://github.com/digitalbazaar/forge/blob/master/README.md