Tanto quanto eu entendo, os pontos de acesso sem fio usando WPA-Enterprise (ou seja, WPA mais 802.1X) podem enviar um certificado de chave pública para um cliente durante a configuração da conexão. O cliente pode verificar este certificado para garantir que ele não esteja se conectando a um AP não autorizado (semelhante à validação de certificado em HTTPS).
Questões:
- Eu entendi isso corretamente?
- Se sim, existe uma maneira de baixar o certificado AP? Idealmente, eu gostaria de uma solução que funcione no Linux.
Eu gostaria de baixar um certificado autoassinado, para usá-lo na verificação de tentativas de conexão subseqüentes. Isso seria mais simples do que solicitar ao operador do ponto de acesso um arquivo.
Respostas:
Sim, as configurações WPA-Enterprise mais comuns usam PEAP ou TTLS, ambas implementando TLS sobre EAP sobre 802.1X.
Normalmente, o certificado já foi publicado em algum lugar pelos operadores de rede exatamente para esse fim. Não é algo que o usuário precise solicitar .
Infelizmente, o wpa_supplicant não tem uma opção para despejar os certificados, mesmo no modo de depuração. (Eu atualizarei isso se encontrar uma maneira melhor.) No entanto, você ainda pode monitorar o processo de autenticação EAPOL real. Primeiro, instale o Wireshark.
Enquanto desconectado, abra a interface manualmente e inicie uma captura nela:
Inicie o wpa_supplicant e em breve você verá o handshake TLS:
O servidor enviará seus certificados imediatamente após o ServerHello. Selecione o primeiro pacote desse tipo e, em seguida, procure:
Clique com o botão direito do mouse na primeira instância de "Certificado ( material )" e escolha "Exportar bytes de pacote selecionados". O Wireshark o salvará como um arquivo, no formato DER binário. Repita isso para todos os outros certificados. O primeiro (servidor RADIUS) possui informações nas quais você pode configurar
altsubject_match
; o último (autoridade de certificação raiz) deve ser fornecido ao wpa_supplicant comoca_cert
.Agora você tem alguns
*.crt
ou*.der
arquivos no formato DER binário. Converta-os no formato "texto" PEM:(Se o seu wpa_supplicant estiver usando o OpenSSL como o manipulador TLS, você deverá fornecer o certificado "CA raiz"; o certificado do servidor não funcionará.
Observe também que é possível que o último certificado visto no Wireshark não seja de uma autoridade de certificação raiz, mas apenas seja emitido por uma das autoridades de certificação raiz no seu
/etc/ssl/certs
diretório ... Se for esse o caso, definadomain_suffix_match
também - caso contrário, o uso de autoridades de certificação públicas seria inseguro (o 802.1X infelizmente não sabe com que "nome de host" deve ser verificado, da mesma forma que o HTTPS.)fonte
tpcpdump
mas funcionou como um encanto. Engraçado, porém, o meu fluxo só tinha um servidor Olá, Certificado, ... entrada