SSL Pinning: Managing changes in the pinned certification on client side

  • Let’s assume that we have a client application talking to a server via SSL.
  • Let’s also assume that the client is using SSL certificate pinning, i.e. the client will refuse the server certificate unless it conforms to a specific hard coded one the client was released with.

As certificates have expiration dates, the pinned certificate of the server will eventually have to be replaced. This process generally calls for some application/client side update to make the client aware of the new certificate ‘to pin’.

Are there best-practices on how this transition/change can be managed?

I’m thinking of something more sophisticated than two people pressing a button at the same time (i.e. the server cert being updated and the application forcing the user to update)… The organisational processes involved here can be non-trivial, especially since the release and maintenance cycles of client/server/operations might be running according to different schedules and priorities.

Maybe something like (I’m just writing down a rather naive approach here):

  • Client has multiple certificates stored for the server, with different but overlapping validity periods.
  • If one pinned certificate is expired the client checks if he has a different still valid one…

–> This would allow new ‘pinned’ certificates for a server to be delivered well in advance of actually switching certificates on the server.

Continue reading SSL Pinning: Managing changes in the pinned certification on client side

How to simulate environment for testing whether SSL pinning is working fine in an Android application?

I am using this Cordova plugin to implement SSL pinning in an Android application.

I don’t know how to simulate the environment for testing if it’s working fine.

The infosec team in my firm is telling me that if the connect… Continue reading How to simulate environment for testing whether SSL pinning is working fine in an Android application?

Mozilla Patches Certificate Pinning Vulnerability in Firefox

A remote code execution in Firefox caused by the expiration of certificate pins was patched by Mozilla in Firefox 49 and Firefox ESR 45.4. Continue reading Mozilla Patches Certificate Pinning Vulnerability in Firefox

Google Updates CA Trust Mechanisms in Android Nougat

Google last week announced changes in the way it will handle trusted Certificate Authorities in Nougat, the latest version of the Android operating system. Continue reading Google Updates CA Trust Mechanisms in Android Nougat

Is there any way or tool to check whether a particular iOS app is implementing SSL Pinning functionality?

I’m just learning the iOS security. This is completely a beginner question.

I’m trying to figure out whether there is any particular way to check if an iOS app is implementing SSL Pinning functionality.

I’ve currently checked the SSL tra… Continue reading Is there any way or tool to check whether a particular iOS app is implementing SSL Pinning functionality?

What is the purpose of frequently rotating TLS certificates without changing underlying keys?

I read in the OWASP cheat sheet regarding certificate / public-key pinning that “Google rotates its certificates … about once a month … [but] the underlying public keys … remain static”.

Increasing the fre… Continue reading What is the purpose of frequently rotating TLS certificates without changing underlying keys?