{"id":394,"date":"2017-06-23T17:02:27","date_gmt":"2017-06-24T00:02:27","guid":{"rendered":"http:\/\/www.kenwalger.com\/blog\/?p=394"},"modified":"2017-06-23T17:07:46","modified_gmt":"2017-06-24T00:07:46","slug":"iot-security-ssltls","status":"publish","type":"post","link":"https:\/\/www.kenwalger.com\/blog\/iot\/iot-security-ssltls\/","title":{"rendered":"IoT Security with SSL\/TLS in MicroPython"},"content":{"rendered":"<p>I&#8217;m on vacation in <a href=\"https:\/\/www.amazon.com\/gp\/product\/1101878401\/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1101878401&amp;linkCode=as2&amp;tag=kenwalgersite-20&amp;linkId=d128e1a516976bd5e7c547b5a81d79c4\" target=\"_blank\" rel=\"noopener\">San Francisco<\/a><img loading=\"lazy\" decoding=\"async\" style=\"border: none !important; margin: 0px !important;\" src=\"\/\/ir-na.amazon-adsystem.com\/e\/ir?t=kenwalgersite-20&amp;l=am2&amp;o=1&amp;a=1101878401\" alt=\"\" width=\"1\" height=\"1\" border=\"0\" \/> this week with my family and looking out over the bay at <a href=\"https:\/\/www.nps.gov\/alca\/index.htm\">Alcatraz Island<\/a>. For those who aren&#8217;t familiar with this island, it housed a maximum high-security prison 1.25 miles off the San Francisco coast for 54 years. While thinking about the high security that Alcatraz offered in the past, it makes me think about the digital security of today.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"406\" data-permalink=\"https:\/\/www.kenwalger.com\/blog\/iot\/iot-security-ssltls\/attachment\/alcatraz-small-3\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png?fit=600%2C205&amp;ssl=1\" data-orig-size=\"600,205\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"alcatraz-small\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png?fit=300%2C103&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png?fit=600%2C205&amp;ssl=1\" class=\"alignnone size-full wp-image-406\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png?resize=600%2C205\" alt=\"Alcatraz Island\" width=\"600\" height=\"205\" srcset=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png?w=600&amp;ssl=1 600w, https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/alcatraz-small-2.png?resize=300%2C103&amp;ssl=1 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Specifically, as it relates to the Internet of Things(IoT) and considerations that must be taken with connected devices. If you have been reading my previous IoT related <a href=\"http:\/\/www.kenwalger.com\/blog\/iot\/micropython-and-nodemcu-esp8266\/\">blog posts<\/a>, you&#8217;ll recall that I&#8217;ve been using a <a href=\"https:\/\/www.amazon.com\/gp\/product\/B01LXCWQ0P\/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01LXCWQ0P&amp;linkCode=as2&amp;tag=kenwalgersite-20&amp;linkId=95a468df91c13405da3634e14fbc55b1\" target=\"_blank\" rel=\"noopener\">NodeMCU ESP8266<\/a><img loading=\"lazy\" decoding=\"async\" style=\"border: none !important; margin: 0px !important;\" src=\"\/\/ir-na.amazon-adsystem.com\/e\/ir?t=kenwalgersite-20&amp;l=am2&amp;o=1&amp;a=B01LXCWQ0P\" alt=\"\" width=\"1\" height=\"1\" border=\"0\" \/> device with <a href=\"http:\/\/www.micropython.org\">MicroPython<\/a> for much of my work.<\/p>\n<p>I enjoy my family and want to enjoy my vacation. Therefore I opted to not bring my IoT devices with me. In this post then, I&#8217;d like to cover some of the aspects of security that IoT connected devices face. So sit back and put your breadboards away as we take a look at some concepts.<\/p>\n<h3>Networking Overview<\/h3>\n<p>When we talk about networking we are discussing ways in which devices communicate with each other. The devices can certainly be IoT devices. But it goes beyond the physical device as the\u00a0<em>how<\/em> is often as important as the device itself. In today&#8217;s world, for example, the popular\u00a0<em>how<\/em> is via Ethernet or WiFi and TCP\/IP. Let&#8217;s have a brief look at some networking models and see how security is implemented in them.<\/p>\n<h5>Network Protocol models<\/h5>\n<p>At one point I was very involved with networking. In the process of studying for various networking certifications from <a href=\"http:\/\/www.cisco.com\/c\/en\/us\/training-events\/training-certifications\/certifications\/associate\/ccna-routing-switching.html\">Cisco<\/a> and <a href=\"https:\/\/www.microsoft.com\/en-us\/learning\/mcse-certification.aspx\">Microsoft<\/a>, there is a lot of discussion on the Open Systems Interconnection,\u00a0or\u00a0OSI, model of networks. There is also a more streamlined TCP\/IP model that is popular as well.<\/p>\n<h6>OSI Networking Model<\/h6>\n<p>These models divide networking into various layers, starting at an Application and working down to the physical cables for a network to function. Conceptually, the OSI Model can be represented like this:<\/p>\n<figure id=\"attachment_407\" aria-describedby=\"caption-attachment-407\" style=\"width: 200px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"407\" data-permalink=\"https:\/\/www.kenwalger.com\/blog\/iot\/iot-security-ssltls\/attachment\/osi-model\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png?fit=200%2C328&amp;ssl=1\" data-orig-size=\"200,328\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"OSI-Model\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;OSI Network Model&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png?fit=183%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png?fit=200%2C328&amp;ssl=1\" class=\"size-full wp-image-407\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png?resize=200%2C328\" alt=\"OSI Network Model\" width=\"200\" height=\"328\" srcset=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png?w=200&amp;ssl=1 200w, https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/OSI-Model.png?resize=183%2C300&amp;ssl=1 183w\" sizes=\"auto, (max-width: 200px) 85vw, 200px\" \/><\/a><figcaption id=\"caption-attachment-407\" class=\"wp-caption-text\">OSI Network Model<\/figcaption><\/figure>\n<h6>TCP\/IP Networking Model<\/h6>\n<p>There are several &#8220;layers&#8221; there, so to simplify things, let&#8217;s take a look at the TCP\/IP representation of the network model.<\/p>\n<figure id=\"attachment_408\" aria-describedby=\"caption-attachment-408\" style=\"width: 200px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"408\" data-permalink=\"https:\/\/www.kenwalger.com\/blog\/iot\/iot-security-ssltls\/attachment\/tcp_ip-model\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png?fit=200%2C328&amp;ssl=1\" data-orig-size=\"200,328\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"TCP_IP-Model\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;TCP\/IP Network Model&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png?fit=183%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png?fit=200%2C328&amp;ssl=1\" class=\"size-full wp-image-408\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png?resize=200%2C328\" alt=\"TCP\/IP Network Model\" width=\"200\" height=\"328\" srcset=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png?w=200&amp;ssl=1 200w, https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TCP_IP-Model.png?resize=183%2C300&amp;ssl=1 183w\" sizes=\"auto, (max-width: 200px) 85vw, 200px\" \/><\/a><figcaption id=\"caption-attachment-408\" class=\"wp-caption-text\">TCP\/IP Network Model<\/figcaption><\/figure>\n<p>There are many different ways in which to secure a network. Some are more flexible than others. If you want a\u00a0<strong>very<\/strong> secure network, you don&#8217;t connect it to the outside world and build it a hardened physical location with limited access. Secure, yes. Extremely user-friendly, no. Therefore, methods have been developed to provide security at higher layers of the network model which allows for privacy and data integrity between two communicating applications.<\/p>\n<h6>TLS\/SSL Protocol Model<\/h6>\n<p>The software industry has used cryptographic protocols to provide network communication security for a long time. For IoT devices, it is common to utilize TLS\u00a0When we start talking about network security protocols such as Transport Layer Security (TLS) and its predecessor Secure Sockets Layer (SSL), where do those fit in though to our Networking Models?<\/p>\n<figure id=\"attachment_409\" aria-describedby=\"caption-attachment-409\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"409\" data-permalink=\"https:\/\/www.kenwalger.com\/blog\/iot\/iot-security-ssltls\/attachment\/tls-added\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png?fit=600%2C370&amp;ssl=1\" data-orig-size=\"600,370\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"TLS-added\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Networking Model with TLS Protocol&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png?fit=300%2C185&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png?fit=600%2C370&amp;ssl=1\" class=\"size-full wp-image-409\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png?resize=600%2C370\" alt=\"TLS Protocol in Network Model\" width=\"600\" height=\"370\" srcset=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png?w=600&amp;ssl=1 600w, https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/TLS-added.png?resize=300%2C185&amp;ssl=1 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><figcaption id=\"caption-attachment-409\" class=\"wp-caption-text\">Networking Model with TLS Protocol<\/figcaption><\/figure>\n<p>We see that there is quite a bit going on there with TLS and that it is occurring at high levels of the network model. This is, typically, great as it allows us, as developers, to have useful access to the protocol. Further, since it is a commonly used protocol, our access to it is, generally speaking, pretty straight forward.<\/p>\n<h3>TLS<\/h3>\n<p>Websites use TLS, and previously SSL, to provide secure communication between browsers and web servers. IoT devices can take advantage of TLS as well. Some of the benefits of using TLS include:<\/p>\n<ul>\n<li>A\u00a0<em>private<\/em> connection is established through symmetric cryptography.<\/li>\n<li>Identities can be authenticated using public-key cryptography.<\/li>\n<li>Communication integrity via a message authentication code.<\/li>\n<\/ul>\n<p>TLS builds upon the SSL standards and, as the above image indicates, there are two layers. Within TLS there are two embedded protocols, a handshake protocol, and a record protocol. The <em>handshake<\/em> is used to establish the format of the exchange of information.\u00a0The\u00a0<em>record<\/em> is what encapsulates the data itself.<\/p>\n<p>This is an oversimplification of the process. There are many steps to the handshake, and a TLS record includes multiple types of information, beyond what is passed from an application itself. Both internal protocols handle, to differing degrees, the cipher security features.<\/p>\n<p>With all of this going on internally in TLS, there are obviously a lot of &#8220;moving parts&#8221; to this whole thing. I stated that having these security features on a high level in the networking stack can make a developer&#8217;s life easier. Fortunately, in a MicroPython based IoT world, it is fairly simple to utilize and implement TLS.<\/p>\n<h3>MicroPython<\/h3>\n<p><a href=\"http:\/\/www.micropython.org\">MicroPython<\/a> includes a standard SSL\/TLS <a href=\"https:\/\/micropython.org\/resources\/docs\/en\/latest\/wipy\/library\/ussl.html\">module<\/a>. This provides access to TLS on both the client\u00a0<em>and<\/em> server sides of our applications. MicroPython includes the\u00a0<code>ssl.wrap_socket()<\/code>\u00a0function, which wraps a stream in an SSL context. Depending on the particular IoT device and the way the module is implemented, some functionality of <code>wrap_socket()<\/code> may not be entirely supported.<\/p>\n<h3>Wrap up<\/h3>\n<p>In this brief discussion, I&#8217;ve shown how TLS\/SSL security fits into the networking model. I would highly encourage the use of the SSL\/TLS module when building your MicroPython projects. In this day and age of cyber attacks, it is important to secure all communications between devices big and small.<\/p>\n<hr \/>\n<p>Follow me on Twitter <a href=\"https:\/\/www.twitter.com\/kenwalger\" target=\"_blank\" rel=\"noopener\">@kenwalger<\/a> to get the latest updates on my postings on MicroPython and IoT and let me know what you are building with MicroPython.<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F394&#038;t=IoT%20Security%20with%20SSL%2FTLS%20in%20MicroPython&#038;s=100&#038;p&#091;url&#093;=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F394&#038;p&#091;images&#093;&#091;0&#093;=https%3A%2F%2Fi0.wp.com%2Fwww.kenwalger.com%2Fblog%2Fwp-content%2Fuploads%2F2017%2F06%2Fiot-security.png%3Ffit%3D125%252C125%26ssl%3D1&#038;p&#091;title&#093;=IoT%20Security%20with%20SSL%2FTLS%20in%20MicroPython\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/facebook.png?resize=48%2C48&#038;ssl=1\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F394&#038;text=Hey%20check%20this%20out\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/twitter.png?resize=48%2C48&#038;ssl=1\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-reddit nolightbox\" data-provider=\"reddit\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F394&#038;title=IoT%20Security%20with%20SSL%2FTLS%20in%20MicroPython\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" alt=\"reddit\" title=\"Share on Reddit\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/reddit.png?resize=48%2C48&#038;ssl=1\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F394&#038;title=IoT%20Security%20with%20SSL%2FTLS%20in%20MicroPython\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/linkedin.png?resize=48%2C48&#038;ssl=1\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=IoT%20Security%20with%20SSL%2FTLS%20in%20MicroPython&#038;body=Hey%20check%20this%20out:%20https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F394\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/mail.png?resize=48%2C48&#038;ssl=1\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>I&#8217;m on vacation in San Francisco this week with my family and looking out over the bay at Alcatraz Island. For those who aren&#8217;t familiar with this island, it housed a maximum high-security prison 1.25 miles off the San Francisco coast for 54 years. While thinking about the high security that Alcatraz offered in the &hellip; <a href=\"https:\/\/www.kenwalger.com\/blog\/iot\/iot-security-ssltls\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;IoT Security with SSL\/TLS in MicroPython&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":397,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pmpro_default_level":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[27,28],"tags":[71,69,70],"yst_prominent_words":[432,425,353,399,257,431,290,275,421,423,422,430,429,433,428,435,424,426,427,434],"class_list":["post-394","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-iot","category-micropython","tag-openssl","tag-security","tag-tls","pmpro-has-access"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.kenwalger.com\/blog\/wp-content\/uploads\/2017\/06\/iot-security.png?fit=125%2C125&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8lx70-6m","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/comments?post=394"}],"version-history":[{"count":6,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/394\/revisions"}],"predecessor-version":[{"id":410,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/394\/revisions\/410"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/media\/397"}],"wp:attachment":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/media?parent=394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/categories?post=394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/tags?post=394"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}