Password Cracking

การใช้ รหัสผ่านเป็นวิธีการหลักในการพิสูจน์ตัวผู้ใช้ของระบบคอมพิวเตอร์ส่วนใหญ่ คุณสามารถเข้าถึงระบบ โดยการบอกว่าคุณเป็นใครโดยการใช้ login และบอกคอมพิวเตอร์ถึงความลับที่รู้เฉพาะคุณและคอมพิวเตอร์เท่านั้น นั่นคือ รหัสผ่านของคุณ

คุณได้รับการคาดหวังว่าจะเก็บรหัสผ่านเป็นความลับโดยการไม่บอกรหัสผ่านกับใคร หรือเขียนบันทึกไว้ ส่วนคอมพิวเตอร์จะเก็บรหัสผ่านให้เป็นความลับโดยวิธีการเข้ารหัสที่ยากต่อการถอดรหัส เมื่อเก็บรหัสผ่านไว้

ระบบการเข้ารหัสผ่านไม่สามารถย้อนกลับกระบวนการ(reverse engineered)ได้ ดังนั้นการ crack รหัสผ่าน จึงเป็นขั้นตอนที่เป็นไปโดยอัตโนมัติของการเดารหัสผ่านส่วนใหญ่เท่านั้น การ crack รหัสผ่านโดยค้นหาคำใน dictionary ถูกใช้กับวิธีการเพิ่มเติมบางอย่าง ซึ่งรวมถึงวิธีการปรับปรุงรหัสผ่านที่ได้รับการสนับสนุนมา หลายปี เช่น การเปลี่ยนตัวอักษร S,O และ I มาเป็นตัวเลข 5,0 และ 1 ถ้าจะ crack รหัสผ่านของเครื่องคอม พิวเตอร์ที่อยู่ในธุรกิจใดธุรกิจหนึ่ง ผู้ประสงค์ร้ายก็จะใช้ประโยชน์จาก dictionary ที่มีคำเกี่ยวข้องกับธุรกิจ นั้นเพื่อใช้ crack หารหัสผ่าน โปรแกรมสำหรับ crack รหัสผ่านเป็นส่วนมาตรฐานของชุดเครื่องมือของ hacker ทุกคน

ไฟล์รหัสผ่าน

ไฟล์รหัสผ่าน /etc/passwd ประกอบด้วยเจ็ดส่วนที่แยกออกจากกันด้วยเครื่องหมาย colon (:) แต่ละส่วน คือ user name, รหัสผ่านที่ถูกเข้ารหัสไว้, user ID ที่เป็นตัวเลข, group ID ที่เป็นตัวเลข, GECOS, home directory และโปรแกรมที่จะรันเมื่อ log in เข้ามา (startup program)

user name มีความยาว 8 ตัวอักขระหรือน้อยกว่า ตัวอักขระตัวแรกต้องเป็นอักษรตัวเล็กและไม่สามารถมี ตัวอักขระ # หรือ @ ตัวอักขระพิเศษสองตัวนี้ใช้สำหรับลบตัวอักขระตัวเดียวและลบตัวอักขระทั้งบรรทัด วิธีนี้เป็นวิธีเดียวสำหรับแก้ไขตัวอักขระที่ login prompt

ส่วนที่สองเป็นรหัสผ่านที่ถูกเข้ารหัสไว้ จริง ๆ แล้วมันไม่ใช่ส่วนที่ได้รับการเข้ารหัสของรหัสผ่าน แต่เป็นการ เข้ารหัสของค่า 0 โดยใช้รหัสผ่านและ "salt" เป็น key ส่วนนี้มี 13 ตัวอักษร สองตัวอักษรแรกเป็น "salt" ประกอบด้วยตัวอักษรสองตัวซึ่งเพิ่มเข้าไปในรหัสผ่าน เพื่อสร้าง key ขึ้นมา ทำให้สามารถสร้างรูปแบบการ เข้ารหัสได้ถึง 4,096 รูปแบบสำหรับรหัสผ่านเดียว ส่วนนี้อาจจะต่อท้ายด้วย comma (,) และตัวอักขระสอง ตัวซึ่งเกี่ยวกับ password aging ตัวอักขระตัวแรกบอกถึงจำนวนสัปดาห์ที่มากที่สุดที่รหัสผ่านใช้ได้ อักขระ ตัวที่สองบอกถึงจำนวนสัปดาห์ที่น้อยที่สุดก่อนที่รหัสผ่านสามารถเปลี่ยนได้ ชุดของตัวอักขระที่ใช้ในรหัสผ่าน ที่ถูกเข้ารหัสไว้ประกอบด้วย อักขระ 64 ตัว ที่แสดงถึงค่าจาก 0 ถึง 63 เรียงตามลำดับคือ เครื่องหมายจุด, เครื่องหมาย slash (/), 0 ถึง 9, อักษรตัวใหญ่และอักษรตัวเล็ก

ส่วนที่สามเป็น user ID (UID) เป็นเลขจำนวนเต็ม 16 บิตใช้สำหรับบอกความเป็นเจ้าของและการยอมให้เข้า ถึงทรัพยากรของระบบ UID 0 หมายถึงมีสิทธิ์ของผู้บริหารระบบ (superuser) UID -1 และ -2 ถูกใช้โดย NFS, UID -1 ใช้สำหรับผู้ใช้ที่ไม่ได้รับการพิสูจน์ตัว (unauthenticated user) จะได้รับการอ้างถึงเป็น nobody, UID -2 ใช้สำหรับผู้บริหารระบบของอีกระบบหนึ่งซึ่งกำลังเข้าถึง file system ที่เขาไม่มีสิทธิ์ของผู้บริหารระบบ

ส่วนที่สี่เป็น group ID (GID) เป็นเลขจำนวนเต็ม 16 บิต ใช้สำหรับแบ่งกลุ่มผู้ใช้เข้าด้วยกัน เพื่อให้พวกเขา สามารถใช้ไฟล์ร่วมกันได้ใน group เดียวกัน โดยไม่ต้องอนุญาตให้ทุกคนเข้าถึงได้

ส่วนที่ห้าเป็นส่วนของ GECOS เป็นส่วนที่ใส่คำอธิบายหรือบรรยายถึงผู้ใช้คนนั้น ๆ โดยทั่วไปมักจะมี comma (,) แยกส่วนต่าง ๆ ของชื่อผู้ใช้, สถานที่, หมายเลขโทรศัพท์ที่ทำงานและหมายเลขโทรศัพท์ที่บ้าน ส่วนนี้จะถูก ใช้โดยคำสั่ง finger และคำสั่งอื่น ๆ ที่บอกชื่อจริงของผู้ใช้ได้

ข้อมูลที่เกี่ยวข้องกับ GECOS นี้ไม่ควรรวมอยู่ในไฟล์รหัสผ่าน จริงอยู่ที่การไม่ใส่ข้อมูลนี้ลงไป ทำให้ไม่มีความสะดวก คุณอาจต้องเปลี่ยน login ของผู้ใช้ให้เป็นชื่อจริงของผู้ใช้ แต่ข้อมูลส่วนนี้ช่วย hacker ให้สามารถ crack รหัสผ่านได้อย่างมาก เพราะมันให้ข้อมูลเกี่ยวกับผู้ใช้ ซึ่งนำไปสู่การเดารหัสผ่าน เครื่องมือที่ใช้ในการ บริหารระบบบางอย่างจะถามถึงชื่อของผู้ใช้ เบอร์โทรศัพท์ และข้อมูลขององค์กร แล้วจึงใส่ไปในส่วนของ GECOS นี้

ส่วนที่หกคือ home directory ของผู้ใช้ โดยปกติจะมีความยาวไม่เกิน 64 ตัวอักษร
2511843524_2188d11a68_o.jpg
johns:akd8aAfv8s1sM:1204:143:John Smith, 555-2345:/users/johns:/bin/ksh

ส่วนที่เจ็ดเป็นส่วนของ startup program ของผู้ใช้ มีความยาวไม่เกิน 44 ตัวอักษร ดังตัวอย่างเป็นส่วน ของผู้ใช้ John Smith ใช้ login "johns", home directory คือ /users/johns, startup program คือ /bin/ksh, UID=1024, GID=143

ผู้ใช้ที่ไม่มีรหัสผ่านสามารถสังเกตได้ง่ายเนื่องจากในส่วนของรหัสผ่านจะเว้นว่างไว้ สคริปท์ต่อไปนี้จะแสดง ทุก ๆ account ที่ไม่มีรหัสผ่าน

awk -F: `length ($2) <1 { print $1 }` \ < /etc/passwd

ไม่ควรอนุญาตให้มี account ที่ไม่มีรหัสผ่าน

SHADOW PASSWORD

shadow password นำเอาส่วนของรหัสผ่านที่ถูกเข้ารหัสออกจากไฟล์รหัสผ่านที่ทุกคนสามารถเข้าถึงได้ ไปไว้ในไฟล์ที่สามารถเข้าถึงได้โดยผู้บริหารระบบ(root)เท่านั้น ที่อยู่ของ shadow password นั้นจะแตกต่าง กันไปขึ้นอยู่กับการนำไปใช้ วิธีนี้จะขัดขวางการ crack รหัสผ่านเพราะผู้ใช้ทั่วไปไม่สามารถเข้าถึงรหัสผ่านที่ ถูกเข้ารหัสไว้ได้

ความเป็นมาของการเข้ารหัสรหัสผ่าน

แต่แรกนั้นการเข้ารหัสรหัสผ่านมารากฐานมาจาก M-209 rotor cipher ที่เคยใช้ในสมัยสงครามโลกครั้งที่สอง อย่างไรก็ตามในปลายทศวรรตที่ 1970 คอมพิวเตอร์มีความเร็วเพียงพอสำหรับการ execute อัลกอริทึมนี้ และมีช่องโหว่สำหรับการเดารหัสผ่าน

ในปีคศ.1979 Robert Moris, Sr และ Ken Thomson เขียนรายงานที่ได้รับการตีพิมพ์ใน Communication of ACM ซึ่งอธิบายถึงฟังก์ชันทางเดียว (one-way function)ชนิดใหม่เพื่อเข้ารหัสผ่านในระบบยูนิกซ์ มีรากฐานมาจาก National Bureau of Standard Data Encryption Standard (DES) algorithm ระบบยูนิกซ์ยังคงใช้ DES algorithm หลากหลายชนิดมาจนถึงปัจจุบัน รหัสผ่านของผู้ใช้ถูกใช้เป็น DES key เพื่อเข้ารหัสค่าคงที่ค่าหนึ่ง อัลกอริทึมนี้ทำงานช้าพอที่จะป้องกันการเดารหัสผ่าน

ตั้งแต่คศ. 1979 คอมพิวเตอร์ได้เพิ่มความเร็วในการประมวลผลขึ้นอย่างมาก ในปัจจุบันระบบ CPU เดียว เร็วขึ้นกว่าเดิม 150 เท่า ทำให้สามารถคำนวนอัลกอริทึมที่ทำงานช้าได้อย่างรวดเร็ว นอกจากนี้ DES encryption algorithm ได้รับการปรับปรุงในเรื่องความเร็ว ให้เร็วกว่าเดิมถึง 100 เท่า ในขณะที่เครื่อง VAX 11/780 สามารถ execute ได้ประมาณ 1.5 การเข้ารหัสต่อวินาที ระบบคอมพิวเตอร์ที่มี CPU หลายตัวนั้นได้รับรายงาน ว่าสามารถทำงานได้มากกว่า 6 ล้านการเข้ารหัสต่อวินาที

รายละเอียดปลีกย่อย

ส่วนนำเข้า(input) ของ password encryption algorithm คือรหัสผ่านของผู้ใช้ซึ่งจำกัดแค่ชุดอักขระแอสกี 7 บิต โดยทั่วไปจะเป็นอักขระที่สามารถพิมพ์ได้ที่อยู่บนคีย์บอร์ด อักขระเหล่านี้มีอยู่ 128 ตัว ความยาว ที่มากที่สุดของรหัสผ่านคือ 8 ตัวอักษร ดังนั้นจะมีรหัสผ่านที่เป็นไปได้มากกว่า 72,000,000,000,000,000 รหัส นอกจากนี้ยังเพิ่ม salt เข้าไปในแต่ละรหัสผ่าน ซึ่ง salt นี้จะมีค่าที่แตกต่างกันถึง 4,096 ค่า เพิ่มความ ซับซ้อนเข้าไปในอัลกอริทึมของการเข้ารหัสยิ่งไปขึ้นอีก รหัสผ่านและ saltจะถูกใช้เป็น key ในอัลกอริทึมการ เข้ารหัส(encryption algorithm) key นี้จะถูกใช้เพื่อเข้ารหัสตัวเลขที่มีค่าเท่ากับ 0 ส่วนนำออก (output) จากอัลกอริทึมนี้เป็นแถวของตัวอักขระ 13 ตัว อักขระสองตัวแรกคือ salt ตัวอักขระในแถวนี้ประกอบด้วย ตัวอักขระจากชุดตัวอักขระ 64 ตัว ประกอบด้วยตัวอักษรตัวใหญ่และตัวอักษรตัวเล็ก, ตัวเลข,เครื่องหมายจุด (.) และเครื่องหมาย slash (/) อัลกอริทึมนี้ไม่สามารถย้อนกลับกระบวนการ(reverse engineered)ได้ ดังนั้นที่ crack ได้จึงมาจากการเดาอย่างแท้จริง เป็นกระบวนการอัตโนมัติของการเดารหัสผ่านเกือบทั้งหมด ซึ่งสำเร็จได้ถึงแม้ว่าจะมีรหัสผ่านที่เป็นไปได้มากกว่า 300 quadrillion รหัส ผู้ใช้มักจะไม่ได้รับการให้ความรู้ เกี่ยวกับการเลือกใช้รหัสผ่านอย่างชาญฉลาด และเลือกรหัสผ่านที่มีเปอร์เซ็นต์ของการเป็นรหัสผ่านที่ สามารถเดาได้น้อยที่สุดเท่านั้น

การเลือกใช้รหัสผ่าน

การเลือกใช้รหัสผ่านเป็นสิ่งที่จำเป็นอย่างยิ่งสำหรับการรักษาความปลอดภัยของระบบ รหัสผ่านที่ดีคือรหัสผ่าน ที่ไม่สามารถ crack โดยใช้วิธีการ password cracking และสามารถจำง่าย

การจัดการเกี่ยวกับรหัสผ่านเริ่มที่ประเด็นของผู้ใช้ การให้ความรู้กับผู้ใช้เป็นสิ่งที่จำเป็นอย่างยิ่งในการรักษา ความปลอดภัยของรหัสผ่าน ความรู้นี้ควรประกอบด้วย วิธีการเซ็ตรหัสผ่าน วิธีการเลือกรหัสผ่านที่ดี และ ความสำคัญของรหัสผ่าน ผู้ใช้ต้องเข้าใจว่ารหัสผ่านที่ไม่ดีทำให้งานของพวกเขาตกอยู่ในความเสี่ยง เช่นเดียว กับงานของทุก ๆ คนที่ใช้ระบบ

ผู้จัดการระบบควรระวังเกี่ยวกับรหัสผ่านในระบบ การ crack รหัสผ่านเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการ ได้สิทธิ์ในระบบนั้น คุณสามารถใช้โปรแกรม password cracker กับระบบของคุณได้ แต่มันจะใช้ทรัพยากร ในการประมวลผลมาก จำเป็นต้องมีซอฟท์แวร์สำหรับการ crack รหัสผ่าน และ dictionary ทีได้รับการปรับ ปรุงให้เหมาะสมที่อยู่ในระบบที่อาจถูกใช้โดยผู้ประสงค์ร้าย ดังนั้นจึงควรเข้ารหัสไฟล์ dictionary เหล่านี้และ เก็บไว้ในเทปแม่เหล็ก ดังนั้นคุณไม่จำเป็นต้องรัน password cracking software เพียงแต่หารหัสผ่านที่ เข้ารหัสที่ตรงกับ word ที่เข้ารหัสไว้ในเทปแม่เหล็ก วิธีนี้ใช้เวลาในการประมวลผลน้อยกว่า แต่ใช้เวลาในการ ประมวลผลของเทปแม่เหล็กมากกว่า

คุณ อาจเลือกใช้วิธีการที่ดีกว่าโดยการลงซอฟท์แวร์ที่สามารถตรวจสอบคุณภาพของ รหัสผ่าน เมื่อรหัสผ่านถูกป้อนเข้าไป วิธีนี้ไม่จำเป็นต้องใช้ทรัพยากรเพื่อการประมวลผล เพราะรหัสผ่านถูกตรวจในลักษณะของตัวอักษร (plain text) ได้อย่างรวดเร็ว มีเครื่องมือมากมากที่จะให้เลือก รวมทั้ง Password+ และ npasswd เครื่องมือที่คุณเลือกควรที่จะยืดหยุ่นพอให้คุณสามารถปรับปรุง environment ของระบบได้ด้วย dictionary พิเศษที่รวมเข้าไว้ด้วยกัน มีคำและวลีที่เจาะจงสำหรับธุรกิจหรือบริษัทของคุณหรือลูกจ้างของคุณ ข้อมูลเหล่า นี้ไม่ควรเก็บไว้ในระบบ เพราะอาจจะตกไปอยู่ในมือของ hacker ได้

password cracking

password cracker จะใช้ข้อมูลทุกอย่างเกี่ยวกับผู้ใช้ที่หาได้ ชื่อของผู้ใช้, ตัวอักษรขึ้นต้น, account name และข้อมูลส่วนตัวอื่น ๆ ที่รู้ ข้อมูลเหล่านี้นำมาจากส่วนของ GECOS และจากไฟล์ใน home directory ของ ผู้ใช้ ข้อมูลเหล่านี้จะถูกดำเนินการผ่านวิธีการจัดเรียงตามรายการข้างล่างนี้

password cracker จะพยายามค้นหาคำใน dictionary ซึ่ง dictionary จะขึ้นอยู่กับประสบการณ์ของ hacker และความรู้เกี่ยวกับระบบที่จะโจมตี dictionary จะประกอบด้วยชื่อแรก(first name)ทั่ว ๆ ไป ตัวอักษร,ชื่อเรื่อง,สถานที่ จากนวนิยาย โทรทัศน์และภาพยนตร์,การ์ตูนและเกมส์คอมพิวเตอร์, คำที่เกี่ยวกับกีฬา คำที่เกี่ยวกับอุตสาหกรรมที่คอมพิวเตอร์นั้นใช้อยู่

คำทั้งหมดที่กล่าวมาข้างต้นจะถูกนำมาจัดเรียงด้วยลักษณะดังต่อไปนี้

- ตัวอักษรตัวใหญ่และตัวอักษรตัวเล็กหลายแบบ

- สลับที่การสะกดคำ

- เปลี่ยนตัวเลข 0,1,2 และ 5 สำหรับตัวอักษร o,i,z และz ในคำนั้น

- เพิ่มตัวเลขหนึ่งตัวเข้าไปในคำนั้น

- จับคู่คำสองคำเข้าด้วยกัน คั่นระหว่างคำสองคำด้วยอักขระพิเศษ

เนื่องจากรหัสผ่านเป็นวิธีการป้องกันหลักจากบุคคลภายนอก มีการศึกษาจำนวนมากที่เกี่ยวกับเรื่องดังกล่าว จากการศึกษาแสดงให้เห็นว่าระหว่าง 25-30 เปอร์เซ็นต์ของรหัสผ่านจะถูก crack โดยวิธีนี้

จากการศึกษาที่ทำเสร็จในปีคศ.1989 โดย Dan Klein ที่มหาวิทยาลัย Carnegie-Mellon ใช้วิธีการเหล่านี้ เพื่อพยายาม crack รหัสผ่านจริงจำนวน 13,797 account จากหลายแหล่งด้วยกัน dictionary ทั้งหมด ประกอบด้วยคำ 62,727 คำ ด้วยวิธีการนี้สามารถเดารหัสผ่านได้ 3,340 รหัส จากตารางนี้ประกอบด้วยข้อมูล ที่ถูกเปิดเผยจากการศึกษาเกี่ยวกับแหล่งของรหัสผ่านที่ถูกเลือกโดยผู้ใช้
2511022925_d187ecdf8f_o.jpg
ความยาวของรหัสผ่าน

ถึง แม้ว่าระบบยูนิกซ์บังคับให้รหัสผ่านต้องมีความยาว 6 อักขระหรือมากกว่า แต่การศึกษานี้พบว่า 17.5 เปอร์เซ็นต์ของรหัสผ่านที่เดาถูกมีความยาวน้อยกว่า 6 ตัวอักษร อาจเป็นเพราะหลายเหตุผลด้วยกัน ผู้บริหารระบบสามารถเซ็ตรหัสผ่านให้มีความยาวแค่ไหนก็ได้ ดังนั้นอาจมีผู้ใช้ที่มีสิทธิ์ของผู้บริหารระบบและ มีความเกียจคร้าน หรืออาจเป็นเพราะรหัสผ่านแรกที่ถูกเซ็ตไว้ในระบบที่ผู้บริหารระบบไม่เคยได้ เปลี่ยน หรือ ระบบนั้นยอมให้ผู้ใช้เลือกรหัสผ่านได้โดยไม่ต้องเลือกตามความต้องการของระบบ ถ้าผู้ใช้ยังยืนกรานที่จะใช้รหัสผ่านนั้น อย่างเช่นระบบ Sun/OS ยอมให้ผู้ใช้เลือกรหัสผ่านอะไรก็ได้ถ้ารหัสผ่านถูกป้อนเข้าไปสามครั้ง โดยใช้คำสั่ง passwd จากตารางนี้แสดงให้เห็นถึงการกระจายของความยาวรหัสผ่านที่เดาถูกจากการศึกษา
2511857552_29cd834456_o.jpg
การ crack รหัสผ่าน, ผู้ใช้ต้องเลือกรหัสผ่านที่ดี และการขยายตัวอย่างรวดเร็วของการดักข้อมูลที่ผ่านไป มาระหว่างเน็ตเวิร์ค(network snooping) สามารถเป็นภัยต่อระบบได้ถึงแม้จะใช้รหัสผ่านที่ดีก็ตาม ทำให้ รหัสผ่านที่นำมาใช้ใหม่ได้มีคุณค่าที่จำกัดต่อระบบภายในเองและความปลอดภัยของข้อมูลที่ผ่านเน็ตเวิร์คที่ เชื่อถือไม่ได้ทำให้การใช้รหัสผ่านที่นำมาใช้ใหม่ได้เสื่อมความนิยมลง มีความพยายามที่จะผลักดันการใช้ onetime password

อนาคตของรหัสผ่าน

มี เพียงสามอย่างเท่านั้นที่สามารถใช้เพื่อพิสูจน์ตัวผู้ใช้ คือ สิ่งที่คุณรู้, สิ่งที่คุณมี หรือสิ่งที่คุณเป็น การรวมเอา สองอย่างหรือมากกว่าทำให้มีการพิสูจน์ตัวผู้ใช้ที่แข็งแกร่ง รหัสผ่านเป็นสิ่งที่คุณรู้, key เป็นสิ่งที่คุณมี access card ที่ต้องอาศัย PIN number ได้รวมเอาสิ่งที่คุณมีและสิ่งที่คุณรู้เข้าด้วยกัน ระบบที่เชื่อถือได้ และถูกต้องแม่นยำเพื่อตรวจสิ่งที่คุณเป็น เช่นเครื่องสแกนลายนิ้วมือหรือลายมือ เครื่องตรวจเสียง หรือเครื่อง ตรวจม่านตา เครื่องมือเหล่านี้มีราคาแพงมากแต่จำเป็นต้องใช้ถ้าต้องการพิสูจน์ตัวผู้ใช้

ความ เสี่ยงทางด้านความปลอดภัยที่สำคัญสำหรับรหัสผ่านในปัจจุบัน คือ การเดารหัสผ่านและการดักรหัสผ่าน ที่ผ่านไปมาระหว่างเน็ตเวิร์ค ความเสี่ยงสองอย่างนี้ทำให้ระบบรหัสผ่านของยูนิกซ์ในปัจจุบันที่เป็นที่ เคลือบแคลง เห็นได้ชัดว่ามันจะไร้ประสิทธิภาพในไม่ช้า วิธีการใช้รหัสผ่านต่อไปนี้จะกล่าวถึงประเด็นที่เป็นความเสี่ยงเหล่านี้ด้วย

computer-generated password

เนื่องจากปัญหาหลักของรหัสผ่านคือ ผู้ใช้เลือกรหัสผ่านที่ง่ายต่อการเดา วิธีแก้ไขปัญหาวิธีหนึ่งเพื่อปรับปรุง ความปลอดภัยของรหัสผ่านคือ การใช้รหัสผ่านที่ถูกสร้างด้วยคอมพิวเตอร์ รหัสผ่านที่ถูกสร้างด้วยคอมพิวเตอร์ ทำให้การเดารหัสผ่านไร้ประโยชน์ เนื่องจากรหัสผ่านที่ถูกเลือกโดยคอมพิวเตอร์จะหาไม่เจอใน dictionary ใด ๆ ก็ตาม แต่ทำให้รหัสผ่านนั้นยากที่ผู้ใช้จะจดจำด้วย ผู้ใช้จึงมักเขียนบันทึกรหัสผ่านไว้ ซึ่งมีความเสี่ยงได้เช่นกัน

การเขียนบันทึกรหัสผ่านลงใน time management system หรือ pocket computer อาจจะไม่มีความเสี่ยง เรื่องความปลอดภัยเท่าไหร่ เนื่องจากคุณจะรู้ได้ว่า time manage ment system หรือ pocket computer ของคุณหายหรือถูกโขมยหรือไม่ และสามารถบอกให้ผู้จัดการระบบเปลี่ยนรหัสผ่านของคุณ อย่างไรก็ตาม ผู้ใช้ส่วนมากจะเขียนบันทึกรหัสผ่านไว้ในเศษกระดาษและเก็บมันไว้ใกล้หน้าจอ(ในลิ้นชักใกล้คีย์บอร์ด,ติดอยู่ ข้าง ๆ หน้าจอ) ด้วยเหตุนี้จึงเห็นพ้องกันโดยทั่วไปว่าการบันทึกรหัสผ่านเป็นความคิดที่ไม่ดี

pass phrase

เนื่องจากจำนวนรหัสผ่านที่เป็นไปได้เติบโตอย่างรวดเร็วตามความยาวของรหัสผ่าน บางไซต์จะแทนที่ระบบ รหัสผ่านในยูนิกซ์แบบมาตรฐานด้วยระบบที่ใช้ pass phrase ระบบ pass phrase อนุญาตให้ผู้ใช้พิมพ์ รหัสผ่านที่ยาวซึ่งแต่ละตัวอักขระต้องตรงกันกับของระบบจึงจะเข้าระบบได้ ผู้ใช้สามารถใช้วลีหรือกลุ่มคำ ที่สามารถจำได้ ซึ่งทำให้โอกาสสำเร็จในการเดารหัสผ่านน้อยลง

challenge response system

บางไซต์ให้ความใส่ใจกับประเด็นที่เป็นความเสี่ยงทางด้านความปลอดภัยโดยการให้ผู้ใช้ตอบชุดคำถาม เมื่อผู้ใช้ log in เข้ามา จะมีคำถามหนึ่งที่ถูกแสดงออกมาเพื่อถามผู้ใช้ เขาต้องให้คำตอบที่ถูกต้องเพื่อให้สามารถ เข้าสู่ระบบได้ ในกรณีที่รหัสผ่านถูกดักข้อหรือด้วยวิธีอื่นก็ตาม มันจะเผยจุดอ่อนเพียงเล็กน้อยเท่านั้น เนื่องจาก hacker อาจได้คำตอบที่ไม่ตรงกับคำถาม(challenge)ที่ระบบจะถาม โดยทั่วไปแล้วระบบเหล่านี้ จะถามคำถามเดิมไปเรื่อย ๆ จนกระทั่งได้รับคำตอบที่ถูกต้อง ป้องกัน hacker จากความพยายามที่จะรอจน กระทั่งคำถามที่เขามีคำตอบที่ถูกต้องแสดงออกมา

onetime password

onetime password กำจัดความเสี่ยงทางด้านความปลอดภัยของการดักจับข้อมูล (snooping)และการ crack รหัสผ่าน โดยการไม่ใช้รหัสผ่านมากกว่าหนึ่งครั้ง ดังนั้นการได้รหัสผ่านของใครมา ไม่ได้ช่วยให้ hacker คนนั้นเข้าสู่ระบบได้เลย

ทุกวันนี้ onetime password นำไปใช้โดยการใช้หนังสือที่ได้คำนวนรหัสผ่านไว้ล่วงหน้าแล้ว ผู้ใช้สามารถ พกพาติดตัวไปได้ ระบบจะถามผู้ใช้ถึงรายการที่เจาะจงจากในหนังสือ หรืออาจใช้ smartcard คำนวนรหัสผ่านต่อไป ถ้ามีกลุ่มผู้ใช้ smartcard จำนวนมากนับพันคนอาจทำให้เกิดปัญหาเรื่องค่าใช้จ่ายได้

ข้อมูลเพิ่มเติม

Encryption

http://www.io.com/~ritter/GLOSSARY.HTM http://www.achiever.com/freehmpg/cryptology/cryptofr.html http://snoopy.falkor.gen.nz/~rae/DES.html

ftp://ftp.uu.net/pub/security/des/

Npasswd

http://www.utexas.edu/cc/unix/software/npasswd/ ftp://coast.cs.purdue.edu/pub/tools/unix/password/

John the Ripper : password cracker

http://www.openwall.com/john/

Crack : password cracker

ftp://coast.cs.purdue.edu/pub/tools/unix/crack

Password dictionaries

ftp://coast.cs.purdue.edu/pub/dict/

http://chat.home.ru/homes/wordlist/

http://www.splitsecond.nu/refiner/

Passphrase

http://www.stack.nl/~galactus/remailers/passphrase-faq.html http://world.std.com/~reinhold/diceware.html

http://www.unix-ag.uni-kl.de/~conrad/krypto/passphrase-faq.html http://burks.bton.ac.uk/burks/foldoc/78/81.htm

Onetime password

ftp://coast.cs.purdue.edu/pub/tools/unix/skey

ftp://thumper.bellcore.com:/pub/nmh/skey

ftp://ftp.nrl.navy.mil/pub/security/nrl-opie/

ข้อมูลจาก Pom infosec.sran.org 05/2545

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License