OASAM-CRYPT-004: Certificate Pinning

Descripción
Si la aplicación intercambia información mediante SSL y no hace uso de la confianza en autoridades de certificación reconocidas, no hay razón para que se utilicen estas relaciones de confianza, ya que no aportan seguridad a las comunicaciones de la aplicación. Además, en el caso de que una de estas CAs sea comprometida, los usuarios de la aplicación no serán vulnerables.


Riesgos
En el caso de que una CA sea comprometida, la emisión de certificados fraudulentos podría afectar a la confidencialidad de la información transmitida, ya que la aplicación confiaría en estos certificados por provenir de una CA reconocida.


Recomendaciones
Se recomienda, en el caso de utilizar únicamente SSL hacia servicios definidos, incluir técnicas de certifícate pinning. El navegador Google Chrome ya lo hace para los servicios de Google, y la aplicación oficial de Twitter también.


Referencias
1. Flaw 41 de “42+ Best parctices in secure mobile development for iOS and Android”
2. http://www.thoughtcrime.org/blog/authenticity-is-broken-in-ssl-but-your-app-ha/
3. An analysis of Android SSL (In)Security, Sascha Fahl, Marian Harbach, Thomas Muders, Matthew Smith of ributed Computing & Security GrLeibniz University of Hannover and Lars Baumgärtner, Bernd Freisleben of artment of Math. & Computer SciePhilipps University of Marburg