ไทย

เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ · SHA เครื่องคำนวณแฮช

การวางความลับลงในเครื่องมือแฮชออนไลน์: เหตุใดไดเจสต์จึงควรอยู่ในเครื่อง

· เหตุใดจึงสำคัญ

sha-256 ความปลอดภัย ความเป็นส่วนตัว เบราว์เซอร์-apis

แผงเครือข่าย DevTools แสดงคำขอเป็นศูนย์ขณะแฮชคีย์ API ในเครื่อง
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

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

คีย์ API ที่คุณแฮชเพื่อเปรียบเทียบกับไฟล์ปรับแต่ง — และตำแหน่งที่มันไป

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

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

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

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

อีกทางเลือกหนึ่งคือใช้ Web Crypto ซึ่งเป็นการใช้งานการเข้ารหัสของเบราว์เซอร์เอง บนต้นทางที่ปลอดภัย ซึ่งหมายถึง HTTPS หรือ localhost เบราว์เซอร์จะเปิดเผย crypto.subtle.digest ซึ่งเป็นฟังก์ชันที่คำนวณ SHA-1, SHA-256, SHA-384 และ SHA-512 แยกย่อยทั้งหมดภายในกระบวนการของเบราว์เซอร์ อินพุตจะไม่ออกจากอุปกรณ์ และไม่มีเซิร์ฟเวอร์เกี่ยวข้อง การใช้งานเบราว์เซอร์ได้รับการตรวจสอบโดยผู้จำหน่ายเบราว์เซอร์ แพตช์โดยผู้จำหน่ายเบราว์เซอร์ และทำงานเป็นโค้ดเนทิฟที่ได้รับการปรับปรุง แทนที่จะจัดส่ง JavaScript

เหตุใดเซิร์ฟเวอร์จึงไม่จำเป็น — Web Crypto ของเบราว์เซอร์จะคำนวณทุก ๆ SHA-2 แยกย่อยในเครื่อง

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

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

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

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

ส่วนหัวนโยบายความปลอดภัยของเนื้อหาจะถูกส่งไปพร้อมกับการตอบกลับ HTTP และสามารถตรวจสอบได้ในส่วนส่วนหัวการตอบกลับของแท็บ DevTools Network บรรทัดเช่น Content-Security-Policy: default-src 'self'; script-src 'self' ประกาศว่าสคริปต์สามารถมาจากแหล่งเดียวกันเท่านั้น นโยบายที่เข้มงวดยิ่งขึ้นซึ่งรวมถึงเฟรมบรรพบุรุษ 'ไม่มี' จะป้องกันไม่ให้เพจถูกฝังใน iframe ซึ่งจะบล็อกเวกเตอร์การโจมตีหาก iframe ที่เป็นอันตรายพยายามขโมยโฟกัส รายละเอียดเหล่านี้มีประโยชน์สำหรับการทำความเข้าใจการป้องกัน แต่การตรวจสอบแผงเครือข่ายยังคงเป็นการตรวจสอบหลัก

CSP คือการป้องกันเชิงลึก แหล่งเก็บข้อมูลที่อ่านที่นี่ไม่ได้สร้างส่วนหัวที่ปรับใช้

ตัวอย่างการทำงาน: การวางคีย์ API จาก AWS หรือ Azure ลงในเครื่องคำนวณแฮช ToolAcre SHA เพื่อตรวจสอบกับลายนิ้วมือที่เก็บไว้ เปิด DevTools เลือกแท็บเครือข่าย และตรวจดูให้แน่ใจว่ากำลังบันทึกอยู่ วางคีย์ API ลงในเครื่องมือแฮช เลือก SHA-256 แล้วคลิกแฮช ข้อมูลสรุปจะปรากฏในเครื่องมือ และแผงเครือข่ายไม่แสดงคำขอใหม่ เวกเตอร์ทดสอบมีอยู่ในเอกสารประกอบของเครื่องมือเพื่อตรวจสอบความถูกต้องของแฮชหากจำเป็น ประเด็นสำคัญคือคีย์ API ไม่เคยออกจากเบราว์เซอร์ และตอนนี้สามารถเปรียบเทียบไดเจสต์กับค่าที่เก็บไว้ได้โดยไม่ต้องเปิดเผยความลับเลย

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

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

คำแนะนำสำหรับทุกคนในการวางข้อมูลลับลงในเครื่องมือคือการตรวจสอบว่าเครื่องมือนั้นอยู่ในเครื่องก่อนที่จะวาง นี่เป็นขั้นตอนง่ายๆ ที่ช่วยขจัดความเสี่ยงที่ใหญ่ที่สุดเพียงอย่างเดียว: ผู้ดำเนินการเซิร์ฟเวอร์ พนักงาน การสำรองข้อมูล และบันทึกทั้งหมดจะเห็นข้อความธรรมดา ใช้แผงเครือข่าย DevTools เฝ้าดูคำขอเป็นศูนย์ จากนั้นเชื่อถือเครื่องมือด้วยความลับ เครื่องคำนวณแฮช ToolAcre SHA ได้รับการออกแบบเพื่อใช้ในลักษณะนี้ มันไม่เก็บอะไรเลย ไม่อัพโหลดอะไรเลย และแผงเครือข่ายยังคงว่างเปล่า

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

สิ่งนี้ไม่ครอบคลุมถึง — ส่วนขยายเบราว์เซอร์และเครื่องที่ถูกบุกรุก ซึ่งไม่มีเครื่องมือเว็บใดสามารถป้องกันได้

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

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

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

หลักการความโปร่งใสเป็นหัวใจสำคัญของแนวทาง ToolAcre: เครื่องมือทุกตัวจะบันทึกสิ่งที่ทำ สิ่งที่เบราว์เซอร์มอบให้ และสิ่งที่นักพัฒนาต้องทำ เอกสารเครื่องคำนวณแฮช SHA ที่ใช้การใช้งาน Web Crypto ของเบราว์เซอร์สำหรับ SHA-256, SHA-384 และ SHA-512 และไม่ได้ใช้ HMAC หรือการสืบทอดคีย์ สำหรับการแฮช เครื่องมือนี้ถูกต้องแม่นยำ สำหรับการตรวจสอบสิทธิ์ นักพัฒนาจะต้องมองหาที่อื่น ความชัดเจนนี้ช่วยป้องกันความสับสนที่เกิดขึ้นเมื่อเครื่องมือเดียวพยายามทำมากเกินไป

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