Overview of CodeSafe 5

Applications as container images

In CodeSafe 5, the application is a container image, meaning a complete filesystem image that can contain multiple executables, libraries, scripts, and data files.

This has the following benefits:

  • Data files can be written to the local filesystem and persisted over container shutdown and restart.

  • The application can comprise multiple co-operating processes. This can enhance security by separating memory spaces and reliability by allowing individual processes to be restarted if they crash or leak memory.

  • Third-party or pre-existing Linux source code can be built and run without modification.

  • Standalone tools can be executed as subprocesses.

  • Dynamically-loaded libraries work in a regular way. Code architectures that make use of plug-in modules make code development easier and reduce the attack surface by excluding unwanted code.

Easy and fast network connectivity

nShield 5 HSMs and CodeSafe 5 containers are logically connected via TCP/IP networking. The container running the SEE Machine can receive incoming connections from the host side app, establishing two-way communication between host side app and SEE machine. Existing software that makes use of incoming or outgoing network connections can run with little or no modifications.

Kernel-implemented networking provides good performance both for throughput and for latency.

'Secure by default' client communication

The CodeSafe 5 execution environment includes both a configurable firewall and an SSH server. The firewall is set according to configuration in the signed CodeSafe 5 application package so that only the network ports required by the application are allowed. The SSH server allows a secure tunnel to be established to the CodeSafe 5 application. The client credentials required to access this tunnel can be configured using the support tools.

This means that applications, including applications ported from older CodeSafe SEE machines, can benefit from strong authentication of their clients and protection from unauthorized network traffic without additional code.

Better language support

The CodeSafe 5 SDK supports:

  • C and C++

  • Python 3.8

    The nfpython module provides easy access to nCore API commands.

    The container environment has a regular Linux filesystem and supports system calls for network and file I/O, so a wide range of standard and third-party Python modules can be used without modification.

CodeSafe applications can be written using mixed languages with the usual range of IPC and calling mechanisms available to the developer.

Developer authentication

CodeSafe 5 uses Entrust X.509 certificates to link the CodeSafe application to a real-world developer identity through code signing.

This allows the administrator of an HSM to, for example, restrict the HSM to authorized in-house applications or to those provided by trusted development partners.