The Toolkit

The purpose of OpenUAT is to provide methods for creating shared secrets between two (or multiple) devices. These secrets should be authenticated to prevent man-in-the-middle (MITM) attacks. Authentication between personal devices and the environment is difficult, because such devices are small, mobile, and typically have limited resources. The absence of large screens and efficient input devices makes authentication based on sensor information even more attractive.

Main design goals are for OpenUAT to be:

  • lightweight: Resources on mobile, battery-powered devices are generally sparse. This includes storage and run-time memory, CPU, communication bandwidth, but also battery lifetime, input/output devices, and user attention. OpenUAT tries to be as small as reasonably possible, use static memory buffers when possible, and minimise communication. These aims are conflicting, and when no generally acceptable compromise can be found in some case, the respective components should be parameterisable for application developers.
  • self-contained: Devices and platforms where the toolkit might be used are expected to be extremely diverse. Therefore, we can not depend on specific libraries to be available. Any dependencies that are not included in the default platforms should be included in OpenUAT.
  • simple to use: An authentication toolkit is most useful if it can be used without great care on the side of application developers. This has two reasons: if it is too complex to learn, developers will not use it for simple applications, and if it is complex to use, it is likely that it will be used erroneously and thus insecurely. Ideally, the various components of OpenUAT can be used as black boxes with simple interfaces, and can be combined with each other and with application-specific hooks to build secure context authentication protocols without knowing about the internals.
  • extensible: It is obvious that a toolkit should be easily extensible by additional components.
  • vertical: As context based authentication concerns all layers from sensing hardware, input/output devices, networking, application context, up to user interaction, OpenUAT should provide components that span the layers. High-level components that relate to complete use-cases can make use of primitives from various lower-level layers.
  • interoperable: Ubiquitous computing environments are inherently heterogeneous. Authentication protocols therefore need to be interoperable between different platforms. Thus, network communication should either be based on standardized protocols (e.g. IETF RFCs) or use simple ASCII line based protocols in the spirit of SMTP, HTTP, and others.

This list is an excerpt of the initial paper and as such subject to the same IEEE copyright statement.