From 11c87e9b4c35f96fc1acc7f538cdfffb5ac82747 Mon Sep 17 00:00:00 2001 From: Sufyaan Date: Tue, 27 Jun 2023 19:38:07 +0000 Subject: [PATCH] Keep It Simple Post --- blog/keep-it-simple/index.html | 45 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/blog/keep-it-simple/index.html b/blog/keep-it-simple/index.html index f98baec..3e7e5f4 100644 --- a/blog/keep-it-simple/index.html +++ b/blog/keep-it-simple/index.html @@ -2,7 +2,7 @@ - (POST) KeePass + Syncthing + (POST) Keep It Minimal @@ -12,32 +12,31 @@
-

sf.cu > Blog > KeePass + Syncthing

-

KeePass + Syncthing

-

Posted on 23 June 2023

Categories: Software

-

I have decided to switch from a self-hosted Vaultwarden (Bitwarden) instance to using KeePass along with Syncthing to sync it to all my devices. There are numerous reasons why I decided to make this change.

-

Security

-

The offline nature of KeePass makes it so that it is nearly impossible to crack. Connecting things to the internet makes it trivial for a script kiddie thousands of kilometers away from you to attempt to crack your passwords. A password manager is a place where all of your passwords are stored. Due to this very reason, I decided to upgrade my security by moving to a reputed piece of software.

-

It has a plethora of security features. Firstly, it has the ability to generate passwords of any length. It allows you to choose what characters are allowed. Its generation is so complex and liberating that even foreign characters like Æ, É, or even mathematics symbols and arbitrary symbols that no one would care about can be used. For example, the division sign (÷) or the copyright symbol (©) are included in password generation. Since most hackers try alphanumeric character cracking, KeePass password generation can make your passwords practically impossible to crack.

-

The encryption algorithm used for your password database is AES-256, commonly known as 256-bit encryption. It is a form of encryption that is so difficult to crack that the only way you can actually hope to obtain someone's password is by phishing them or using external methods. For more information, please watch this video by 3Blue1Brown. It is extremely interesting.

-

In fact, KeePass is so secure that even the passwords that are stored in your memory while you are viewing your database is encrypted. That way, even a management engine attack will not work. If you want to try viewing the cleared memory sectors to find remnants of your passwords, good luck. The passwords which are stored in your memory are first overwritten to the point of unrecoverability before being cleared.

-

You can even setup a keyfile (a file you need to use to login), a security key, or both.

-

View. The. Code.

-

KeePass is open-source under the GPLv2 license, which is the best open-source license for people's freedom. That makes it free software.

-

The Encryption Never Stops

-

Along with KeePass, I use Syncthing to sync my database. Syncthing also uses cryptographic encryption. This makes it so that anyone who wants to brute-force my database needs access to both my Syncthing password and my KeePass password.

-

To Conclude...

-

I use KeePass along with Syncthing for three reasons.

+

sf.cu > Blog > Keep It Minimal

+

Keep It Minimal

+

Posted on 27 June 2023

Categories: Software

+

In technology, you should keep it simple as much as possible. The KISS philosophy and the UNIX philosophy especially must be followed if you want quality software. Most pieces of famous software nowadays do not follow this guideline and it is costing millions of people dearly.

+

Why Minimal?

+

Simply put, a piece of minimal software:

    -
  1. KeePass is extremely secure. It has industry-standard protection methods and algorithms and its offline nature makes it practically uncrackable.
  2. -
  3. It is fully free software under the GPLv2 license
  4. -
  5. Syncthing is also encrypted, which means that an attacker who wants to attack me using the internet needs to crack both my Syncthing password and KeePass password which would take billions of years.
  6. +
  7. Is easier to maintain
  8. +
  9. Has a dearth of bugs
  10. +
  11. Runs fast on all devices
  12. +
  13. Is easily extensible
  14. +
  15. Helps avoid complications
  16. +
  17. Contributes to the world
-

I am probably never going to switch back because this system works extremely well. Syncthing is very fast at staying up-to-date.

-

>>> Reply To Me

+

Let's expand on the first and second points. Why is minimal software so easy to maintain? Why do developers hate being developers when they are working with bloated pieces of software? Keeping software minimal gives developers the opportunity to easily find code that is slowing down the whole program or is inefficient. It also helps developers find bugs easy. This is because a smaller codebase means that it takes less time to review the code. A group of 10 people can easily perfect a program whose codebase is less than 1500 lines. After that, it is just a work of maintaining the program and making sure that any requests that users have are answered.

+

Minimal software runs fast on all devices. It is simply no contest. A 1000-line Python program is going to be much faster than a 100K-line C program even though C is much faster than Python. Inefficiencies and lackluster execution of functions in a program can be much easily spotted in a smaller program. There is a huge disregard for old computers. People simply cannot use old computers anymore because the software that they use is so inefficient that their computer struggles to do basic things. For example, they use Adobe Reader to open PDFs which is one of the worst things to do. Adobe Reader takes an incredibly long time to open considering the fact that they are the ones that invented PDFs. Another example is Word. Why does Word take long to open and write on? It's code is bloated. Think of Zathura. It is a PDF viewer that follows the UNIX philosophy of doing one thing well. Even on the slowest of computers, Zathura takes milliseconds to open a PDF. Think about LaTeX. You do the writing then you compile the document into a PDF. It does everything from linking, referencing, bibliographies much better than Word. In fact, it is so good that many universities require its use f

+

Minimal software can be extensible as per the UNIX philosophy. Instead of creating a massive program that tries to do everything, minimalist programs create modules for certain functions. This makes troubleshooting a piece of cake as the initial confusion of finding out what exactly causes the error is practically eliminated. For example, if you are making a login page and the authentication does not work, you know that you should look in the authentication module. However, if you make it all in a single program, it is difficult to root out whether an issue is due to an incorrect variable type or a redundant function.

+

All of this helps developers to avoid complications. No team wants another error or speed complaint in the middle of another issue. All of the advantages listed thus far help developers have peace of mind.

+

Finally, minimal pieces of software can be liberated and made into free software to contribute to the world. Once the initial stages of bug-fixing and optimization is over, it is just a matter of letting the world find ways to make the program better. An inefficiency that no one would spot otherwise can be ironed out by a top-tier programmer who worked in a plethora of huge companies with decades of experience. It also helps budding developers learn about development.

+

Closing The Program

+

To sum it up, everyone should use and develop minimal software if possible. This is because minimal software is easier to maintain, debug and optimize due to its smaller codebase. It also runs fast on all devices and avoids complications during development time. Minimal software can also be liberated into free software which will allow talented developers to review the program and contribute to the world.

+

>>> Reply To Me

Previous Post


\ No newline at end of file +