A munged password (pronounced) refers to the practice of creating a password with common replacement strategies.[1] For example, replacing 'S' with '$' or '5' in a password. Alternatively, it can be seen as an application of Leet speak. It can lead to creation of secure passwords which are easy to remember, although they are still susceptible to brute-force guessing.
"Munge" is sometimes backronymmed as Modify Until Not Guessed Easily. The usage differs significantly from "mung" (Mash Until No Good), because munging implies destruction of data, while mungeing implies creation of strong protection for data.
Passwords are used to gain access to computer resources, and computer users generally choose passwords that are easy to remember but therefore insecure. Simple passwords are easily hacked by dictionary attacking software, and so having a munged password could be useful as a protection against hackers.
If a network administrator supplies a password that is too difficult to remember, or requires that passwords be changed frequently, users tend to write their passwords down to help them remember. Passwords can often be found on sticky notes under keyboards, behind pictures, or hidden among other desktop items—another security risk.[2]
Mungeing helps to create a strong password that the user can remember easily. The user may choose any word that they like and is then able to modify it to make it stronger.[3]
A strong password is often thought to require characters from at least three of the following four character sets (In addition to including characters from different sets, the password length is also a metric used to determine its strength.):[4]
Lower case | abcdefghijklmnopqrstuvwxyz | |
Upper case | ABCDEFGHIJKLMNOPQRSTUVWXYZ | |
Numbers | 0123456789 | |
Special | !@#$%^&*-=_+<>? |
Adding a number and/or special character to a password might thwart some simple dictionary attacks. However, common words should still be avoided to the simplicity of automated brute force testing of well known munged variations of the words. For example, the password "Butterfly" could be munged in the following ways:
8uttErfly | "B" gets replaced by 8, a similar looking number, and "e" gets capitalized | |
Butt3rfl? | "e" gets replaced by 3, a similar looking number, and "y" gets replaced by ? (y, as in "why?") | |
Bu2Terfly | 2 consecutive t's are replaced by "2T" (2 t's) | |
8u2T3RfL? | A combination of all of the above |
The substitutions can be anything the user finds easy to remember, and which may increase an attacker's difficulties, such as:
- | a=@ | b=8 | c=( | d=6 | e=3 | f=# | g=9 | h=# | i=1 | i=! | k=< | l=1 | - | l=i | o=0 | q=9 | s=5 | s=$ | t=+ | v=> | v=< | w=uu | w=2u | x=% | y=? |
For high-security applications, mungeing may not be very effective, because it only adds 23 bits of entropy, thus increasing the time needed to perform a brute force dictionary attack by a factor of 4–8. The increase in search space obtained by mungeing a few characters of a known word is easily matched by the continuous increase in processing power (which is more or less equivalent to "cracking speed") computers have been experiencing for some decades as a result of Moore's Law, although this can be countered for some applications by limiting password attempts to either one per few seconds or 5 per longer period of time, usually five minutes to one hour.
As a rule of thumb, use of single well known words, including after commonly used munged substitutions, should be avoided. Instead, combinations of multiple random words should be used, which can be remembered easily by forming a mental story from them.