Subject: [Emu] EAP-CREDS - Questions for the WG

From: "Dr. Pala" <[email-masked]>
Date: Mon, 10 Jun 2019 07:52:49 -0600

Hi all,

we are working on the definition of an EAP mechanism that should help 
managing device credentials for access networks. We are finalizing some 
parts of the document and I would like to get the input from the WG (I 
know it is not a WG document, yet, but I hope it will get adopted). [*]

In particular, I have the following issues that I can solve in different 
ways and the reasons to adopt one or the other might depend on some 
practical aspects when implementing EAP methods. Here's the questions:

  * *EAP-CREDS Headers Format. *Usually EAP methods use the standard EAP
    header format (Code, Identifier, Length, and Type fields), however
    (thanks for the suggestions) EAP-CREDS now is required to be used as
    a tunneled method where the requirement is that the outer method
    provides the server/client auth and confidentiality. This means that
    messages are encoded as payloads of (for example) EAP-TLS and,
    technically, they do not need all those fields anymore. Moreover, we
    can have the EAP-CREDS to use 32-bits sizes of the messages,
    therefore we would not need the Length. My question for the group
    is: shall we keep the same header to provide ease of development
    (since libraries already know how to handle those headers) even if
    this might result in wasting few bytes for each message ?

  * *Fixed-Size TLVs.* In EAP-CREDS we define several TLVs, some of
    them, it turns out, do not need to be variable length, but they are,
    de facto, Fixed in size (e.g., it might be just one-byte value).
    Initially, we thought about omitting the 'TLV Length' field and have
    developers to "derive" the size of these TLVs by the 'TLV Type'
    field. For example, if a TLV 'A' is just a 1 byte value, shall we
    still have the 'TLV Length' (set to '1') or we shall omit the 'TLV
    Length' for these structures ?

  * *TLVs Length Size.* In EAP-CREDS we expect the majority of the
    messages to be relatively small (since we provide the possibility to
    encapsulate other protocols, that might not be true in that case;
    For the integrated provisioning protocol, SPP, that is true).
    However, with the increasing size of keys and crypto-related data
    structures, the use of a 16-bit length field might not be enough
    very soon. In order to address that, we currently use an extra
    32-bit field for the message length that is used instead of the
    standard 'Length' field and a 24-bit field for the TLV Length. Does
    this make sense for everybody ? Shall we use a different approach
    (e.g., provide a 32-bit field for the TLV Length instead) ?

Thanks for the feedback :D

Cheers,
Max

[*] = The version that is currently available in the Datatracker is 
quite outdated, however, as soon as we finalize some of these aspects we 
will publish the new version. The GIT repository is available (more 
updated, but not at the latest version) is available at GitHub 
(https://github.com/openca/eap-creds)

P.S.: I added the EAP-CREDS implementation for the Hackaton, please let 
me know if you want to participate. I have not organized any hackaton 
events before, so there might be glitches/issues/etc. because of my 
inexperience... if anybody would like to help, that would be great!

-- 
Best Regards,
Massimiliano Pala, Ph.D.
OpenCA Labs Director
OpenCA Logo