1. AudioContext trong Nhận dạng dấu vân tay trình duyệt là gì
AudioContext là một phần của Web Audio API, cung cấp một biểu đồ xử lý tín hiệu để quản lý các nguồn âm thanh, bộ lọc và đích bên trong trình duyệt. Mặc dù không trực quan hoặc được tham chiếu thường xuyên như dấu vân tay Canvas hoặc WebGL, nhưng nó có thể là một định danh cấp phần mềm ẩn nhưng mạnh mẽ.
Các hệ thống nhận dạng dấu vân tay khai thác các đường dẫn kết xuất âm thanh, chẳng hạn như:
- Số lượng kênh và khả năng của thiết bị đầu ra âm thanh
- Sự khác biệt về tần số lấy mẫu và độ chính xác khi phát lại
- Hành vi độ trễ xử lý âm thanh
- Liệu ScriptProcessorNode hoặc AudioWorklet có được hỗ trợ hoặc bị chặn hay không
- Các thuộc tính gỡ lỗi như
audioContext.listener
,currentTime
vàbaseLatency
Với tương tác người dùng hoặc lời nhắc quyền tối thiểu, dấu vân tay AudioContext khó từ chối và có thể được tổng hợp một cách lặng lẽ, khiến nó trở thành mục tiêu phổ biến trong các hệ thống nhận dạng thiết bị thụ động.
2. Cách các nền tảng phát hiện dấu vân tay AudioContext
Các nền tảng tiên tiến nhất (đặc biệt là những nền tảng nhắm mục tiêu thủy vân âm thanh, tích chập âm thanh, hoặc đặc điểm DSP) có thể sử dụng AudioContext theo những cách đo lường các biến thể bên trong trình duyệt và công cụ âm thanh.
Ví dụ đoạn mã phát hiện:
const audioCtx = new AudioContext();
const oscillator = audioCtx.createOscillator();
const listener = audioCtx.listener;
const dest = audioCtx.destination;
console.log(listener.forwardX.value, listener.forwardY.value, listener.forwardZ.value);
console.log({
sampleRate: audioCtx.sampleRate,
baseLatency: audioCtx.baseLatency,
state: audioCtx.state,
outputChannelCount: dest.maxChannelCount,
});
Những gì có thể được nhận dạng dấu vân tay:
Thuộc tính Âm thanh | Sử dụng trong Theo dõi |
---|---|
Tần số Lấy mẫu | Có thể phát hiện mặc định của OS/macOS/Windows |
Hỗ trợ Số kênh | Suy luận khả năng thiết bị |
Không gian Bộ nghe Âm thanh | Các mẫu định hướng âm thanh nổi/3D ẩn |
Chữ ký Kernel DSP | Đặc biệt trong mạng tích chập |
Lập lịch Web Audio | Các sự kiện như oncomplete + độ trễ là những chỉ số đáng tin cậy |
Một số nền tảng thậm chí còn kết xuất dạng sóng tổng hợp, tính toán Biến đổi Fourier nhanh (FFT) trong JavaScript hoặc mã hóa các tạo tác âm thanh tinh vi (ví dụ: sự khác biệt cắt xén) để phân biệt giữa các trình duyệt thật và trình duyệt giả lập.
3. Cách FlashID che giấu dấu vân tay AudioContext
Để ngăn các trình duyệt bị nhận dạng dấu vân tay ngầm qua âm thanh, FlashID đảm bảo ảo hóa và giả mạo hoàn toàn các hành vi của Web Audio API, bao gồm:
Ảo hóa Bộ nghe AudioContext
- Giả mạo các giá trị định hướng 3D như
forwardX
,positionX
,velocity
choPannerNode
vàAudioListener
- Giả mạo các giá trị định hướng 3D như
Che giấu Tần số lấy mẫu và Số kênh
- Che giấu
audioContext.sampleRate
bằng các giá trị thực tế có thể cấu hình cho máy tính để bàn/di động (44100
,48000
, v.v.) - Giả mạo giới hạn kênh đầu ra (
destination.maxChannelCount
) bất kể giới hạn thiết bị thực
- Che giấu
Mô phỏng Đường dẫn DSP
- Mã hóa đầu ra bộ đệm pha trộn tổng hợp thay vì sử dụng biểu đồ tín hiệu thực tế
- Ngăn chặn các hệ thống sử dụng giao tiếp ScriptNode hoặc Worklet để suy ra tính duy nhất
Kiểm soát Trạng thái và Độ trễ
- Khắc phục
audioContext.state
thành các giá trị thời gian chạy mong đợi (đang chạy/đã đóng/đã tạm dừng) - Che giấu
baseLatency
để phản ánh hành vi mặc định tiêu chuẩn của máy tính để bàn hoặc di động
- Khắc phục
Tính nhất quán của Context trong suốt Phiên
- Dấu vân tay âm thanh được khóa vào danh tính trên mỗi hồ sơ
- Ngăn chặn sự trôi dạt giữa các phiên kết xuất nối tiếp bằng cách đảm bảo cùng một giá trị hỗ trợ trên nhiều lần đặt lại công cụ
FlashID mô phỏng những điều này bằng cách sử dụng một proxy AudioBus nội bộ và cấu hình các nút giả và chuỗi định tuyến duy trì các phản hồi API Web Audio hợp lý, mà không làm lộ các đặc điểm DSP của thiết bị thực.
Điều này đảm bảo rằng các nền tảng không thể sử dụng AudioContext một cách đơn lẻ hoặc kết hợp với Canvas/WebGL để tái tạo sự đa dạng của thiết bị hoặc gắn cờ môi trường giả mạo — đồng thời cung cấp cùng một giao diện mà mã của bạn mong đợi.
Bạn Cũng Có Thể Thích