ค่าแฮช SHA-1 ถูกใช้งานมาตั้งแต่ปี 1995 โดยทั่วไปแล้วยังมีความแข็งแกร่งดี แต่งานวิจัยช่วงหลังๆ แสดงให้เห็นว่าการสร้างค่าที่ทำให้ค่าแฮชชนกันด้วย SHA-1 นั้นง่ายกว่าที่ออกแบบไว้อย่างมาก และมีความเสี่ยงที่จะถูกปลอมใบรับรองได้ทำให้ไมโครซอฟท์ออกมาประกาศแล้วว่าจะเลิกยอมรับใบรับรองที่เซ็นไว้ด้วย SHA-1
เมื่อปีที่แล้วมีงานวิจัยตีพิมพ์ออกมาว่าสามารถสร้างค่าแฮช SHA-1 ที่ชนกันได้ด้วยการคำนวณเพียง 2^61 รอบเท่านั้น แม้ค่าแฮชของ SHA-1 จะมีขนาดถึง 160 บิตก็ตาม
ท่าทีเช่นนี้ถือเป็นท่าทีที่ดีของไมโครซอฟท์ ก่อนหน้านี้ใบรับรองที่เซ็นด้วยค่าแฮชแบบ MD5 ถูกสร้างค่าแฮชชนกันได้ในแบบเดียวกันมาแล้ว แต่ไม่มีการยกเลิกการใช้งานจนกระทั่งกลายเป็นช่องโหว่ให้ไวรัส เช่น FLAME แพร่กระจาย การยกเลิกใบรับรองเหล่านี้แต่เนิ่นๆ ก่อนจะมีการสร้างค่าแฮชชนกันจริงจะป้องกันปัญหาแบบเดิมได้
ไมโครซอฟท์แนะนำให้ผู้ที่ใช้ใบรับรองดิจิตอล ควรขอใบรับรองใหม่ที่ใช้ค่าแฮช SHA-2
ที่มา - Technet
Comments
2^61 ถ้าคอมทั่วๆ ไป brute force มันก็น่าจะใช้เวลาเป็นวันอยู่ แต่ปี 2016 อาจจะน้อยลงกว่านี้ก็ได้
เหมือนจะเคยอ่านเจอ ประมาณว่า พวกการเข้ารหัสทางเดียว อย่าง MD ทั้งหลาย มันจะอ่อนแอลงตามความเร็วของคอมที่ใช้ถอดรหัสได้ ยิ่งคอมพัฒนาให้เร็วขึ้น ก็ถอดรหัสได้ไวขึ้น ... ท่าจะจริง
ถ้าแค่วันเดียวได้แน่นอนนี่ระดับปัญหาใหญ่มากแล้วนะครับ
ส่วนการเข้ารหัส ไม่ว่าทางเดียวหรือสองทาง เราคำนวณได้เร็วขึ้นก็ต้องหมายถึงถอดรหัสได้ไวขึ้นอยู่แล้วครับ วิธีถอดรหัสก็ส่วนนึง ความเร็วของเครื่องที่ถอดรหัสก็อีกส่วนนึง ถ้าคิดวิธีสำหรับถอดรหัสให้ควอนตัมคอมพิวเตอร์ที่ใช้งานได้จริงขึ้นได้นี่มีสิทธิ์ล่มกันเกือบหมดเหมือนกันนะครับ
ผมเคยถอดรหัสมือถือโนเกียร์ที่ล็อกซิมเป็น SL3 มา (เครื่องจากนอก) มันจะได้ 2 ส่วน ส่วนแรกเป็น HASH ที่เข้ารหัส SHA-1 มา อีกส่วนเป็น IMEI 14 ตัวแรก + เกลือนิดหน่อย แล้วคำนวนรหัสปลดล็อกซิมเอา
IMEI + รหัสปลดล็อก = HASH
เร็วสุดที่เคยได้ก็ 3 ชั่วโมง ช้าสุดก็ 2 วันกว่าๆ
คอมไม่แรง แต่ใช้การ์ด 4870 จำนวน 3 ตัว ช่วยกันคำนวน
เมื่อก่อนทำคุ้มครับ ปลดรหัสละ 700 - 1000 แล้วแต่เราเรียกราคา (3-4 ปีที่แล้ว)
เดี๋ยวนี้แย่งกันทำ ตัดราคากันจนทำไม่คุ้มละ
ถ้าควอนตัมใช้งานจริงได้ ราคาจับต้องได้ งานถอดรหัสคงเร็วกว่านี้แน่ๆ
คิดง่ายๆ ถ้าเข้ารหัสใช้ 1 clock cycle ซีพียู 1GHz 16 Core ใช้เวลา 2^61/(2^308640016) ~= 1553 วัน = 5 ปีนะครับ
คอมทั่วๆ ไปไม่ใช่แค่วันแน่ๆ แต่ใช้ GPU ช่วยได้นี่ผมไม่ชัวร์นะ แต่ยังไงมันก็ไม่ใช่ 1 clock cycle แน่ๆ ใช้เป็นร้อย
คิดสะว่าเป็นการขุด bitcoin ไปดีไหมครับ
ปัญหาขุด bitcoin ทุกวันนี้ง่ายกว่า 2^61 เยอะครับ
lewcpe.com, @wasonliw