Protecció Actual (Sentinel)
S'utilitza una clau USB Sentinel SuperPro. La clau conté 64 cel·les, cada cel·la amagatzema 16bits. S'utilitzen de la següent manera:
0x0e.
.
0x3f||DISPONIBLE||-
| Cel·la(Hex) | Dades | Exemple |
|---|---|---|
| 0x00 | ? | 0x00d9 |
| 0x01 | ? | 0xd4e9 |
| 0x02 . . 0x07 |
NO USAT | - |
| 0x08 | nº de execucions restants de la demo Si és la versió completa conté 0xffff |
0xffff |
| 0x09 0x0a 0x0b 0x0c 0x0d |
nº de serie de la clau codificat en ASCII 2 caracters per cel·la en BigEndian. Ex:4628L00124 |
0x3436 0x3238 0x4c30 0x3031 0x3432 |
Procediment per validar la clau
Per poder treballar amb la clau primer s'ha de inicialitzar la lliberia amb els següents passos:
RNBOsproFormatPacket(packet, SPRO_APIPACKET_SIZE); // Inicialitzem el buffer que usarà la llibreria per comunicar-se amb la clau RNBOsproInitialize(packet); // Inicialitzem la llibreria
Un cop inicialitzada, s'ha de buscar la clau amb les funcions RNBOsproFindFirstUnit(packet, dev_id) per trobar la primera clau, i RNBOsproFindNextUnit(packet) per passar a la següent clau.
Per validar la clau es procedeix de la següent manera:
- llegir la posició 0x08 (amb RNBOsproRead) i:
- si el valor llegit és 0 -> Error la demo s'ha acabat
- si el valor és diferent de 0xffff, decrementar-lo usant RNBOsproDecrement
- llegir les posicions 0x09 a 0x0d per obtenir el nº de serie de la clau
- verificar que clau_registre ^ password_secret == nº de serie de la clau Exemple:
| Nom | colspan=10 | Hex | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| clau registre | 64 | 59 | 45 | 5d | 3e | 10 | 64 | 5e | 14 | 66 |
Alternatives
| Opció | Descripció | Requeriments HW | Pros | Contres |
|---|---|---|---|---|
| A | Usar nº de serie + dades en la EEPROM del FT2232H |
|
|
|
| B | FT2232H + sentinel | |||
| C | FT2232H + PIC18F88 emulant EEPROM | |||
| D |