Saturday, September 23, 2023

How to create unique and secure passwords for websites with a master password and Jacksum


 Jacksum 3.7.0 introduced a new feature: read text from the console without echoing, hash that string using your preferred hash-function and encode the hash-value using your preferred encoding. In other words, you can treat Jacksum as a password generator that generates the actual password for a website.

Example:

> jacksum -q password -a ascon-hash -8 -E z85
Password: facebook.com do-not-use-this-password
Cvn7Zojybu819s=b</ClQ/-5S@[%X@*F0?I?mlcb

Reads a password or passphrase from the console, not including any line-termination characters. You can use that mode to generate both unique and strong passwords for websites. The returned hash values will be stronger than anything a normal human brain could remember, and nothing needs to be stored on disk. If the password is compromised, the master password will still remain secret. Oh, please do not use the password from the example above, because now it is known to all people who read this article.

Some notes and recommendations:

  • Combine a master password with website-specific information, such as the domain name, to get unique passwords. In the example above I have used facebook.com
  • For the master password you should use a strong password that is at least 8 characters long; the longer, the better, and you should be able to remember it easily. Again, please do not use the password from the example above.
  • You should use a non-broken, strong cryptographic hash algorithm for the task. In the example I have used "ascon-hash" which is supported since version 3.7.0 of Jacksum. For more information about the Ascon-Hash, please type `jacksum -h ascon-hash`. Of course, if you like it stronger, you could also use sha3-512 for example.
  • Set the character set explicitly if you use multiple different operating systems or environments that do not use UTF-8 for the console by default, and make sure to remember the character set as well. In the example above I have used option -8 which sets UTF-8 for both stdout and stderr. See also `jacksum -h -8`.
  • You can use all of the available characters for the password.
  • You can copy and paste the password to the prompt, but it is better if you remember it and type it, as this trains your brain to remember the password, and your brain will be the only place where the master password resides.
  • Dependent on the allowed characters of the website login you can select one of the encodings that Jacksum supports. See also `jacksum -h -E`. In the example above I have used z85 which perfectly works for most websites.

Due to security reasons the following limits apply:

  • You won't see the password that you enter; in other words, echoing is disabled to prevent shoulder-surfing attacks.
  • Only the hash is printed by default; it is not possible to print the password in clear text, even if particular format options such as -F or --style are set. Use option "-q readline" if you prefer echoing.
  • Operating system piping is not possible, because we want to make sure that the password is coming from a keyboard and not transfer passwords in clear text between processes via piping.
  • Operating system redirection is not possible, because a console is required to enter the password. Use the options -o/-O to save the hash to a file if you do no wish to see the hash value in the console.
  • To minimize the lifetime of sensitive data in memory, the password is cleared from memory after processing. Java's String interning is not used for the password.

Stay safe!

Regards,
Johann

 


Wednesday, August 30, 2023

Fixed the 10µF/25V Tantalkondensator on C15 on the mainboard of the Commodore C64 floppy drive VC 1541, restored an old prg of mine and refreshed my memory

Vor kurzem habe ich mir diesen tollen Adapter gekauft, der es mir erlauben sollte ein C64-Diskettenlaufwerk über USB an meinen PC anzubinden und so alte C64-Disketten auslesen zu können.


Mein Commodore Diskettenlaufwerk VC 1541 lag über 30 Jahre lang gut verstaut vor Staub und Wasser in einer Aufbewahrungsbox und ich ging davon aus, dass ich es genauso wieder schnell in Betrieb nehmen könnte, wie ich es damals hineintat. Pustekuchen. Leider qualmte das Diskettenlaufwerk unmittelbar nach dem Einschalten aus den Lüftungsschlitzen wie eine antike Dampflok und auch olfaktorisch merkte ich schnell dass was nicht stimmte. Mit anderen Worten: es stank - und zwar gewaltig - nach verbranntem Elektronikbauteil! Schnell abgeschaltet, abgesteckt, abkühlen lassen, dann das Laufwerk auf den Bauch gedreht. Vier Schräubchen sind schnell gelöst und ich habe den Gehäusedeckel abgemacht. Sofort fällt mein Blick auf einen kleinen, verkohlten Stumpf, vor kurzem noch ein Kondensator - möglicherweise, denn die Werte kann ich nicht mehr erkennen. Auf C15 steckt er jedenfalls. Schnell gegoogelt. Aha, ein Tantal-Kondensator, 10µF/25V. Gibts für 0,35 €, Versandkosten 5,95 €. Na toll. Egal. Bestellt. Gleich mehrere - man weiss ja nie.

Vorher:

 




Ein paar Tage später: Lötkolben heiss gemacht und weg mit dem alten, neuen rein.

Nachher:


Test mit dem Adapter verlief auch ohne Probleme. Perfekt. Dann lesen wir doch mal das 5 1/4 Zoll-Diskettchen hier aus und schauen, was ich damals Nutzloses Nützliches programmiert habe ab dem Jahre 1984 und den folgenden meiner Kindheit. Aha, "potenzen.prg", "gleichungen.prg", "weihnachten.prg" usw. - klingt alles vielversprechend, auch wenn ich mich zugegeben nur noch sehr vage erinnere. VICE runtergeladen, installiert, erstes Programm geladen ...


 Und RUN it baby ...

Ach ich sage euch, es ist wunderbar, wenn man sehr alte Erinnerungen durch selbst reaktivierte alte Hardware auffrischen kann :-) Ach ja. Seufz. Nun gut. Deckel drauf, Schrauben rein und wieder ab damit in den Keller. Sehr gute Bewertung für den ebay-Händler für den tollen Adapter!

Mission completed.