how to ensure that my Linux password can't be cracked by any user or even superuser
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Passwords are stored as salted hashes, and as long as the password is strong and the operating system isn't spying on you, the only way to crack the encryption is via brute-force methods. For a reasonably strong password and a modern hash algorithm, this just isn't feasible.
However, the superuser doesn't have to crack your password in order to gain access to your local account.
You don't need to crack the password. root can reset the password or su to the user without supplying the password. Neither of which tells them what the password is, but functionally it's not needed. They can also clone the system to other hardware and devote all of that machines efforts to brute forcing the password if they wanted to.
how to ensure that my Linux password can't be cracked by any user or even superuser
You can't, and the superuser doesn't have to 'crack' your password, since they can just CHANGE IT whenever they'd like. And no one here is going to email you answers...this is a community forum, so unless you participate in the forum, you won't get answers.
Just be sure not to use "password" as your password. Use "password123" instead. That makes it super-secure.
Even if you encrypt your stuff, and want to keep that data out of root's hands, you will fail. root can view raw memory, put keyloggers on you, etc. If root is patient, persistant and knowledgeable enough, you have already lost before you even get started.
See: http://www.thegeekstuff.com/2008/06/...ong-passwords/
There's also rule 3, deducibility: Don't use you date of birth or any number or data from your personal information, which is rather easy to come by. And rule 4, change it often in case they are brute-forcing it.
Avoid common passwords, and there are many lists online of the most common passwords.
None of this can guarantee that your password can't be cracked, but it will make it less likely.
every password can be cracked. probably it will take time, but it is not impossible. Therefore you need to change your password time by time...
While this may be technically correct, cracking a hash created with an algorithm without known vulnerabilities would literally take ages. Consider this little thought experiment:
a user has a complex password of unknown length that's not a common dictionary word
the password is hashed with SHA1 using a random salt
Since the password isn't vulnerable to a dictionary attack and may be any length, the attacker would have to resort to brute-force cracking.
A SHA1 hash is 160 binary digits long. That means there are 2^160 possible hashes. If that doesn't sound like a lot, here's the full 49-digit number:
I don't know how fast one can generate SHA1 hashes, but let's go out on a limb and assume the attacker has full access to all the resources in both the Microsoft Azure and Amazon Elastic Cloud environments. Let's say the combined efforts of these systems can generate a mind-numbing one quintillion hashes (1,000,000,000,000,000,000 hashes) per second (which I'm pretty certain they can't, not by a long shot).
Let's further assume that the attacker only has to search through half the keyspace before a matching hash is found. He'll then have cracked the password after roughly 730,750,818,665,451,459,101,842,416,358 seconds, which is a little over 23 sextillion years. By then, the hacker will have had to deal with some other pressing issues, such as the heat-death of the universe.
TL;DR: Brute-forcing hashes is really hard work, which is why most attacks against encryption algorithms are based on cryptanalysis, exploiting weaknesses in the algorithm itself.
There's a lot of assumptions there. First we are assuming that LOGIN_RETRIES is sensible. If your password is '12345' or 'password', then a dictionary attack is viable i.e. you'll guess the password before you run out of tries.
Generating the hash is slow... but searching a pre-existing list is much faster (I think a radix search is the fastest).
The problem is that storing 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 different hashes is still a bit hard.
Not to mention that someone would still have to generate the rainbow table first.
Rainbow tables are usually created based on (permutations of) dictionary words. Creating a rainbow table for every possible combination of characters would take as long as brute-forcing the hash.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.