如何避免密码被AI击键模式检测识别( 二 )


 
?使用生物识别身份验证:由于此类验证方法(如:指纹识别或面部识别)比密码更难以克隆 , 因此它增加一层额外的保护 , 可防止攻击者未经授权的访问 。你可以通过链接(https://stackoverflow.blog/2022/11/16/biometric-authentication-for-web-devs) , 获取到一份内容详尽的、Web开发人员针对其应用经常实施的、生物识别身份验证指南 。
 

如何避免密码被AI击键模式检测识别

文章插图
生物识别身份验证流程图
 
?降噪算法:在Web应用中实施降噪算法 , 可以减少那些由按键产生的可被检测到的声音 。虽然这不一定是最行之有效的保护 , 但是它可以使得攻击者更难使用人工智能工具 , 在较短的时间内准确地检测出声音模式 。
<head><title>Noise Reduction Web App</title></head><body><button id="startButton">Start Recording</button><button id="stopButton" disabled>Stop Recording</button><br><audio id="audioElement" controls></audio><script>let audioContext, mediaStream, scriptProcessor;const bufferSize = 2048, threshold = 0.05;const startButton = document.getElementById('startButton');const stopButton = document.getElementById('stopButton');const audioElement = document.getElementById('audioElement');startButton.addEventListener('click', startRecording);stopButton.addEventListener('click', stopRecording);function startRecording() {navigator.mediaDevices.getUserMedia({ audio: true }).then(stream => {audioContext = new (window.AudioContext || window.webkitAudioContext)();mediaStream = stream;scriptProcessor = audioContext.createScriptProcessor(bufferSize, 1, 1);scriptProcessor.onaudioprocess = e => {const inData = https://www.isolves.com/it/aq/hk/2023-08-31/e.inputBuffer.getChannelData(0),outData = e.outputBuffer.getChannelData(0);for (let i = 0; i < bufferSize; i++) outData[i] = Math.abs(inData[i]) < threshold ? 0 : inData[i];};audioContext.createMediaStreamSource(mediaStream).connect(scriptProcessor);scriptProcessor.connect(audioContext.destination);startButton.disabled = true;stopButton.disabled = false;}).catch(error => console.error('Error accessing microphone:', error));}function stopRecording() {if (audioContext) {audioContext.close();mediaStream.getTracks().forEach(track => track.stop());scriptProcessor = audioContext = null;startButton.disabled = false;stopButton.disabled = true;}} 
上述代码段演示了使用Web Audio API来实现降噪的效果 。当然 , 你也可以使用其他的音频处理库 , 例如:RNNoise和 SpeexDSP 。下面我们来看看具体的工作原理 。
 
首先 , 请将代码创建为一个HTML文件 , 并使用Web浏览器打开它 。完成后 , 其界面如下:
 
如何避免密码被AI击键模式检测识别

文章插图
使用Web Audio API来降低噪音
 
接着 , 请点击“开始录音” , 并在网页浏览器中授予麦克风的访问权限 。
 
然后 , 开始录入并分析随机产生的声音 。
 
请注意 , Web Audio API提供的一系列节点和方法 , 可用于更高级的音频处理任务 。你可以根据Web应用的具体需要 , 使用不同的音频库来进行试验 。
 
?键盘布局随机化:你可以重新排列虚拟键盘上的按键顺序 , 使得攻击者难以仅凭按键发声的方位 , 来检测到键入的内容 。一些金融机构已经采用了这种流行的方法 , 来保护用户免受基于声音的攻击 。
 
?随机化按键时间:你可以在按键之间引入可变的时间间隔 , 让攻击者更难确定按下的具体按键 。请参见如下代码示例:
 
<head><title>Randomized Key Press Timing</title></head><body><input id="textInput" type="text"><script>const textInput = document.getElementById('textInput');textInput.addEventListener('keydown', event => {setTimeout(() => console.log('Key pressed:', event.key), Math.random() * 500);});</script></body></html> 
上述按键逻辑随机化的应用 , 模拟了按键随机延时的发生 。你可以将其创建为一个HTML文件 , 并使用Web浏览器打开它 。完成后 , 你可以在出现的文本框中输入一些单词 。
 
如何避免密码被AI击键模式检测识别


推荐阅读