Four Methods to Generate Sturdy Pre-Shared Keys on Linux

A PSK key is required for authentication during data encryption. It's an effective security protocol because someone who doesn't know the key cannot decrypt the data. Therefore, choosing a strong PSK key is important if you are serious about protecting your data from intruders.

But why are PSK keys important and how can you automatically generate strong and random PSK keys on Linux?

What are PSK keys and why do I need one?

A pre-shared key, or simply PSK, is a random string of characters that is used as a password when encrypting and decrypting data. As the name suggests, both parties involved in the cryptographic process know the key in advance because the key is needed not only during the decryption process but also during the encryption of the data.

One of the most important uses of PSK keys is in wireless network security. Wi-Fi networks use several types of data encryption, such as: WPA PSK and WPA2-PSK, where WPA stands for Wi-Fi Protected Access. The password you enter before connecting to Wi-Fi is also a type of PSK.

Since our security is almost always at risk, the use of pre-installed keys during data transmission can prevent hackers from eavesdropping on our data over a network. Using a PSK when sharing data also ensures that only the person you want to share with will access the data.

Although a brute force attack against cryptographic keys can still prove effective, choosing a strong key can reduce the likelihood that the key will be cracked.

How to generate strong PSK keys on Linux

If the PSK key is so important to us, shouldn't we all have a PSK key to use? Yes. In fact, generally encrypting your data with a password is an important task that everyone should know about.

Related: Reasons to Encrypt Your Linux Partitions

However, that doesn't mean you have to worry and create a random string of characters to use as a PSK. Fortunately, Linux has several commands that you can use to generate strong PSK keys.

1. Use the OpenSSL command to generate a strong key

OpenSSL is a well-known command among network security enthusiasts because it provides numerous utilities for cryptographic functions and keys. With this tool you can generate random PSK keys with different byte sizes.

To generate a 32-byte PSK key with the openssl command:

openssl rand -base64 32

Output:

v59AYgTli5LFAJXsIngeQiApSj1u8QJYZvxopSV2Zt0 =

Likewise, you can replace the byte size with any number that you would like to use to generate randomly sized preinstalled keys on your Linux system.

For example, enter the following command to generate a preloaded key that is 128 bytes long.

openssl rand -base64 128

More Information: Ways To Encrypt Your Daily Life With Very Little Effort

2. Create a PSK using the GPG utility

GPG, an abbreviation for GNU Privacy Guard is a well-known tool for encrypting and decrypting files on a Linux system. In addition, you can also use the tool to issue strong pre-installed keys.

Calling the –gen-random Using the base64 encoded method of the gpg command, you can generate an infinite combination of characters that you can use as a PSK.

To get a pre-installed 32-byte key with the gpg Command:

gpg –gen-random 1 32 | base64

Output:

dYWA8xdcAUAwS / cSopFnRzYuk4zVGWSTJtq87Zg15XU =

The 1 in the above command is the Quality level and 32 is the number of Bytes You want the key.

To generate a 64-byte PSK:

gpg –gen-random 1 64 | base64

Related: Explained Memory Sizes: Bits and Bytes in Context

3. Using date and sha256sum for random PSKs

The date command on Linux displays information about the system date and time to users. Not everyone knows this, but you can use this command to generate strong keys for security reasons.

Forward the date command with sha256sum and base64 outputs random keys that you can use as PSK for encryption.

Date | sha256sum | base64 | Head -c 32; echo

Output:

MWVkNzMwOTAzMDgxMTNkZTc3MDFjZjkz

The above command issues a 32-byte PSK. The head Command reads and displays the first 32 bytes of the output.

If we would remove head The system displays a 92-byte character string via the command:

Date | sha256sum | base64

Output:

MTQ1OWVlOGNiODIxYmMyZTEzNGQyZjUyNzkyOTEwOWZmZWQ3MmQxZWExYzhhODM1ZDdmM2ZjZTQ5
ODM4MDI4ZiAgLQo =

Note that you cannot use the function to generate a PSK key that is longer than 92 bytes date and sha256sum Command.

How to generate a random 64-byte preinstalled key with the date and sha256sum Command:

Date | sha256sum | base64 | Head -c 64; echo

4. Using pseudorandom number generators

The Linux operating system has various random number generators such as the / dev / random and / dev / urandom File. These are special files under Linux that serve as pseudo-random number generators. Both files, / dev / random and / dev / urandom Use the Linux entropy pool to generate random numbers.

These random numbers are used in combination with the base64 The command can output strong character combinations suitable for use as a preinstalled key.

How to generate a 32-byte PSK with the / dev / random File:

head -c 32 / dev / random | base64

If you want to get a 128-byte PSK key, enter the following command:

head -c 128 / dev / random | base64

Alternatively, you can also use the / dev / urandom Replace file / dev / random With / dev / urandom. The way these two files work is pretty similar and will not tamper with the PSK generation.

Entropy is the noise collected from the environment, such as B. CPU fans, mouse movements and more. The entropy pool on a Linux system stores the noise that is used by these files.

The number generation of the / dev / random File is stopped when less entropy is available. On the other hand, u in the / dev / urandom stands for unlimited since generation never stops even if the system contains less entropy.

Related: What Are Random Number Generators?

Encrypt data for more security

Keys and passwords are important to protect your privacy. Pre-shared keys also secure the entire data transmission process during encryption. Generating random preinstalled keys is easy on Linux because you always have multiple utilities at your disposal.

Data encryption is an underrated practice that everyone should follow. In the end, all that matters is the information that belongs to you or is related to you. Protecting this data from outsiders should be a high priority if you are serious about hiding your information from cyber criminals.

How does the encryption work? Is the encryption really secure?

You've heard of encryption, but what is it exactly? If criminals use it, is the encryption safe? Here you can find out how encryption works and what it does.

Continue reading

About the author

Deepesh Sharma
(42 articles published)

Deepesh is the junior editor for Linux at MUO. He has been writing informational content on the Internet for over 3 years. In his spare time he enjoys writing, listening to music and playing the guitar.

More
From Deepesh Sharma

Subscribe to our newsletter

Sign up for our newsletter to receive tech tips, reviews, free e-books, and exclusive offers!

One more step …!

Please confirm your email address in the email we just sent you.

Leave a Reply

Your email address will not be published. Required fields are marked *