Hi,

Thank you for your insight. It will help me give direction to my work. I
need to do my homework better. Will look from public/private pair angle
instead of challenge/response.

Looking forward to similar guidance in future also,
Thanks and Regards,
Sankalp Bagaria.


On Mon 18 Feb, 2019, 10:44 AM Paul Lambert, <p...@nymbus.net> wrote:

> Sankalp,
>
> The schema below is the wrong way to use PUF technology for IoT device
> authentication.
>
> PUF is already being used in many fielded IoT systems. You simply use the
> device unique PUF secret to create a public/private key pair. The public
> key is then extracted and used to authentic the device. This enables
> tracking and identification of the device through its full life-cycle.
> Early observation of the device-unique public key mitigates a variety of
> supply chain attacks. The extracted public key may be certified by a X.509
> CA. The PUF derived identity may then be used directly in a TLS protocol
> exchange.
>
> Early assignment of public key certificate to a device enables strong
> protection of the device during manufacturing. The PUF device keys may be
> used as part of the boot process to enable per-device protection of
> sensitive firmware or other cryptographic secrets.
>
> PUF may be instantiated as HW or SW. Your scheme mentions " signal path
> can affect the delay in the propagation of a signal” … the seems to imply a
> HW based implementation (perhaps a Butterfly PUF). A simpler implementation
> would be to use SRAM PUF where the entropy in uninitialized SRAM is used to
> generate the device unique secrets. SRAM based PUF can be readily
> integrated into existing MCU devices.
>
> The simplest application of PUF in IoT uses a device unique symmetric
> secret key to serve as a key to encrypt sensitive data in unprotected NV
> memory.  This is basically a low-level key vault  that provides
> confidential and non-non-maleable secure device storage. This is a very
> attractive alternative to OTP memory that s more expensive and of limited
> size.
>
> PUF is just one way for a device to obtain unique secrets (symmetric or
> asymmetric). It has been standard practice to “inject’ secrets during
> manufacturing. Injection requires more trust in the key distribution and
> provisioning process than approaches that generate keys on device and never
> expose these secrets.
>
> Long-lived device unique public keys and certificates that provide
> protection through the full manufacturing life-cycle are an interesting
> topic area …  Challenge/response PUF protocols are not useful or
> interesting for standardization.
>
> Paul
>
>
>
>
>
> On Feb 15, 2019, at 9:06 PM, Sankalp Bagaria <sankalp.n...@gmail.com>
> wrote:
>
> *Hello,*
>
> *Please take a look at this and advise if it is a good idea and whether it
> should be pursued.*
>
> *Thanks,*
>
> *Sankalp Bagaria.*
>
>
> *ITDA - IoT Device Authentication*
>
> *Abstract: *We propose that the server is authenticated using X509
> certificate in a TLS 1.3 like protocol. The Server sends 32-byte Challenge.
> Client replies by sending 32-byte Response. Thus the client is
> authenticated. In the transfer of the application data, the client may send
> more challenge-response pairs as encrypted data for updating database of
> server. Client doesn’t store challenge/response or key or certificate. Both
> the server and the client can initiate the handshake.
>
> *Background*
>
> Traditionally, there are two ways to authenticate a device: a centralised
> CA issuing certificates and block-chain. Both require costly infrastructure
> and can’t be used to authenticate IoT devices, which are of low cost. While
> block-chain provides non-repudiation, transactions are distributed all over
> the net. X.509 certificates are costlier than many sensors.
>
> Another option is Physically Uncloneable Functions (PUF). Because of the
> random variations taking place during the manufacturing process of an IC,
> no two ICs are same. For instance, the impurities present in the IC can
> affect the doping level of an IC and thus cause signal paths to change.
> These slight variations in the signal path can affect the delay in the
> propagation of a signal which can be measured and used to identify the
> chip. This uniqueness of an IC can be used to authenticate the device in
> which the IC has been placed.
>
>
> *PUF: The Concept*
>
> *[image: P02.JPG]*
>
>  Figure 1: PUF – Multiplexer pair’s output delay compared by arbiter
> (latch)
>
> When the same input is fed to two adjacent multiplexers, depending on the
> impurities and other manufacturing variations, the delay observed in the
> propagation of the signal to one multiplexer output is different from that
> of the other. This delay can be compared using an arbiter (latch) and the
> final output generated. Several pairs of multiplexers can be operated in
> parallel or a series of inputs can be fed to the same pair of multiplexer..
> Thus, a set of output bits is generated that is specific to the chip.
>
> The set of input bits is called challenge and the set of output bits is
> called response. A challenge/ response pair is specific to the chip. The
> experimental results [4] show that two identical PUF circuits on two
> different chips have different outputs for the same input with a
> probability of 23% (inter-chip variation). On the other hand, multiple
> measurements on the same chip are different only with 0.7% probability. As
> both the multiplexers on the chip are in the same environment, the PUF
> output is mostly independent of the environmental variations.
>
> *Limitations of current PUF implementation*
>
> To prevent the replay attack, a challenge – response pair can be used only
> once. To enable this, a large set of challenge – response pairs have to be
> generated at the installation time and pre-stored in the server. A server
> can have many devices connected to it. So, it has to have a large database
> and computational power.
>
> Moreover, this setting is inflexible. There is the problem of distributing
> challenge/ response pairs from client to server. When the PUF is
> commissioned, challenge/ response pairs have to be generated at the chip
> and taken to server.  If the server exhausts its supply of
> challenge-response pairs, it cannot be easily renewed.
>
>
> *Our solution*
>
> Thus in our solution, we combine the best of X.509 certificate and PUF.
> Certificate is well-tested technology and provides flexible way to
> distribute keys. PUF is relatively new but allows a cheap solution to IoT
> authentication problem. Moreover, there is no need to store keys or
> certificates at the client-side.
>
> *The Protocol Combining TLS 1.3 and Challenge/ Response of PUF*
>
> *The Protocol with Client Starting the Connection*
>
> Client starts by generating its key_share and sends it to Server for
> normal TLS connection. It also sends acceptable ciphersuites. Server
> generates its own private key and joins with client's keyshare to get the
> shared secret. It takes this share-secret and combines with hash of the
> handshake till that point to generate handshake keys. The connection is
> encrypted from this point on.
>
>
> The server sends its X.509 certificate, CertificateVerify and
> PUF_Challenge. The client also generates the handshake key from its private
> key and server's public key. It then verifies the certificate, generates
> PUF_Response. It encrypts the PUF_Response and sends to the Server. Server
> verifies it, generates Application Key from Handshake_key and hash of the
> Handshake.
>
>
> The Client also generates the Application Keys similarly. The Application
> data flows in encrypted form. To start, Server requires only one pair of
> Challenge/ Response. When server's stock is depleting it may request more
> challenge/ response pairs in application data. Client may generate more
> pairs and send them as encrypted data to server which stores in its
> database for future use. Client should delete its copy permanently so that
> an adversary can't recover it by attacking hardware.
>
> Client
>                                                                               
>                    Server
>
> ClientHello
>
> + key_share          -------->
>
>
>                                                                               
>                ServerHello
>
>
>                                                         + key_share
>
>
>                                                                 {Encrypted
> Extensions}
>
>
>                                                                  {Certificate}
>
>     {CertificateVerify}
>
>                                            <---------
>                                {PUF_Challenge}
>
> PUF_Response              ---------->
>
>
>                                                                      
> {Finished}
>
>                                          <---------
>                                     [Application Data]
>
> {Finished}
>
> [Application Data}         <-------->
>                                [Application Data]
>
>
>
>
>
> *The Protocol with Server Starting the Connection*
>
> The Server may also initiate connection by sending Server Hello. Client
> replies by sending Client Hello with its key_share and list of acceptable
> ciphersuites. When server receives Client_Hello, it proceeds just like the
> above use-case.
>
>
> Client
>                                                                            
> Server
>
>                                                         <-----------
>                                      ServerHello
>
>
> ClientHello
>
> + key_share                              ---------->
>
>
>  key_share
>
>
>                                                 {Encrypted Extensions}
>
>
>                                                                  {Certificate}
>
>
>                                                     {CertificateVerify}
>
>
>                                           <-----------
>               {PUF_Challenge}
>
>
> {PUF_Response}                              ----------à
>
>
>                                                                      
> {Finished}
>
>
>                                              <---------
>           [Application Data]
>
>      {Finished}
>
>
> [Application Data}                              <-------->
>                 [Application Data]
>
>
> The Client doesn't store the Keys, Challenge/ Response or the Certificate..
> Each session is a unit in itself. Everything is calculated on the fly. This
> may create latency but this minimizes the resource requirement. It is
> required that when the IoT device is commissioned, atleast one Challenge/
> Response pair is generated and stored in Server Database. Whenever the
> challenge - response pairs are depleting, on Server's request, the Client
> can generate them and send to the Server as encrypted data. After sending,
> the Client deletes its copy of Challenge / Response.
>
> *Future Work:*
> 1)    Complete the development of protocol described above by including
> use cases like when does the Handshake fails and Challenge/ Response has to
> be re-negotiated; when Resumption happens etc.
> 2)    Adapt other IoT protocols like QUIC, DTLS to work with PUF.
>
> 3)    Validate the solution with PUF-enabled Evaluation kits.
>
> References –
>
> [1] RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and
> Certificate Revocation List (CRL) Profile.
> https://tools.ietf.org/html/rfc5280
>
> [2] 50 Billion IoT devices will be connected by 2020 – Post – The Things
> Network.
> https://www.thethingsnetwork.org/community/thessaloniki/post/50-billion-iot-devices-will-be-connected-by-2020
>
> [3] https://en.wikipedia.org/wiki/Physical_unclonable_function
>
> [4] G. E. Suh and S. Devadas, “Physical unclonable functions for device
> authentication and secret key generation,” in Proceedings of the 44th
> annual Design Automation Conference, San Diego, CA, Jun. 2007, pp.9–14
> https://people.csail.mit.edu/devadas/pubs/puf-dac07.pdf
>
> [5]
> http://people.csail.mit.edu/rudolph/Teaching/Lectures/Security/Lecture-Security-PUFs-2.pdf
>
> [5] Blaise Gassend, Dwaine Clarke, Marten van Dijk and Srinivas Devadas.
> Silicon Physical Random Functions. Proceedings of the Computer and
> Communications Security Conference, November 2002
> http://csg.csail..mit.edu/pubs/memos/Memo-456/memo-456.pdf
> <http://csg.csail.mit.edu/pubs/memos/Memo-456/memo-456.pdf>
>
> [6] C. Herder, L. Ren, M. van Dijk, M-D. Yu, and S. Devadas, "Trapdoor
> Computational Fuzzy Extractors and Cryptographically-Secure Physical
> Unclonable Functions", IEEE Transactions on Dependable and Secure
> Computing, January 2017
> https://people.csail.mit.edu/devadas/pubs/trapdoor.pdf
>
> [7] Helfmeier, Clemens; Nedospasov, Dmitry; Boit, Christian; Seifert,
> Jean-Pierre (2013). Cloning Physically Unclonable Functions
> <http://users.sec.t-labs.tu-berlin.de/~nedos/host2013.pdf> (PDF). IEEE
> Hardware Oriented Security and Trust (IEEE HOST 2013). June 2–3, 2013
> Austin, TX, USA
>
>  http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6581556
>
>  [8] Merchan Jorge Guajardo
> <https://www.google.com/search?tbo=p&tbm=pts&hl=en&q=ininventor:%22Merchan+Jorge+Guajardo%22>,
> Shankaran S. Kumar
> <https://www.google.com/search?tbo=p&tbm=pts&hl=en&q=ininventor:%22Shankaran+S.+Kumar%22>,
> Pim T. Tuyls
> <https://www.google.com/search?tbo=p&tbm=pts&hl=en&q=ininventor:%22Pim+T.+Tuyls%22>,
> Geert J. Schrijen
> <https://www.google.com/search?tbo=p&tbm=pts&hl=en&q=ininventor:%22Geert+J.+Schrijen%22>
> Identification of devices using physically unclonable functions
> WO 2009024913 A2
>
> [9] M. Fyrbiak, C. Kison, W. Adi. Construction of Software-Based Digital
> Physical Clone Resistant Functions. 2013 Fourth International Conference on
> Emerging Security Technologies
> http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6680199
>
>       [10]
> https://www.esat.kuleuven.be/cosic/thesis/2011/mai/CloningTheUnclonable_en.pdf
>
> [11] Srinivas Devadas, Edward Suh, Sid Paral, Richard Sowell, Tom Ziola,
> Vivek Khandelwal . Design and Implementation of PUF-Based “Unclonable” RFID
> ICs for Anti-Counterfeiting and Security Applications.
> http://verayo.com/pdf/2008_Verayo_IEEE_RFID_Paper.pdf
>
> [12] Rishab Nithyanand, John Solis. A Theoretical Analysis: Physical
> Unclonable Functions and The Software Protection Problem. SANDIA REPORT
> SAND2011-6673. Printed in 2011.
> http://prod.sandia.gov/techlib/access-control.cgi/2011/116673.pdf
> <http://prod.sandia..gov/techlib/access-control.cgi/2011/116673.pdf>
>
> [13] Shahriar B. Shokouhi. Cooperative Artificial Immune System And
> Recurrent Neural Network Error Correction Scheme For Generating Robust
> Hardware Key. International Journal Of Electrical, Electronics And Data
> Communication. ISSN: 2320-2084. Volume-4, Issue-5,May 2016
> http://www.iraj.in/journal/journal_file/journal_pdf/1-254-146502604154-59...pdf
> <http://www.iraj.in/journal/journal_file/journal_pdf/1-254-146502604154-59.pdf>
>
> [15] D. Lim. Extracting secret keys from integrated circuits. Master’s
> thesis, Massachusetts Institute of Technology, May 2004.
> http://csg.csail.mit.edu/pubs/memos/Memo-476/DaihyunLimThesis.pdf
>
> [16] Ulrich Ruhrmair. On the Formal Foundations of PUFs and Related
> Primitives. October 19, 2016.
> https://depositonce.tu-berlin.de/bitstream/11303/5994/4/ruehrmair_ulrich.pdf
>
> [17]
> https://patents.google.com/patent/US20090083833A1/en?q=PUF&q=physically+unclonable+function&oq=PUF+physically+unclonable+function
>
> [18]
> https://patents.google.com/patent/US8290150B2/en?q=authentication&q=PUF&q=physically+unclonable+function&oq=authentication+PUF+physically+unclonable+function
>
> [19]
> https://patents.google.com/patent/US20140279532A1/en?q=authentication&q=PUF&q=physically+unclonable+function&oq=authentication+PUF+physically+unclonable+function
>
> [20] RFC 8446 – The Transport Layer Security (TLS) Protocol Version 1.3
> https://datatracker.ietf.org/doc/rfc8446/
>
> [21] The New Illustrated TLS Connection https://tls13.ulfheim.net/
>       [22] Internet-draft: State-of-the-Art and Challenges for the
> Internet of      Things Security draft-irtf-t2trg-iot-seccons-16
>
> [23] Internet-draft: TLS 1.3 Extension for Certificate-based
> Authentication with  an External Pre-Shared Key.
> draft-housley-tls-tls13-cert-with-extern-psk-03
> _______________________________________________
> T2TRG mailing list
> t2...@irtf.org
> https://www.irtf.org/mailman/listinfo/t2trg
>
>
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to