Pages

හොඳ හෝ නරක comment එකක් දාල යන්න අමතක කරන්න එපා.. :)

Saturday, June 5, 2010

මොකක්ද මේ Password Cracking?

දකින්න ඇතිනෙ කලින් post එකක් තියෙනව "මොකක්ද මේ Brute Force Attack කියන්නෙ?" කියල. එතනදි අපි password cracking method එකක් වන Brute Force Attack එක ගැන පොඩි හැදින්වීමක් කලානෙ. මං හිතුව password cracking ගැන තව ටිකක් වැඩි දුර කථාකරන්න.

ඔක්කොටම කලින් password එකක් හොයාගන්න කරන සාමාන්‍යයෙන් යොදාගන්නා ප්‍රාථමිකම මට්ටමේ ක්‍රම විධි පිලිබඳ සලකා බලමු.






1. Social Engineering:

තමා තුල තබා ඇති විශ්වාෂය ප්‍රයෝජනයට ගනිමින් (හෝ විශ්වාසයක් ගොඩනගා ගනිමින්) password ලබා ගැනීම මෙසේ හදුන්වයි.

2. Shoulder surfing:

මෙහිදී කරන්නෙ password එක type කරන අවස්ථාවක එය නිරීක්ශනය කර එය ලබාගැනීමයි.

3. Guessing:

දුර්වල password එකක් යොදා ඇති අවස්ථාවක එය ඉතා පහසුවෙන් නිශ්චය කිරීම මින් අදහස්වේ.

අපි කලින් Brute Force Attack එක ගැන කතා කරපු නිසා මං ආයෙ ඒ ගැන කතා කරන්න යන්නෙ නෑ.. ඔයාට ඒක මෙතනින් බලන්න පුලුවන්.
දැන් මං මුලින්ම කතා කරන්නෙ Dictionary Attack එක ගැනයි.



Dictionary Attack:

මේකෙදි වෙන්නෙ dictionary එකේ (ඒ කියන්නෙ එදිනෙදා භාවිත වෙන වචන) සියලුම වචන ගලපල password එක crack කරන එකයි. (A dictionary attack is when a text file full of commonly used passwords, or a list of every word from the dictionary is used against a password database.)
හැබැයි මේ ක්‍රමයෙන් strong password එකකට නම් බලපෑමක් ඇති වෙන්නෙ නෑ. කොහොමද හොඳ ආරක්ශිත password එකක් (strong password එකක්) හදාගන්නෙ කියල දන්නෙ නැති අයට මං ඒ ගැන පස්සෙ post එකක් දාන්නම්. මේක බලපාන්නෙ, සාමාන්‍ය එදිනෙදා වචන තම password එක හැටියට තියාගන්න අයටයි.

මේ ක්‍රමය, ඒ කියන්නෙ dictionary attack එකක් වඩා සාර්ථක කරගන්න ක්‍රම දෙකක් තියෙනව.

පලමු ක්‍රමය වන්නේ ඉතා හොඳ දත්ත විශාල ප්‍රමාණයකින් යුක්ත dictionary එකක් භාවිතා කිරීම. එහමත් නැති නම් dictionary කිහිපයක් භාවිත කිරීම. විශේෂයෙන්ම විවිධ භාෂා වලින් යුක්ත dictionary කිහිපයක් භවිතා කල හැකියි.

දෙවෙනි ක්‍රමය වන්නේ මෙම ක්‍රමය සමගම සම වචනය සමගම ඊට නිතර භාවිත වන අනිකුත් අකුරු සංඛ්‍යා සහ සංකේත ගලපමින් සහ එය යෙදිය හැකි විවිධ ආකාර වලින් යොදා බලමින් උත්සාහ කිරීමයි.
උදාහරණයක් විදිහට කියනවනම් password එක "password" යැයි සලකා බලන අවස්ථාවේ ඊට, pAssw0rd, drowssap, Password වැනි යෙදිය හැකි සියලු ආකාරවලින්ද ගලපා බැලීමයි.
මේකත් ටිකක් වෙලා යන වැඩක්...

ඊලඟට Rainbow Tables ගැන කතා කරමු..



Rainbow Tables:

Rainbow Table එකක් කියන්නෙ සියලුම අකුරු, සංඛ්‍යා හා සියලු සංකේත ගැලපිය හැකි සියලු ආකාරයට ගලපමින් සකසා ගත්තු list එකක්(ඇත්තෙන්ම කියනව නම් hash values list එකක්.).
(A Rainbow table is a huge pre-computed list of hash values for every possible combination of characters.)













Password hash කියල අපි හදුන්වන්නෙ mathematical algorithm එකකක් මගින් හදුනාගත නොහැකි රටාවකට පරිවර්තනය කරගත් password එකකටයි. A hash is a one way encryption. ඒ කියන්නෙ hash එකක් නැවත orginal string එක බවට පරිවර්ථනය කල නොහැකියි.
Database එකක ආරක්ෂාකාරීව password store කරන්න හුඟක්ම භාවිත කරන hashing algorithm එක වන්නේ MD5ය.

මෙහිදී අපි එවැනි website එකකට register වෙන අවස්ථාවක අපි enter කරන password එක MD5 Algorithm එක හරහා එන hash value එක තමයි database එකේ store කරන්නෙ.

උදාහරනයක් විදිහට මම password එක විදිහට "hello" කියල enter කලහම MD5 algorithm එක හරහා database එකේ store කරන password එක "fea0f1f6fede90bd0a925b4194deac11" වැන්නකි. ඉතින් මෙවැනි යෙදිය හැකි සියලුම ආකාරයෙ hash values සහිත Rainbow table එකක් Brute force attack එකකට වඩා පහසුවෙන් password එකක් crack කරගැනීම සඳහා යොදා ගත හැක.

ඔන්න හෙට ඉදන් ආයෙත් මට boading ගත වෙන්න වෙනව..
ඉතින්.. ඉස්සරහට තව ටික ටික කතා කරමු..

4 comments:

  1. Shoulder surfing : Sniffing (*බොහෝ දුරට networking තමා) !!!! , හොඳ ලිපියක් ;දිගටම ලියන්න !!!

    ReplyDelete
  2. Ashan මට නිතරම comments වලින් හොඳ සහයෝගයක් දෙනව.. tnx මචන්..

    ReplyDelete
  3. තමන් කැමති සබ්ජෙක්ට් එකේ තියන ලිපි දැක්කාම කොමෙන්ට් නොදා ඉන්න පුලුවන්ද ???? :P

    ReplyDelete
  4. එළකිරි... tnx again මචන්.....

    ReplyDelete