Newsgroup: it.comp.sicurezza.varie
Titolo: Protezione da screenshot per Browser

salve a tutti, come  da oggetto mi interesserebbe sapere se esiste un
qualche software da caricare lato server su un portale web  per
mascherare anche parzialmente quanto mostrato a video impedendo di
ottenere degli screenshot riutilizzabili.
 
Grazie a tutti.

 Grazie a tutti.
 
Prego.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net
 

ciao Roberto,
Scusami se sembra una polemica ma non lo è: ho fatto un domanda
sciocca o è un problema già affrontato in altri thread?
Ciao Andrea

 sciocca o è un problema già affrontato in altri thread?
 
Dal momento che l'immagine appare sul mio monitor,
non ci può essere modo di impedirmi di fare uno screenshot.
 
E.D. 
 

 No.
 
Beh dai, potrebbe provare con il metodo mostrato qui
 
http://www.austech.info/general-chat/60693-how-protect-your-password-important-security-information.html
 
 
:D
 
 

 sciocca o è un problema già affrontato in altri thread?
 
Un po' l'una e un po' l'altra.
Se ne parlò approfonditamente qualche anno fa durante il boom
del DRM e delle specifiche microsoftiane cui avrebbero dovuto
sottostare i costruttori per impedire che una volta ricevuto,
dopo averlo pagato, un brano musicale, non fosse possibile in
nessun modo riregistrarlo su altro supporto.
 
Le conclusioni sono: se posso ascoltarlo lo posso registrare.
Se posso vederlo, lo posso "screenshottare" o fotografare.


 ha scritto

Si quello che pensavo fosse fattibile è una specie di layer di bande
verticali che mascherano alternativamente la figura con refresh
impostato ad X (>25 ) visibile a ochio nudo ma che al momento dello
"scatto" Riporta l'immagine con delle bande verticali
Non so se sono riuscito a farmi capire.
A.

 Non so se sono riuscito a farmi capire.
 
Naah... prova a dare un'occhiata ad (es.) google maps, vedrai che
i vari "tasselli" hanno un overlay; ora... l'idea nel tuo caso dovrebbe
essere la stessa; in due parole, becca l'IP dal quale arriva una data
richiesta (HTTP) e piazzalo in overlay sulle varie immagini; fai in modo
che non sia fastidioso (vedi google maps o altri) ma che ci sia; a quel
punto se qualcuno copiasse o stampasse l'immagine, sulla stessa
resterebbe impresso l'indirizzo IP dalla quale è stata scaricata :)
 
 

Non so se sono riuscito a farmi capire.
 
Si', in genere per fregare questi sistemi si fanno DUE screenshot
prendendoli a bande alternate :-)
 
Un altro sistema comune e' bloccare la clipboard dove (in genere)
finisce lo screenshot (soluzione: usare un tool che dumpa tutto a
disco senza passare per la clipboard), o intercettare la tastiera
(soluzione: dare il focus ad un'altra applicazione), nel caso con
monitoraggio ossessivo del focus (soluzione: timed screenshot, ad
esempio con CamStudio).
 
Se uno non vuol rovinarsi la giornata con i millemila sistemi che
puo' avere inventato un webmaster per proteggere i suoi contenuti
e' sufficiente che lanci il browser da una VM e lo copi da fuori:
per definizione stessa di VM, il codice nel browser non sa che e'
stato intercettato. Un colpetto di PrintScreen e copi tutto senza
che il webmaster possa fare - né sapere - niente.
 
Quest'ultimo sistema, consente anche di evitare protezioni troppo
fantasiose tipo il proiettare l'immagine su un MPEG2 statico a un
solo frame in modo che non finisca in buffer video (lo screenshot
in genere conterra' un caratteristico rettangolo magenta o nero).
Non lo fa nessuno perche' poi il sito e' visibile solo su sistemi
dotati di apposita scheda video, ma non si sa mai.
 
Leonardo
 
-- 
Tell us whether you spy, in the light of the morn,
what saluted was fiercely at the fall of the past day:
whose pips and whose bands in the very heart of the fray
bravely floated from the bulwarks to which we were sworn?

Intendi che l'immagine viene proiettata in overlay?
 
Sì, è una qualche funzione astrusa accessibile in QuickTime e Flash, o
così mi hanno detto.
 
E se il browser gira sotto VMware, non vedi niente nel browser, a meno
di installare i VMware Tools aggiornati con accelerazione "hardware".
 
Ovviamente non vedi niente neanche in una quantita' di browser al 100%
legittimi, che girano su macchine altre da quelle dello sviluppatore.
 
Personalmente, non trovo che la protezione di immagini come tale abbia
un gran futuro (o un gran presente)... Piuttosto uno puo' visualizzare
le immagini con un watermark visibile, oppure sfocate, o a risoluzione
inferiore, a seconda dei casi d'uso.
 
Volendo e' possibile inserire nell'immagine un "segnale invisibile" in
modo da poter risalire a chi l'ha scaricata... penso si possa fare con
una certa facilità con ImageMagick, che dovrebbe avere binding sia per
Python che PHP e Perl. Magari stanotte faccio esperimenti :-D. Non e',
ovviamente, una protezione assoluta: ruotando l'immagine, o facendo un
po' di blurring, od altre cose, il codice va perduto. Dovrebbe reggere
ad una compressione JPEG.


 nel pc
 
Ma l'OP voleva una protezione lato server.


anche, involontariamente, croppare una parte che non ha il watermark :-)
 
Questo funziona per il QIM, ma la trasformata di Fourier e' olografica, ed
il marchio e' presente (piu' debole) in TUTTE le parti ]:-D
 
L'attacco crop funziona per il QIM se i codici non sono ridondati... ma e'
possibile progettare un segnale di sync che consenta di decodificarli. Una
sequenza di 32 bit potrebbe essere codificata in 8x8 bit, compreso sync, e
ciascun bit impresso modulando la componente continua del canale Y di ogni
blocco JPEG; in pratica in ogni quadrato di 64 pixel di lato ti ritrovi il
codice completo. Dato che e' solo sul canale Y i cambiamenti di cromia non
gli fanno niente; essendo un QIM i cambiamenti uniformi di luminanza o una
variazione di sharpness non dovrebbero influenzarlo troppo; e per il resto
userei 32->64 bit perche' la sequenza e' protetta con un codice Turbo.
 
====
 
ImageMagick
 
A quanto vedo, la cosa dovrebbe funzionare proprio benino, TRANNE che c'e'
da fare un po' di casino per lo script.
 
Dato che l'immagine deve essere quadrata, occorrera':
	* tranciare l'immagine in "tile" (1024 di lato suona bene)
	* marchiare tutti i tile
	* riassemblare i tile
 
Per marchiarla poi il sistema piu' semplice e' preparare una immagine PNG,
con le stesse dimensioni, sfondo nero, e puntini bianchi nei punti dove si
vogliono immettere i coefficienti.
 
Per lavorare bene serve il supporto HDRI, che in ImageMagick di serie vedo
che non c'e'. Inoltre, di serie non c'e' neanche il supporto per FFT.
 
Ma la cosa e' interessante, sicche' ci sto ciappinando.
 
Su OpenSuSE 11.4, si comincia con
 
zypper install -t srcpackage ImageMagick
 
...poi la roba che non c'e' (un po' la si potra' rimuovere dopo)
 
zypper install libdjvulibre-devel libexif-devel libjasper-devel \
	libwmf-devel libwmf-gnome xorg-x11-devel fftw3 fftw3-devel \
	fftw3-threads
 
cd /usr/src/packages/SPECS
 
# editare ImageMagick.spec, trovare il comando ./configure ed aggiungere a
mano "--enable-hdri". Suppongo ci sia un sistema piu' elegante, ma a me mi
chiamano "l'Alvaro il Laido del software".
 
E a dimostrazione di questo, siccome non c'e' stato versi ne' di capire il
motivo per cui perlMagick+test mi si ingavona, ne' di farsi almeno dire di
quali test si tratta (il modo ci sara' di certo; e' che io lo ignoro), nel
medesimo file spec davanti alla riga "make test" un bel "#" e vaffa.
 
Dopodiche'
 
rpmbuild -ba ImageMagick.spec
 
funziona, mentre l'installazione del RPM no (a giudicare dalle dipendenze,
penso che per sostituire magickCore debba prima installare Windows Seven e
da li' scaricare il setup di Snow Leopard, recitando giaculatorie).
 
Per cui il sistema raccomandato da Alvaro il Laido e'
 
rpm -Uvh --force /usr/src/packages/RPMS/*/*Magick*.rpm
 
(si puo' anche farlo su un sistema di test... alla fine sospetto che serva
solo il file "convert", e su un sistema vergine basti installare fftw3. Il
supporto HDRI e' CPU purissima).
 
Pulizziàto il sistema,
 
zypper remove libdjvulibre-devel libexif-devel libjasper-devel \
libwmf-devel libwmf-gnome xorg-x11-devel fftw3-devel
 
il sanity check ritorna positivo:
 
mintaka:/usr/src/packages/SPECS # time convert /home/lserni/codetest.png
-fft -ift /home/lserni/code2.png
 
real    0m0.155s
user    0m0.196s
sys     0m0.012s
 
...e "code2.png" e' identico a codetest.png, salvo alcuni pixel che errano
di 1-2 (curiosamente messi in righe orizzontali. Mmmmm. Suspiciousss... ma
non e' il workflow; questo e' qualcosa in ImageMagick).
 
Se inseriamo un semplice spike periodico... non so come inserire pixel con
valore floating point, che in HDRI si puo' fare, e quindi i risultati sono
terribilmente rozzi...
 
mintaka:/home/lserni $ convert codetest.png -fft +swap -fill black -draw
'point 509,509; point 509,515; point 515,509; point 515,515' +swap -ift
-clamp code.png
 
mintaka:/home/lserni $ convert code.png -fft +delete -auto-level -evaluate
log 10000 output.png
 
...la differenza fra "codetest.png" e "code.png" visivamente e' poca (beh,
con uno spike NERO a tre pixel dal centrepoint, se usavo un cannone facevo
meno danni), e nell'immagine "output.png" e' ben visibile, insieme a tutte
le sue armoniche.
 
Idealmente dovrei generare un segnale (ossia una PNG) con armoniche, tutte
scalate in 0-255, caricarlo nell'image stack, moltiplicarlo opportunamente
e poi sommarlo all'immagine modulo. Pero', fino 'point 509,509' ci arrivo,
l'aritmetica delle immagini con ImageMagick e' ben altra roba... so che si
puo' fare, ma di qui a farlo...
 
(Un algoritmo per watermarking, ce l'ho - ho fatto qualcosina nel settore,
anni addietro - ma non ho mai lavorato con ImageMagick a fare queste cose,
ed ha del divertente. Oltre che fare impazzire :-D ).


Posso vederle, per curiosità?
 
Oh, puoi usare qualsiasi immagine 1024x1024. Stasera, vedo di uploadarle
da qualche parte.
 
Per fare un lavorino buono, bisognerebbe poter LEGGERE dei valori da una
immagine, modificarli in floating e riscriverli... so che ImageMagick lo
puo' fare (MagickWand, di riffa o di raffa, lo fa), ma fra sapere che, e
sapere come, ci corre una cèa.
 
Leonardo
 
[1] Proceedings of the Erlangen Watermarking Workshop, 1999


 Esatto. Questo che fai si chiama "averaging attack", e in genere l'unica
 
Scusate se interrompo l'accademia, ma cosa potrebbe mai impedirmi di scaricare
in locale l'intera pagina web, ammesso che esista una fantomatica protezione
da screenshot?
 
Un whiplash che la protezione dei contenuti avrebbe un cincinino rotto
il cazzo. :)

il cazzo. :)
 
A me lo dici :-( ...bisognerebbe parlarne altrove, davanti ad un boccale
di birra virtuale.
 
Leonardo
