{"id":2102,"date":"2022-02-02T13:38:42","date_gmt":"2022-02-02T13:38:42","guid":{"rendered":"https:\/\/iot-ngin.eu\/?p=2102"},"modified":"2022-02-02T13:38:43","modified_gmt":"2022-02-02T13:38:43","slug":"privacy-preserving-identifiers-for-iot","status":"publish","type":"post","link":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/","title":{"rendered":"Privacy-preserving Identifiers for IoT"},"content":{"rendered":"\n<p>Privacy is extremely important in today&#8217;s digital world. Privacy should also be considered in the scope of IoT, since an IoT device may also be a personal device such as a smartwatch or sensor in a car, therefore tracking the IoT device would also allow tracking the user. A good principle for improving privacy is minimising the data shared with other parties. Suppose that a factory has outsourced the maintenance to a subcontractor, which means that a technician working for the subcontractor needs to have (limited) access to the factory and its machinery. When enforcing such access control, the factory does not need to learn the real identity of the technician (or even know that the technician is the same person who accessed the factory last week), it is enough to verify that the technician has been authorised by a trusted subcontractor.<\/p>\n\n\n\n<p>Traditionally there have been no standard interoperable solutions for digital identifiers, each service has been forced to create their own. More recently, some large companies such as Google, Facebook, and Twitter, have introduced solutions known as <em>social logins<\/em> (implemented with OAuth and similar protocols), where the identifiers for that company&#8217;s services can also be used to login to many other services. While this reduces the number of identifiers individuals have to manage, it also means that individuals are dependent on the service (e.g. Facebook) providing the identifiers, and it also puts the service in a position to monitor the individuals\u2019 use of other services, which is detrimental to privacy. Clearly, there is a need for an identity solution that is controlled by the individual and provides sufficient privacy.\u00a0<\/p>\n\n\n\n<p>Currently, an identity technology receiving much attention are the decentralised identifiers (DIDs)<a href=\"#sdfootnote1sym\"><sup>1<\/sup><\/a>. A key aspect of DIDs is that they are designed not to be dependent on any central issuing party (Identity Provider or IdP) that creates and controls the identity or monitors their usage. Instead, DIDs are managed by the identity owner (or a guardian on the owners behalf), an approach known as <em>self-sovereign identity<\/em>. The specification defines a DID as a random string that makes it privacy-promoting. Furthermore, if a <em>new DID is allocated for every part<\/em>y one communicates with, correlating one\u2019s activities with different parties would be significantly harder to achieve. This property can be further enhanced by replacing existing DIDs with new ones at suitable intervals or even after just a single use.\u00a0<\/p>\n\n\n\n<p>There are several DID methods available, including Sovrin<a href=\"#sdfootnote1sym\"><sup>1<\/sup><\/a>, uPort<a href=\"#sdfootnote2sym\"><sup>2<\/sup><\/a> that support DID discovery, and simple ones that do not require additional infrastructure such as did:key<a href=\"#sdfootnote3sym\"><sup>3<\/sup><\/a> and did:self<a href=\"#sdfootnote4sym\"><sup>4<\/sup><\/a>. In many cases, there is also a need to associate <em>machine-verifiable properties<\/em> to the identifier of an entity. This is accomplished with Verifiable Credentials (VCs)<a href=\"#sdfootnote5sym\"><sup>5<\/sup><\/a> which are analogous to traditional authorisation certificates. In a VC, the party issuing the credential (i.e. the issuer) states that according to them, the party about which the credential is made, known as the prover, has those properties. These could be e.g. the person\u2019s name, date of birth, current employer, access rights to certain premises, etc.<\/p>\n\n\n\n<p>In the IoT-NGIN project we have <em>implemented a proof of concept prototype<\/em> to create and manage DIDs and Verifiable Credentials and enforce access control based on them. There, the credential is encoded in the commonly used <em>Json Web Token (JWT)<a href=\"#sdfootnote1sym\"><sup>1<\/sup><\/a><\/em> format, while the user also uses <em>Demonstrating Proof-of-Possession<\/em><\/p>\n\n\n\n<p><em>(DPoP)<a href=\"#sdfootnote1sym\"><sup>1<\/sup><\/a><\/em> tokens to prove their ownership of the private key related to the DID present in the credential. The prototype includes a reverse proxy, which will verify these tokens and if everything is in order, will forward the request to the actual IoT device or other kind of resource server. In this approach the IoT devices do need to be aware of the authorisation scheme used. On the other hand, the solution can also be used directly on the IoT device if necessary. We have implemented DPoP and VC verification on the ESP32<a href=\"#sdfootnote2sym\"><sup>2<\/sup><\/a> device, despite it being a very low cost device (it can be bought for just 2,5\u20ac including shipping), the full verification of tokens on the device takes just 160ms, which is sufficient performance for most of IoT use cases.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\">\n\n\n\n<p><meta charset=\"utf-8\"><strong>References<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n<sup>1<\/sup> \n<a href=\"https:\/\/www.w3.org\/TR\/did-core\/\u00a0\"> \nhttps:\/\/www.w3.org\/TR\/did-core\/\u00a0\n<\/a>\n<br>\n<sup>2<\/sup> \n<a href=\" https:\/\/sovrin.org\/\u00a0\"> \n https:\/\/sovrin.org\/\u00a0\n<\/a>\n<br\/>\n<sup>3<\/sup> \n<a href=\"https:\/\/www.uport.me\"> \nhttps:\/\/www.uport.me\n<\/a>\n<br>\n<sup>4<\/sup> \n<a href=\"https:\/\/w3c-ccg.github.io\/did-method-key\/\u00a0\"> \nhttps:\/\/w3c-ccg.github.io\/did-method-key\/\u00a0\n<\/a>\n<br>\n<sup>5<\/sup> \n<a href=\" https:\/\/github.com\/mmlab-aueb\/did-self\u00a0\"> \n https:\/\/github.com\/mmlab-aueb\/did-self\u00a0\n<\/a>\n<br>\n<sup>6<\/sup> \n<a href=\"https:\/\/www.w3.org\/TR\/vc-data-model\/\u00a0\"> \nhttps:\/\/www.w3.org\/TR\/vc-data-model\/\u00a0\n<\/a>\n<br>\n<sup>7<\/sup> \n<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7519\u00a0\"> \nhttps:\/\/datatracker.ietf.org\/doc\/html\/rfc7519\u00a0\n<\/a>\n<br>\n<sup>8<\/sup> \n<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-oauth-dpop\u00a0\"> \nhttps:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-oauth-dpop\u00a0\n<\/a>\n<br>\n<sup>9<\/sup> \n<a href=\"https:\/\/www.espressif.com\/en\/products\/socs\/esp32\u00a0\"> \nhttps:\/\/www.espressif.com\/en\/products\/socs\/esp32\u00a0\n<\/a>\n<br>\n<br>\n<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Privacy is extremely important in today&#8217;s digital world. Privacy should also be considered in the scope of IoT, since an IoT device may also be a personal device such as a smartwatch or sensor in a car, therefore tracking the &hellip;<\/p>\n","protected":false},"author":2,"featured_media":2104,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[17],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Privacy-preserving Identifiers for IoT - IOT NGIN<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Privacy-preserving Identifiers for IoT - IOT NGIN\" \/>\n<meta property=\"og:description\" content=\"Privacy is extremely important in today&#8217;s digital world. Privacy should also be considered in the scope of IoT, since an IoT device may also be a personal device such as a smartwatch or sensor in a car, therefore tracking the &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/\" \/>\n<meta property=\"og:site_name\" content=\"IOT NGIN\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-02T13:38:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-02T13:38:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/iot-ngin.eu\/wp-content\/uploads\/2022\/02\/\u0395\u03b9\u03ba\u03cc\u03bd\u03b1-02-02-2022-15.19.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1753\" \/>\n\t<meta property=\"og:image:height\" content=\"986\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Giannis Tsichlas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/iot-ngin.eu\/#website\",\"url\":\"https:\/\/iot-ngin.eu\/\",\"name\":\"IOT NGIN\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/iot-ngin.eu\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/iot-ngin.eu\/wp-content\/uploads\/2022\/02\/\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1-02-02-2022-15.19.jpg\",\"contentUrl\":\"https:\/\/iot-ngin.eu\/wp-content\/uploads\/2022\/02\/\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1-02-02-2022-15.19.jpg\",\"width\":1753,\"height\":986},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#webpage\",\"url\":\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/\",\"name\":\"Privacy-preserving Identifiers for IoT - IOT NGIN\",\"isPartOf\":{\"@id\":\"https:\/\/iot-ngin.eu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#primaryimage\"},\"datePublished\":\"2022-02-02T13:38:42+00:00\",\"dateModified\":\"2022-02-02T13:38:43+00:00\",\"author\":{\"@id\":\"https:\/\/iot-ngin.eu\/#\/schema\/person\/dac2bc3c10805a89083986685c5801d1\"},\"breadcrumb\":{\"@id\":\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/iot-ngin.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Privacy-preserving Identifiers for IoT\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/iot-ngin.eu\/#\/schema\/person\/dac2bc3c10805a89083986685c5801d1\",\"name\":\"Giannis Tsichlas\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/iot-ngin.eu\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/740c19c414d2291ee24fcbe553ee2609?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/740c19c414d2291ee24fcbe553ee2609?s=96&d=mm&r=g\",\"caption\":\"Giannis Tsichlas\"},\"url\":\"https:\/\/iot-ngin.eu\/index.php\/author\/tsichlas\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Privacy-preserving Identifiers for IoT - IOT NGIN","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/","og_locale":"en_US","og_type":"article","og_title":"Privacy-preserving Identifiers for IoT - IOT NGIN","og_description":"Privacy is extremely important in today&#8217;s digital world. Privacy should also be considered in the scope of IoT, since an IoT device may also be a personal device such as a smartwatch or sensor in a car, therefore tracking the &hellip;","og_url":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/","og_site_name":"IOT NGIN","article_published_time":"2022-02-02T13:38:42+00:00","article_modified_time":"2022-02-02T13:38:43+00:00","og_image":[{"width":1753,"height":986,"url":"https:\/\/iot-ngin.eu\/wp-content\/uploads\/2022\/02\/\u0395\u03b9\u03ba\u03cc\u03bd\u03b1-02-02-2022-15.19.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"Giannis Tsichlas","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/iot-ngin.eu\/#website","url":"https:\/\/iot-ngin.eu\/","name":"IOT NGIN","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/iot-ngin.eu\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#primaryimage","inLanguage":"en-US","url":"https:\/\/iot-ngin.eu\/wp-content\/uploads\/2022\/02\/\u0395\u03b9\u03ba\u03cc\u03bd\u03b1-02-02-2022-15.19.jpg","contentUrl":"https:\/\/iot-ngin.eu\/wp-content\/uploads\/2022\/02\/\u0395\u03b9\u03ba\u03cc\u03bd\u03b1-02-02-2022-15.19.jpg","width":1753,"height":986},{"@type":"WebPage","@id":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#webpage","url":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/","name":"Privacy-preserving Identifiers for IoT - IOT NGIN","isPartOf":{"@id":"https:\/\/iot-ngin.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#primaryimage"},"datePublished":"2022-02-02T13:38:42+00:00","dateModified":"2022-02-02T13:38:43+00:00","author":{"@id":"https:\/\/iot-ngin.eu\/#\/schema\/person\/dac2bc3c10805a89083986685c5801d1"},"breadcrumb":{"@id":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/iot-ngin.eu\/index.php\/2022\/02\/02\/privacy-preserving-identifiers-for-iot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/iot-ngin.eu\/"},{"@type":"ListItem","position":2,"name":"Privacy-preserving Identifiers for IoT"}]},{"@type":"Person","@id":"https:\/\/iot-ngin.eu\/#\/schema\/person\/dac2bc3c10805a89083986685c5801d1","name":"Giannis Tsichlas","image":{"@type":"ImageObject","@id":"https:\/\/iot-ngin.eu\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/740c19c414d2291ee24fcbe553ee2609?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/740c19c414d2291ee24fcbe553ee2609?s=96&d=mm&r=g","caption":"Giannis Tsichlas"},"url":"https:\/\/iot-ngin.eu\/index.php\/author\/tsichlas\/"}]}},"cc_featured_image_caption":{"caption_text":"","source_text":"","source_url":""},"_links":{"self":[{"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/posts\/2102"}],"collection":[{"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/comments?post=2102"}],"version-history":[{"count":5,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/posts\/2102\/revisions"}],"predecessor-version":[{"id":2109,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/posts\/2102\/revisions\/2109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/media\/2104"}],"wp:attachment":[{"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/media?parent=2102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/categories?post=2102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iot-ngin.eu\/index.php\/wp-json\/wp\/v2\/tags?post=2102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}