| Línia 59: | Línia 59: | ||
| | | | ||
*Barat | *Barat | ||
* | *Es pot usar el FT2232H_miniModule | ||
| | | | ||
*Fàcil de | *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 | |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 | |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|| | |D||FT2232H + PIC connectat a linies lliures del port serie <br/>(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 | |||
|} | |} | ||
Revisió del 11:23, 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:
| 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:
- 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 | 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 |
|
|
|
| B | FT2232H + sentinel |
|
|
|
| C | FT2232H + PIC18F88 emulant EEPROM |
|
|
|
| D | FT2232H + PIC connectat a linies lliures del port serie (Ex:PortB.RTS,PortB.CD,PortB.DSR) |
|
|
|