ฟังก์ชันแฮชรหัสลับ

ความหมายของฟังก์ชันแฮพโพรทีฟแฮช

ฟังก์ชันแฮชรหัสลับคืออัลกอริทึมที่สามารถเรียกใช้งานได้บนข้อมูลเช่น ไฟล์ หรือรหัสผ่านเพื่อสร้างค่าที่เรียกว่า checksum

การใช้ฟังก์ชันแฮชการเข้ารหัสลับหลักเพื่อตรวจสอบความถูกต้องของข้อมูล ไฟล์สองไฟล์สามารถมั่นใจได้ว่าจะเหมือนกันเฉพาะในกรณีที่ checksums ที่สร้างขึ้นจากไฟล์แต่ละไฟล์โดยใช้ฟังก์ชันแฮชบ็อตทีฟเดียวกันจะเหมือนกัน

ฟังก์ชันแฮชการเข้ารหัสลับที่ใช้บ่อยๆ ได้แก่ MD5 และ SHA-1 แม้ว่าหลาย ๆ คนจะมีอยู่ก็ตาม

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

ฟังก์ชันแฮ็กที่เข้ารหัสลับ: กรณีการใช้งาน

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

ใช้ เครื่องคิดเลข checksum calculum คำนวณ checksum โดยใช้ฟังก์ชัน hash cryptographic hash (พูด SHA-2) แล้วเปรียบเทียบกับการเผยแพร่บนไซต์ของ Mozilla

หากพวกเขาเท่ากันคุณก็สามารถมั่นใจได้ว่าการดาวน์โหลดที่คุณมีนั้นเป็นสิ่งที่ Mozilla ตั้งใจให้คุณทำ

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

สามารถแฮ็คลับการเข้ารหัสลับได้หรือไม่?

ฟังก์ชันแฮชบ็อกซ์กัญชาถูกออกแบบมาเพื่อป้องกันความสามารถในการย้อนกลับ checksums ที่สร้างขึ้นใหม่ในข้อความต้นฉบับ

อย่างไรก็ตามแม้ว่าจะไม่สามารถย้อนกลับได้ แต่ก็ไม่ได้หมายความว่าพวกเขาได้รับการรับรอง 100% เพื่อปกป้องข้อมูล

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

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

ต่อไปนี้เป็นตารางแบบสายรุ้งที่เรียบง่ายเพื่อแสดงว่าจะใช้งานได้อย่างไรเมื่อใช้ฟังก์ชันแฮชบาเน็ตแบบ SHA-1:

ข้อความธรรมดา SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
ฉันรักสุนัขของฉัน a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

สำหรับค่าเหล่านี้ที่จะคิดออกโดยใช้ checksum จะทำให้แฮ็กเกอร์เข้าใจว่ามีการใช้อัลกอริธึมแฮชบัพนั้นในการสร้างข้อมูลเหล่านี้อย่างไร

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

ค่านี้จะสร้างมูลค่าใหม่ที่เฉพาะเว็บเซิร์ฟเวอร์เข้าใจและไม่ตรงกับการตรวจสอบต้นฉบับ

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

การทำเช่นนี้จะช่วย จำกัด ประสิทธิภาพของสแต็คที่ checksums ทั้งหมดจะถูกขโมย

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

รหัสผ่านและฟังก์ชันแฮ็กที่เข้ารหัสลับ

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

ระบุว่าฟังก์ชันแฮชรหัสลับสร้างการตรวจสอบที่ไม่สามารถย้อนกลับได้นั่นหมายความว่าคุณสามารถกำหนดรหัสผ่านของคุณได้ง่ายๆเท่ากับ 12345 แทนที่จะเป็น 12 @ 34 $ 5 เพียงเพราะ checksums เองไม่สามารถเข้าใจได้? แน่นอนมันไม่ ได้ และนี่เป็นเหตุผล ...

ดังที่คุณเห็นรหัสผ่านทั้งสองนี้เป็นไปไม่ได้ที่จะถอดรหัสโดยเพียงแค่มองที่การตรวจสอบเท่านั้น:

MD5 สำหรับ 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 เป็นเวลา 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

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

การโจมตีด้วยความเดรัจฉานคือเมื่อมีการสุ่มแบบสุ่มหลาย ๆ ครั้งที่คาดเดารหัสผ่าน ในกรณีนี้จะเป็นการคาดเดาได้ง่าย "12345" แต่ค่อนข้างยากที่จะสุ่มเลือกตัวเลขอื่น ๆ การโจมตีด้วยพจนานุกรมคล้าย ๆ กันว่าผู้โจมตีสามารถลองทุกคำจำนวนหรือวลีจากรายการรหัสผ่านทั่วไป (และใช้กันโดยทั่วไปได้น้อยกว่า) "12345" เป็นคำที่พยายามอย่างแน่นอน

ดังนั้นแม้ว่าฟังก์ชันการเข้ารหัสลับแบบเข้ารหัสลับจะทำให้เกิด checksums ที่ไม่สามารถคาดเดาได้ยาก แต่คุณควรใช้รหัสผ่านที่ซับซ้อนสำหรับบัญชีผู้ใช้ออนไลน์และท้องถิ่นทั้งหมดของคุณ

เคล็ดลับ: ดู ตัวอย่างรหัสผ่านที่อ่อนและแรง หากคุณไม่แน่ใจว่ารหัสผ่านของคุณถือว่าเป็นรหัสผ่านที่รัดกุมหรือไม่

ข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันแฮ็กที่เข้ารหัสลับ

ดูเหมือนว่าฟังก์ชันแฮชที่เข้ารหัสลับเกี่ยวข้องกับการเข้ารหัส แต่ทั้งสองทำงานด้วยวิธีที่ต่างกัน

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

เช่นเดียวกับที่ได้อธิบายไว้ข้างต้นฟังก์ชันแฮชที่เข้ารหัสลับจะทำงานแตกต่างกันโดยที่ checksums ไม่ได้มีไว้เพื่อให้ตรงกันกับรหัสผ่าน de-hashing พิเศษเช่นว่าไฟล์เข้ารหัสถูกอ่านด้วยรหัสผ่านถอดรหัสพิเศษ ฟังก์ชันยับยั้งข้อมูลลับเฉพาะของฟังก์ชันการเข้ารหัสคือการเปรียบเทียบข้อมูลสองชิ้นเช่นเมื่อดาวน์โหลดไฟล์จัดเก็บรหัสผ่านดึงข้อมูลจากฐานข้อมูลเป็นต้น

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

เหตุผลที่การชนกันเกิดขึ้นได้เนื่องจากฟังก์ชันแฮชที่เข้ารหัสลับแต่ละตัวจะสร้างค่าความยาวคงที่โดยไม่คำนึงถึงข้อมูลที่ป้อนเข้า ตัวอย่างเช่น MD5 cryptographic hash function จะสร้าง 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 และ e10adc3949ba59abbe56e057f20f883e สำหรับบล็อกข้อมูลที่ต่างกันทั้งหมดสามชุด

การตรวจสอบครั้งแรกนับจาก 12345 วินาทีส่วนที่สองสร้างจากตัวอักษรและตัวเลขมากกว่า 700 ตัวอักษรและเลขที่ 3 จาก 123456 อินพุตทั้งสามมีความยาวแตกต่างกัน แต่ผลลัพธ์จะมีความยาวได้เพียง 32 ตัวเนื่องจากใช้ MD5

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

นี่คือเหตุผลที่มีการสร้างฟังก์ชันแฮชบาฟกอื่น ๆ ในขณะที่ MD5 สร้างมูลค่า 32 ตัว SHA-1 สร้างอักขระได้ 40 ตัวและ SHA-2 (512) สร้าง 128 จำนวนอักขระที่มีการตรวจสอบมีจำนวนเท่าใดโอกาสที่เกิดการปะทะกันจะน้อยลงเนื่องจากมีพื้นที่มากขึ้น ค่าที่ไม่ซ้ำกัน