képnézegető másolásvédelemmel

Fórumok

hi. olyan megoldást keresek androidra, amivel képeket (opcionálisan videókat) lehet nézegetni, viszont legyen aktív másolásvédeleme. van egy elképzelésem, de nem vagyok android fejlesztő. illetve érdekel hogy van-e erre valami bevált módszer. lehet-e pl. DRM tartalmat mezei halandóknak előállítani? és kiosztani hozzá a jogosultságokat per-device? tehát az én elképzelésem:

  1. vannak kép/videó fájlok általam üzemeltetett szerveren
  2. lehetőséget akarok nyújtani usereknek, hogy megnézzék a fájlokat,
  3. de relatívan nehéz legyen rajtam kívül másnak azok terjesztése
  4. a másolás védelem alapjául nem root-olt android eszközökre gondoltam
  5. lenne mondjuk egy app, ami
    1. telepítéskor generál egy kulcsot, amit az app a privát tárjaban tart és
    2. aminek a public részét elküldi a kiszolgálónak
    3. letölti a kiszolgálóról a számára titkosított tartalmat (ezt sávszélmegtakarítás végett tárolhatja common fájlrendszeren - tehát amit olvashat a user -, mert ugye a privát kulcsot csak az app tudja)
    4. a tartalom "elérhetőségét" időnként ellenőrizné, tehát ha szerveroldalt letiltok valamit amit már letöltött, azt az app önként nem dekriptálná onnastól.
    5. a dekriptált tartalmat csak a memóriában tartja
    6. megjeleníti a képeket (thumbnail browser, zoom, pinning, etc)
    7. tiltja a screenshot-ot
  6. elméletem szerint a nem root-olt eszköz biztosítaná hogy ne lehessen a titkosító kulcsot vagy a dekriptált tartalmat kilopni az eszközből.

másolat-degradáló vagy másolat-követő megoldások - mint a vízjel, csökkentet minőség, subscriber szerinti egyedi szignatúra - most nem érdekelnek.

EDIT:

nem volt eddig elég egyértelmű, de a célközönség kis számú, személyesen ismert user-ek, átlag informatikai képességekkel. tehát ha már nem tud screenshot-olni, nincs save/share gomb, vagy egyéb triviális megoldás, akkor azzal már jó vagyok. a "lefényképezem a kijelzőt" kerülőút is elfogadható.

Hozzászólások

Szerkesztve: 2019. 10. 31., cs – 12:26

Egyik potenciális lehetőségnek tűnik az Azure Information Protection alkalmazása. Fogyasztó oldalon ingyenes, tartalomelőállító oldalon 2 USD / hó (Azure Information Protection Premium P1). Van SDK Androidra is, de akár a saját kliensét is használhatod.

Üdv,
Marci

Amit el akarnak lopni, azt el is fogják lopni! Ki lehet találni bármilyen komoly védelmet, onnantól hogy megjelenítésre került a képernyőn a kép, vagy a videó, és onnantól, hogy megszólalt a hangszórón a hang már másolható is az egész.

Igen, itt is pontosan erről van szó! Mivel az egész hókuszpók outputja a kódolatlan kép és hang információ amit megmutatunk, lejátszunk a kedves usernek, onnan meg már tényleg 0 "költséggel" lehet a végeredményt másolni, copyzni, klónozni, sokszorosítani, ellopni, tök mindegy minek is nevezzük...

(Jó, ok, ez nem teljesen igaz, egyszer teljes egészében végig le kell játszani a filmet hogy rögzíteni tudjuk, azt a 90-180 percet rá kell szánni, ezt lehet költségesnek nevezni... )

Tiltható. Igen, és akkor fogok egy teamviewert (vagy egy másik hasonló appot, biztos van még jópár), amivel ránézek arra a telefonra amin a kép látszik, és úgy lövök egy screenshotot. Vagy ha a minőség annyira nem lényeg egyszerűen lefényképezem a másik eszköz kijelzőjét.

Ezt a kérdéskört már rengeteg médiatartalom terjesztéssel foglalkozó cég végigjárta, és elég egy random torrent oldal kínálatát végignézni hogy megállapítsuk mekkora sikerrel...

Képnél lehet trükközni azzal, hogy szétbontod részekre, majd gyorsan egymás után lejátszod (mint egy videót). Ha ekkor egy pillanatnyi képet készítesz, akkor sosem lesz meg a teljes kép, hanem csak egyes pixelek. Megfelelő sebességű (legalább frekvencia kétszerese az fps) videót kell készíteni, majd összeilleszteni a képeket, hogy le lehessen lopni. Esetleg olyan fényképezőt kell alkalmazni, ahol a záridő manuálisan állítható. A framek persze nem valós/fekete pixelek, mert az nagyon villogna, hanem szürke illetve közeli komponensek szuperpozíciója. 

Szerkesztve: 2019. 11. 01., p – 11:31

FLAG_SECURE
Added in API level 1
public static final int FLAG_SECURE
Window flag: treat the content of the window as secure, preventing it from appearing in screenshots or from being viewed on non-secure displays.

See Display.FLAG_SECURE for more details about secure surfaces and secure displays.

Constant Value: 8192 (0x00002000)

https://developer.android.com/reference/android/view/WindowManager.Layo…

Szerkesztve: 2019. 11. 01., p – 11:45

Amit még nem kérdezett senki: ezzel bevételt szeretnél szerezni vagy csak meg akarod akadályozni, hogy tudtodon kívül terjedjen a fotó/videó?

Ha az első, akkor érdemes úgy beárazni a szolgáltatást, hogy ne érje meg másolni.

Védekezhetsz majd az ellen is, hogy ne patcheljék meg 3 perc alatt az alkalmazásodat és ne szedjék ki belőle a root detektálást és a screenshot letiltást. Sok sikert :P

+1 és egyébként ahhoz sem kell rootolt eszköz, hogy PC-n szétszedd az apk-t és kinyerd belőle a privát kulcsot.

Ennek ellenére átlag felhasználókkal szemben teljesen jó a felvázolt megoldásod. A kérdés itt inkább az, hogy megéri-e ennyit időt/energiát (=pénzt) ölni egy ilyen másolásvédelembe.

azzal valsznleg arra utalt hogy a kiírásomban ott van hogy lenne titkosítás és az app a privát fájlrendszerében tárolná a privát kulcsot. de ugye nem az apk-ban lenne benne előre a kulcs hanem telepítéskor generálná. tehát elég lenne root-olt eszközön telepíteni.

Lehet, hogy elegendő lenne, ha megválogatnád az ismerőseid...

:)

Azure Information Protection, saját kliensével, pont megfelel a pontosított  használatra.

Üdv,
Marci

A szolgáltatás éves díja 1-2 órai munkád ára: gyanúm, hogy ettől minden más drágább valójában.

Több megoldás is lehetséges a tartalommegosztásra, a legegyszerűbb talán, hogy egy Windowsos gépen telepíted az AIP klienst és azzal (bejelentkezve az AIP szolgáltatásba) elkészíted a .pjpg file-okat. Ha sok van, PowerShellel scriptelheted. Az elkészült fileokat pedig felteszed a saját webserveredre. A felhasználói oldalon AIP kliens van az Android eszközön, .pjpg hozzá társítva. Amikor meg akar nyitni egy .pjpg-t, az AIP kliens ellenőrzi a licencet az AIP szolgáltatáson és a megfelelő korlátozás mellett megmutatja a file-t.

Üdv,
Marci

Ha nem a kép minősége, hanem a tartalma miatti bizalmas kezelés a cél, akkor pont az egységsugarú ember lesz, aki szimplán lefotózza egy másik készülékkel a képernyőt. Szóval szexhajózós képmegosztáshoz nem lesz jó :)

Ha sajat ismeroseidtol akarod megvedeni, nem eleg, ha megkered oket, hogy ne adjak tovabb?

Amugy van egy masik dolog is: mindenkinek egyedi kepet adsz, es elmondod nekik, hogy az alapjan felismerheto, hogy ki adta ki, ha kiadja. (aztan hogy tenylegesen egyedi-e, az mar mas kerdes..)

 

Egyik bank elszurta a app frissitest. Az ujjlenyomatos belepes bevezetesekor elfelejtettek ellenorizni, hogy az adott kutyuben van-e egyaltalan ilyen hardware, ugyhogy ha nem volt, Null pointerrel elszallt indulaskor. Egyik forumtarsunk kijavitotta az apk-t, alairta a sajat kulcsaval, es vigan hasznalta tovabb. Szoval ennyit az ilyen rootellenorzesrol, meg hogy megkered a rendszert, hogy ne csinaljon screenshotot, meg egyebekrol.

A strange game. The only winning move is not to play. How about a nice game of chess?