UNPKG

ssl.publickey.checker

Version:

This plugin can be used to add an extra layer of security by preventing 'Man in the Middle' attacks.

51 lines (43 loc) 2.05 kB
# SSL PublicKey Checker This plugin can be used to add an extra layer of security by preventing 'Man in the Middle' attacks # Installation Latest stable version from npm: ``` $ cordova plugin add ssl.publickey.checker ``` # Usage First obtain the fingerprint of the SSL certificate of your server(s). You can find it f.i. by opening the server URL in Chrome. Then click the green certificate in front of the URL, click 'Connection', 'Certificate details', expand the details and scroll down to the SHA256 fingerprint. ``` var server = "yourdomainnamehere"; ex: npmjs.com var fingerprint = "C1 3D 53 79 Z2 YF 82 8E 1E BE FD DC 2D 7B 7D 24 31 1A 59 E1 0B 4B C8 04 6E 21 F6 FA A2 37 11 45"; window.plugins.SSLPublicKeyChecker.check( successCallback, errorCallback, server, fingerprint); function successCallback(message) { alert(message); // Message is always: CONNECTION_SECURE. // Now do something with the trusted server. } function errorCallback(message) { alert(message); if (message === "CONNECTION_NOT_SECURE") { // There is likely a man in the middle attack going on, be careful! } else if (message.indexOf("CONNECTION_FAILED") >- 1) { // There was no connection (yet). Internet may be down. Try again (a few times) after a little timeout. } } ``` Need more than one fingerprint? In case your certificate is about to expire, you can add it already to your app, while still supporting the old certificate. Note you may want to force clients to update the app when the new certificate is activated. ``` // an array of any number of fingerprints var fingerprints = ["C1 3D 53 79 Z2 YF 82 8E 1E BE FD DC 2D 7B 7D 24 31 1A 59 E1 0B 4B C8 04 6E 21 F6 FA A2 37 11 45", "ZE ZO ZD", ..]; window.plugins.SSLPublicKeyChecker.check( successCallback, errorCallback, server, fingerprints); ``` # Note: If you have any questions/feedback, please reach out: venkatschinthakindi11@gmail.com