È possibile usare il carattere per decrittografare visivamente il testo cifrato [chiuso]

2

L'obiettivo è evitare che l'articolo venga facilmente copiato dai web crawler.

  1. Cifra il testo con un codice sostitutivo.
  2. Genera un font che contrasta la sostituzione e trasferisce al front-end Web. (Funziona facendo in modo che i caratteri di testo vengano visualizzati come sostituti invece del loro carattere attuale.)
  3. Quando il browser esegue il rendering del testo con questo tipo di carattere, l'utente può leggere direttamente il testo reale.
  4. Gli utenti leggono come al solito. I crawler vedono cose senza senso. Obiettivo raggiunto.
posta Donald Wu 05.09.2017 - 08:23
fonte

3 risposte

2

Non è abbastanza chiaro come lo si immagini esattamente. Ma data la descrizione fino ad ora suppongo di mappare ad esempio il carattere "Z" in qualcosa di "A" e quindi sostituire ogni A nella tua pagina con Z che verrà visualizzata come A sullo schermo a causa del carattere speciale.

Oltre ad essere un incubo per qualsiasi utente che si affidi alla lettura dello schermo è probabilmente facile crearlo: per uno potrebbe usare OCR per trovare il testo reale, confrontarlo con il codice sorgente HTML e quindi creare una mappatura tra codice sorgente carattere e carattere visualizzato. Anche questo potrebbe non essere necessario perché si potrebbe fare qualche analisi statistica del codice sorgente HTML e qualche confronto di nuovo un dizionario per ottenere il mapping tra il codice sorgente e il carattere visualizzato perché questo è essenzialmente solo un cifrario di sostituzione basato su singole lettere.

This font is create with some One Time Pad key.

Non sono sicuro di cosa intendi con questo. Ma potrebbe significare che ogni mappatura tra il carattere nel codice sorgente e il carattere visualizzato viene eseguita una sola volta invece di riutilizzare la stessa mappatura tutto il tempo che ho descritto sopra. Anche se non hai un cifrario sostitutivo facile da decifrare in questo modo, significa che avrai bisogno di molti font per ogni pagina HTML. Questo sarebbe ancor più un incubo di usabilità rispetto a un singolo font. Ma, OCR potrebbe ancora essere utilizzato per estrarre il testo. Essenzialmente la protezione è quasi la stessa di come si farebbe semplicemente una foto della pagina e basta mettere questa foto online.

Quindi in sostanza: lo rende un po 'più difficile per i web crawler ma a costo di renderlo più difficile anche per gli utenti finali.

    
risposta data 05.09.2017 - 08:53
fonte
0

Risposta aggiornata:

La tua domanda è molto più chiara ora che l'hai riformulata. Stai descrivendo un cifrario di sostituzione monoalfabetico : ogni lettera è codificata da un altro punto di codice che con il classico ASCII o UTF-8 codifica (assumendo il testo in inglese).

Questo renderà il bot comune incapace di analizzare correttamente il contenuto testuale delle pagine web. Tuttavia, questa cifra è facilmente rotture mediante analisi statistiche o conoscendo una parte del testo in chiaro. Pertanto, sarebbe relativamente facile scrivere un bot (o migliorare un web crawler) per decifrare automaticamente la maggior parte delle tue pagine web.

Risposta originale:

Risponderò alla domanda punto per punto.

Is it practicable to encrypt text with sophisticatedly designed font?

No. Perché non è così che funziona la crittografia. Quello che stai chiedendo è semplicemente impossibile.

The aim is to avoid article easily copied by Web crawlers.

I web crawler non si preoccupano del tipo di carattere che stai scegliendo. Non hanno occhi.

Despite that font can be decompiled, is it practical to encrypt text with sophisticatedly designed font? ( font and ciphertext are both provided )

Puoi offuscare o codificare un testo renderizzato con un font speciale, ma quella non è una crittografia. Al massimo è un codice sostitutivo, che non offre alcuna sicurezza reale. Inoltre, il testo cifrato è l'output di un algoritmo di crittografia, non il suo input. Se hai già un testo crittografato, perché vorresti crittografarlo di nuovo?

This font is create with some One Time Pad key.

Un time pad non è un protocollo di crittografia, è un algoritmo di crittografia poco pratico. Inoltre, in qualsiasi meccanismo di crittografia, è necessario fornire la chiave di decodifica a quelli che decrittografano il messaggio, come si prevede di assegnare questa chiave solo ai lettori previsti e non ai crawler Web?

Per riassumere, non penso che tu capisca cosa stai chiedendo. Ti suggerisco di leggere su:

  • come viene codificata una pagina (HTML),
  • cos'è un carattere,
  • cos'è la crittografia.

Per l'ultimo punto, ti suggerisco di leggere sulla macchina Enigma, perché puoi trovare molti articoli e libri molto ben scritti su di esso che ti spiegheranno i fondamenti della crittografia.

    
risposta data 05.09.2017 - 09:27
fonte
0

Descrivere questo come "crittografia" è un grande allungamento e metterei in discussione il valore nel fare qualcosa di più complicato di un rot 13. Lo suggerisco perché è improbabile che un crawler si preoccupi di cercare di contrastare il tuo particolare approccio a meno che tu non abbia dei contenuti ciò attirerebbe direttamente l'attenzione specialistica. Utilizzare ROT13 dovrebbe quindi essere altrettanto efficace quanto il compito molto più difficile di aggiungere un livello di rendering e generare dinamicamente un carattere che deve essere caricato per visualizzare la pagina.

Anche l'idea di un one time pad è irrilevante in quanto per definizione un OTP non può ripetere uno shift, ma il tuo font sarà usato per l'intero testo. Ciò significa che verrà formato un modello (facilmente) analizzabile. Suppongo che potresti renderizzare diversi tipi di carattere per ogni carattere di ripetizione, ma che sarà estremamente intenso e intensivo di dati per generare tutti quei tipi di carattere al volo praticamente senza alcun valore pratico. (In particolare dal momento che il rendering e l'OCR forniscono una contromisura perfettamente efficace per un avversario determinato o sofisticato.)

Non fornirà alcuna sicurezza oltre alla protezione contro la leggibilità delle macchine, ma dovrebbe essere evidenziato che questo ha gravi costi di accessibilità e qualsiasi lettore di schermo (quello che i non vedenti usano per usare un computer) dipende dal fatto che il contenuto sia leggibile da macchina a funzione. Bloccherai qualsiasi utente dipendente da uno screen reader per accedere al tuo sito. Potresti essere in grado di aggirare questo problema consentendo agli utenti registrati di utilizzare un carattere non codificato, in modo che sia leggibile dalla macchina e prendendo precauzioni contro la registrazione dei robot.

Potrebbe anche essere utile come meccanismo anti-spam (registrazione bot). Potresti usarlo per mascherare alcuni degli input registrati per rendere più difficile la creazione di una risposta valida senza l'intervento manuale. Questo sarebbe vittima degli stessi problemi di accessibilità, ma potresti fornire un percorso di registrazione alternativo (come l'approvazione manuale) per qualcuno che ha bisogno del supporto dello screen reader.

    
risposta data 05.09.2017 - 15:46
fonte

Leggi altre domande sui tag