ก็ต้องมาหาอีกว่า จะใช้ password อะไรดี ที่จำได้ง่ายๆ bruteforceได้ยากๆ
แต่ทั้งสองสิ่่งนี้ ชอบไม่มาคู่กันเลย
เราอยากได้อะไรจำง่ายๆ มันก็จะได้พาสเวิร์ดที่อ่อนต่อการถูกhack
พอเราจะคิดว่าผสมคำนู่นคำนี่ ให้มันhackได้ยากๆ ก็กลายเป็นว่า จำไม่ได้แทน
ก็เลยคิดว่า จะทำยังไงให้เราไม่ต้องยุ่งวุ่นวายหา password ใหม่ที่จำยากๆ
จำได้ว่าตอนที่เคยทำเช็คว่าไฟล์ดาวน์โหลดมาครบรึเปล่า ใน linux มีคำสั่ง md5sum นี่นา
ถ้าเราเอาคำสั่ง นี้มาใช้ hash password เราล่ะ
** hash คือ ฟังก์ชั่นในการรับ อะไรเข้าไปก็ได้ แล้วก็แปลงไปเป็น ตัวอักษรชุดนึง
ซึ่งถ้าเราเอา อะไรก็ได้(ตัวเดิม) ใส่เข้าไปกี่ครั้งก็ตาม มันก็จะยังมีค่าเหมือนเดิม
ดังนั้นก็เลยลองว่า
ptantiku@ptantiku-desktop:~$ echo -n "123456" | md5sum e10adc3949ba59abbe56e057f20f883e -
echo -n "123456" คือการแสดงข้อความ 123456 ออกทาง standard output โดยไม่ใส่ \n ต่อท้าย
แล้วนำมาไปป์ ต่อให้กับ md5sum ซึ่งทำตัวเป็น hash function
ก็จะแปลงข้อความ 123456 ให้กลายเป็น e10adc3949ba59abbe56e057f20f883e อย่างที่เห็น
ถ้าอย่างงี้เราก็ใช้ hash พาสเวิร์ดของเราให้กลายเป็นค่าที่อ่านไม่รู้เรื่องได้แล้ว
แถมยังง่ายต่อการจำอีก เพราะเราก็ยังจำพาสเวิร์ดเดิมของเรา แค่เพิ่มความยุ่งยากในการแปลงให้เป็น md5sum เอง
อาจจะยาวไปหน่อย แต่ถ้าใช้จริงก็คงตัดเอาซัก 8 ตัว ตรงหน้า ตรงกลาง ตรงหลัง ซักที่นึงละกัน
แล้ว linux มีแค่ check sum แบบเดียวรึเปล่า?
ลองค้นๆดูในเครื่องนี้ ก็เจออยู่หลายนะ
ก็เลยลองเอามาทดสอบ hash ค่า 123456 ดู
ptantiku@ptantiku-desktop:/usr/bin$ ls *sum cksum md5sum sha224sum sha384sum shasum innochecksum sha1sum sha256sum sha512sum sum ptantiku@ptantiku-desktop:/usr/bin$ for i in *sum ; do echo -n "$i : "; echo -n "123456" | $i; done cksum : 2743226970 6 innochecksum : InnoDB offline file checksum utility. usage: innochecksum [-c] [-s [start page]] [-e] [-p [page]] [-v] [-d] [filename] -c print the count of pages in the file -s n start on this page number (0 based) -e n end at this page number (0 based) -p n check only this page (0 based) -v verbose (prints progress every 5 seconds) -d debug mode (prints checksums for each page) md5sum : e10adc3949ba59abbe56e057f20f883e - sha1sum : 7c4a8d09ca3762af61e59520943dc26494f8941b - sha224sum : f8cdb04495ded47615258f9dc6a3f4707fd2405434fefc3cbf4ef4e6 - sha256sum : 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 - sha384sum : 0a989ebc4a77b56a6e2bb7b19d995d185ce44090c13e2984b7ecc6d446d4b61ea9991b76a4c2f04b1b4d244841449454 - sha512sum : ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413 - shasum : 7c4a8d09ca3762af61e59520943dc26494f8941b - sum : 34920 1
จะเห็นว่า innochecksum คงใส่เป็น stdin ไม่ได้แฮะ ช่างมัน
ยังเหลือ sum อีกหลายแบบให้ใช้
บางคนอาจจะชอบ base64 ก็ลองใช้กันได้
ptantiku@ptantiku-desktop:~$ echo -n "123456" | base64 MTIzNDU2
แค่ว่า password มันจะสั้นๆ เหมือนข้อความที่เราเอาไปใช้นั้นแหละ
บางคนชอบเอาวันที่เกิด มาตั้งเป็นพาสเวิร์ด
งั้นก็เอา Epoch Time เลยดีมะ? 555
** Epoch Time คือ จำนวนวินาที ตั้งแต่ วันที่ 1 มกราคม 1990 จนถึงวันที่เราต้องการ
งั้น Christmas ปีนี้ (วันที่ 25 ธันวาคม ) ก็จะมี epoch time เป็น
ptantiku@ptantiku-desktop:~$ date -d '12/25/2010' +'%s' 1293264000
แค่มันอาจจะเป็นเลขทั้งหมด ก็เพิ่มตัวอักษรเข้าไปเองจะได้ยากขึ้น
แล้วได้password มั่วสะใจรึยัง??
อยากได้มั่วเข้าไปอีก เรายังสามารถ เอาค่า random จาก /dev/urandom เข้ามาใช้ได้ด้วย
ptantiku@ptantiku-desktop:~$ dd if=/dev/urandom count=1 bs=8 ���U i�1+0 records in 1+0 records out 8 bytes (8 B) copied, 2.64e-05 s, 303 kB/s
dd เป็นคำสั่งdata dump จาก device
urandom เป็น device ที่จะสร้าง random byte stream ออกมา
bs=8 คือ block size คือเอามา block ละ 8 bytes
count=1 คือ เอามาแค่block เดียว
ถ้าเอามาลองจะได้เป็น
ptantiku@ptantiku-desktop:~$ dd if=/dev/urandom count=1 bs=8 | md5sum 1+0 records in 1+0 records out 8 bytes (8 B) copied, 5.0425e-05 s, 159 kB/s 3c4ca5a192f23a718c6f3a4c8159a87e - ptantiku@ptantiku-desktop:~$ dd if=/dev/urandom count=1 bs=8 | md5sum 1+0 records in 1+0 records out 8 bytes (8 B) copied, 1.9835e-05 s, 403 kB/s b6ea8e1323bcf3f31bc6e7554885c020 -
จะเห็นว่ารันสองครั้ง แล้วก็ไม่ได้ค่าเหมือนเดิม (แน่นอนล่ะ เพราะว่ามัน random)
ก็เอาไว้สำหรับคนอยากได้ password ใหม่ แล้วจะจำค่าใหม่เลยแล้วกัน
เอาให้บ้าเข้าไปอีก...
เอา serial ของเครื่องเลยดีมั๊ย จำได้แน่ๆ เพราะมี sticker แปะอยู่ด้านล่างเครื่อง
หรือจะใช้คำสั่งก็...
ptantiku@ptantiku-desktop:~$ sudo lshw ptantiku-desktop description: Portable Computer product: XPS M1330 vendor: Dell Inc. serial: XXXXXXX width: 64 bits ....
คำสั่ง lshw เป็นคำสั่งที่ดูรายละเอียดของ hardware ต่างๆที่อยู่ในเครื่อง ซึ่งก็จะเห็นว่า รวม serial number ของอุปกรณ์ต่างๆ ด้วย
หรือจะลองใช้ cpuid หรือ dmesg เอาก็ได้ มีรายละเอียดให้มั่วเยอะดี
โอ้ MAC address ก็น่าสนใจ หนึ่งอุปกรณ์เน็ตเวิร์คมีหนึ่ง MAC น่าเอามาใช้ดีเหมือนกัน
ptantiku@ptantiku-desktop:/proc$ ifconfig -a eth0 eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX ...
อะไรอีกดี... คิดไม่ออก
ความจริงแล้ว เวลาเรา login แล้วต้องมานั่งเล่น command บน unix อาจจะยุ่งยากไป
ถ้ายังไง เราจะต้องเปิดbrowser อยู่แล้ว ก็น่าจะหา คำสั่งอะไรที่รันได้บน browser
คราวนี้พอถึงภาษาที่เล่นบน browser ได้ก็มีไม่กี่แบบ
ลองค้นๆ javascript มาดู
เป็นว่า javascript เหมือนจะไม่มี built-in function ที่สามารถสร้างอะไรมั่วๆได้เลย
มีแค่ function Date.parse ที่จะคำนวน epoch time ออกมาให้เท่านั้นเอง
พอลองกับ firefox ดู
ใส่
javascript:alert(Date.parse('12/25/2010'))
เข้าไป ก็ได้ผลออกมาเป็น
ต่างกับ ที่เราใช้คำสั่ง date ใน unix นิดหน่อย ตรงที่มี 0 เพิ่มมาสามตัว
หมายถึง ในbrowser ดันคำนวนหน่วยเป็น milli-second (1วินาที = 1000 ms)
ก็เลยได้ค่าเดิมคูณ 1000
นอกจากนี้ยังหา javascript functions ดีๆไม่ได้เลย (แบบที่ไม่ต้องไปเปิดเวปอื่นๆ หรือใช้โปรแกรมเพื่อคำนวนน่ะนะ)
เอาเป็นว่าแค่นี้ก่อนละกัน
No comments:
Post a Comment