ugrás a tartalomhoz

Android, Java - milyen módon kellene titkosítani egy fájlt?

meni · 2013. Szep. 17. (K), 10.33
Sziasztok,

most kezdtem ismerkedni az Androiddal, ezért szeretném kérni a tapasztaltabbak véleményét titkosítás "ügyben". Ti hogyan szoktatok titkosítani például egy adatfájlt, vagy egy oszlop adatait egy adatbázisban? Mert ez szerintem eléggé fontos. Az interneten nagyon sokféle megoldás található és kicsit belezavarodtam...
Általában ezek az esetek vannak:

1. a titkosító kulcsot a forráskódban tárolják, és a kódot obszfukálják, hogy nehezebb legyen visszafejteni, nekem ez nem tetszik, mert a forráskód visszafejthető és az összekevert kód úgyszintén, ezért ha valaki nagyon akarja megtalálja a kódot, az algoritmust és kész. Vagy nem ennyire egyszerű?

2. olyan külső eszközöket használnak mint például ez: http://sqlcipher.net/ Hasonló eszközből próbáltam néhányat, vannak jók is, de a legtöbb alfa, béta verziójú és vagy működött, vagy nem :)

3. titkosítanak valamit egy másik nyelven, pl. PHP-ban, majd Java-ban megvalósítják ugyanazt az aklgoritmust és ott csak visszafejtenek, kiolvasnak adatokat. Ez eléggé szimpatikus módszer lenne, de ugyanaz a bajom vele mint az első ponttal.

Van még más lehetőség? Csinált már valaki hasonlót? Csak az elvek érdekelnének. Köszönet! :)
 
1

Mert ez szerintem eléggé

Joó Ádám · 2013. Szep. 17. (K), 14.18
Mert ez szerintem eléggé fontos.


Miért tartod fontosnak? Milyen adatokat milyen jellegű hozzáféréstől szeretnél védeni?
2

Bármilyen adatot ami a

meni · 2013. Szep. 17. (K), 16.08
Bármilyen adatot ami a programhoz tartozik és nem akarod, hogy más elcsórja és felhasználja. Például ha csinálsz valami egyedi szótárat ami használható off line, vagy egy játékot, teszteket stb. akármit, bármilyen olyan programot amihez van olyan adatbázis, amit nem szeretnél publikussá tenni, viszont jó lenne ha működne internet nélkül is. Egyelőre nincs ilyen, ez csak egy teszt a saját magam örömére, de eléggé életszerűnek tűnik, hogy erre szükség lehet, ezért érdekelne, hogy milyen megoldást választott egy olyan ember, aki már csinált ilyet.
3

Az adatbázist védi a szerzői

Joó Ádám · 2013. Szep. 17. (K), 16.16
Az adatbázist védi a szerzői jog. Ezen túl titkosíthatod, például SQLite esetén SQLCypherrel, de a kódodnak szüksége lesz a kulcsra. Te épp fel akarod találni a DRM-et, amiről már mindenkit sikerült meggyőzni, hogy lehetetlen.
4

Köszi a választ!

meni · 2013. Szep. 17. (K), 16.27
Köszi a választ!
5

Te épp fel akarod találni a

meni · 2013. Szep. 17. (K), 17.12
Te épp fel akarod találni a DRM-et, amiről már mindenkit sikerült meggyőzni, hogy lehetetlen.


Nem akarok én semmit feltalálni, de abban valószínűleg igazad van, hogy ennek nem sok értelme van, én is hasonlóan gondoltam, ezért kérdeztem, hátha nem jól látok valamit, ez olyan mint a 90-es években, amikor titkosított DBF fájlokat vittek ki az ügyfelekhez... na mindegy, csak azt nem értem, hogy akkor mi értelme van az olyan projekteknek mint pl. az SQLCipher? Ez eléggé vicces, főleg, hogy pont ilyen alkalmazásokhoz ajánlják, úgy, hogy a kulcsra ígyis-úgyis szüksége van a kódomnak.
8

Az ilyen jellegű

Joó Ádám · 2013. Szep. 17. (K), 18.12
Az ilyen jellegű titkosításnak akkor lehet haszna, ha a kulcsot memóriában tárolod. Valamilyen szintű védelmet persze az is jelent, ha egy fordított kódba kerül, de abból azért nem egy lehetetlen feladat kinyerni.
9

Igen, a semminél többet

meni · 2013. Szep. 17. (K), 18.33
Igen, a semminél többet érnek, de közel sem tökéletesek ezek a megoldások.
10

Nem lehetetlen, de igen nehéz

Pepita · 2013. Szep. 19. (Cs), 00.59
Én anno windows alá csináltam olyan saját kódoló-dekódoló függvényt, amit belefordítottam a progiba. Namost ha egy nagyobb bájtkód része egy fv., amiben kulcs gyakorlatilag nincs is, akkor találd ki, hogy mire gondoltam, amikor megírtam... :)
Nem egy spanyolviasz, ez sem törhetetlen, de kulcsot aztán kereshetsz. Alapszintű (szoftverlopás elleni) védelemnek bevált.
13

Igen, sokfélét lehet

meni · 2013. Szep. 19. (Cs), 15.48
Igen, sokfélét lehet trükközni :-) A gond ezekkel mindig ugyanaz, ha valakik nagyon akarják, úgyis feltörik, ez persze az én hobbi projektemnél mellékes :D ez csak egy teszt, ezen tanulgatom az Androidos fejlesztést.
6

Pl. vegtelensegig

ksgy · 2013. Szep. 17. (K), 17.21
Pl. vegtelensegig bonyolithatod az adott adat elereset, ami lattan ki tudsz szurni egy bizonyos reteget a "tamadok" kozul.

Egyszeru pelda:
- kersz egy kulcsot app indulaskor szervertol
- a kulcshoz tartozo URL-t sok helyrol rakod ossze (akar egy/tobb masik URL-rol)
- a kereseket ellatod egy sajat User-Agenttel (amit szinten X helyrol pakolsz ossze)
- a szerveren csak az adott User-Agenttel erkezo kereseket szolgalod ki, a tobbinel valami fals adatot jelenitesz meg (igy legalabb felrevezeted az illetot)
- ha olyan az alkalmazas, csak bizonyos ido-ablakban engedsz lekerdezest a szerveren

es meg lehetne sorolni...
7

Pl. vegtelensegig

meni · 2013. Szep. 17. (K), 17.29
Pl. vegtelensegig bonyolithatod az adott adat elereset, ami lattan ki tudsz szurni egy bizonyos reteget a "tamadok" kozul.


Igen, azt hiszem ezzel össze is foglaltad a lényeget :) köszi!
11

Óvatosan azért

Pepita · 2013. Szep. 19. (Cs), 01.03
Az akksik meg nem végtelen kapacitásúak, sokszor az adatforgalom is lassú, úgyhogy óvatosan azzal a végtelennel, ha nem az a cél, hogy senki se használja a progidat...
12

Persze, nyilván meg kell

meni · 2013. Szep. 19. (Cs), 15.40
Persze, nyilván meg kell találni a középutat.