I did this (non-publicly) many years ago for my eve online alliance. A substantial problem exists in that forging the identity of _someone else_ is fairly easy in a naive scheme if someone detects these characters. That means you can sow chaos by blaming innocent folks. In practice you'll want to "sign" the inserted data as well. Also because of the overhead here and the fact that you will want the signature to occur…
Be careful what you copy: Invisibly inserting usernames into text
71–80 of 200 posts
Re: Be careful what you copy: Invisibly inserting usernames into text
#72I'm surprised I can't detect them on notepad++
F?or exam?ple, I’ve ins?erted 10 ze?ro-width spa?ces in?to thi?s sentence, c?an you tel??l?
Re: Be careful what you copy: Invisibly inserting usernames into text
#73If you are a journalist wishing to protect your source, what tool could be used to process content such that the essence is left intact but the unicode zero-width steganography is stripped... replaced instead by the common space character.
I know enough to say that you cannot just search and replace, as many of the zero-width characters have a meaning in different languages and produce a visual effect when combined with other runes. Just stripping them all will break text in those languages.
Is there a method for removing zero-width whitespace such that journalist sources could be protected?
Re: Be careful what you copy: Invisibly inserting usernames into text
#74const zeroPad = num => ‘00000000’.slice(String(num).length) + num; What a bad way to declare a function. Starting with the word 'function' will make the code much more readable. Arrow functions are supposed to be used as a small callbacks, not to obfuscate the meaning of the code.
Re: Be careful what you copy: Invisibly inserting usernames into text
#75Interesting is how to defend against this. If you are a journalist wishing to protect your source, what tool could be used to process content such that the essence is left intact but the unicode zero-width steganography is stripped... replaced instead by the common space character. I know enough to say that you cannot just search and replace, as many of the zero-width characters have a meaning in different languages…
Re: Be careful what you copy: Invisibly inserting usernames into text
#76How difficult would it be to write a browser extension to either remove all zero-width characters or somehow make it super obvious that they are being used on the page? I just searched for "zero-width" and "zero width" in Chrome and Firefox's extensions stores, but didn't come up with anything.
Re: Be careful what you copy: Invisibly inserting usernames into text
#77Interesting is how to defend against this. If you are a journalist wishing to protect your source, what tool could be used to process content such that the essence is left intact but the unicode zero-width steganography is stripped... replaced instead by the common space character. I know enough to say that you cannot just search and replace, as many of the zero-width characters have a meaning in different languages…
Print it and use OCR?
Re: Be careful what you copy: Invisibly inserting usernames into text
#78Earlier quoted context omitted.
> There are other, far more interesting ways, to watermark text than this that are both harder (to impossible) to detect that produce better results. This sounds interesting, could you elaborate?
The post above mentions some. One good way is synonym replacement. In this method the actual _text_ is altered every time to produce a unique arrangement of synonyms used through out the text. For example I can replace "two" with "2" or "fast" with "quick" to obtain a bit to embed things in. See here for examples: http://failheap-challenge.com/showthread.php?16311-Taking-th... Another is to alter the _frequency_ of c…
- on a forum, if the post reads slightly different to each user, and one user “quotes” it, the quote will be of what that user saw, and other users will be able to identify the fingerprint from the quote.
- if the fingerprinting script modifies all posts on the forum, then a poster will be alarmed to see his words change.
There are clever ways around both of these issues (rewriting the quotes on render, and hiding the fingerprinting from the OP). But eventually the system gets pretty complicated, and ultimately you’re visibly presenting different text to different users, so it’s no longer an invisible fingerprint.
Re: Be careful what you copy: Invisibly inserting usernames into text
#79Earlier quoted context omitted.
What about fingerprinting a photographed text? I'm thinking that by encoding the hidden message to bits and representing them in spaces around some arbitrary anchor keywords from the original text might work. Extracting the message then requires either OCR, either manual work(counting spaces).
Just have the background image have a pattern to it that changes by user: you can encode stuff in a uniform-looking background by making some squares be color (255,255,255) and others be (255,255,254) for example: it would appear to be uniform white but not really.
In order to survive a screenshot (or even some of the common processing steps run after uploading an image somewhere), you would need to visibly change the colors, as you say. This could work but could also produce identifiable artifacts.
(Actually, now I’ve typed this out, I’m not sure if a LSB stego image wouldn’t survive a screenshot. I guess it depends on how the screenshot function is implemented — actually would be curious if anyone has tested this.)
Re: Be careful what you copy: Invisibly inserting usernames into text
#80Interesting is how to defend against this. If you are a journalist wishing to protect your source, what tool could be used to process content such that the essence is left intact but the unicode zero-width steganography is stripped... replaced instead by the common space character. I know enough to say that you cannot just search and replace, as many of the zero-width characters have a meaning in different languages…