We secure all telemetry on-device and in transit to our servers. Communication between our SDKs and servers is via SSL, where we publish the SSL certificates in our source code:
- iOS (Digicert, GeoTrust )
- Android (forthcoming)
This publication of our SSL certificate is called SSL pinning and is best-practice in the industry. SSL pinning is used to ensure only Mapbox receives the data produced by Mapbox clients, and prevents Mapbox clients from reporting to a hostile network operator or other third party that is attempting to intercept network traffic.
Our SDKs also check for certificate revocation. We pin to multiple Extended Validation certificates issued by authorities that support the Online Certificate Status Protocol (OCSP). OCSP makes some attempts to intercept traffic impossible and others more difficult. (iOS natively supports certificate revocation checking.) SSL pinning and OCSP go a long way toward securing communications, but security best practices and technology are evolving quickly. We continue to iterate on our approach and are considering additional technologies such as Domain Name System Security Extensions.
Data is encrypted on our servers using Amazon's Key Management Service, which uses hardware security modules designed to be tamper-proof. We have designed this so that no one has access to the master keys – they remain within the security module and cannot be used or moved outside of it. Secondary private keys are created using our master key and are then used to encrypt the data. These keys are rotated twice daily and never stored in unencrypted form.
Access to mobile data within our infrastructure is restricted. Any change in access triggers alarms to ensure that no one gains access accidentally. Access to all of the involved infrastructure is constantly and automatically audited and reviewed by multiple members of our security team.