Tapkey is a smartphone-based access control solution. It allows users to use their smartphones to open doors, cars or get other kind of access and to issue key fobs. Permissions are managed via the Tapkey smartphone app or online via the easy to use Tapkey web portal. Users are authenticated using Tapkey user name/password or using their Google Accounts which allows seamless integration on platforms like Android.
Tapkey locks have following key characteristics:
- Designed for ease of use: Tapkey was designed to make digital access and access control as simple as possible, including
- Ease of installation
- Managing access
- Getting access
- Tapkey-enabled locks can be accessed using mobile devices like Apple iPhones, Android smartphones or Mifare DESFire-based NFC transponders.
- Tapkey locks currently use NFC and/or Bluetooth Low Energy (BLE) technology to communicate with mobile devices and NFC to communicate with access cards. Many devices smartphones support both, NFC and BLE others, like the iPhone, only support either of them (iPhones don't support NFC). Tapkey locks can also support one or multiple of these technologies.
- Offline Locks: Tapkey-enabled locks do not require any other connectivity than local connectivity to the accessing smartphone or key fob. To communicate with the cloud-based Tapkey Trust Service, the mobile device's internet connectivity is leveraged.
- To ensure a maximum of compatibility with current and future NFC-enabled devices, Tapkey strictly sticks to NFC forum-compliant standard NFC protocols wherever possible. I.e. it's designed based on the following standards:
- NFC Data Exchange Format (NDEF)
- NFC Forum Type 4 Tag Operation Specification
- ISO 7816-4
- ISO 14443-4 Type A
- Depending on the type of access device, Tapkey uses different NFC technologies. I.e. it implements dual behaviour:
- NFC Target (Card Emulation): Locks behave as NFC-Forum Type 4 compatible tag for most compatible way of communication with mobile devices.
- NFC Initiator: Locks behave as ISO14443-4 Type A reader for communication with access cards and some mobile devices.
Support for card emulation may be removed in future versions.
- Low performance requirements: Tapkey is designed to work with battery-powered locking devices with strict resource constraints regarding available program memory, persistent data memory, RAM and computing performance.
- Cryptography: The TLCP protocol was designed to work with a variety of cryptographic algorithms, including symmetric and asymmetric algorithms. To allow use on performance-constrained devices, this SDK implements cryptography solely based on AES-128.
Fast and Simple Integration¶
To allow fast and simple integration into any type of locking hardware, this Tapkey Firmware SDK is provided to lock manufacturers. The SDK consists of following components:
- TLCP library: Library implementing the application layer protocols (TLCP, ISO 7816). This component was developed by the Tapkey team and MUST be used by any Tapkey-enabled lock. The TLCP library is provided as static library.
- NFC library: This is an adopted version of NXP's reader library. It's used for implementation of card emulation and ISO 14443 functionality. Adaptations and bug fixes have been implemented by the Tapkey team to integrate with the TLCP library, to allow running the code on performance-constrained devices and to improve compatibility with a large number of smartphones. This component is subject to both, Tapkey and NXP licensing terms. It MAY be used by implementing firmware but MAY also be replaced by individual implementations. If implemented individually, the implementer must take care of maximum compatibility with any type of NFC-enabled mobile device. The NFC Reader Library is provided as static library. As the implementation of these components, especially the adaptations made by the Tapkey team are critical regarding user experience, it is highly recommended to reuse this component when integrating Tapkey in any devices.
- Example porting Tapkey reference hardware: Examples are provided on how to integrate the provided libraries into a Tapkey-enabled locking firmware. The example porting is provided in source code.