The main goal of this section is to briefly
overview the context of the virtualization platforms
and EAP-TLS smartcard model.
2.1 Extensible Authentication Protocol
(EAP) and TLS
The EAP (RFC 3748, 2004) is a flexible framework
targeting access control in various network
infrastructures such as classical LAN, wireless LAN,
or VPNs. Furthermore the EAP-TLS (RFC 5216,
2008) standard enables a transparent transport of
TLS in EAP messages; it offers a convenient way to
use TLS without TCP flavours, and provides
mechanisms for TLS packets segmentation and
reassembly. The SecFuNet TLS platform is based on
EAP-TLS smartcards, equipped with additional
facilities. These devices include a full TLS stack, an
entity managing X509 certificates, and provide a
secure environment for keys storage and
cryptographic procedures execution. The TLS
master stack forwards packets, which are thereafter
encapsulated in EAP-TLS messages “Figure 1”.
When it detects the completion of this phase (trigged
by finished messages) it uses two ISO7816
commands (APDUs) in order to retrieve CipherSuite
and KeyBlock parameters.
Figure 1: The EAP-TLS Header.
2.2 EAP-TLS Smartcard Concept
In this section we focus on EAP-TLS smartcard and
TLS Identity (TLS-Id) deployed in SecFuNet. A
smartcard (Jurgensen, 2002) is a tamper resistant
device, including CPU, RAM and non volatile
memory.
Most of the electronic chips (i.e. smartcard)
support a JVM and execute software written in this
programming language (Chen, 2002).
The use of smartcards in TLS authentication has
now a rather long history and has been largely
developed according to different models.
These devices run the JAVA open stack,
introduced in (Menon, 2006) and which comprises
four logical components. The software architecture
of the EAP-TLS smartcard (Pujolle, 2008)(Urien,
2013) is the following:
An EAP engine, which implements four
fundamental services (EAP messages
treatment, identity management, security
functions, and personalization) and ensures
EAP routing towards authentication methods
supported by the card.
EAP-TLS method, which manages
fragmentation and reassembly mechanisms.
TLS stack. The Handshake protocol takes
responsibility of authentication mechanisms,
whereas the record protocol realizes the
encryption and the integrity of data securely
transported by the TLS tunnel.
A certificates store.
The TLS-Identity (TLS-Id) is a set of five
parameters, which comprises:
X509 certificate and its associated private key;
Certification Authority certificate;
EAP identity parameter (EAP-ID);
Friendly name, used to identify and to activate
a given TLS-Id.
These parameters are embedded in the secure
microcontroller hold by SecFuNet users, during the
personalization process.
2.3 TLS Choreography with EAP-TLS
Smartcard
The TLS-Tandem card is plugged to a SecFuNet
host, such as personal computer or mobile handset.
Before opening a session with a TLS server, its
electronic identity is activated via the Set-Identity
command. The host intends to download a file,
typically through an HTTP request, which is
securely stored in a remote WEB server “Figure 2”.
The docking host manages TCP/IP operations
and opens a connection with a remote TLS server,
and then calls the connection procedure.
This latter resets the TLS-Tandem card, and
sends an EAP-TLS-Start packet concatenated to
Unix-Time; the smartcard produces a response
including the first TLS message. A software
component acts as a bridge between EAP-TLS and
TLS.
It removes EAP-TLS header (typically 10 bytes),
and sends TLS messages to remote server. It reads
incoming data, detects TLS error, and determines the
end of TLS messages such as:
ServerHelloDone that indicates a four ways
handshake associated to a full session.
Finished that indicates a three ways handshake
associated to a resume session.
Thereafter it packs this set of TLS messages in a
single EAP-TLS packet, appends a 6 bytes prefix,
and forwards this request to the card.
SECRYPT2014-InternationalConferenceonSecurityandCryptography
286