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:

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
0x0e
.
.
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:

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:

  1. llegir la posició 0x08 (amb RNBOsproRead) i:
    1. si el valor llegit és 0 -> Error la demo s'ha acabat
    2. si el valor és diferent de 0xffff, decrementar-lo usant RNBOsproDecrement
  2. llegir les posicions 0x09 a 0x0d per obtenir el nº de serie de la clau
  3. verificar que clau_registre ^ password_secret == nº de serie de la clau Exemple:
Nom ASCII Hex
clau registre - 64 59 45 5d 3e 10 64 5e 14 66
Password Power To The Penguin 50 6f 77 65 72 20 54 6f 20 54
clau_registre ^ password - 34 36 32 38 4c 30 30 31 34 32
Nº serie 4628L00142 34 36 32 38 4c 30 30 31 34 32

Alternatives

Opció Descripció Requeriments HW Pros Contres
A Usar nº de serie + dades en la EEPROM del FT2232H
  • Cap
  • Barat
  • Es pot usar el FT2232H_miniModule
  • Fàcil de piratejar (FTProg permet modificar la EEPROM des de una bonica GUI)
  • Probable que la versió de demo acabi durant eternament (usar FTProg per salvar l'estat de la EEPROM i restaurar-lo cada cop que la demo s'acabi)
B FT2232H + sentinel
  • clau Sentinel
  • Es pot usar el FT2232H_miniModule
  • Compatiblitat total amb versions anteriors del programa
  • Relativament segur
  • La clau Sentinel pot convertir-se a mitjà plaç en un producte descatalogat
  • Més car que altres alternatives
C FT2232H + PIC18F88 emulant EEPROM
  • PIC18F88
  • Requereix usar directament el xip FT2232H (més complexitat al PCB)
  • Control precís de la memòria de la EEPROM
  • Possibilitat de implementar un sistema relativament difícil de piratejar (Ex:Challange/Response)
  • Complexitat extra del PCB
  • Pas extra de programació inicial de HW
  • Requereix implementar el codi de control del PIC18F88
  • Pot causar problemes d'inicialització del FT2232H
D FT2232H + PIC connectat a linies lliures del port serie
(Ex:PortB.RTS,PortB.CD,PortB.DSR)
  • Es pot usar el FT2232H_miniModule
  • Requereix un PIC
  • Relativament senzill d'implementar
  • Requereix implementar el codi de control del PIC
  • Lent
  • Pot interferir amb les comunicacions del port
  • Pas extra de programació inicial de HW

Protecció a nivell de Codi