Newsgroup: it.comp.sicurezza.crittografia
Titolo: Domanda da neofita su creare file unici (nel senso con identificativo)

Buondi a tutti,
non so se il newsgroup è corretto, ci provo....
Spero vivamente che qualcuno mi sappia aiutare perche' davvero necessito...
Ok, descrivo cosa sto facendo e cosa necessiterei:
Allora, io in linux, creo dei database con sqlite,i database sono corretti,
i dati integri insomma sono tutti a posto
ora ho questo problema, dopo aver creato questo database, vorrei escogitare
un metodo, non so come non me ne viene in mente nessuno, ma la finalita' è
avere un codice in quel database SENZA toccare il database internamente....
Pensavo con attrib, o con altri metodi, in modo tale da mettere un codice
nel file (il database) che mi riesca a far identificare sto
file...Chiaramente questo codice non deve essere "toccabile" anche se so,
che basta importare l'intero database in un altro database e il codice si va
a far benedire.....
Ma questo "metodo" mi serve per far si che il database non venga "troppo"
clonato, siccome saranno database a pagamento, non vorrei TROPPI database
creati da me su Emule...
Spero vivamente di esser riuscito a spiegarmi...
Aspetto suggerimenti, ah, i database sql, quelli che creo io, verranno
"usufruiti" sia in unix sia in linux sia in windows, perche' un programma
multipiattaforma si appoggera ai miei database...
Percio' qualcosa correllato al file system credo non sia efficace...
Ringrazio
Cris

Zanzistor ha scritto:
[...]
Sarò sincero: non ho inteso granché del tuo messaggio; da quel poco che sono
riuscito a capire tu vorresti impedire che applicazioni diverse dalla tua
possano accedere ai database che la corredano, ma senza usare un formato
proprietario (ovvero non vuoi reinventare la ruota e ti limiti a usare,
giustamente, sqlite).
Bene... Potresti cifrare i database. I file risultanti sarebbero dei db
sqlite criptati che la tua applicazione decifra in memoria.
Va da sé che sarà sempre possibile estrapolare la chiave dalla tua
applicazione e decifrarli, ma se non altro dai del filo da torcere.
-- 
Saluti, Federico - 
http://www.quaqo.org
Le FAQ sulla crittografia: 
http://kb.quaqo.org/criptofaq/

Grazie della tua celere risposta.....
Si mi sono spiegato male...lo so
abbiate pazienza...
Allora cerco di chiarire.....
Creo un normale DATABASE Sql, usando sqlite
all'interno ho dei dati, che non devo toccare ne crittografare...
una volta che ho creato sto database...io vorrei renderlo UNICO...
con unico intendo, che siccome devo venderlo....io dovrei riuscire ad
identificare questo database, che appartiene al cliente pincopallo....
avevo pensato ad usare attrib di dos.... insomma io necessito, se trovo sto
database venduto a pincopallo in emule ( e purtroppo succedera lo so),
riuscire a risalire a pincopallo, perche' ho messo dentro al file (e non al
database sql nei dati), un qualcosa che mi dice che sto database è stato
venduto a pincopallo.....puo' anche essere un numero identificativo...non
c'e' problema....solo che non riesco a capire ne mi viene in mente come
fare....
Dare degli attributi o delle connotazioni a questo file che mi fa capire che
questo è il database 4 anziche il database 5.....dove 4 sta per pincopallo e
5 per pincopallo2....
Ora, quando ho detto che queste info non si devono perdere cambiando il
database da NTFS, a EXT3, o ad hpfs...significa che quello che scrivo nel
file.....non deve essere File system dependent....
Mentre l'applicativo (freeware) a cui si appoggia, esiste per os/2 per
windows linux bsd. etcetc...
Io credo non esista modo.... chiedo a voi perche SO di essere ignorante in
merito...
Ringrazio
Cris


"quaqo" <ntp_at_q...@quaqo.invalid> ha scritto nel messaggio 
news:5178529.Jcq91leE62@namano...


Zanzistor ha scritto:
[...]
Potresti inserire dei byte identificativi ogni tot nel file e poi fare
attenzione ad ignorarli prima di passare il database alla libreria sqlite.



GnuPG 4069 RSAv4 key: \_____________________________________________
UID:0xE361F839--Fingerprint:9516BCF66B8F12E0C3C3154C61788B6DE361F839

 merito...
Non capisco quale sia il problema nel codificare in un campo del DB a quale
cliente hai venduto il prodotto. Dove sta il problema?
Potresti anche legare l'applicazione al sistema del cliente in modo che se
l'eseguibile passa di mano non funzioni. Perchè vuoi legare il DB anzichè
l'eseguibile?
Nel FS non puoi fare nulla anche perchè è multipiattaforma, se fosse solo
Windows (NTFS) *forse* potresti usare gli ADS (Alternate Data Streams). Non
so se altri FS hanno qualcosa di analogo.
bye, giubbe

 ha scritto nel messaggio 
news:13tps2vm...@id2670.giubbe.altervista.org...


 qualcuno più esperto in materia...
A questo punto che ne pensate di una serie di record "sparsi"?
Ad esempio, in database che faccia da elenco telefonico potresti insere dei
nomi fittizi che facciano da traccia.
O ancora... A seconda dell'ordine in cui disponi i record all'interno del
database potresti desumerne un identificativo univoco.


 oaltro....percio' non applicabile....Credo...
Perchè no? Si può fare su qualsiasi file in NTFS. Tanto per provare:
crei un file chiamato uno.txt con dentro la seguente frase
"questo contenuto è nascosto"
poi crei un file due.txt con dentro la frase
"Esiste solo questo testo"
poi da console digiti:
type uno.txt > due.txt:uno.txt
e cancelli uno.txt
Se fai doppio click sul file due.txt vedi unicamente il suo contenuto. Se
da console scrivi
start notepad due.txt:uno.txt
vedreai il contenuto del primo file. Puoi spostare o copiare il file dentro
il file system, ma non mi risulta che possa essere trasferito via internet. 
 
Però funziona solo su NTFS e comunque è un informazione che puoi perdere,
quindi non saprai mai chi ti abbia copiato illegalmente il file.
bye

 ha scritto nel messaggio 
news:rw46rfkph58z$.dlg@id2670.giubbe.altervista.org...


Se tu mi dici che si puo' fare io ti credo...
La domanda mia è, questo lavoro non puo' dare dei problemi al database?
RIPETO
Sono ignorantissimo in materia....
"quaqo" <ntp_at_q...@quaqo.invalid> ha scritto nel messaggio 
news:4432539.eDrgcjXah3@namano...


 E' cosi una domanda ostica?
mi hai quasi rubato l'idea mattutina... ^_^
Potresti creare una tabella fittizia, ma dall'aspetto notevolmente
importante, in cui scrivere, nel nome della tabella o di un campo o in un
contenuto, il codice identificativo del cliente senza che tale valore
assomigli ad un codice.
Per esempio, se il tuo DB č relativo all'ortofrutta puoi inserire, per un
cliente, una tabella denominata "agricoltura" con dentro due campi che
danno l'idea di collegarsi ad altre tabelle. Ad un altro cliente la stessa
tabella conterrą tre campi, oppure avrą il nome del campo o il contenuto di
essi lievemente diverso. E via di fantasia...
bye, giubbe

 Sono ignorantissimo in materia....
Allora forse dovresti chiarire la tua posizione.
Io ho capito che tu sei un programmatore e non vuoi che il database che
correda la tua applicazione venga usato altrove.
Comunque la risposta è no: semplicemente ignori quelle informazioni no?


 Ok, descrivo cosa sto facendo e cosa necessiterei:
[cut]
L'unica cosa e farti un hash prima di distribuire il db delle tabelle 
fisse al suo interno.
Tu conservi l'hash e poi lo distribuisci ... quando becchi un db su 
emule controlli il suo hash per quelle tabelle fisse e cosi scopri chi è :)
--
capobecchino
"Chiamami un tassì", mi disse prima di morire e sulla sua lapide ho 
scritto: "Qui riposa in pace Untassì"
msn: capobecchino(at)
hotmail.com

 ha scritto nel messaggio 
news:fn4ua5$4f4$1...@nnrp-beta.newsland.it...


 so dove sbattere la testa con questo problema....
Ma tu per "creare" DB intendi fare data entry (cioè inserire i dati)?
Se si mi spieghi che tipo di lavoro vuoi proteggere? Non capisco che
tipo di applicazione abbia dati precostituiti non modificabili e
diversi per ogni cliente.
Se invece hai creato tu il DB, quale strumento hai usato, visto che
non conosci SQL?
Qual è l'applicazione sulla quale lavori?
In ogni modo mi sa che hai sbagliato gruppo...
bye, giubbe

Zanzistor ha scritto:

Ti crei l'hash del DB.
Poi prendi l'hash del DB, lo combini con un dato univoco (il codice
fiscale o la  partita IVA del cliente) e ricalcoli un altro hash: questo
è l'hash identificativo del DB.
-- 
Ciao.
Leo.
Web: 
www.leonardomiliani.com
E-mail: 
leon...@leonardomiliani.com
Co-fondatore di Gambas-it.org: 
www.gambas-it.org
(il sito italiano dedicato alla comunità di Gambas)
Scegli software opensource - Choose opensource software

 ha scritto nel messaggio 
news:l0tlj.231534$U01.1...@twister1.libero.it...


 ha scritto nel messaggio 
news:l0tlj.231534$U01.1...@twister1.libero.it...


 Intendo, se io creo A,
[cut]
allora mi sa che non puoi farlo per queste semplici regole ...
1) i db possono essere uguali quindi nada
2) se agganci qualcosa al nome del file sicuramente può essere cambiato
3) il sw ha codice aperto e quindi accessibile a tutti
4) un sistema di watermark non pensabile in quanto i db sono sempre in 
lavoro e quindi si perderebbe la firma ...
L'unica cosa a cui potresti agganciarti (ma che non è sicura finquanto 
non si scopre l'inghippo) potrebbe essere questa soluzione
DB: A
CREATO: 1 gennaio 2008
TABELLA: Utenti (nome inventato) creato 1 gennaio 2008 oer 8:01
DB: b
CREATO: 1 gennaio 2008
TABELLA: Utenti (nome inventato) creato 1 gennaio 2008 oer 8:10
Logicamente cosi riconosci tutti i db nuovi o se hai le copie dei vecchi 
e la procedura è sicura finchè non si capisce l'inghippo perchè basta 
rifare la tabella incriminata per sputtanarti il tutto ...
tutto questo per dirti che con i dati che tu ci hai fornito non ti 
possiamo dire/dare una soluzione ottima ... ma solo spunti ... quindi tu 
conosci le tabelle uniche e tu sai quando e come vengono create ;) ed io 
penso che l'unica soluzione (come tra l'altro ti è gia stato suggerito) 
è lavorare sulle tabelle.
Facci sapere come finirà ... :)
--
Capobecchino
msn: capobecchino(at)
hotmail.com
Diceva un famoso biologo: "Nel cervello ci sono circa 12 miliardi di 
cellule, ma c'e' tanta disoccupazione..."

 ha scritto nel messaggio 
news:fn6stf$ah7$1...@nnrp-beta.newsland.it...
