ID exclusivo do dispositivo de armazenamento

4

Eu me deparei com sistemas de licença que estão de alguma forma ligados ao meio de armazenamento. Embora basear isso no UUID no sistema de arquivos seja bastante simples, não acredito que seja esse o caso (veja abaixo). Um exemplo típico desse comportamento é o seguinte:

  1. Em cada inicialização, um arquivo id é gerado.
  2. O sistema verificará um arquivo-chave para uma licença. Se a chave corresponder ao id, tudo bem.
  3. Se não houver chave, ou se a chave não corresponder ao id (como em, copiado de um sistema diferente), a licença não é válida.

Eu observei o seguinte comportamento:

  • Limpando completamente o cartão CF e reinstalando os resultados no mesmo arquivo de ID que está sendo gerado, portanto, nenhum novo arquivo de chave é necessário.
  • Usar a mesma chave em um CF diferente não funciona, pois não corresponde ao conteúdo do novo arquivo id.

Isso me leva a concluir que existe uma maneira de obter um id exclusivo do cartão CF de alguma forma. Como se pode conseguir isso no linux?

PS: Eu deixei intencionalmente de lado qualquer detalhe do produto em si, já que estou me perguntando mais em termos gerais como um sistema como este pode construir um id único do cartão CF. / p>     

por Jarmund 18.05.2016 / 11:16

2 respostas

2

O cartão terá muitas informações registradas de maneira somente leitura.

O artigo Lendo o cartão SD interno Informações dizem o seguinte:

Internal SD Card Information

Information about an SD card is encoded in its internal card registries. One of these is the Card Identification (CID) Register, a 16 byte code that contains information that uniquely identifies the SD card, including the card serial number (PSN), manufacturer ID number (MID) and manufacture date (MDT). The CID register is set when the card is manufactured and cannot be changed after it is set. (According to SD card specification the information is only to be written once, however if a card does not conform to the specification this information could be changed!)

How to read the CID from an SD card

One way to read the CID is to use a laptop with an SD card slot. Card readers in laptops are usually connected directly through the PCI bus (or IDE bus). This will not work through a USB card reader because the command to retrieve the card information is intercepted and not understood by card readers. Not all computers with built-in card slots will work, some internal card readers are connected through a USB bus.

Assuming you have the proper hardware, there are several methods you can use to get the card information. With Linux, reading the internal SD card information is simple. Insert the card and look under /sys/block/mmcblk0/device/ (this location may change depending on your device). You will see several attributes available that include the CID register and the information inside it.

    
por 09.09.2016 / 10:06
4

Como outros comentaram, isso pode estar relacionado ao modo como o cartão CF foi apagado, mas é mais provável que o software esteja identificando o cartão CF com base no firmware do cartão -

Esta informação normalmente é lida usando "udevinfo" - por exemplo, se o cartão CF for / dev / sdb udevinfo -a -p $ (udevinfo -q caminho -n / dev / sdb) - isso provavelmente incluirá informações suficientes para identificar exclusivamente o cartão.

Nota : nas distros baseadas em debian udevadm info substitui udevinfo :

udevadm info -a -p $( udevadm info -q path -n /dev/sdb )

    
por 09.09.2016 / 05:42