เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ · SHA เครื่องคำนวณแฮช
การแฮชไม่ใช่การเข้ารหัส: เหตุใด SHA-256 Hash จึงไม่สามารถถอดรหัสได้
· เหตุใดจึงสำคัญ
การเข้ารหัส ความปลอดภัย การเข้ารหัส
ไม่มีคีย์และไม่มีการผกผัน: แฮชเป็นฟังก์ชันทางเดียว โพสต์นี้จะอธิบายความแตกต่างจากการเข้ารหัส เหตุใดเว็บไซต์ค้นหาแฮชจึงดูเหมือนจะย้อนกลับแฮช และความหมายของการแฮชข้อมูลส่วนบุคคล
โปรดถอดรหัสแฮชเหล่านี้ — ตั๋วที่เผยให้เห็นความเข้าใจผิดเกี่ยวกับแฮชคืออะไร
ตั๋วสนับสนุนมาถึงเพื่อขอให้ถอดรหัสแฮช SHA-256 บางส่วน นักพัฒนาซอฟต์แวร์ที่อ่านข้อความนี้สงสัยว่ามีความเข้าใจผิดเกี่ยวกับสิ่งที่แฮชคืออะไร ความสับสนนี้สมเหตุสมผล ทั้งการแฮชและการเข้ารหัสเกี่ยวข้องกับอัลกอริธึมการเข้ารหัส ซึ่งทั้งคู่สร้างเอาต์พุตที่ดูมีสัญญาณรบกวน และทั้งสองอย่างเกี่ยวข้องกับความปลอดภัย แต่มันเป็นเครื่องมือที่แตกต่างกันโดยพื้นฐาน การเข้ารหัสสามารถย้อนกลับได้ การแฮชไม่ใช่ ความแตกต่างนี้สำคัญมากพอที่จะทำให้พวกเขาสับสนได้ทำลายระบบความปลอดภัยที่แท้จริง ตั๋วแสดงถึงช่องว่างทั่วไปในการทำความเข้าใจที่ส่งผลต่อการออกแบบระบบ
ฟังก์ชันแฮชเป็นฟังก์ชันทางเดียว คุณสามารถแฮชอินพุตเพื่อรับไดเจสต์ได้ แต่ไม่มีคีย์และไม่มีการดำเนินการผกผันที่จะกู้คืนอินพุตจากไดเจสต์ นี่ไม่ใช่ข้อจำกัดหรือจุดบกพร่อง มันเป็นคุณสมบัติที่กำหนดของแฮช เครื่องคำนวณแฮช ToolAcre SHA จะสร้างข้อความย่อยที่คุณวาง และไม่มีปุ่ม "ถอดรหัส" เนื่องจากไม่มีปุ่มใดอยู่ การดำเนินการนี้ไม่สามารถย้อนกลับได้ด้วยคณิตศาสตร์ ไม่ใช่โดยการเลือก การไม่มีฟังก์ชันย้อนกลับไม่ใช่คุณสมบัติที่คุณสามารถขอได้
การเข้ารหัสมีคีย์และสิ่งที่ตรงกันข้าม การแฮชไม่มีทั้งสองอย่าง - คำจำกัดความที่แตกต่างในแง่ธรรมดา
การเข้ารหัสทำงานแตกต่างออกไป อัลกอริธึมการเข้ารหัสใช้ข้อความธรรมดาและคีย์ และสร้างข้อความไซเฟอร์เท็กซ์ ไซเฟอร์เท็กซ์มีสัญญาณรบกวนและไม่สามารถอ่านได้โดยไม่ต้องใช้คีย์ สิ่งสำคัญที่สุดคือคีย์เดียวกันสามารถถอดรหัสข้อความไซเฟอร์เท็กซ์กลับไปเป็นข้อความธรรมดาได้ การเข้ารหัสสามารถย้อนกลับได้ด้วยการออกแบบ คุณเข้ารหัสเพื่อเก็บข้อมูลเป็นความลับ คุณถอดรหัสเพื่ออ่านอีกครั้ง ความปลอดภัยของการเข้ารหัสขึ้นอยู่กับคีย์ที่เป็นความลับ เฉพาะผู้ถือกุญแจเท่านั้นที่สามารถย้อนกลับการแปลงได้
การแฮชไม่มีคีย์และไม่มีการกลับรายการ คุณแฮชบางสิ่งเพื่อสร้างการแยกย่อยที่มีความยาวคงที่ อินพุตเดียวกันจะสร้างไดเจสต์เดียวกันเสมอ อินพุตที่แตกต่างกันจะสร้างข้อมูลย่อยที่แตกต่างกัน นั่นคือคุณสมบัติต้านทานการชนกัน แต่คุณไม่สามารถแยกแยะและสร้างอินพุตได้ ฟังก์ชั่นไปเพียงทางเดียวเท่านั้น หากคุณต้องการเข้ารหัสข้อมูลเพื่อให้สามารถถอดรหัสได้ในภายหลัง การแฮชถือเป็นเครื่องมือที่ไม่ถูกต้อง หากคุณต้องการลายนิ้วมือของข้อมูลเพื่อการตรวจสอบหรือการจัดการเนื้อหา การแฮชนั้นถูกต้อง การเลือกเครื่องมือที่เหมาะสมต้องอาศัยความเข้าใจในความแตกต่าง
วิธีการทำงานของไซต์ค้นหาแฮช — พจนานุกรมที่คำนวณล่วงหน้าของอินพุตทั่วไป ไม่ใช่การถอดรหัส
ความแตกต่างนี้มีความสำคัญมากจนรองรับความปลอดภัยของการตรวจสอบรหัสผ่าน เซิร์ฟเวอร์ไม่เก็บรหัสผ่าน มันเก็บผลลัพธ์ของการแฮชรหัสผ่าน เมื่อผู้ใช้เข้าสู่ระบบ เซิร์ฟเวอร์จะแฮชการส่งและเปรียบเทียบกับค่าที่เก็บไว้ หากเซิร์ฟเวอร์ถูกบุกรุกและฐานข้อมูลถูกขโมย ผู้โจมตีจะไม่ได้รับรหัสผ่านด้วยตนเอง จะได้รับเฉพาะแฮชเท่านั้น ลักษณะทางเดียวของแฮชหมายความว่าผู้โจมตีไม่สามารถวิศวกรรมย้อนกลับรหัสผ่านจากแฮชได้ ความปลอดภัยของระบบขึ้นอยู่กับคุณสมบัตินี้
หากเซิร์ฟเวอร์ใช้การเข้ารหัสแทน หากเซิร์ฟเวอร์เข้ารหัสรหัสผ่านและสามารถถอดรหัสได้ การประนีประนอมที่ขโมยคีย์จะทำให้รหัสผ่านทุกอันถูกเปิดเผยทันที การแฮชถูกเลือกโดยเฉพาะเนื่องจากไม่สามารถย้อนกลับได้ นี่คือสาเหตุที่ระบบรหัสผ่านใช้การแฮช ไม่ใช่การเข้ารหัส การกลับไม่ได้ไม่ใช่ข้อจำกัด มันคือโมเดลความปลอดภัยทั้งหมด ฐานข้อมูลรหัสผ่านที่เข้ารหัสนั้นอ่อนแอกว่าฐานข้อมูลที่ถูกแฮชโดยพื้นฐานแล้ว เนื่องจากการเข้ารหัสสามารถย้อนกลับได้
ข้อมูลเอนโทรปีต่ำเป็นจุดอ่อน — เหตุใดการแฮชที่อยู่อีเมล หมายเลขโทรศัพท์ หรือ PIN แบบสั้นจึงให้การป้องกันเพียงเล็กน้อย
มีไซต์ค้นหาแฮชเพื่อสร้างภาพลวงตาของการถอดรหัส ไซต์เหล่านี้โฮสต์ตารางอินพุตทั่วไปและแฮชที่คำนวณไว้ล่วงหน้า "ตารางสีรุ้ง" เป็นพจนานุกรมที่เตรียมไว้ล่วงหน้า ตารางอาจมีแฮชของรหัสผ่านที่ใช้บ่อยที่สุดนับพันรหัส หรือชุดตัวเลขและตัวอักษรทั้งหมดจนถึงความยาวที่กำหนด หรือรายการคำทั้งหมดในหลายภาษา เจ้าหน้าที่ไซต์ได้ดำเนินการแฮชและจัดเก็บผลลัพธ์แล้ว เมื่อมีคนส่งแฮชไปยังไซต์การค้นหา ไซต์นั้นจะไม่ถอดรหัสอะไรเลย มันเพียงแค่ดูแฮชในตาราง หากมีแฮชอยู่ หากคำในพจนานุกรมหรือรูปแบบรหัสผ่านตรงกัน ตารางจะส่งคืนอินพุตดั้งเดิม ดูเหมือนว่าการถอดรหัสด้วยเวทมนตร์สำหรับคนที่ไม่คุ้นเคยกับเทคนิคนี้ แต่เป็นเพียงการค้นหาฐานข้อมูลเท่านั้น ไซต์ไม่ได้ย้อนกลับแฮช เป็นการเปรียบเทียบกับค่าที่คำนวณไว้ล่วงหน้า
ตัวอย่างการทำงาน — การแฮชค่าที่คาดเดาได้และแสดงให้เห็นว่าพจนานุกรมจะกู้คืนค่านั้นได้อย่างไร เทียบกับค่าสุ่มแบบยาวที่ไม่สามารถกู้คืนได้
นี่คือเหตุผลว่าทำไมอินพุตเอนโทรปีต่ำจึงมีความเสี่ยง หากคุณแฮชรหัสผ่านทั่วไป เช่น "รหัสผ่าน" หรือค่าที่คาดเดาได้ เช่น ที่อยู่อีเมลของใครบางคน มีโอกาสที่สมเหตุสมผลที่ไซต์ค้นหาจะคำนวณแฮชนั้นและเก็บไว้แล้ว การค้นหาจะส่งกลับค่าเดิมทันที หากคุณแฮชสตริงสุ่ม 256 อักขระ ไม่มีไซต์การค้นหาใดบนโลกที่จะมีการคำนวณแฮชนั้นล่วงหน้า ไซต์การค้นหาไม่ส่งคืนสิ่งใด เนื่องจากอินพุตไม่ได้อยู่ในพจนานุกรม ความปลอดภัยของแฮชนั้นขึ้นอยู่กับเอนโทรปีของอินพุตทั้งหมด
เครื่องคำนวณแฮช ToolAcre SHA สาธิตสิ่งนี้โดยตรง แฮชคำทั่วไป และผู้โจมตีที่มุ่งมั่นสามารถค้นหาคำนั้นได้หากพวกเขาใช้บริการพจนานุกรมของตนเอง แฮชมีค่าสุ่มที่ยาว และแม้แต่พจนานุกรมขนาดใหญ่ก็ไม่น่าจะบรรจุได้ ระดับของการแฮช - อินพุตที่เหมือนกันให้ผลลัพธ์ที่เหมือนกัน - เป็นสิ่งที่ทำให้การโจมตีด้วยพจนานุกรมเป็นไปได้ นอกจากนี้ยังเป็นสิ่งที่ทำให้แฮชมีประโยชน์ในการตรวจสอบอีกด้วย คุณสมบัติเดียวกันที่เปิดใช้งานการค้นหายังเปิดใช้งานการตรวจสอบด้วย
เมื่อคุณต้องการการเข้ารหัสจริงๆ — กรณีที่ข้อมูลต้องถูกส่งออก และแฮชเป็นเครื่องมือที่ไม่ถูกต้อง
เมื่อคุณต้องการการเข้ารหัสจริงๆ เมื่อคุณต้องการส่งข้อมูลลับและกู้คืนในภายหลัง การเข้ารหัสคือเครื่องมือที่เหมาะสม AES เป็นมาตรฐานสมัยใหม่สำหรับการเข้ารหัสแบบสมมาตร: มีการใช้คีย์เดียวร่วมกัน และจะเข้ารหัสข้อความธรรมดาและถอดรหัสข้อความไซเฟอร์เท็กซ์ RSA หรือการเข้ารหัสแบบ elliptic-curve ใช้สำหรับการเข้ารหัสแบบอสมมาตร: การเข้ารหัสคีย์สาธารณะและการถอดรหัสคีย์ส่วนตัว เครื่องมือเหล่านี้สามารถพลิกกลับได้โดยการออกแบบ การรักษาความปลอดภัยมาจากการรักษาความลับของคีย์ ไม่ใช่จากการไม่สามารถย้อนกลับได้ ข้อผิดพลาดคือการใช้การแฮชเมื่อจำเป็นต้องมีการเข้ารหัส หากคุณแฮชหมายเลขบัตรเครดิตที่ต้องการตรวจสอบในภายหลัง คุณจะไม่มีทางถอดรหัสได้ หากคุณแฮชตัวระบุส่วนบุคคลและจำเป็นต้องกู้คืนในภายหลัง การแฮชถือเป็นทางเลือกที่ผิด นี่คือสถานการณ์ที่จำเป็นต้องมีการเข้ารหัส
ตัวอย่างการทำงานแยกการใช้งานทั้งสองอย่างชัดเจน คุณมีรายการ ID ผู้ใช้ที่ต้องเก็บเป็นความลับระหว่างกันและจากพนักงานของคุณเอง คุณเข้ารหัสด้วย AES และเก็บผลลัพธ์ หลังจากนั้น เมื่อคุณต้องการค้นหาผู้ใช้ คุณสามารถถอดรหัสและอ่านข้อมูลเหล่านั้นได้ การแฮชจะไม่ทำงาน เมื่อแฮชแล้ว ID จะหายไปอย่างถาวร ในทางตรงกันข้าม คุณมีรหัสผ่านผู้ใช้ คุณแฮชมันและเก็บแฮช เมื่อผู้ใช้เข้าสู่ระบบ คุณจะแฮชการส่งและเปรียบเทียบกับค่าที่เก็บไว้ คุณไม่จำเป็นต้องกู้คืนรหัสผ่านด้วยตนเอง การเข้ารหัสจะผิด คุณไม่ต้องใช้รหัสผ่านแบบธรรมดาหลังจากการตั้งค่าเริ่มต้น
สิ่งนี้ไม่ครอบคลุมถึงการออกแบบแฮชแบบคีย์และแบบเค็ม ซึ่งยกระดับมาตรฐาน แต่เป็นหัวข้อที่แยกจากกัน
การใส่เกลือและการแฮชแบบคีย์สมควรได้รับการดูแลแยกกัน เนื่องจากไม่เปลี่ยนการย่อยเป็นการเข้ารหัส เกลือจะทำให้อินพุตเอนโทรปีต่ำเท่ากันจะสร้างบันทึกที่เก็บไว้ที่แตกต่างกัน และคีย์สามารถจำกัดผู้ที่คำนวณค่าการรับรองความถูกต้องที่ถูกต้องได้ เอาต์พุตยังคงไม่สามารถย้อนกลับได้ ความพยายามในการกู้คืนยังคงดำเนินการโดยการทดสอบอินพุตของผู้สมัครแทนที่จะใช้การผกผัน
การแฮชรหัสผ่านจะเพิ่มค่าใช้จ่ายโดยเจตนาและค่าใช้จ่ายเพิ่มเติม ในขณะที่ HMAC ตรวจสอบสิทธิ์ข้อความด้วยรหัสลับ ToolAcre ไม่มีการดำเนินการใดๆ การเก็บคำเหล่านี้ไว้นอกบทความนี้จะหลีกเลี่ยงทางลัดที่เป็นอันตรายในการอธิบาย SHA-256 แบบธรรมดา บวกกับคำนำหน้าแบบชั่วคราวซึ่งเทียบเท่ากับบันทึกรหัสผ่านที่ได้รับการตรวจสอบหรือการสร้างการตรวจสอบสิทธิ์ข้อความ
Takeaway: วิธีเดียวเท่านั้น - ToolAcre SHA เครื่องคำนวณแฮชจะคำนวณการแยกย่อย ไม่มีปุ่มย้อนกลับเพราะไม่มีอยู่จริง
เครื่องคำนวณแฮช ToolAcre SHA จะแสดงให้คุณเห็นว่าคุณกำลังแฮช: วางข้อความ รับข้อมูลสรุป และเสร็จสิ้น ไม่มีการกลับรายการที่เป็นไปได้หรือตั้งใจ เครื่องมือปฏิเสธที่จะจัดให้มีฟังก์ชัน "ถอดรหัส" อย่างถูกต้อง เนื่องจากไม่มีฟังก์ชันดังกล่าวอยู่ หากคุณต้องการการเข้ารหัส ให้ใช้การเข้ารหัสที่เหมาะสม การไม่มีการกลับรายการไม่ใช่ข้อจำกัดของเครื่องมือ มันเป็นข้อเท็จจริงทางคณิตศาสตร์เกี่ยวกับการแฮช ฟังก์ชันทางเดียวเป็นเครื่องมือที่มีประสิทธิภาพเนื่องจากไม่สามารถย้อนกลับได้ พวกเขาส่งข้อมูลในลักษณะที่ไม่สามารถนำกลับมาได้ พวกเขาให้การตรวจสอบโดยไม่เปิดเผยต้นฉบับ พวกเขาเปิดใช้งานระบบรหัสผ่านที่ปลอดภัยแม้ว่าฐานข้อมูลจะถูกขโมยก็ตาม แฮชรหัสผ่านที่เค็มและปรับต้นทุนอย่างเหมาะสมนั้นไม่สามารถย้อนกลับผ่านการเดาได้ การกลับไม่ได้คือกลไกการรักษาความปลอดภัย
เครื่องคำนวณแฮช ToolAcre SHA คำนวณการแยกย่อยที่เป็นแบบทางเดียว มีวัตถุประสงค์ และคำนวณอย่างเหมาะสมโดยการใช้ Web Crypto ของเบราว์เซอร์เอง หากคุณต้องการแฮชเพื่อการตรวจสอบหรือความสมบูรณ์ ให้ใช้มัน หากคุณต้องการเก็บข้อมูลเป็นความลับและเรียกคืนในภายหลัง การเข้ารหัสคือเครื่องมือของคุณ การทำความเข้าใจความแตกต่างระหว่างแฮชแบบย้อนกลับไม่ได้และการเข้ารหัสแบบย้อนกลับเป็นพื้นฐานของการรักษาความปลอดภัยและการสร้างระบบที่ทำสิ่งที่คุณต้องการจริงๆ