Skip to content

Introduction

Tapkey is an electronic access control solution. It allows users to use mobile devices (most commonly their smartphones) to open doors, cars or get other kinds of access and to issue key fobs. Access permissions are managed via the Tapkey Access Management Web API, or apps like the Tapkey Smartphone app. Users are authenticated using a Tapkey user name/password combination or using any third-party identity provider, that supports OAuth. The Tapkey-App includes support for Google Identity and Apple ID, which allows seamless integration on platforms like Android or IOS, respectively.

Tapkey Architecture

Characteristics

Tapkey locks have the 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. This includes (but is not limited to) smartphones - like Apple iPhones or Android smartphones, smartwatches - like the Apple Watch, Mifare DESFire-based NFC transponders or a 3rd party embedded device.
  • 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.
  • Depending on the type of access device, Tapkey uses different NFC technologies. I.e. it implements dual behaviour: HCE modus

    • NFC Initiator: Locks behave as ISO14443-4 Type A reader for communication with access cards and some mobile devices.
  • 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 currently implements cryptography 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 the 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 a static library.
  • NFC library: This is an adapted version of NXP's reader library. It's used for the 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 a 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 port is provided in source code.
  • Documentation

Tapkey Stack