<?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: Lajos Koszti</title>
    <description>The latest articles on DEV Community by Lajos Koszti (@ajnasz).</description>
    <link>https://dev.to/ajnasz</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%2F98323%2F3720bfaa-12d8-4dc0-affa-756981711dfe.jpg</url>
      <title>DEV Community: Lajos Koszti</title>
      <link>https://dev.to/ajnasz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ajnasz"/>
    <language>en</language>
    <item>
      <title>A service to share secrets securely</title>
      <dc:creator>Lajos Koszti</dc:creator>
      <pubDate>Mon, 05 Oct 2020 19:07:49 +0000</pubDate>
      <link>https://dev.to/ajnasz/a-service-to-share-secrets-securely-j2j</link>
      <guid>https://dev.to/ajnasz/a-service-to-share-secrets-securely-j2j</guid>
      <description>&lt;p&gt;I built a simple program to share sensitive data securely&lt;/p&gt;

&lt;p&gt;In the last few months I've been working on a service, which helps to share data securely. The service called &lt;a href="https://sekret.link" rel="noopener noreferrer"&gt;sekret.link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I wanted to practice Golang and Angular and it was a good candidate for that.&lt;/p&gt;

&lt;p&gt;Imagine that a new colleague joined to the company, there are bunch of things she will need to have access, like WiFi, database, internal site or whatever. You know the password or you generate the password and you will need to send it to her on Slack or e-mail. You can send it as a simple message, but that will mean that Slack or her e-mail provider can read the information. What is worse that then this information won't be deleted automatically. If someone breaks into her account now can discover these secret informations and the company will be in a pretty bad situation.&lt;/p&gt;

&lt;p&gt;The service what I created tries to help on these issues. You send the sensitive information to the service and it will store it encrypted. It returns an URL which can be used to decrypt the information. After the secret has been read it also destroyed and there is no way to restore it.&lt;/p&gt;

&lt;p&gt;No one else will have access to the decryption key. It isn't saved, it isn't logged can not be guessed. The web client (which is visible at&lt;a href="https://sekret.link" rel="noopener noreferrer"&gt;https://sekret.link&lt;/a&gt;) is even encrypting the data before sending it, so the unencrypted data never left your browser.&lt;/p&gt;

&lt;p&gt;As the main purpose of the application is to protect privacy and keep secret hidden from unauthorized third parties I made it as secure as possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The decryption key is random and long enough to be secure&lt;/li&gt;
&lt;li&gt;The decryption key is only known by the user who created the secret&lt;/li&gt;
&lt;li&gt;No external scripts included to the site&lt;/li&gt;
&lt;li&gt;No tracking scripts included to the site, it's not tracking even internally&lt;/li&gt;
&lt;li&gt;It doesn't use any cookies&lt;/li&gt;
&lt;li&gt;Both the &lt;a href="https://github.com/Ajnasz/sekret.link-ui/" rel="noopener noreferrer"&gt;frontend application&lt;/a&gt; and the &lt;a href="https://github.com/Ajnasz/sekret.link" rel="noopener noreferrer"&gt;server code&lt;/a&gt; are Open Source&lt;/li&gt;
&lt;li&gt;It has an API, so if you don't trust in the frontend application you can create your own&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There were (are) several challenges I needed to solve. I wanted to make it secure as possible, as usable as possible and as developer friendly as possible.&lt;/p&gt;

&lt;p&gt;The very first version had no UI, and I only wanted to be able to use it with&lt;code&gt;curl&lt;/code&gt;. For example &lt;code&gt;curl -d 'secret message' https://sekret.link/api/&lt;/code&gt; will return the link what you can send to your friend right away. However, it's simple and good, already has one issue: many applications, like Slack and other services fetches the pasted URLs to create some kind of preview. It means two very bad things: this application will read the secret will also be destroyed, so the real recipient will not be able to read it. That's why I needed to create the frontend application.&lt;/p&gt;

&lt;p&gt;I plan to write some more about the challenges, like how I utilized the go interfaces, how I got some hard time with the Angular routing. How I made it work when JavaScript is turned off in the browser and I have some other stories.&lt;/p&gt;

&lt;p&gt;Footnote: the idea is not new, there are several other services like that, for example Privnote, what I used before I created this service.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>privacy</category>
    </item>
    <item>
      <title>How do you enter to techcrunch?</title>
      <dc:creator>Lajos Koszti</dc:creator>
      <pubDate>Fri, 08 May 2020 09:09:54 +0000</pubDate>
      <link>https://dev.to/ajnasz/how-do-you-enter-to-techcrunch-1gcf</link>
      <guid>https://dev.to/ajnasz/how-do-you-enter-to-techcrunch-1gcf</guid>
      <description>&lt;p&gt;I'm coming from this article: &lt;a href="https://dev.to/ben/zoom-has-acquired-keybase-1a2"&gt;https://dev.to/ben/zoom-has-acquired-keybase-1a2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a link to Techcrunch, that's OK.&lt;br&gt;
My data, my experience, sure but how do you enter?&lt;/p&gt;

&lt;p&gt;These are just links, I can't opt out&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvua27osju5y8d01sv0tw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvua27osju5y8d01sv0tw.png" alt="Some foundational advertising partner" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;IAB partners (whoever they are) already opted out some times ago&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fobwbfbmeodkl4380q7dn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fobwbfbmeodkl4380q7dn.png" alt="IAB advertising partner" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google tab, a huge list with random names, they could be generated easily&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsqzdrd1bqvakl798ga8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsqzdrd1bqvakl798ga8k.png" alt="A few more advertising partner from Google" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But still, I must agree, no &lt;code&gt;&amp;lt;button onclick="window.close()"&amp;gt;Disagree&amp;lt;/button&amp;gt;&lt;/code&gt; or something. :(&lt;/p&gt;

&lt;p&gt;At least they don't set cookie when I open the the page.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
