Hacking&Security Workshop

ตอนนี้ MaYaSeVeN ได้ย้าย Blog ไปที่ http://blog.mayaseven.com


Monday, August 22, 2011

ฉีกกฏการตั้ง Passwords ตามทฤษฏีเดิมๆ

ฉีกกฏการตั้ง Passwords ตามทฤษฏีเดิมๆเพราะคนจำยากแต่คอมแกะง่าย :P ท้าวความซักนิดละกันกาลครั้งหนึ่งนานมาแล้วมี Someone กล่าวไว้ว่าการตั้ง Passwords นั้นควรตั้งให้มันซับซ้อนเข้าไว้ให้มีตัวเล็ก , ตัวใหญ่, ตัวเลข, สัญลักษณ์พิเศษ ให้ตายเถอะ Robin ใครมันจะไปขยันตั้ง ขยันจำ ฟ่ะ ><" หรือมีบางกลุ่มพยายาม แต่งคำจากคำธรรมดาให้แลดูซับซ้อน เช่น จาก Anonymous เป็น @n0nym0u5 หรือจาก superman เป็น 5up3rm4n  หรือจาก immortal เป็น !mm0r7@1 เราจะเห็นว่ามันแลดูซับซ้อนและคาดเดาได้ยาก แต่ !! หมายถึงใช้คนเดา ถ้าใช้คอมเดาเนี่ยมันก็จะทำตามอัลกอริทึมของคนเขียนโปรแกรม Crack แต่ถ้าจะเอาจริงๆมันต้อง Brute Force ซึ่งจุดอ่อนในการถูก Brute Force สำเร็จนั้นสาเหตุมาจาก Passwords ที่ตั้งนั้นมีกรณีที่เป็นไปได้น้อยเกินไป เราจะมาดูแนวคิดใหม่กัน :)

และจากแนวคิดเก่าๆเราจะเห็นว่าการตั้ง Passwords มักจะตั้งเป็นแค่คำๆเดียว ทั้งที่ไม่เคยมีกฏว่าตั้งรหัสผ่านจะต้องตั้งด้วยคำๆเดียว ใช่แล้ว !! ผมกำลังจะบอกว่ามาตั้งรหัสผ่านเป็นประโยคกันเถอะ !!! อ้าวแล้วมันจะไม่ถูก Crack ได้ง่ายๆเหรอ เราจะมาดูแนวคิดกัน สมมุติแนวคิดเก่าเราตั้งรหัสผ่านว่า !Mm0r7@1 คำนี้ประกอบไปด้วย อักษรตัวเล็กที่เป็นไปได้คือ 26 ตัว , อักษรตัวใหญ่ที่เป็นไปได้คือ 26 ตัว, ตัวเลขที่เป็นไปได้คือ 10 ตัว, สัญลักษณ์พิเศษที่เป็นไปได้ประมาณ 30 ตัว รวมกรณีที่เป็นไปได้ของรหัสผ่านหนึ่งตัวคือ 26 + 26 + 10 + 30 = 92  ในที่นี้รหัสผ่าน 8 ตัวกรณีที่เป็นไปได้คือ
(Brute Force ด้วย ตัวเล็ก+ตัวใหญ่+ตัวเลข+สัญลักษณ์พิเศษ)

92^8  = 5,132,188,731,375,616 กรณี


สำหรับแนวคิดใหม่ผมเสนอแค่ประโยคง่ายๆ "This is a Book" ซึ่งประกอบไปด้วยตัวเล็กและตัวใหญ่ (บางทีประโยคก็มีสัญลักษณ์พิเศษได้เช่น ,! , ? , : , ;แต่ในที่นี้ไม่นำมาร่วมคิดคำนวณด้วยถือว่าต่อให้ :P) กรณที่เป็นไปได้ Passwords หนึ่งตัวคือ 26+26+1 = 53 ในกรณีนี้มี 14 อักขระได้กรณีที่เป็นไปได้คือ(Brute Force ด้วยตัวเล็ก+ตัวใหญ่+ช่องว่าง)

53^14 = 1,379,946,262,057,143,768,386,569 กรณี

ปล.ลองคิดเล่นๆถ้าเราเอาสัญลักษณ์พิเศษมาคำนวณด้วยจะกลายเป็น (53+30)^14 เลยทีเดียว

ถ้าจะอ้าง Math ซักเล็กน้อยก็ Lim [x-->Inf] ((n^x)/(x^n)) = Inf (ภาษามนุษย์ก็คือตั้ง Passwords หลายตัวดีกว่าตั้ง Passwords ซับซ้อนแต่น้อยตัว)

สรุป  !Mm0r7@1 กับ This is a Book อันไหนจำง่ายกว่ากัน :P  This is a Book จำง่ายกว่าแถมยังปลอดภัยกว่าเป็นไหนๆ

ปล.แถมรูปส่งท้าย hash MD5 ของคำว่า This is a Book คือ 7cd2f6ba18175bdfc7e8a8d58432f1c7 ผมได้เขียนสคริปส่ง hash นี้ไป Crack บน 50 เว็บ Crack Passwords ชั้นนำซึ่งอัลกอริทึมของเว็บเหล่านั้นก็คือแนวๆ Rainbow Tables , Dictionary, Blah Blah Blah

ผลตามรูป

Crack MD5 {Blackbuntu}


ไม่มีเว็บไหน Crack hash This is a Book ได้ :) จุดสำคัญคือต้องตั้้งให้มันยาวไม่ควรต่ำกว่า 14 ตัวนะจ๊ะยิ่งมากยิ่งดี

อ้างอิงเวลาในการ Crack Passwords ตามนี้ด้วยก็ได้

"มาดูกันว่า Password ที่คุณตั้งจะสามารถถูก Crack(ถอดรหัส) ด้วยเวลานานแค่ไหน"

http://mayaseven.blogspot.com/2011/04/password-crack.html




Written by MaYaSeVeN