Autenticaç ˜ao de Senhas Faladas Dependente de Usuário
Transcrição
Autenticaç ˜ao de Senhas Faladas Dependente de Usuário
Anais do IV Workshop sobre Software Livre - WSL 2003 Autenticação de Senhas Faladas Dependente de Usuário Lucas Correia Villa Real∗ Farlei José Heinen Luiz Paulo Luna de Oliveira 1 Programa de Pós-Graduação em Computação Aplicada – PIPCA Centro de Ciências Tecnológicas e Exatas Universidade do Vale do Rio dos Sinos São Leopoldo – RS – Brasil {lucasvr, farlei, luna}@exatas.unisinos.br Abstract. This paper presents VoiceAuth1 , a system developed to allow voice authentication for GNU/Linux. By using it, the user is recognized based on the similarity between a previously spoken reference (and stored) password, and a new speech of the same password. The comparison is done using correlation analysis between the coefficients taken from the Windowed Fast Fourier Transform of both passwords (reference and the new speech). Resumo. Este artigo apresenta VoiceAuth1 , um sistema para permitir autenticação de usuários a partir de senhas faladas no GNU/Linux. No seu uso, o usuário é reconhecido pela comparação entre uma senha falada de referência previamente adotada (e armazenada), e uma nova execução (pronúncia) da mesma senha. A comparação se baseia na correlação entre os coeficientes obtidos através da Transformada Rápida de Fourier janelada de ambas as senhas (de referência e executada). 1. Introdução O uso de métodos biométricos para autenticação permite que o usuário tenha uma maneira mais natural de garantir a sua identidade. Alguns destes métodos incluem reconhecimento através da ı́ris, de impressões digitais, reconhecimento da face e reconhecimento da voz [Matyas and Riha, 2000]. Um sistema deste tipo é desejável nos dias atuais, onde sistemas de autenticação baseados em biometria são utilizados para aumentar o acesso seguro a dispositivos, além de permitir a pessoas deficientes uma interface efetiva para realizar acessos a suas contas de usuário ou a outros recursos com uso de senhas. É ainda importante destacar que, pela disponibilidade do GNU/Linux, o software proposto pode ser utilizado em um largo conjunto de sistemas embarcados, além das estações de trabalhos e computadores pessoais. A escolha de um método baseado em reconhecimento de voz tem, como motivação, a disponibilidade do hardware necessário em uma grande parte dos computadores atuais (microfones, placas de som, etc.). Isto permite que o sistema seja utilizado de forma mais ampla do que caso fosse necessário o uso de hardware caro e restrito. Neste trabalho, propomos um método de reconhecimento de usuário por senha falada dependente de locutor, com o uso de software livre e bibliotecas de grande generalidade. ∗ 1 ITI-CNPq http://cscience.org/ lucasvr/projects/voiceauth.php 99 Anais do IV Workshop sobre Software Livre - WSL 2003 Uma senha falada pode se constituir de uma palavra ou frase que, em última análise, é uma seqüência temporal de sons especı́ficos. Por isto, é desejável que um método de reconhecimento de senhas faladas seja sensı́vel tanto às mudanças temporais dos sons quanto ao seu conteúdo de freqüências. Por outro lado, é desejável também que ele seja sensı́vel ao locutor, o que se traduz novamente em uma sensibilidade do método aos conteúdos de freqüências. Motivados por isso, propomos um método que se baseia na comparação por correlação dos coeficientes da Transformada Rápida de Fourier (FFT) janelada [Oppenheim and Schafer, 1980], o que dá a este método a caracterı́stica de ser sensı́vel ao vocábulo propriamente dito (sı́labas e suas durações) bem como ao locutor, com o conteúdo de freqüências caracterı́sticas de sua voz. 2. Método Proposto VoiceAuth foi desenvolvido como um módulo para a biblioteca Linux-PAM (Pluggable Authentication Modules), estendendo as funcionalidades desta. O Linux-PAM é uma implementação de software livre baseada na proposta original do PAM da SUN Microsystems [Samar and Schemers, 1995]. O Linux-PAM é uma biblioteca que fornece um mecanismo flexı́vel para a autenticação de usuários. Utilizando PAM, não há a necessidade de modificar o código fonte de aplicações para que estas façam o uso deste método biométrico (desde que elas já tenham suporte às facilidades oferecidas pelo PAM). Assim, tem-se um método de autenticação que permite a uma grande gama de aplicativos aproveitar-se deste recurso. No seu uso, o usuário pronuncia pelo microfone uma senha falada de referência, que então é pré-processada pela Transformada de Fourier Janelada. São então gravados os coeficientes de Fourier de cada uma das J janelas de Fourier utilizadas. Para autenticar seu login, o usuário executa novamente a senha de referência, falando-a pelo microfone. Da execução da senha, que será então pré-processada da mesma maneira que a senha de referência, extraem-se os coeficientes de Fourier de cada janela, os quais serão comparados por correlação com aqueles da senha de referência, armazenados anteriormente. Abaixo, são dados mais detalhes do uso do método proposto. Registro da senha de referência: • Calibragem de Silêncio: usada para determinar o nı́vel de ruı́do do ambiente. O conjunto de dados que será processado pelo software inicia após a primeira ocorrência de uma amplitude superior ao nı́vel de silêncio determinado pelo sistema, e termina quando este é reestabelecido. Tal calibragem atualmente dura 3 segundos. • Registro da Senha: o usuário expressa sua senha através da voz quando solicitado pelo software. Fazendo uso da amplitude definida na etapa de calibragem de silêncio, apenas o sinal relevante é processado pelo software. • Armazenamento Fı́sico: o nome do usuário é adicionado a uma entrada em um arquivo, onde têm-se controle de quais usuários estão fazendo uso deste sistema de autenticação biométrico. Um arquivo contendo as partes reais dos coeficientes de Fourier da senha nas J janelas utilizadas é armazenado para futuras comparações com as tentativas de autenticação no sistema. Entrada no sistema (login): • Calibragem de Silêncio: bem como no registro da senha de referência, este passo é necessário para determinar o inı́cio e o término da fala do usuário. • Tentativa de Autenticação: o usuário expressa através da voz sua senha previamente registrada. • Normalização do Sinal: como o sistema precisa comparar a senha falada com a senha armazenada, os sinais precisam estar representados na mesma escala. Este passo realiza 100 Anais do IV Workshop sobre Software Livre - WSL 2003 a normalização do sinal em função do tempo (comprimento dos sinais) e da amplitude (intensidade do sinal). Caso o comprimento dos sinais tenha uma diferença significativa (onde esta diferença pode ser especificada pelo administrador), o processamento é cancelado neste ponto, e a autenticação não é bem sucedida pelo usuário. • FFT Janelada: a senha falada é dividida em J janelas. O final do buffer referente às janelas é preenchido com zeros, caso o sinal não ocupe-o completamente. Uma rotina de FFT é aplicada nestas J janelas, modificando a representação do sinal: ele passa da representação em função do tempo para uma representação em função das freqüências, permitindo obter dados relativos à identidade do locutor. • Correlação: após processadas pela FFT, as freqüências são analisadas em relação à similaridade das partes reais de seus coeficientes. Para isto, uma função de correlação é aplicada na saı́da gerada pela FFT para cada uma das J janelas. Existe um limite X definido pelo módulo em um arquivo de configuração: caso 2 janelas subseqüentes tenham uma correlação inferior a X, as senhas são definidas como diferentes, e o reconhecimento é interrompido. Caso não hajam janelas subseqüentes com valores com valores inferiores a este limite X estabelecido, a média das somas obtidas no processo de correlação para as J janelas é comparada com um outro limite Y . Caso esta média seja maior que o valor especificado por Y , as senhas são ditas equivalentes, e o usuário é autenticado. 3. Interfaces Para o uso deste sistema, alguns programas foram desenvolvidos para auxiliar a administração do sistema. O módulo contendo as rotinas de autenticação do PAM é apresentado na biblioteca compartilhada voiceauth.so. Para validar este módulo, um programa denominado voicepasswd foi criado, de forma a manter um registro de usuários que têm permissão para o uso deste serviço. Para todo usuário adicionado a este arquivo, um arquivo extra, salvo sob o mesmo nome do username, é gerado contendo a senha deste usuário. Um programa denominado voicelogin foi ainda criado para interagir com o módulo, permitindo que o login padrão do sistema seja realizado através da voz. Existem várias configurações do sistema que podem ser ajustadas para modificar dispositivos e caracterı́sticas na função de correlação. Os parâmetros aceitos pelo módulo são: • va dir: define o diretório a ser utilizado como repositório para os arquivos de senha; • audiodev: define o dispositivo de áudio a ser utilizado, ao invés do padrão /dev/dsp; • mixerdev: define o dispositivo de mixer a ser utilizado, ao invés do padrão /dev/mixer; • mic level: ajusta o volume do microfone a um nı́vel especı́fico; • igain level: ajusta o ganho no sinal de entrada a um nı́vel especı́fico; • silence level: ajusta o nı́vel de silêncio. Este parâmetro pode ser utilizado em um ambiente onde o nı́vel de silêncio é conhecido. Este valor pode ainda ser redefinido pelo aplicativo, no instante da calibragem do nı́vel de silêncio do ambiente; • silence threshold: define a amplitude na qual o sistema irá passar a tratar o sinal, definindo o inı́cio e término da fala do locutor; • corr threshold: determina o grau de semelhança necessário entre os sinais para defini-los como “iguais” ou não. • passwd maxlen diff: determina a diferença máxima permitida no tamanho entre a senha armazenada e a falada. Caso uma senha tenha um comprimento fora dos limites estabelecidos, ela já é dada como incorreta, poupando o processamento da FFT. VoiceAuth utiliza-se das bibliotecas OSS e ALSA para interagir com o dispositivo de som. A OSS (Open Sound System) é a interface original para a programação de áudio no GNU/Linux, 101 Anais do IV Workshop sobre Software Livre - WSL 2003 mantido pela 4Front Technologies. A OSS suporta a maioria das placas de som atuais, no entanto alguns dos drivers mais recentes necessitam de uma licença comercial da OSS. O ALSA (Advanced Linux Sound Architecture) é um projeto comunitário que busca superar o OSS em todas as áreas, fornecendo um conjunto completo de drivers de placas de som, livres de licenças comerciais. A freqüência de amostragem utilizada no VoiceAuth é de 44100 Hz, enquanto a quantização (8, 16, 24-bit) é determinada pelo módulo voiceauth.so, permitindo que a melhor qualidade de áudio seja empregada [Pholmann, 1995]. 4. Resultados e Conclusão O recurso apresentado neste artigo consiste em uma extensão de uma ferramenta disponibilizada segundo a polı́tica de Software Livre. O sistema propõe ser uma alternativa válida como método de autenticação para sistemas GNU/Linux, tendo como vantagem a implantação de um sistema de autenticação biométrico de baixo custo. Os resultados preliminares obtidos com os testes demonstraram que o sistema foi capaz de identificar usuários através da senha falada, com uma taxa de acerto não inferior a 80%, apesar de um pequeno tempo de treinamento ser necessário para que o usuário consiga habituar-se a expressar sua senha através da voz. Nos testes preliminares não foram utilizados equipamentos profissionais, como hardware dotado de filtros ou de conversores de alta fidelidade. Ainda existe a possibilidade de adaptar um método de criptografia às senhas armazenadas no sistema. Entretanto, um certo grau de segurança já é garantido pelo armazenamento da senha a partir da parte real dos coeficientes de Fourier. Isto permite que sejam armazenados apenas os dados relevantes à função de correlação, evitando que um possı́vel invasor no sistema tenha acesso ao sinal original. Na implementação atual, existe ainda uma precaução relacionada a evitar que a memória utilizada pela leitura da senha seja swapped-out para o disco rı́gido, através da famı́lia de funções mlock(). Além disso, as permissões utilizadas pelos arquivos de senhas individuais são feitas de forma a garantir que estes sejam lidos apenas pelos seus proprietários. A idéia apresentada admite muitas possibilidades de aperfeiçoamento. Por exemplo, podese tentar separar os conteúdos de freqüência do locutor (pitch) e da senha propriamente dita. Feito isto, a validação de senhas poderia se dividir em reconhecimento de locutor e da senha propriamente dita. Isto poderia agilizar o processo e até mesmo torná-lo mais preciso. Outra possı́vel melhoria seria a implementação do método utilizando técnicas de Wavelets para o processamento de sinais. Tais extensões estão sendo consideradas como temas de trabalhos futuros. Referências Matyas, V. and Riha, Z. (2000). Biometric Authentication — Security And Usability. Oppenheim, A. V. and Schafer, R. W. (1980). Discrete - Time Signal Processing. Prentice-Hall International, Inc. Pholmann, K. (1995). Principles of Digital Audio. McGraw-Hill, Inc., 3 edition. Samar, V. and Schemers, R. (1995). Request for comments: Unified Login with Pluggable Authentications Modules (PAM). Technical Report 86.0, SunSoft. 102