Resumo de depuração de cartão Mifare Plus

Dec 07, 2020

Deixe um recado

Por padrão, o cartão plus emitido pelo nxp é um cartão uninitializado no nível L0. Neste momento, a operação ativa mostra que suporta as características do cartão CPU iso1443-4 (ATQA: 02 00, SAK: 20 UID: CD 65 E5 03), ao executar AES relacionados à gravação Após a KEY e o bloco de dados serem iniciados e comprometidos, ele entra no nível de segurança L1. Sua operação ativa mostra as características de uma placa M1S70 (ATQA: 02 00, SAK: 18 UID: CD 65 E5 03), mas na verdade ainda pode suportar operações ISO1443-4 , Os ratos são executados com sucesso (também devem ser suportados, caso contrário as operações switchL2 e switch3 não podem ser realizadas). Após a autenticação switchL2 ser realizada no nível L1 e convertida para o nível L2, o valor de retorno após a operação ativa é (ATQA: 02 00 SAK:11, UID: CD 65 E5 03). Neste momento, se não houver tal SAK correspondente no driver existente, será um tipo de cartão desconhecido. Depois que a autenticação do switch3 é realizada no nível de segurança L2, o cartão é atualizado para o nível de segurança L3, e o valor de retorno é (ATQA: 02 00 ,SAK:20, UID:CD 65 E5 03).

Executar operações de nível L1 e L2 em estado ativo (camada ISO14443-3); quando o cartão estiver no nível L1, as interfaces relacionadas ao M1 podem ser totalmente implementadas, ou a certificação AES SL1 pode ser realizada primeiro e, em seguida, a certificação M1 pode ser realizada. Depois de realizar a autenticação AES SL1, não há necessidade de gerar uma base de teclas de sessão e calcular com a tecla M1 para derivar a nova tecla M1 como a chave de autenticação M1 real, basta usar a chave M1 original diretamente (este ponto é diferente do nível L2).

 

No nível L0, o código de devolução do PICC após a execução é ACK/NAK consistente com o cartão M1, é um código de retorno mordisco sem CRC, portanto, quando a verificação crc é ligada, ocorre um erro crc;

No processo de autenticação AES SL1 de nível L1, quando a execução estiver correta, ele retornará o código de devolução e as informações com CRC, e quando houver um erro (erro de chave AES, erro de descriptografia RNDB, etc.), ele retornará o NAK consistente com o cartão M1, que é um byte meio e não há erro de CRC, portanto, quando a verificação de CRC é ligada , ocorrerá um erro de CRC.

A instrução switchL2 é executada no nível ISO14443-4. Após o sucesso da execução, o PICC entra no nível de segurança L2. Neste momento, a instrução switchL2 é executada na primeira transmissão do Cmd+BNo+LenCap+PCDCap2, que retorna dois bytes de status 0x02, 0x09. 0x09 pode ser entendido como um número de bloco inválido, mas 0x02 não pode ser entendido.

 

No nível L2, conforme indicado no manual, a autenticação AES deve ser realizada antes da autenticação M1, e os 6 bytes inferiores da base de chave de sessão gerada pelo AES são XORed com a chave M1 do bloco real para se tornar a chave de autenticação real do bloco M1. Após o teste, o tipo de tecla AES deve ser consistente com o tipo de tecla M1 (ou seja, ambos são A ou B), caso contrário a autenticação M1 falhará! Quando os tipos e valores de teclas AES e M1do setor A são consistentes com os do setor B, o acesso ao setor B após a autenticação do setor A é consistente com o acesso ao setor A, e não há necessidade de acesso ao setor B. Certificação.

Durante a depuração do mifPLAuthInPro no nível de segurança L2, quando s_AESCbcEnDecrypt é chamado, a entrada iv será reescrita após a criptografia e descriptografia ser concluída, resultando nas próximas alterações de criptografia e descriptografia iv e a criptografia e descriptografia falharem! Deve prestar atenção ao valor do iv!

No nível de segurança L2, a autenticação obrigatória da chave AES+M1 deve manter o tipo de tecla AES consistente com o tipo de tecla M1 (ou seja, chave AES TypeA+M1 TypeA ou tecla AES TypeB+M1 TypeB, como a autenticação da chave AES TypeA Key+M1 TypeB falhará mesmo que as teclas estejam corretas!)

Depois de concluir a depuração do nível L2, você pode executar o FirstAuth repetidamente, e o valor de TI obtido pela FirstAuth é diferente a cada vez. Depois de realizar uma autenticação correta do FirstAuth e obter TI, o followAuth correto pode ser realizado (o iv do followAuth é baseado na autenticação do FirstAuth). Depois que o FirstAuth correto é executado uma vez, o followAuth pode ser repetido. Desde o FirstAuth e siga a Austrália no modo ISO14443-4, picc permanece no modo ISO14443-4 quando ocorre qualquer erro, e não há necessidade de re-pesquisar o cartão.

Os comandos MultiWriteBlock e MultiReadBlock do nível de segurança L2 suportam apenas várias operações de leitura e gravação de blocos de dados no mesmo setor! Os comandos ReadBlock e WriteBlock do nível de segurança L3 suportam leitura e escrita contínua de blocos de dados em todos os setores (apenas dentro deste setor!!!)

Nível de segurança L3 segue a operaçãoauth para obter enc key e criptografia MAC KEY usada iv vetor é 0 em vez de TI+W_ctr+R_ctr !

 

Na operação do modo ISO14443-4, desde que haja algum erro, a operação FirstAuth deve ser realizada!

 

Compreensão das operações relacionadas ao valor do cartão M1: A essência do comando Restaurar é copiar o valor correspondente do bloco de dados recebido (deve estar em formato de carteira) para um Buffer de transferência de 16 byte dentro do cartão M1, e a essência do comando Transferência é o valor do Buffer de transferência dentro do cartão M1 é copiado para o bloco de dados recebido. A essência do comando Incremento é adicionar o valor do bloco de carteira de entrada ao valor adicionado e copiá-lo para o Buffer de transferência, de modo que o comando Transferência deve ser chamado novamente para copiar o valor do Buffer de transferência no bloco de dados especificado.


_0003s_0001_A981B9EF78ED2D226AB9184F3A7BDCDF

https://www.szrcloud.com/card-reader/rfid-card-reader/rfid-card-reader-in-games.html