| Línia 14: | Línia 14: | ||
|- | |- | ||
|0x09<br/>0x0a<br/>0x0b<br/>0x0c<br/>0x0d||nº de serie de la clau codificat en ASCII<br/>2 caracters per cel·la en BigEndian.<br/>Ex:4628L00124||0x3436<br/>0x3238<br/>0x4c30<br/>0x3031<br/>0x3432 | |0x09<br/>0x0a<br/>0x0b<br/>0x0c<br/>0x0d||nº de serie de la clau codificat en ASCII<br/>2 caracters per cel·la en BigEndian.<br/>Ex:4628L00124||0x3436<br/>0x3238<br/>0x4c30<br/>0x3031<br/>0x3432 | ||
|- | |||
0x0e<br/>.<br/>.<br/>0x3f||DISPONIBLE||- | |||
|- | |||
|} | |||
=== Procediment per validar la clau === | |||
Per poder treballar amb la clau primer s'ha de inicialitzar la lliberia amb els següents passos: | |||
<pre> | |||
RNBOsproFormatPacket(packet, SPRO_APIPACKET_SIZE); // Inicialitzem el buffer que usarà la llibreria per comunicar-se amb la clau | |||
RNBOsproInitialize(packet); // Inicialitzem la llibreria | |||
</pre> | |||
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: | |||
{|class=wikitable | |||
!Nom | |||
|colspan=10 | |||
!Hex | |||
|- | |||
|clau registre||64||59||45||5d||3e||10||64||5e||14||66 | |||
|- | |- | ||
|} | |} | ||
Revisió del 10:40, 30 jul 2012
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 |