PowerScan
TH

ลายนิ้วมือเสียงโดยไม่ต้องใช้ไมโครโฟน

ลายนิ้วมือเบราว์เซอร์ · อ่าน 5 นาที · โดย PowerScan

ภาพ: Unsplash

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

สร้างขึ้นอย่างไร

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

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

ทำไมจึงต่างกันระหว่างเครื่อง

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

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

เบราว์เซอร์ทำอะไร

Brave เพิ่มสัญญาณรบกวนให้การอ่านเสียงกลับ เช่นเดียวกับที่ทำกับ canvas Firefox ที่เปิด resist-fingerprinting ปิดบางส่วนของ Web Audio API หรือคืนค่าคงที่ Chromium ไม่แก้ไขผลลัพธ์ เบราว์เซอร์ที่สุ่มแฮชให้ค่าต่างกันทุกครั้งที่โหลดซ้ำ ซึ่งหน้าวินิจฉัยทำให้เห็นได้ง่าย ๆ ด้วยการให้คุณโหลดซ้ำและเปรียบเทียบ

ความเป็นส่วนตัวโดยแม่นยำ

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

การอ่านค่า

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

บทความทั้งหมด · เริ่มการสแกน