Slashdot Mirror


The Death Throes of crypt()

dex writes "Tom Perrine and Devin Kowatch of the San Diego Supercomputer Center have issued "Teracrack: Password cracking using TeraFLOP and PetaByte Resources" (PDF, HTML version via Google). Using SDSC's prodigious computing facilities, they precomputed 207 billion crypt() hashes in 80 minutes."

105 of 388 comments (clear)

  1. Solaris by CrankyFool · · Score: 4, Insightful

    I wonder if this will spur Sunto finally make the default password encryption algorithm on Solaris something other than crypt...

    1. Re:Solaris by hackstraw · · Score: 4, Informative

      Solaris uses PAM, so its trivial to add any kind of authentication method that you want.

    2. Re:Solaris by FireDoctor · · Score: 5, Informative
      crypt() is just an interface to an underlying algorithm. In Solaris 9 12/02, there is an option to use Blowfish or MD5:
      Enhanced crypt() Function Password encryption protects passwords from being read by intruders. Three strong password encryption modules are now available in the software:

      * A version of Blowfish that is compatible with BSD systems

      * A version of MD5 that is compatible with BSD and Linux systems

      * A stronger version of MD5 that is compatible with other Solaris 9 12/02 systems

      Solaris 9 12/02 Release Notes

      and System Administration Guide: Security Services

    3. Re:Solaris by jonabbey · · Score: 2, Informative

      I wonder if this functionality would make it feasible to use md5Crypt hashed passwords on a NIS network with Solaris 9 systems. md5Crypt and scalable blowfish (see the OpenBSD blowfish crypt paper) are designed so that you can identify the hash function used by looking for specific prefixes in the hashed text.

      Obviously NIS should be dead and buried, but in far too many places it is not, yet. It would be nice if it were possible to use a more worthy hash function in conjunction with NIS.

  2. A testament to crypt() by grub · · Score: 5, Insightful


    Actually with most Unixish systems going to other password formats such as MD5 and Blowfish I'd think that this goes to show that (NSA notwithstanding) crypt() has had a long, healthy existance. Rather than saying 'crypt() is dead' they should be saying 'it took 30ish years but crypt() is at the end of its useful life'.

    Not many pieces of code will be able to boast that lifespan.

    --
    Trolling is a art,
    1. Re:A testament to crypt() by Leffe · · Score: 5, Funny

      Not many pieces of code will be able to boast that lifespan.

      10 PRINT "HELLO WORLD"

      The most secure piece of code, even on Microsoft(r) Windows(tm) platforms.

      I've also got a question; What is the default/general password encryption scheme used in most GNU/Linux distributions? DES? Is DES an algorithm or a collection or interface or something... I don't know anything :(

      I did write a program that worked exactly as crypt did though, it included certain unspoken functions from -lcrypt, especially one named crypt.

    2. Re:A testament to crypt() by tuffy · · Score: 3, Insightful
      how many haX0rs do you know that have machine capable of running TeraFLOPs per second?

      They don't need to own such a machine, only have access to one long enough.

      --

      Ita erat quando hic adveni.

    3. Re:A testament to crypt() by Carnildo · · Score: 4, Informative

      DES is the Digital Encryption Standard. IIRC, it's a 56-bit symmetric-key encryption method, and is considered insecure, as a high-end desktop machine can crack anything encrypted with it in under 24 hours.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    4. Re:A testament to crypt() by Mysticalfruit · · Score: 4, Insightful

      Here's the more important question...

      In ten years, how many haX0rs will have access to TerFLOP machines?

      Answer: Lots...

      --
      Yes Francis, the world has gone crazy.
    5. Re:A testament to crypt() by frodo+from+middle+ea · · Score: 2, Informative
      OK, I am making a calculate d guess here , but I may be wrong.

      For any system that takes password inputs from users i.e. the password is entered from outside the system, It really doesn't need to store the password even in encrypted format.


      The system merely stores a hash value of the password , when the user enters the password, the sytem generates the hash of the user entered password and compares it with stored hash value. If they match bingo, if not try again. Also the system progressively delays the next log-in prompt upon match failure to tackel, such a mass brute force attack.<P>
      If I am not wrong these days, the password is stored in MD5 hash. And since hash value is theorotically irreversible, it can be stored in plain text. But I guess as an added safety measure, the linux boxes these days store passwords in /etc/shadow rather than /etc/passwd. The shadow file can only be read by root, while other world readable info is in passwd file.

      --
      for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
    6. Re:A testament to crypt() by hackstraw · · Score: 3, Insightful

      Maybe I'm nop paranoid enough, but I've never been too concerned about the security of people's passwords after root has been compromised, so I don't care what format the hashes are in /etc/shadow.

      Also, the method of "cracking" crypt() passwords can generate collisons, so the password that worked on one system may not work on another (because of different salts used).

    7. Re:A testament to crypt() by jaredmauch · · Score: 3, Interesting
      lets see, if ms-sql(slammer) and w32.nachi were built to hide passwords and the crypt() result in their icmp messages, and provide a distributed database of this information, how hard would this be?

      also, if you set aside the cpu costs, and need a few terabytes of disk space to store this data, how much does that cost today? according to pricewatch, you're talkinga bout $266 for (about) 300GB of disk. So for just over $1k, you've got 1TB.

      Table 7 comes up with 2.263TB of disk space storage, so maybe i'll need a bit more than $2k just for disk. Calcualate your I/O and crypt()/sec, how long would it take for you to generate them all if you generated a distributed application (eg: setiathome-like) and have them be 'uploaded' to you? Obviously you can't do this on your DSL/cable, and you start to see the network performance issues they mentioned, but if you set up a small cluster of your older PCs in a room, use FE to link them up, you'll have that disk and ethernet card spinning (interrupting that is) at a steady clip trying to fill up your disk.

      Make a worm/virus that spreads and distributes work units out to other hosts it's able to infect, and you could probally just keep the database in-memory across a wide set of hosts.

    8. Re:A testament to crypt() by Lour · · Score: 2

      They dont need a TeraFLOP machine, they just need the 1:1 hash:password file that it generates. So all you need is one haX0r with TeraFLOP access and it seems that we already have one. Then its just a matter of doing a lookup.
      The resulting file will be HUGE but with storage as cheap as it is today....

      --
      -Lord Shadow
    9. Re:A testament to crypt() by Anonymous Coward · · Score: 2, Funny

      "What is the default/general password encryption scheme used in most GNU/Linux distributions? "

      Who cares? Its not like anybody is running anything critical on it.

      That's what Windows 98se is for...

    10. Re:A testament to crypt() by anno1a · · Score: 2, Informative

      DES is a 56-bit symmetric encryption algorithm, which is depricated by now. Specially built hardware machines can easilly break it.

      It's official successor is AES, which is a 128/192/256 bit algorithm, which is thought to be very secure.

      It's direct successor is triple DES, where you encrypt with one key, decrypt with another, and encrypt again with a third. This is probably what will take over if AES fails.

      --
      ------- I fumbled my registration and I now must suffer
    11. Re:A testament to crypt() by MooCows · · Score: 5, Insightful

      Actually, quite a lot of them have it now, in the form of thousands of compromised machines.
      Can be used to DDOS, or to compute.

      --
      The path I walk alone is endlessly long.
      30 minutes by bike, 15 by bus.
    12. Re:A testament to crypt() by panaceaa · · Score: 4, Funny

      20 GOTO 10

      Haha! Now it's a denial of service algorithm! Bet you wish you had

      11 END

      now, eh?

    13. Re:A testament to crypt() by Anonymous Coward · · Score: 5, Informative

      This statement starts off true and ends up totally false. A high end desktop machine cannot "crack" DES in under 24 hours. It can't even "crack" DES in under 24 years.

      1) DES has never been "cracked". It has been brute forced.

      2) A single machine would take on the order of 600 to 1200 years to brute force a single 56-bit key. Obviously, this number changes with the method used to brute force and the machine used.

      There has never been a machine demonstrated capable of cracking 56-bit DES in under 24 hours. The EFF built a DES Cracker which could search the entire key space in 9 days.

      DES is not considered insecure. Many applications would likely benefit from another choice however.

    14. Re:A testament to crypt() by Anonymous Coward · · Score: 3, Informative

      How arrogant were the designers to label it "Advanced"?

      The designers called it "Rijndael", NIST gave it the name "AES".

    15. Re:A testament to crypt() by crawling_chaos · · Score: 2, Funny

      Considering the speed of most ATMs and other critical systems, I'm of the opinion that most "critical" systems are running on a PDP-1, which is periodically taken down so that the operators can have a rousing game of Spacewar.

      --
      You can only drink 30 or 40 glasses of beer a day, no matter how rich you are.
      -- Colonel Adolphus Busch
    16. Re:A testament to crypt() by Vellmont · · Score: 4, Informative


      There has never been a machine demonstrated capable of cracking 56-bit DES in under 24 hours. The EFF built a DES Cracker which could search the entire key space in 9 days.


      Naw, the EFF machines was later upgraded, and combined with distributed.net was able to crack a DES encoded message in 22 hours

      --
      AccountKiller
    17. Re:A testament to crypt() by PureFiction · · Score: 3, Informative

      Who modded this up? 3-DES is significantly weaker than AES-256 or even 128 (arguably).

      3DES is a kludge using the original DES in triplicate because alone it was too easy to brute force the keyspace.

    18. Re:A testament to crypt() by oh · · Score: 2, Informative
      OK, I am making a calculate d guess here , but I may be wrong.
      Your not wrong, just not all right
      If I am not wrong these days, the password is stored in MD5 hash. And since hash value is theoretically irreversible, it can be stored in plain text

      It should be irreversible, but by definition it must be "forwardable". I can take every possible password, hash it, and compare the result. If they match, I have figured out the password without reversing the hash function.

      This was always possible by exploiting week passwords, but it is feasible to guess all alpha-numeric passwords (a-z,A-Z,0-9 total of 62 characters). An eight character password has 62^8 combinations, (218,340,105,584,896 approx 2.1 x 10^14). Now this is a large number, but do-able on PC hardware. Now there are no more then 256^8 possible values for an eight character password (18,446,744,073,709,551,616 approx 1.8 x 10^20). I don't know if this is do-able on a desktop (yet) but no matter how theoretically impossible it is to reverse a hash, it doesn't stop someone from throwing a dictionary (or a random number generator) at it.

      Of course, almost all passwords out there don't contain non-printable characters, so if you a really trying to guess a password you would try more likely passwords first.

      --
      Democracy isn't about no one telling you what to do. It's about everyone telling you what to do.
    19. Re:A testament to crypt() by LuYu · · Score: 2, Interesting

      However, according to the article you posted:

      1. it was not a single computer,
        ...a worldwide coalition of computer enthusiasts, worked with the Electronic Frontier Foundation's (EFF) "DES Cracker," a specially designed supercomputer, and a worldwide network of nearly 100,000 PCs on the Internet...
      2. it was not a "high-end desktop" (in response to Carnildo's post),
        ...the Electronic Frontier Foundation's (EFF) "DES Cracker," a specially designed supercomputer...
      3. the time where desktop computers pose a threat to DES is not yet upon us (also in response to Carnildo's post).
        "As today's demonstration shows, we are quickly reaching the time when anyone with a standard desktop PC can potentially pose a real threat to systems relying on such vulnerable security," said Jim Bidzos, president of RSA Data Security, Inc.

      Therefore, while it is not military grade encryption, it is still good enough for some purposes. It will not protect you from a government or a corporation (if it so happens that they are interested enough in you commit the necessary resources), but it will probably protect you from your next door neighbor.

      --
      All data is speech. All speech is Free.
  3. But... by jchawk · · Score: 5, Funny

    Unless they release these hashes out into the wild, the average cracker/hacker does not have access to this type of resource...

    Definately cool though for proof of concept!

    1. Re:But... by UnderScan · · Score: 4, Informative

      Read the PDF. The first page tell us that:
      Using the Blue Horizon supercomputer at the San Diego Supercomputer Center, we found that pre-computing the 207 Billion hashes for over 50 million passwords can be done in about 80 minutes. Further, this result shows that for about $10K anyone should be able to do the same in a few months time, using one uni-processor machine.

    2. Re:But... by LilJC · · Score: 3, Interesting
      It's more than proof of concept. They did this in 80 minutes. Sure, you and I can't do it in 80 minutes, but even if it took us weeks we'd have a shot at cracking something that hadn't yet changed. Maybe not the first time, but eventually someone would get a start on it shortly after it been changed and considered "safe" long enough to be cracked.

      Besides, never underestimate the power of distributed computing by MS worms.

      --

      The only thing more dangerous than a file named -rf is renaming it -rf\ /
  4. Need more power by pvt_medic · · Score: 4, Funny

    80 Minutes? Obviously we just are not using enough power.

    --
    30% Troll, 50% Underrated, 10% Interesting
    Score:5, Troll
    1. Re:Need more power by grub · · Score: 5, Funny


      Obviously we just are not using enough power.

      Yup, if they ran this on the 220-230V systems in Europe this would have taken only 40 minutes. :)

      --
      Trolling is a art,
    2. Re:Need more power by TobiasSodergren · · Score: 2, Funny

      I thought it was because of the time zones.. You can start a little earlier in Europe ;)

  5. Re:Need better crypto by Directrix1 · · Score: 2, Troll

    Your name is ObviousGuy for a reason then, huh?

    --
    Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  6. Change of Methods Needed? by Erioll · · Score: 5, Interesting

    In the wake of stories like this, and yesterday's story about RSA-576 being cracked (here), is this a message that we need more secure forms of encryption than we already have? RSA is great so far, but how long until 1024 is broken? Or any other schemes, like the MD5 hashing that's used for digital signatures?

    Topics that people with lots of credentials behind their names are going to have to solve. Keeping ahead of the crackers is a big concern not only for security of transactions, but for personal privacy as well.

    Erioll

    1. Re:Change of Methods Needed? by the+morgawr · · Score: 2, Insightful

      I thought I read that MD5 had some problems as well (that's why OpenBSD uses Blowfish). I think it had something to do with the hashes not being evenly and randomly distributed over the possible space. Anyone who knows more about this care to comment?

      --
      The policy of the United States is worse than bad---it is insane. -- Ludwig von Mises, Economic Policy(1959)
    2. Re:Change of Methods Needed? by gorilla · · Score: 4, Insightful

      Remember that every bit approximatly doubles the type to break it. RSA-1024 is about 10^134 times harder to break than RSA-576.

    3. Re:Change of Methods Needed? by Anml4ixoye · · Score: 2, Insightful

      In a word, no.

      As was also discussed yesterday, *nothing* is uncrackable, with the exception of correctly used one-time pads.

      The key is to put the appropriate level of security with the data you want protected. For example, if you have data you have to keep secret for 2 months, and they can crack it in 6, you can use that. But if you need to keep data, worth millions of dollars, secret for an extended period, then you should review your security.

      However, I think that if you didn't start off with the above concept in mind when you started encrypting your data, then you weren't doing your job. Have 576 cracked shouldn't worry you unless you have older encrypted data using that.

      You are right that it is a game. To keep information secure, you have to protect it. Because you protected it, people will want to try to unprotect it. Eventually they will, and if one doesn't keep up, you will lose it.

      So, we don't need more secure forms of encryption, we just need to review the current ones and use the appropriate encryption scheme for the data trying to be protected.

    4. Re:Change of Methods Needed? by Anonymous Coward · · Score: 2, Interesting

      The real threat to cryptography as we know it is quantum computing. Barring attacks on the algorithms themselves, most algorithms in use today can easily be scaled to be unbreakable for the rest of the lifetime of this universe. By "normal" computers, that is. Quantum cryptography provides "perfectly" secure transmission of data, so quantum computing's detrimental effect on current cryptographic communication schemes isn't really problematic. The real problem lies in secure storage and digital signing. AFAIK there is no quantum cryptographic scheme for securely storing data, but current schemes are easily broken by quantum computing (once it becomes feasible to use a few thousand qbits).

    5. Re:Change of Methods Needed? by mellon · · Score: 3, Informative

      This does weaken MD5 slightly, but it's still stronger than crypt(). To put it in perspective, MD5 is still widely specified in new protocols - it's not being phased out.

    6. Re:Change of Methods Needed? by AnotherBlackHat · · Score: 4, Insightful

      is this a message that we need more secure forms of encryption than we already have?


      No, it's a message that if you're still using stuff that was developed in the 1970s, you should consider upgrading to the stuff from two years ago.

      -- this is not a .sig
    7. Re:Change of Methods Needed? by An+Onerous+Coward · · Score: 5, Informative

      Actually, it's worse than that. You don't have to test every number between 1 and sqrt, just the primes.

      I recall reading somewhere that it takes about ten bits to double the security of a public key, rather than one. I don't know if that's actually true.

      --

      You want the truthiness? You can't handle the truthiness!

  7. Mirror. by themassiah · · Score: 5, Informative
    --
    - Sometimes you're the pidgeon, sometimes you're the statue.
  8. interesting system integration issues by jrexilius · · Score: 3, Insightful

    This should cause some interesting systems integration issues as crypt has become the defacto standard for cross system authentication and password management. (hash it at your web server, compare it with app server, store it in DB, where it is used by samba to auth winblow users, blah blah, I know these arent exact implementation examples but you get the idea). Just a lot of code or libraries to change to make a system secure.

    1. Re:interesting system integration issues by Permission+Denied · · Score: 5, Informative
      Actually to compare a value to a crypt()ed value you can't just pass the hash because you don't know in advance what salt was used to create the hash. In all these cases the plain password is probably sent instead...

      In standard crypt() format, the salt is the first two characters of the hash.

      The canonical way hash a password using crypt():

      % perl
      $pass = "hello";
      $hash = crypt($pass, 'xo');
      print "hash: $hash\n";
      hash: xoqGBOjl8JQ8I
      The characters "xo" are chosen at random when the password is first hashed. Note how they are the first two characters of the hash. The canonical way to check if a given password matches a hash is:
      % perl
      $hash = "xoqGBOjl8JQ8I";
      $pass = "hello";
      print "they match\n" if $hash eq crypt($pass, $hash);
      they match
      Note how I use the entire hash as the salt. Only the first two characters of the salt are actually used by crypt(). Actually, only twelve bits from the first two characters are used for the salt:

      % perl
      print crypt("hello", ";!") . "\n";
      print crypt("hello", "#*") . "\n";
      ;!dR0/E99ehpU
      #*dR0/E99ehpU
      Two different salts resulted in the same hashes: this shows that crypt() does not use the entire 16 bits of the two characters (indeed, not even the entire 14 bits of the characters as US-ASCII). Only twelve bits are in fact used.

      Also, the entire password is not used: in fact, only the first eight characters of the password are used:

      print crypt("12345678", "xo") . "\n";
      print crypt("123456789", "xo") . "\n";
      xoUgvoME1De5c
      xoUgvoME1De5c

      Since slashcode strips un-american characters, I cannot demonstrate the the top bit of each character in the passphrase is discarded.

      Now, we can do some math: if 12 bits of salt is used, we have 4096 possible salts (2 ^ 12). If 7 bits of 8 characters are used, we have 7 * 8 = 56 bits of possible password. Thus, we have 2 ^ 56 * 4096 = 295147905179352825856 possible passwords (295 quintillion).

      Now, these numbers don't match up with what's reported in the article description (207 billion hashes). It's possible that some combinations of passwords and salts produce identical hashes, but I would never expect nearly this many...time to read the article.

      OK, I skimmed the article. They did not cover the entire keyspace of passwords. They only created a list of candidate passwords from a system dictionary using Crack's password generation routines. There are 1425835290 (1.4 billion) times more possible passwords than they tested. If they tried hashing all possible passwords, it would have taken them 217022 years at the rate they're going (80 minutes per 207 billion passwords). The storage of these hashes is out of the question (I don't know my metrics that high :).

      Actually, on second thought, I can imagine a compression scheme that could drastically cut down on the storage involved: but this is irrelevant, the CPU time is still overwhelming.

      Lesson learned: worry more about the quality of your passwords than the quality of your password hashing algorithm.

      [Perhaps I missed something? Anyone care to check my arithmetic?]

  9. crypt() not necessarily the crypt algorithm by peyote · · Score: 4, Informative

    Remember that many glibc2 "overloads" crypt() to be able to deal with MD5 hashes. I wonder how many MD5 hashes they can generate...

    1. Re:crypt() not necessarily the crypt algorithm by Cynicx · · Score: 2, Funny

      340282366920938463463374607431768211456 is a rough guestimate [16^32] :-)

    2. Re:crypt() not necessarily the crypt algorithm by Eraser_ · · Score: 2, Interesting

      bash-2.05b$ md5 -t
      MD5 time trial. Digesting 100000 10000-byte blocks ... done
      Digest = 766a2bb5d24bddae466c572bcabca3ee
      Time = 18.865835 seconds
      Speed = 53005869.601767 bytes/second

      So for that sake of this argument, you have a 10,000 character password, and I have a 500 mhz P3 running FreeBSD 5. :) This computer is also running X, mozilla, a few rxvt+ssh terms, and gaim.

      If my math checks out below, in 80 minutes you can do 25 million 10,000 character passwords. I assume you have 8bit bytes, and one byte is one char. If you use the raw speed measurment, then you get 31,803,521,400 8 character passwords. I know that the "raw speed" isn't accurate as there is setup and teardown time involved in any measurement.

      My G4-400 running OS 10.3 went at 23 seconds for the same time trial.

      bc 1.06

      80*60/19
      252
      252*100000
      25200000

      80*60
      4800
      4800*53005869
      254428171200
      254428 171200/8
      31803521400

  10. The reality is by phorm · · Score: 4, Insightful

    That over time, any encryption alghorythm may be broken by superior computer. 50 years from now, normal computers will put anything we have to shame, and supercomputers will make current ones look like calculators.

    Crypt is already supplantable by many improved techniques, but even if it is used, are they going to make these keys available to the world?

    If not, now that it's known a really faster computer can solve then, perhaps the next step in spammy-crackers' arsenal will be to take their virussed drones away from attacking anti-spam sites and focus them at generating crypt or other password solutions? How many drones working P2P-style (you create these hashes, I'll create these ones) would it take to equal this supercomputer?

    1. Re:The reality is by MikeCapone · · Score: 2, Informative

      How many drones working P2P-style (you create these hashes, I'll create these ones) would it take to equal this supercomputer?

      I believe that what you are refering to is called "distributed computing".

      A good example of crypto-key cracking by distributed computing can be found here.

  11. Re:Need better crypto by Mikey+Hawk · · Score: 2, Funny

    I think the answer to that question is obvious, guy.

  12. Proof that this was MEANT to happen! :-P by Wyzard · · Score: 5, Funny

    Clearly, crypt() was meant to die: just look at its name!

    As Schneier says on the first page of Chapter 1 of "Applied Cryptography",

    (If you want to follow the ISO 7498-2 standard, use the terms "encipher" and "decipher". It seems that some cultures find the terms "encrypt" and "decrypt" offensive, as they refer to dead bodies.)

  13. ftp site seems slow by morcheeba · · Score: 5, Funny

    They've got the tables on their ftp server, but it seems slashdotted because it's going really slow... my computer says "downloaded 4194304 bytes of 1209462790550 bytes (0.00034%)"

    Anyone have a bit torrent for this thing?

  14. Perhaps not by AKAImBatman · · Score: 5, Informative

    If I understand the article correctly, they're using serious computer power to develop a database of all passwords and their resulting hashes. In doing so, they can reverse engineer any hash back into a password via a 1 to 1 lookup. The only problem is that the attacker still needs physical access to your password hashes. In other words, this is much more serious for "insider" hacks where a system user wants root control.

    Correct me if I'm wrong, but wasn't the point of moving the hashes from passwd to another root protected file (like "master.passwd") to prevent this sort of problem?

    1. Re:Perhaps not by Anonymous Coward · · Score: 2, Informative

      Shadow passwords work sometimes. Sometimes you can just do "ypcat -k passwd" and get the hashes anyway.

    2. Re:Perhaps not by iamnotaclown · · Score: 2, Funny
      • If I understand the article correctly, they're using serious computer power to develop a database of all passwords and their resulting hashes.
      Look for it on eBay. Coming soon, to a 733t h4x0r near you!
    3. Re:Perhaps not by AKAImBatman · · Score: 2, Informative

      Sometimes you can just do "ypcat -k passwd" and get the hashes anyway.

      Just tried it on my Solaris box. I received the error "the domainname hasn't been set on this machine." A security flaw in NIS domains perhaps? That would certainly make the "insider" problem far worse.

    4. Re:Perhaps not by Tony+Hoyle · · Score: 2, Informative

      Sometimes you can just do "ypcat -k passwd" and get the hashes anyway.

      Not unless your actually not using shadow passwords at all...

      'ypcat shadow' might do it but nobody with any ounce of sanity would put the shadow file on NIS. I use kerberos auth for the passwords and NIS for the rest of the stuff, which works fine... then again I'm behind a nice tight firewall.

    5. Re:Perhaps not by Ancil · · Score: 5, Informative
      Sorry, but you are wrong.

      By moving to a hash like MD5, you can use a much larger "salt". This makes pre-encrypted dictionaries infeasible. Current crypt()-based scemes use a mere 12 bits of salt. A more advanced hash lets you use any length salt you'd like (though anything longer than the hash size is worthless).

      Quick primer for those wondering what "salt" is. UNIX stores not only your encryped password, but also a 12-bit salt. The salt is essentially part of your password, which the OS stores in plaintext. Its sole function is to make pre-encrypted password databases difficult. The crypt function is not a true "hash", so UNIX cheats by permuting the encryption boxes using the salt. The effect is the same as adding the salt to a password before hashing it with MD5.

      The scheme was developed for the express purpose of defeating attacks like this one. However, 12 bits ain't what it used to be. With only 4096 salts available, pre-encrypted dictionaries are now becoming feasible.

      The Solution (TM) is to use a modern hash like MD5, and store a salt which is as long as the hash itself. In essence, this renders encrypted dictionaries worthless -- it's just as easy to brute-force a password from scratch.

    6. Re:Perhaps not by warkda+rrior · · Score: 3, Funny

      What's your IP?

      --
      You need to install an RTFM interface.
  15. Only if you have the crypt string by dbavirt · · Score: 4, Insightful

    The ability to generate lots of crypt strings only helps you if you have the original crypt string to compare against. Most modern UNIX systems store crypt strings in /etc/shadow which is only readable by root. The crypt string is never passed across the net during most auth sequences. (Certain types of LDAP auth being the exception here.)

    The problem occurs if someone manages to break into a machine, achieve root, and pick up the /etc/shadow file. They can now brute-force all the passwords given enough time, and it appears that the amount of time needed is shrinking.

    This is a good argument for using different passwords on untrusted boxese and changing your password often.

    1. Re:Only if you have the crypt string by dbavirt · · Score: 2, Insightful

      Sure, but the /etc/shadow file is their key to getting the cleartext of your password for use on other machines. At this point, it may be easier to brute force /etc/shadow than it is to set up backdoors, trojans, network sniffing, etc.

      It can be much harder to determine that someone has hijacked your account than it is to note that a root kit has been installed

    2. Re:Only if you have the crypt string by coyote-san · · Score: 3, Insightful

      How hard do you think it is to write a PAM module that sends off an email with the user name and password?

      This won't "crack" inactive accounts, but it will capture any account where somebody uses a password to log in. On most systems the attacker wouldn't even need to hide this function in an existing pam module, they could just provide a new one with an official sounding name (e.g., "pam_audit") and edit the PAM configuration files.

      (N.B., not all access requires passwords. E.g., I prefer using SSH DSA authentication instead of password authentication.)

      --
      For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  16. Still by mugnyte · · Score: 5, Interesting

    Even so, using a 10 character input of about 72 possible input chars, isn't 207 billion still only like .0000055% of the total search space?

    So that 20000 * 80minutes gives ~1% of the space cracked?
    2000000 * 80 minutes = 304 years to fully close the space.

    With a perfect distribution, the mean of about 150 years seems like a long time.

    Someone please check my assumptions here.

    1. Re:Still by Anonymous Coward · · Score: 3, Insightful

      There isn't a unique hash value for every possible password... that's the way hashes work.

    2. Re:Still by Detritus · · Score: 3, Interesting

      You're assuming that the passwords are random. They aren't. Even with rules like a password must include upper-case characters, numerals and punctuation, they are not even close to being random.

      --
      Mea navis aericumbens anguillis abundat
    3. Re:Still by iamdrscience · · Score: 3, Informative

      What!?!?!? How did the parent get modded up so high? Are people that unaware of how hashes work?

      A hash is a digest of a piece of data, as such there is more than one possible password for every password hash.

      207 Billion hashes is a substantial portion of the possible hash values.

      No offense meant to the parent poster, you can't know everything and I suppose this is more obscure than a lot of things, but I'm really really surprised this got modded up like it did.

    4. Re:Still by ^MB^ · · Score: 5, Informative

      hummmm, i would beg to differ with the 'iamdrscience' post.
      You are thinking about normal computer science hashes not cryptographic hashes.

      207 billion is a very small portion of the possible hash relations.

      I worked on a project similar to this, a distributed password cracker.

      They calculated 50million passwords and 4096 salts this gives ~207Billion hashes.

      There are ~7.32*10^14 possible passwords (quick approximation) with the 4096 possible salts.
      That gives ~2.99*10^18 possible hashes.

      I think the author of the other post was thinking there would be a lot of collisions.
      There are 2^64 possible permutations of the DES 'cipher text' which gives ~1.8*10^19 possible 'cipher text' final state.

      This means there are six times as many theoretical hashes as there are actual password hashes.
      That and the nature of the DES algorithm would make colusion not very likely.

      Anyway back to the point... 207 billion hashes would be 2.07*10^11.

      2.07*10^11/2.99*10^18 = .000007%

      This is NOT a substantial portion of the search space.

      -Nick

      *cipher text is refering to the initial 64 zeros cipher text used in the DES password encryption.

  17. Re:Need better crypto by prockcore · · Score: 4, Informative

    Sure, MD5 strings are a little longer, but still (I'm pretty sure) less than 80 characters.

    md5 strings are 32 characters. And most linux distros use md5 for their shadow files already.

  18. Ironic advice by baadfood · · Score: 2, Interesting

    For a book called Applied Cryptography. Perhaps he should have called it Applied Cipherology. Applied Ciphering? Applied Cipherography? I think ill just stick with "crypt", thanks.

  19. So much for longer passwords being more secure? by doormat · · Score: 3, Interesting

    I remember back in high school I had created a bunch of accounts on my linux box and used some program to try and decipher the passwords. 1-4 charecter passwords were found in 30 minutes (on my blazing-fast-at-the-time 200MHz Pentium 1), 5 charecter passwords took 2 days, 6 charecter passwords took... well, forever more or less. I figured at the time, a 7 charecter password would be sufficient forever (at least for my life time), but I guess not. Now I use 10 charecter passwords for most of my stuff... Do I need to move to 15 charecters? A passphrase instead of a password?

    --
    The Doormat

    If you're not outraged, then you're not paying attention.
    1. Re:So much for longer passwords being more secure? by Aneurysm · · Score: 4, Informative

      With a password hash, all hashes generated are of the same length. Therefore someone bruteforcing the hash will take the same amount of time no matter what the password is. A longer password though may save you from a dictionary attack, especially passphrases, as it greatly reduces the chance of a brute force dictionary crack finding your password.

    2. Re:So much for longer passwords being more secure? by thedillybar · · Score: 5, Funny

      Well, for starters, you should avoiding telling people the length of your password...

  20. Give it some time by appleLaserWriter · · Score: 2, Insightful

    Wait a year or three and this kind of computing power will be available in game consoles in bedrooms across america.

  21. Too Late by sirReal.83. · · Score: 5, Funny

    I've already rooted all your boxen and converted them to a worldwide Beowulf cluster.

    Time to crack some pr0n passwords...

  22. they fear the /. effect by PxT · · Score: 3, Funny

    Heheh... the paper actually talks about them putting a searchable front-end to the results online but then says they decided not to, in part due to the "dreaded 'slash-dot' effect". Nice.

  23. Only 50 million passwords by vondo · · Score: 4, Insightful
    Those 207 billion hashes come from only 50 million possible passwords. Using only 10 letters (no upper case) and 8 characters gives 100 million passwords. Bumping the letter pool up to 75 (52 letters, numbers, a few symbols) give you 1E15 possible passwords.

    Moral of the story: Pick a good password.

    1. Re:Only 50 million passwords by ftzdomino · · Score: 2, Insightful

      Computing the entire 7.2e16 values (man crypt) should take about 52 years. Assuming Moore's law, this drops to about 7.2 years.

  24. Re:Getting there... by tep-sdsc · · Score: 5, Informative

    Funny, we did this work almost a year ago, and someone finally notices :-(

    Yes, this is a very small part of the total theorectical key space.

    But its exactly the part of the space that is most "interesting"; this is the part that will most likely be searched by an attacker AND the part that is most likely to have a real, user-selected password.

    The original goal (years ago) was to allow us to verify that our users weren't using passwords that would be likely to be found by an attacker.

    Yes, passwords are *supposed* to be stored in shadow files that are not accessible, except by root, but in practice, it is often discovered out in the Real World, especially at larger multi-vendor sites, that user password hashes are copied between machines, stored in databases, and in general available to an attacker who does not yet have root.

    These are the same sites that often can't or haven't converted to md5() hashes, as they have older legacy OSes that don't do md5(). Note that even though Sun "supports" md5() hashes, they don't support them everywhere and it certainly isn't seamless. Don't get me started about AIX. Linux and the *BSD folks are way ahead of most of the commercial UNIX variants.

    As for the scalability, read the whole paper. We used the largest single machine at SDSC, but its rather dated in terms of crypt() performance. A distributed.net-style project using typical home machines would win, IF you could get a thousand or so people to cooperate.

    The Terabytes of storage in a single filesystem didn't hurt in the sort/merge phases either.

    Personally, I'm a Kerberos fan :-)

  25. Re:You missed the point by AKAImBatman · · Score: 3, Informative

    The DEFAULT is still DES/crypt. Why not change it

    Because Sun guarantees that every piece of software ever written for Solaris will continue to work in new versions. Some would say that they're penalizing the rest of us for those few users still using 10 year old programs. And yet, there's something to be said for "working out of the box".

    You're paying your Unix admins anyway. You might as well have them do something more useful than playing NeTrek all day while the system happily chugs along.

  26. Re:MD5. by scheme · · Score: 2, Insightful
    From personal experience with cracking passwords, I wouldn't consider unmodified MD5 to be very secure. My computer can test 5 million MD5 hashes a second, or the entire 8-character password space in ten months.
    You're mistaken. If you assume that a 8 character password only has upper and lower letters and numbers there are 218340105584896 possible combinations. That would take your computer about 7 years to test the space completely. If you allow passwords to have punctuation then this increases a lot more.
    --
    "When you sit with a nice girl for two hours, it seems like two minutes. When you sit on a hot stove for two minutes, it
  27. salt and recursive crypt by goombah99 · · Score: 2, Insightful
    They have a database of all possible hashes. Your scheme would mean that an attacker would have to do three lookups, instead of one.

    No its not that simple. If it were just a database lookup then simply increasing the size of the salt a million fold would be all that was neccessary to foil any pre-computed attack. The important point in this article is that they it only takes 80 minutes to compute the crypts given the salt.

    thus one way to defeat this is to hide the salt as follows. The attack requires stealing the hashed password file. Each entry will be of the form

    SALT, HASH_code

    since the salt is given they could run their computer for 80 minutes and test 209 billion inversions of the hashcode. However if the stored item were instead: SALT2, crypt( SALT1, crypt(passwd)) then you would have to crack the first one to get the salt for the second. now iterate this.

    --
    Some drink at the fountain of knowledge. Others just gargle.
  28. crypt(3) cracking. by thisissilly · · Score: 2, Informative
    so how fast could they do it with 10 1k uniprocessor machines? or 20 $500 machines?

    If you are interested, you can take a look at a paper I wrote (back in 1997) on the power of cracking with ten 200MHz Pentium Pro machines.

  29. Re:You missed the point by dlippolt · · Score: 4, Interesting

    as far as i'm concerned, sun's pam configuration and flexible login setup only applies to solaris 9 and above. after trying to come up with a sitewide md5 solution i found solaris 8 to be terribly difficult to work with. dont get me started on their broken ldap libraries.

    several datacenters i work with independently only offer solaris 8 so "why aren't you using the latest sun distro's" falls on my deaf ears. the huge body of vendor supplied software which calls for solaris 8 just makes it worse.

    nis implementations that pass these crypt values around the network just makes keeping them inaccessible to users a nightmare.

    crypt-for-passwords is one of those "standard unix" methodologies that needs to have already died a horrible death. the original title of this topic was hopefully appropriate.

  30. That's what I like to see... by dmccartney · · Score: 5, Funny
    From the article:
    In cases where two sets of options produced insignificantly different speeds, a physical binary decision device (U.S. quarter coin) was flipped to determine which would be used.
    That had to be fun for them to write up.
    I am going to go convert two of my physical binary decision devices into a cup of coffee.
  31. Storage. by Greger47 · · Score: 2, Interesting
    Using SDSC's prodigious computing facilities, they precomputed 207 billion crypt() hashes in 80 minutes.

    Yes, yes, but where did he store them?

    /greger

  32. "Physical Binary Decision Device" by Isao · · Score: 2, Funny

    A quarter.

    1. Re:"Physical Binary Decision Device" by Laplace · · Score: 2, Funny

      Oh yeah, a quarter. High roller; fat cat throwing your money about. A penny works just as well for me.

      --
      The middle mind speaks!
  33. Cheating the Crypto? by suwain_2 · · Score: 3, Interesting

    I'm really not all that familiar with the inner workings of cryptography, but it seems like it'd make sense to do more system-specific hashing. (Not in all cases, of course.)

    For example, I was looking at the MySQL tables on a site I run, and realized that my password hash there is the same as on other boxes I have accounts on. For example, 5f4dcc3b5aa765d61d8327deb882cf99 is the MD5 sum of "password," anyone with access to a set of passwords could simply skim through looking for this and other well-known hashes.

    In many cases, wouldn't it make a fair amount of sense to use machine-specific algorithms for generating password hashes? It could even be something simple, like taking the hash of "$hostname-$username-$password". You could generate all the hashes you wanted, but if you didn't know my username and the hostname, the hash would end up being different. The end result is that, even though I (insecurely, I know) use the same password (and often, the same username), I would have a different password hash on each machine; you'd have to know all three fields before you could brute-force my password.

    Is there something I'm overlooking? This idea seems like it'd work out really well; I can't possibly have just described some revolutionary new idea, though.

    --
    ________________________________________________
    suwain_2 :: quality slashdot p
    1. Re:Cheating the Crypto? by DukeyToo · · Score: 4, Informative

      You're overlooking the random salt value, which is different on each machine, or even the same machine for different accounts. So, generally you would have a hash of "$salt-$password".

      The problem mentioned with crypt() is that the $salt value is very small (1.5 bytes), thus making dictionary attacks feasible. If MySQL is not using salt values, then they risk similar attacks.

      --
      Most writers regard truth as their most valuable possession, and therefore are most economical in its use - Mark Twain
    2. Re:Cheating the Crypto? by Anonymous Coward · · Score: 2, Informative

      No, you've just discovered recommended practices, that's all ;)

      Assuming the hash itself can't be attacked (i.e. there's a weakness in the hash that lets you know when one password is "close" to another password), there's still a lot of ways to attack a hash.

      The first is to run a dictionary attack on it. Solution: disallow dictionary words. The second is to look through all the hashes for multiple users with the same hash (thus the same password). Solution: incorporate the username into the salt so that two users with the same password have different hashes. Lastly, incorporate some "site identifier" in the hash so that the same username/password combo results in different hashes on different systems.

      And the last thing is: don't let people get at your hashes. Treat them as if they were passwords.

      Oh yeah--and none of this applies to crypt()--because your salt space is so limited, you can't put a username and site id in there. It's better (albeit still crappy) to just choose a random set of two characters and prepend it to the resulting hash. Which is what crypt() does.

  34. Re:You missed the point by AKAImBatman · · Score: 4, Interesting

    But my point still holds. Sun wants to maintain backward compatibility. Period. That's separate from suck-add implementations of the PAM authentication method. And you're lucky. Last time I administrated Solaris boxes (other than my home workstation), I was stuck with Solaris 7. Trust me, that hurt.

    nis implementations that pass these crypt values around the network just makes keeping them inaccessible to users a nightmare.


    I feel your pain. That's going to be a difficult one to solve though. How does a user authenticate on a network if they can't pass their hash? One could add public key encryption on top of the authentication protocol, but one slip up in key management and the whole deck of cards collapses. After all, how long will it be until we see a worm that uses distributed power to begin generating all possible MD5 hashes? A daunting task to be sure, but certainly not beyond the current state of computing power.

  35. on OS X by VValdo · · Score: 3, Interesting

    In Jaguar (OS X 10.2) and earlier, type:

    nidump passwd .

    In Panther (10.3+) it will not show the hashes, and I believe a different algorythm is used anyway.

    W

    --
    -------------------
    This is my SIG. There are many like it, but this one is mine.
    1. Re:on OS X by Permission+Denied · · Score: 3, Informative
      nidump passwd .

      In Panther (10.3+) it will not show the hashes, and I believe a different algorythm is used anyway.

      In 10.3, the netinfo entries contain a reference to a file and this file contains the hashed password. Of course, the file is readable only by root. I was pretty vocal about this problem so I'm glad to see it fixed. Each user has their hash stored in a separate file, which I guess could be useful. At least it cuts down on pointless parsing.

      The hash algorithm used is apparently MD5, but they don't store the hashes in the usual textual MD5 representation. I guess they really hate parsing.

      Even more fun was if you used netinfo for network authentication, all hashes for all users on the network were available to the world, not just authenticated users. This meant you had to restrict access to your netinfo server to an IP range to avoid advertising your hashes to the Internet. Thankfully they started deprecating netinfo network authentication in 10.2, but this was recommended practice with 10.1 Server.

  36. Just what is being crtiqued? by i_r_sensitive · · Score: 4, Insightful
    Sounds more like a stinging indictment of weak passwords than crypt().

    Reading the article there is no way that teracrack is going to deal with a strong password, the hash won't be present in it's table.

    Regardless of algorithm, the weak passwords will allways be the first to fall. We can all stop using crypt() and start using md5 hashes, but the same techniques can be applied again, and again the first passwords to fall will be the weak ones.

    I hate to sound like a Luddite, but technical problems aren't allways best fixed with more technology. The best use of teracrack that I can see, is the same use that it's predecessor had, to identify weak passwords and identify them to the user and admin to ensure that this core problem is addressed.

    --
    "Talk minus action equals nothing" - Joey Shithead, D.O.A.
    "Talk minus action equals /." -
  37. That's not how it's done... by Duncan3 · · Score: 2, Insightful

    And yet key loggers and social engineering are still exactly as fast and effective as they were when they were invented...

    Think of the children, Moore's children!!!

    --
    - Adam L. Beberg - The Cosm Project - http://www.mithral.com/
  38. not a new concept, but a new practical limit by sir_cello · · Score: 4, Interesting

    Not a new concept, but novel given the use of modern computing resources.

    I (and probably others, I claim no novelty, only an inventive step :-) wrote software in 1991/1992 to do this: unfortunately sun4 MP's and about a gigabyte of disk were the best we had.

    Rather than precompute the entire crypt() space, we precomputed the space for well known words (and combinations of those words with different prefix and suffix), because for any individual word, there are only 32 [I think from memory - 5 bits?] combinations that it can crypt to given the random salt that was possible.

    Because of available disk space, we couldn't store the entire precomputed output: so we chose to only store the first N bits of it. This was configurable. I cannot remember the exact figure - sure I could dig the code up out of an old CDROM archive :-). The output was also stored in bitwise numerical order - matching divide/2 matching very fast.

    So the password cracker would then mmap() the couple of gigabyte file, then easily find (or not find) a candidate prefix. If it found the prefix, it ran a few trial crypt()'s to ensure an exact match. In practice, because of the lack of diversity in passwords, there were few false candidate matches: so the password cracker had some extremely large hundreds/millions of equivalent cracks per second as a result of mostly just not finding comparisons, and a few trial runs for succesful targets (I think the running rate of the other two popular crackers at that time was about 100K cracks/second).

    Anyway - that was a long time ago - fun and games as a student. I still have the source code :-).

  39. Crypt was in "games" by twenex · · Score: 3, Interesting

    In the Bell Labs UTS Ninth Edition (V9 Unix) released in 1986, the crypt command was moved to manual section 6, games, along with trek, bridge, boggle, etc. Crypt (the lib in section 3) still existed, however.

    1. Re:Crypt was in "games" by raytracer · · Score: 3, Interesting
      In the Bell Labs UTS Ninth Edition (V9 Unix) released in 1986, the crypt command was moved to manual section 6, games, along with trek, bridge, boggle, etc. Crypt (the lib in section 3) still existed, however.

      That's because the two items (crypt(1) and crypt(3)) utilize entirely different algorithms. The crypt(3) library is of course your everyday average DES, which as this thread notes, has gotten a bit long in the tooth. The crypt(1) command however was an entirely different algorithm based upon the idea of a rotor machine. It only has a single rotor however, which makes cracking it pretty darned easy, probably _way_ simpler than the original German 3 rotor enigma machine. The implementation that is still distributed in FreeBSD (/usr/src/usr.bin/enigma) is from the Crypt Breaker's Workbench, a near automated cracking utility for this code.

      Cracking ordinary DES isn't a game quite yet, but it's certainly not the best choice for a password scheme.

  40. Encryption and Big Brother by lisany · · Score: 2, Funny

    Its stories like this that remind us that Big Brother would chew through any encryption a user might have.

    "Oh, 2048 bits? *yawn* We'll have the results for you in a month."

  41. Score -1, wrong by wirelessbuzzers · · Score: 2, Interesting

    A symmetric key is twice as hard to brute-force for every bit you add. Nobody "brute-forces" asymmetric (public) keys by trying all possible keys; rather, they try to reverse the mathematical process used to construct the public key from the private one. In the case of RSA, this is multiplication, so you have to factor a number. Currently, the fastest public method to do this is the Multiple Polynomial Number Field Sieve; to make something twice as hard with this, you have to add something like 0.3 to the cube root of the number of bits.

    RSA keys (and elliptic curves, and DH keys) are much more likely to be severely weakened by improvements in mathematics than say Blowfish or Rijndael keys. If someone improves the method to reduce the constant in the exponent of the NFS (which would probably be extremely difficult), the 1024-bit RSA key could fall easily; otherwise, even Moore's law gives it only a decade or so to live.

    --
    I hereby place the above post in the public domain.
  42. Re:Need better crypto by Directrix1 · · Score: 2

    I think your statement is redundant, guy.

    --
    Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  43. Just on a poke guess.... by Kjella · · Score: 2, Interesting

    Based on the fact that we're somewhere around breaking RSA-576 and RC5-72. If we assume proportionality:

    576 (asymmetric) / 72 (symmetric) = 8
    1024 (asymmetric) / x (symmetric) = 8 => x=128

    So I'm guessing it's about 2^(128-72) = ~10^16 times safer. Which should be enough for a while too, but not quite that long.

    Kjella

    --
    Live today, because you never know what tomorrow brings
  44. Dying by RedHat_Linux_Man · · Score: 2, Funny

    Looks like its the crypt for crypt() I couldn't resist, someone had to say it.

  45. Or even easier... by Trejkaz · · Score: 2, Funny
    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  46. I wrote the MD5 based crypt() for a reason... by phkamp · · Score: 5, Informative

    Back in 1994 I wrote the MD5 based crypt() which it seems almost everybody has adopted from FreeBSD by now: *BSD, Linux/GLIBC, Cisco and appearantly even Solaris.

    The important properties of a good crypt() algorithm are still:

    1. Input password is not length or charset restricted.

    2. The algorithm is complex enough to not lend itself easily to hardware implementations (FPGAs etc).

    3. The Salt is big enough that precomputing dictionaries is not feasible.

    You will notice that apart from #1, these are not quantified, DES-based crypt() fulfilled #2 and #3 back in its days, but no longer does so. In a similar way, some day we will declare my MD5 based password scrambler as failing one or both of those criteria because password scrambling is not a case of finding "the" algorithm and putting a checkmark in the box, it needs to on periodically evaluated and improved every decade or so.

    That is why I put the $1$ prefix on my MD5-based crypt(), so that you can update to a better algorithm when you need to. OpenBSD has already added a couple of stronger SHA based algorithms ($2...) and more can be added in the future.

    In the absense of any other "IANA" for this, I would appreciate if you would register your "magic strings" with me so we don't have collisions.

    If you're still using DES-based crypt(), switch to MD5 based crypt() now. Don't wait any longer, you are already 9 years late (IMO).

    It's even "free as in free beer" :-)

    --
    Poul-Henning Kamp -- FreeBSD since before it was called that...
    1. Re:I wrote the MD5 based crypt() for a reason... by Darren.Moffat · · Score: 2, Informative

      Yes Solaris does have it. When I integrated it into Solaris (along with help from Alec Muffett & Casper Dik) we made it a pluggable framework by building on the data format you created - thank-you for having the foresight to use the $ char as a "magic" switch.

      Details of the pluggable framework with a policy that allows for automigration on password change are available here: crypt.conf and policy.conf

      Solaris source code is NOT needed to add new algorithms all code that uses crypt(3c) should continue to work. Code that changes passwords should use crypt_gensalt(3c) to create the salt.

    2. Re:I wrote the MD5 based crypt() for a reason... by Dr.Ruud · · Score: 2, Interesting

      Phil Zimmermann says this about MD5:

      "The message digest algorithm used by older versions of PGP is the MD5 Message Digest Algorithm, placed in the public domain by RSA Data Security, Inc.

      MD5 is a 128-bit hash algorithm. In 1996, MD5 was all but broken by a German cryptographer, Hans Dobbertin. Although MD5 was not completely broken at that time, it was discovered to have such serious weaknesses that no one should keep using it to generate signatures. Further work in this area might completely break it, allowing signatures to be forged.

      If you don't want to someday find your PGP digital signature on a forged confession, you might be well advised to migrate to the new PGP DSS keys as your preferred method for making digital signatures, because DSS uses SHA as its secure hash algorithm." [page 234 of the pdf which comes with PGP 6.5.1. int]