เครื่องมือสร้าง SHA-1
เครื่องมือสร้าง SHA-1 เป็นเครื่องมือฟรีสำหรับแปลงสตริงให้เป็นค่าแฮช SHA-1 ขนาด 160 บิต ซึ่งแสดงผลเป็นอักขระฐานสิบหก 40 ตัว
SHA-1 ทำงานอย่างไร?
SHA-1 สร้างลายนิ้วมือดิจิทัลที่มีความยาวคงที่จากข้อมูลนำเข้าที่มีความยาวเท่าใดก็ได้ การแฮชด้วย SHA-1 เป็นกระบวนการทางเดียว ค่าย่อยจึงไม่มีสำเนาข้อความต้นฉบับที่อ่านได้ แม้แก้ไขข้อมูลนำเข้าเพียงเล็กน้อย ผลลัพธ์ 160 บิตก็จะเปลี่ยนไป
SHA-1 ออกแบบโดยสำนักงานความมั่นคงแห่งชาติสหรัฐฯ และเผยแพร่โดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติในปี 1995 ชื่อนี้ย่อมาจาก Secure Hash Algorithm 1 แม้ยังใช้ชื่อดังกล่าวอยู่ แต่ SHA-1 ไม่ถือว่าปลอดภัยจากการโจมตีแบบชนกันอีกต่อไป
การชนกันของ SHA-1 เกิดขึ้นเมื่อข้อมูลนำเข้าสองชุดที่ต่างกันให้ค่าย่อยเหมือนกัน นักวิจัยได้สาธิตการสร้างการชนกันของ SHA-1 ที่ทำได้จริงแล้ว จึงเลิกแนะนำอัลกอริทึมนี้สำหรับลายเซ็นดิจิทัล ใบรับรอง และกรณีอื่นที่ผู้โจมตีอาจจงใจแก้ไขเนื้อหา
สร้างแฮช SHA-1 อย่างไร?
ป้อนสตริงที่ต้องการแฮชให้ตรงทุกตัว แล้วดูค่าฐานสิบหก 40 ตัวในช่องผลลัพธ์ แฮช SHA-1 การประมวลผลเกิดขึ้นบนเซิร์ฟเวอร์ ข้อมูลที่ป้อนจะส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และไม่มีการจัดเก็บไว้
ตัวอย่างมาตรฐานต่อไปนี้แสดงรูปแบบผลลัพธ์และผลของข้อมูลนำเข้าที่เปลี่ยนไป:
- ข้อมูลนำเข้า abc ให้ผลลัพธ์เป็น a9993e364706816aba3e25717850c26c9cd0d89d
- สตริงไบต์ว่างให้ผลลัพธ์เป็น da39a3ee5e6b4b0d3255bfef95601890afd80709
- ข้อมูลนำเข้า abc ซึ่งมีช่องว่างต่อท้าย จะให้ค่าแฮชต่างจาก abc
SHA-1 ประมวลผลไบต์ ไม่ใช่อักขระตามที่มนุษย์มองเห็น ช่องว่าง เครื่องหมายวรรคตอน ตัวพิมพ์ใหญ่ และอักขระขึ้นบรรทัดใหม่ล้วนมีผล เครื่องมือสร้าง SHA-1 นี้จะแฮชตัวเลขที่ป้อนในช่องข้อความในฐานะอักขระ ดังนั้น 123 จึงหมายถึงอักขระสามตัว ได้แก่ 1, 2 และ 3
ก่อนประมวลผลด้วย SHA-1 ต้องเข้ารหัสอักขระที่มีเครื่องหมายกำกับเสียงและอักขระที่ไม่ใช่ละตินให้เป็นไบต์ ระบบสองระบบอาจสร้างค่าแฮชต่างกันจากข้อความที่ดูเหมือนกัน หากใช้การเข้ารหัสอักขระหรือการปรับ Unicode ให้อยู่ในรูปมาตรฐานต่างกัน เมื่อต้องการเทียบผลลัพธ์ SHA-1 จากเครื่องมือนี้กับระบบอื่น ให้ตรวจสอบว่าทั้งสองฝ่ายใช้การเข้ารหัสแบบเดียวกัน ซึ่งโดยทั่วไปคือ UTF-8 และใช้รูปแบบอักขระขึ้นบรรทัดใหม่แบบเดียวกัน
ถอดรหัสหรือย้อนกลับ SHA-1 ได้ไหม?
ไม่ได้ ค่าแฮช SHA-1 ไม่สามารถถอดรหัสได้ เพราะการแฮชไม่ใช่การเข้ารหัสและไม่มีกุญแจสำหรับถอดรหัส โดยทั่วไปแล้ว การกู้คืนข้อมูลนำเข้าต้นฉบับใดๆ จากค่าย่อยยังเป็นสิ่งที่ทำไม่ได้ในทางปฏิบัติเนื่องจากต้องใช้ทรัพยากรการคำนวณมหาศาล
แต่ข้อมูลนำเข้าที่คาดเดาได้เป็นอีกกรณีหนึ่ง ผู้โจมตีสามารถคำนวณค่าแฮช SHA-1 ของค่าที่น่าจะเป็นไปได้จากพจนานุกรมหรือรายการที่สร้างขึ้น จนกว่าจะพบค่าตรงกัน ด้วยเหตุนี้จึงห้ามใช้ SHA-1 เพื่อจัดเก็บรหัสผ่าน แม้จะไม่สามารถย้อนกลับค่าย่อยโดยตรงได้ก็ตาม
การโจมตีแบบชนกันก็ไม่ได้เป็นการถอดรหัสค่าแฮช แต่เป็นการค้นหาข้อมูลนำเข้าสองชุดที่ต่างกันและมีค่าย่อยเดียวกัน ซึ่งเพียงพอที่จะทำลายความน่าเชื่อถือของลายเซ็นและการตรวจสอบความสมบูรณ์ในสภาพแวดล้อมที่มีภัยคุกคาม
ปัจจุบันยังใช้ SHA-1 ที่ไหนบ้าง?
ยังพบ SHA-1 ในเช็กซัมสำหรับสภาพแวดล้อมที่ไม่มีผู้โจมตี การตรวจหาข้อมูลซ้ำ และระบบที่ต้องรองรับรูปแบบรุ่นเก่า นอกจากนี้ รูปแบบฐานสิบหก 40 ตัวยังปรากฏในตัวระบุของระบบควบคุมซอร์สโค้ดรุ่นเก่าและบันทึกซอฟต์แวร์ที่จัดเก็บถาวร
- เช็กซัม: SHA-1 ใช้ตรวจจับการเปลี่ยนแปลงโดยไม่ตั้งใจได้ เมื่อค่าย่อยที่คาดหวังมาจากแหล่งที่เชื่อถือได้ แต่ไม่สามารถยืนยันความสมบูรณ์ได้ หากผู้โจมตีเปลี่ยนได้ทั้งไฟล์และค่าแฮชที่เผยแพร่
- การกำจัดข้อมูลซ้ำ: SHA-1 ช่วยระบุระเบียนหรือไฟล์ที่ดูเหมือนเหมือนกันได้ ในกรณีที่การจงใจสร้างค่าชนกันไม่อยู่ในแบบจำลองภัยคุกคาม ระบบที่ใช้ SHA-1 และยอมรับการชนกันไม่ได้เลยควรเปรียบเทียบข้อมูลต้นฉบับด้วย
- การรองรับระบบเก่า: ฐานข้อมูล API และรูปแบบไฟล์บางประเภทกำหนดให้ใช้ค่า SHA-1 ที่มีอยู่ การทำตามข้อกำหนดดังกล่าวเป็นการใช้งานที่สมเหตุสมผล แต่ระบบที่ออกแบบใหม่ควรใช้อัลกอริทึมที่ทันสมัย
ห้ามใช้ SHA-1 แบบไม่มีการป้องกันเพิ่มเติมกับรหัสผ่าน ลายเซ็นดิจิทัล การสร้างหรือลงนามใบรับรอง การสร้างโทเค็นความปลอดภัยหรือการยืนยันตัวตน รวมถึงบันทึกเอกสารที่ต้องทนต่อการแก้ไข
สถานะความปลอดภัยของ SHA-1 และทางเลือกอื่น
SHA-1 ถูกทำลายในเชิงการเข้ารหัสแล้วในด้านความต้านทานการชนกัน และเลิกแนะนำสำหรับงานใหม่ที่มีความอ่อนไหวด้านความปลอดภัย ค่าย่อยขนาด 160 บิตของ SHA-1 สั้นกว่าผลลัพธ์จาก SHA-2 และ SHA-3 รูปแบบที่ใช้กันทั่วไป แต่ความยาวของค่าย่อยเพียงอย่างเดียวไม่ใช่เหตุผลที่ต้องเลิกใช้ ประเด็นสำคัญคือการโจมตีแบบชนกันที่ได้รับการสาธิตแล้ว
ใช้ SHA-256 หรือ SHA-512 สำหรับเช็กซัมที่ค่าคาดหวังมาจากแหล่งที่เชื่อถือได้ เว้นแต่ข้อกำหนดจะระบุให้ใช้อย่างอื่น การตรวจสอบความสมบูรณ์แบบยืนยันตัวตนต้องใช้ MAC หรือรูปแบบลายเซ็นดิจิทัลที่เหมาะสม ส่วน SHA-3 ก็เป็นอีกตระกูลหนึ่งที่ใช้งานอยู่ในปัจจุบัน หากจำเป็นต้องใช้ค่าย่อย SHA-2 ขนาด 224 บิตโดยเฉพาะ เครื่องมือสร้าง SHA-224 จะสร้างผลลัพธ์ในรูปแบบนั้น สำหรับรหัสผ่าน ให้ใช้ฟังก์ชันแฮชรหัสผ่านโดยเฉพาะ เช่น Argon2id, scrypt หรือ bcrypt แทน SHA-1
คำถามที่พบบ่อยเกี่ยวกับ SHA-1
ค่า SHA-1 ฐานสิบหกที่ใช้ตัวพิมพ์ใหญ่กับตัวพิมพ์เล็กต่างกันไหม?
ไม่ต่างกัน ตัวอักษรฐานสิบหกแบบพิมพ์ใหญ่และพิมพ์เล็กสามารถแทนค่า 160 บิตเดียวกันได้ อย่างไรก็ตาม ระบบที่เปรียบเทียบข้อความโดยแยกตัวพิมพ์ใหญ่ออกจากตัวพิมพ์เล็กอาจยังถือว่าสตริงทั้งสองต่างกัน จึงควรรักษารูปแบบตามที่ระบบนั้นกำหนด
ใช้เครื่องมือนี้คำนวณ SHA-1 ของไฟล์ได้ไหม?
ไม่ได้ เครื่องมือนี้แฮชข้อมูลนำเข้าที่เป็นสตริงและไม่มีฟังก์ชันอัปโหลดไฟล์ หากต้องการหาเช็กซัมของไฟล์ ให้ใช้โปรแกรมในเครื่อง เช่น sha1sum บน Linux หรือคำสั่งเทียบเท่าที่อ่านไบต์ของไฟล์โดยตรง อย่าวางเนื้อหาไฟล์ไบนารีลงในช่องข้อความของเครื่องมือสร้าง SHA-1 เพราะการเข้ารหัสหรือการเปลี่ยนรูปแบบอักขระขึ้นบรรทัดใหม่อาจทำให้ผลลัพธ์เปลี่ยนไป
HMAC-SHA-1 ไม่ปลอดภัยเหมือนกันไหม?
การโจมตีแบบชนกันของ SHA-1 ที่ได้รับการเผยแพร่ไม่ได้ทำลาย HMAC-SHA-1 โดยตรงในลักษณะเดียวกัน เพราะ HMAC ใช้กุญแจลับและมีโครงสร้างแยกต่างหาก ถึงอย่างนั้น โปรโตคอลใหม่มักเลือก HMAC-SHA-256 หรือตัวเลือกอื่นที่ทันสมัย เพื่อหลีกเลี่ยงการพึ่งพาเทคโนโลยีเก่าและข้อจำกัดด้านนโยบาย
เติม Salt แล้วใช้ SHA-1 เก็บรหัสผ่านได้อย่างปลอดภัยไหม?
ไม่ได้ Salt ช่วยป้องกันไม่ให้รหัสผ่านที่เหมือนกันมีค่าย่อย SHA-1 ที่จัดเก็บไว้เหมือนกัน และทำให้การใช้ตารางที่คำนวณไว้ล่วงหน้าทำได้ยากขึ้น แต่ SHA-1 ยังคำนวณได้เร็วเกินไปมากสำหรับการจัดเก็บรหัสผ่าน ควรใช้ฟังก์ชันแฮชรหัสผ่านที่ปรับปัจจัยภาระงานได้ พร้อม Salt แบบสุ่มที่ไม่ซ้ำกัน
ตรวจสอบอีกครั้งก่อนใช้งาน
ก่อนเปรียบเทียบผลลัพธ์ SHA-1 จากเครื่องมือนี้กับค่าแฮชอื่น ให้ตรวจหาช่องว่างที่มองไม่เห็น อักขระขึ้นบรรทัดใหม่ที่ท้ายข้อมูล ความแตกต่างของการเข้ารหัสอักขระ และการเปลี่ยนตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กในข้อมูลนำเข้า ใช้ SHA-1 เฉพาะเมื่อระบบเดิมกำหนดให้ใช้ หรือเมื่อความต้านทานการชนกันไม่ใช่ข้อกำหนดด้านความปลอดภัย สำหรับระบบที่ออกแบบใหม่ ให้เลือกฟังก์ชันแฮชปัจจุบันที่ต้านทานการชนกันสำหรับเช็กซัมที่เชื่อถือได้ ใช้ MAC ที่มีกุญแจสำหรับการยืนยันตัวตนของข้อความ หรือใช้รูปแบบลายเซ็นดิจิทัลที่เหมาะสม
เครื่องมือยอดนิยม
สร้างลายเซ็นแบบกำหนดเองของคุณได้อย่างง่ายดายและดาวน์โหลดได้อย่างสะดวก
ใช้เครื่องมือ ping ของเราเพื่อตรวจสอบสถานะและเวลาตอบสนองของเว็บไซต์ เซิร์ฟเวอร์ หรือพอร์ตใด ๆ ได้อย่างรวดเร็วและมีประสิทธิภาพ
เครื่องมือค้นหา IP ของ Digily Link ให้ข้อมูลโดยละเอียดเกี่ยวกับที่อยู่ IP ใด ๆ ใช้บริการออนไลน์ฟรีนี้เพื่อดูข้อมูล IP อย่างครบถ้วน
สร้างลิงก์ WhatsApp ฟรีได้ทันทีด้วยเครื่องมือสร้างลิงก์ WhatsApp ของเรา เพิ่มข้อความที่กำหนดเองและเริ่มแชทได้ในคลิกเดียว โดยไม่ต้องเข้าสู่ระบบหรือเขียนโค้ด