<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Andriy Fedotov</title>
    <description>The latest articles on DEV Community by Andriy Fedotov (@andrii_fedotov).</description>
    <link>https://dev.to/andrii_fedotov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F103251%2F326376a0-0065-4456-8e32-fb6097271f00.jpg</url>
      <title>DEV Community: Andriy Fedotov</title>
      <link>https://dev.to/andrii_fedotov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andrii_fedotov"/>
    <language>en</language>
    <item>
      <title>Does it matter how the cryptographic keys stored?</title>
      <dc:creator>Andriy Fedotov</dc:creator>
      <pubDate>Fri, 22 Mar 2019 16:57:08 +0000</pubDate>
      <link>https://dev.to/andrii_fedotov/does-it-matter-how-the-cryptographic-keys-stored-35i2</link>
      <guid>https://dev.to/andrii_fedotov/does-it-matter-how-the-cryptographic-keys-stored-35i2</guid>
      <description>

&lt;p&gt;Private key storing&lt;/p&gt;

&lt;p&gt;Security just tells you to encrypt everything but won't tell you how to achieve that in your particular software stack. You have to store the encryption key in a protected manner. It could be stored at an HSM, a smartcard, a crypto token, at the server hard disk, even written in a paper (split and stored in vaults). The key can be unencrypted (in the clear) or encrypted with another key. If you are talking about encryption keys that are part of your business application, you have to store them encrypted but your software should be able to decrypt it without manual intervention.  &lt;/p&gt;

&lt;p&gt;Public key storing&lt;/p&gt;

&lt;p&gt;But what about the public key? Verification of digital certificates fails even more often than users loss their private keys because CA is a much bigger and interesting target for cybercriminals. As an alternative to a traditional system of chain of trust, &lt;a href="https://github.com/Remmeauth/remme-core"&gt;blockchain&lt;/a&gt; provides a permanent and trusted timestamp by design. To undermine this timestamp would require massive computational effort — rewriting the entire blockchain . This ultimately gives Issuers the ability to rotate their issuing keys without undermining the ability of 3rd parties to reliably verify transactions. The blockchain is a distributed ledger that does not depend on any trusted party like a Certificate Authority. The effect is improved availability, the capacity to independently verify, and redundancy that avoids single points of failure. &lt;/p&gt;


</description>
      <category>blockchain</category>
      <category>opensource</category>
      <category>security</category>
      <category>cryptography</category>
    </item>
    <item>
      <title>Securing IoT devices connections with blockchain: does it make sense?</title>
      <dc:creator>Andriy Fedotov</dc:creator>
      <pubDate>Fri, 01 Feb 2019 12:39:11 +0000</pubDate>
      <link>https://dev.to/andrii_fedotov/securing-iot-devices-connections-with-blockchain-does-it-make-sense-fc</link>
      <guid>https://dev.to/andrii_fedotov/securing-iot-devices-connections-with-blockchain-does-it-make-sense-fc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Case Study:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Company X deploys a fleet of connected IoT devices with capabilities of Hardware Root of Trust, in which the private keys are integrated into the devices.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The System Administrator of Company X has an account registered on the blockchain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;He will need to install a special firmware (or just modify an existing version of it) on the IoT device (i.e.: a CCTV camera). It should generate a pair of keys in the device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At this point, the SysAdmin obtains device public-key and stores it on the blockchain using his account. The device is able to send the public-key by itself, but it needs access to the account. As an alternative, this could be done via a service where blockchain account keys are pre-installed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now the SysAdmin is able to set up a secure encrypted connection with all the CCTV cameras that he needs. In case he needs to revoke camera's public keys, he can do so by using the private key of his blockchain account.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The blockchain account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It has a pair of the public/private keys which the user generates with one of the project libraries on his device. The account enables to store public key on the blockchain as well as revoking them. Using the pair of keys of just one account, you may store on the blockchain as many public keys as you need. In blockchain technology, there are several ways to secure access to your account, for example, multi-signature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why should devices trust each other without a CA signature?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this scenario, the Admin will send a request to the blockchain for storing the public keys of each of the two devices and will install private keys on each of them respectively. This way the admin is responsible for providing the correct public key connecting two devices/applications. Nobody can store a public key which was previously added to the blockchain.&lt;/p&gt;

&lt;p&gt;What do you think about the case described? Are there any weaknesses which hackers can spot?&lt;/p&gt;

&lt;p&gt;And what's about a service that can help to provide such certificates for admins and developers who are not willing to interact with the blockchain directly? Would you use such a service, if it were available?&lt;/p&gt;

&lt;p&gt;Here you can have a look at &lt;a href="https://github.com/Remmeauth/remme-core/tree/dev"&gt;a protocol&lt;/a&gt; able to perform the services described, other than a Public Key Infrastructure.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>security</category>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Documentation as a key to the strong tech community</title>
      <dc:creator>Andriy Fedotov</dc:creator>
      <pubDate>Tue, 27 Nov 2018 16:21:59 +0000</pubDate>
      <link>https://dev.to/andrii_fedotov/documentation-as-a-key-to-the-strong-tech-community-3h2k</link>
      <guid>https://dev.to/andrii_fedotov/documentation-as-a-key-to-the-strong-tech-community-3h2k</guid>
      <description>&lt;p&gt;I believe that all great projects were started with clear documentation. My project is a new open-source protocol that is searching to build a community around the concept of digital certificates that are secured by blockchain network. I see that our idea attract interest on the hackathons, meetups and tech chats, but it is essential to transmit those activities on the GitHub as well. &lt;/p&gt;

&lt;p&gt;We have prepared Q&amp;amp;A page as well as simple project documentation &lt;a href="http://docs.remme.io" rel="noopener noreferrer"&gt;http://docs.remme.io&lt;/a&gt;. But now I see a necessity to work more on our GitHub repository readme file. As I understood we need to add more about the problem that our code challenges, current features, contribution policy and left some info about the development team. I saw on the Internet a considerable number of advice about gifs, colorful buttons, and tables, but not sure that it wouldn't irritate our repo guests. &lt;/p&gt;

&lt;p&gt;What else should we add on our core protocol page to make it closer to open source community and attract it to contribute to the project? I have added the link here:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Remmeauth" rel="noopener noreferrer"&gt;
        Remmeauth
      &lt;/a&gt; / &lt;a href="https://github.com/Remmeauth/remme-core" rel="noopener noreferrer"&gt;
        remme-core
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Distributed Public Key Infrastructure (dPKI) protocol
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="rst"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;REMME Core&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://jenkins.remme.io/view/1.GitHub_Integration/job/remme-core/job/dev/" rel="nofollow noopener noreferrer"&gt;&lt;img alt="Jenkins" src="https://camo.githubusercontent.com/601f72bac3776e594473b819eb5ea1c7500bd5c27d651efba3f3dc2dc6f7b1c4/68747470733a2f2f6a656e6b696e732e72656d6d652e696f2f6275696c645374617475732f69636f6e3f6a6f623d72656d6d652d636f72652f646576"&gt;&lt;/a&gt; &lt;a href="https://hub.docker.com/r/remme/remme-core/" rel="nofollow noopener noreferrer"&gt;&lt;img alt="Docker Stars" src="https://camo.githubusercontent.com/20110685af3d68ba8638b4a9fd9f2125a9fc7c141f50af698eab8ba0480a199d/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f73746172732f72656d6d652f72656d6d652d636f72652e737667"&gt;
&lt;/a&gt; &lt;a href="https://gitter.im/REMME-Tech" rel="nofollow noopener noreferrer"&gt;&lt;img alt="Gitter" src="https://camo.githubusercontent.com/8621ac5f84a936ca6ea7993dbc510fe394be939264f75c202e7064b6e240c9be/68747470733a2f2f6261646765732e6769747465722e696d2f6f776e65722f7265706f2e706e67"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;REMME is a blockchain-based protocol used for issuing and management of public keys to resolve
issues related to cybersecurity, IoT connectivity, data integrity, digital copyright protection, transparency etc.&lt;/p&gt;
&lt;p&gt;Remme core is built on Hyperledger Sawtooth platform, allowing to be flexible in language choice during the
development process.`Remme core exposes application programming interface based on RPC API.&lt;/p&gt;
&lt;p&gt;Remme also supports &lt;a href="https://github.com/Remmeauth/remme-client-js" rel="noopener noreferrer"&gt;JS&lt;/a&gt; and &lt;a href="https://github.com/Remmeauth/remme-client-dotnet" rel="noopener noreferrer"&gt;.NET&lt;/a&gt;
programming libraries that wrap its application programming interface, so that you could easily embed the protocol in your project.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔖 Documentation&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;🔖 &lt;a href="https://youtu.be/fw3591g0hiQ" rel="nofollow noopener noreferrer"&gt;Architecture overview&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;🔖 &lt;a href="https://docs.remme.io/" rel="nofollow noopener noreferrer"&gt;Docs &amp;amp; tutorials&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;🔖 &lt;a href="https://blog.aira.life/blockchain-as-refinery-for-industrial-iot-data-873b320a6ff0" rel="nofollow noopener noreferrer"&gt;REMME use case for IoT&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;🔖 &lt;a href="https://medium.com/remme" rel="nofollow noopener noreferrer"&gt;Blog&lt;/a&gt; &amp;amp; &lt;a href="https://gitter.im/REMME-Tech" rel="nofollow noopener noreferrer"&gt;talks&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to build on REMME Core&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;REMChain is one of the components of our solution and a basic layer of our
distributed Public Key Infrastructure — PKI(d) protocol. In a nutshell, it’s
a multi-purpose blockchain that acts as a distributed storage for a
certificate’s hash, state (valid or…&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Remmeauth/remme-core" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>discuss</category>
      <category>opensource</category>
      <category>documentation</category>
    </item>
  </channel>
</rss>
