9 ms·
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
by zbobet2012 9y ago
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 at regular intervals a better compression scheme than 0=>char1 1=>char2 is needed. Combining zero width chars and homoglyph substitution* can produce codings which hold signed usernames in only a few characters.
There are other, far more interesting ways, to watermark text than this that are both harder (to impossible) to detect that produce better results.
*https://www.researchgate.net/publication/308044170_Content-preserving_Text_Watermarking_through_Unicode_Homoglyph_Substitution https://www.researchgate.net/publication/308044170_Content-p...
P.S. It's nice to see people publish conference papers on this stuff. I always had to hide it because we actually used it.
- elaus 9y ago> 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?
- zbobet2012 9y agoThe 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-the-meta-seriously-(Part-deux)&p=1047855 http://failheap-challenge.com/showthread.php?16311-Taking-th... Another is to alter the _frequency_ of certain letters occurring in the text to produce a unique watermark. For example the "number of i's" that occur in the text can be used to produce a unique text per user. This is a very hard attack to detect or do anything about because even _summaries_ of the associated text tend to carry letter and word frequencies forward. These methods are also impervious to "screenshot" etc. And because the embedded value can simple be a 64bit key to lookup the users/session info with attacks that attempt to impersonate other are impossible.
- deleted 9y ago[deleted]
- spicyj 9y agoHow do you synthetically alter the frequencies of letters?
- ry_ry 9y agoI'd assume just replace words with synonyms containing the appropriately weighted letter/s? The hard part is going to be keeping the flow of the text, whilst brute forcing a thesaurus into it!
- thinkloop 9y agoIt does seem tough to vary word usage to produce the right frequency of letters while keeping the meaning and not having it read awkwardly.
- zbobet2012 9y agoThe easiest is again to do synonym/word/punctuation replacement but with the intent of altering the letter frequency instead of embedding information directly. It's effectively a compression scheme built on-top of synonym replacement using "extra" available information to pack more bits in less words. This means even sentence long quotes in summary form are enough to compromise someone.
- tjoff 9y agoIt sounds to me that it would be blatantly obvious that a human didn't write whatever result that may produce. And I don't quite get how you can encode that much information in a sentence without it being completely garbled.
- athenot 9y agoIt seems to me that it'd be very obvious that a human did not write whatever result that could produce. Here's 5 bits in that simple sentence. I'm sure others can do better.
- Mashimo 9y agoI saw the topic and the first thing my mind went to was eve online :) People could still just make a screenshot and the special character would not be visible, so they implemented hidden watermarks: [0] Then the same alliance would also generate slightly different text for each person. [1] I think things might have changed now days, as everyone is recruiting new players and make it easy for other alliances to put spies in. Maybe in some sub-groups that manage large amounts of assets? [0] http://failheap-challenge.com/showthread.php?12731-Once-upon-a-time-these-guys-took-the-meta-seriously http://failheap-challenge.com/showthread.php?12731-Once-upon... [1] http://failheap-challenge.com/showthread.php?16311-Taking-the-meta-seriously-(Part-deux)&p=1047855 http://failheap-challenge.com/showthread.php?16311-Taking-th...
- ry_ry 9y agoLater, we just told select people we had implemented some crazy undetectable watermarking, and the leaks stopped - effectively identifying the culprits in the process.
- Mashimo 9y agoYou could say, you snuffed them out!
- ry_ry 9y agoKings of lowsec watermarking.
- nsgi 9y agoThe Death Note method. Reminds me of https://www.gwern.net/Death-Note-Anonymity https://www.gwern.net/Death-Note-Anonymity
- rtkwe 9y agoWhoa, does anyone else get huge memory usage on that page? I'm on Chrome 64.0.3282.186 and that page was using ~2GB. More on topic it's always shocking how many things serve to deanonymize these days.
- avree 9y agowhich alliance were you in? :)
- sillysaurus3 9y agoCould you talk more about why this was useful for Eve? What's an example of how you could blame innocent folks? And how could you sign the inserted data – do you mean cryptographically?
- ry_ry 9y agoThe in-game stuff is the tip of the PVP iceberg as far as Eve goes. Whole alliances have been killed off using a handful of reddit sockpuppets impersonating their members, brought down by a player flipped at a social event, or simply imploded under the weight of internal drama stoked by rivals. Often all 3 at the same time. It's a very interesting game, built on a really crappy space themed spreadsheet.
- lagadu 9y agoSpying is a big problem in Eve. At the most basic level a spy is able to take screenshots and copy/paste text to send back to the entity they're spying for. By watermarking both text and forum backgrounds the data effectively becomes tainted in the sense that the screenshot/text will have unique characteristics that allow the original poster to identify who copied the data in the first place. The whole flow would be: - X is a player in alliance FOO but is actually an agent planted there by alliance BAR. - Y is a player in alliance BAR but is actually an agent planted there by alliance FOO (or any other). - X copies intel from FOO's forums and sends it back to the people in charge of the spy program in BAR. - That intel gets shared with key personnel in alliance BAR, so they can take action based on the gathered intelligence; unknown to BAR, among that personnel is Y - Y sees that intel and sends it back to their leadership in alliance FOO - The people at alliance FOO identify the unique data on that intel and track it down to X and proceed to kick him for being a spy. As someone who is involved with alliance leadership stuffs: This may sound convoluted but it's really bread-and-butter level stuff in Eve, it can get significantly weirder. For example this article discusses whitespace character-based fingerprinting: that's amateur level, like described elsewhere in this thread. To answer your question: counter-intelligence. If your method for tagging data is known and easy to replicate, such as watermarking your forum userID in screenshots, the people at alliance BAR can edit the screenshot (or forge a new one) where they insert the userID of an innocent person in alliance FOO in the gathered intel, this way when Y grabs the data for sending back to FOO, they'll be unknowingly sending evidence that incriminates a loyal member. edit: I noticed I didn't address your last question. Signing data is just regular cryptographic signing yeah, in the above example to prevent tampering you'd insert the hash from the userID plus a secret salt for example. You just need some way to prevent the hostiles from incriminating someone else.
- nzpopa 9y agoWhat 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).
- lagadu 9y agoJust 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.
- chatmasta 9y agoThe classic image stegonography technique is embedding bits in the least-significant-bit of each pixel, such that the differences do not produce visual changes but the information is preserved in the raw bytes of the file. The problem with this technique is that the encoded information will not survive a screenshot (since it’s in the LSB, the colors don’t actually change, just the raw bits). 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.)
- deleted 9y ago[deleted]
- pbhjpbhj 9y agoLSB alterations would be in lossless encoded images, like PNG (of the bit-depth was sufficient); but not in lossy image formats like JPEG.
- 9y ago
- sshagent 9y agoI miss Eve so much, there isn't a mention of Eve on this site that doesn't get me pining for the game again. Sadly everyone i flew with no longer play :/ What the status of the game, last i looked i barely recognised any on the sov/influence map.
- chii 9y agoI think they were bleeding subscribers for a while, and had to go to a form of limited free-to-play to keep the numbers up. I m a bit sad that the EVE legacy is eventually going to end, since i think the game is still the most unique MMO out there. But i don't feel the game has the same dynamic as it had in 2008-2010. But i also quit at that time too, so who knows...
- sshagent 9y agoindeed. I've played a lot of mmos, from UO and onwards. Nothing really compares to EVE in the slightest. Perhaps SWG to some extent but EVE is like the Dwarf Fortress of MMOs. lots of levels of details and harsh
- Mashimo 9y agoStill a lot of people playing it. A bit less subscribers, but not too bad. In 0.0 it's captials everywhere. People mine in Rorquals, people do PvE in Carriers and Supers. If you tackle a small ships doing PvE it opens a cyno and Captials jump in. They now have fighters that have good applications against smaller ships. So the good old rock paper scissors for shipssize in eve is not more. Still a diverse game, from solo to large fleet fights. I have my fun.
- sshagent 9y agoI started in 2004, and played semi seriously for big bouts until probably 2012 or so. Every year or news story would get me back in...and i'd recognise less and less. I stopped myself reading eve politics not that long ago, as that was the bit that most interested me really. After the glory days of roaming in small fleets. The last time i logged in, a couple of years back. I contemplated moving my shit to somewhere else to where one of the few people i knew was still playing but the jump fatigued meant that would take half my life. I get the whole point of trying to limit force projection cos it was very daft with every encounter in 0.0 finishing with PL, NC or Goons dropping in their super fleets. But logistics for the common player is awkward :( It would likely take me many days of gathering and moving shit to get into a position to actually play the game again haha. not fun.
- ohitsdom 9y agoOn forging the identity of someone else, the author did mention it and the workaround is pretty simple (using a secret ID for each user): > There are some caveats to this method of course. For example, if a user knew of the script they could theoretically insert their own zero-width characters and accuse someone else. A better solution would be to insert a unique user ID that is not publicly available instead of the username.
- PurpleBoxDragon 9y agoIf someone manages to determine the secret ID then it fails. What about signing a combination of part of the message (likely some hash) and the user ID. This would create a secret ID, but one which if stolen can be shown to be false since trying to recreate the signature with their ID and the message would fail. Hash collisions between different messages are still a concern, but aren't their known solutions to that problem that can be implemented in combination?
- aldoushuxley001 9y agoCan't you just use a whitelist of allowable characters?
- ksrm 9y agoThe advantage of putting the (signed) full username in there is that you can demonstrate to a third party (like a court?) who is to blame. Just encoding a number for each user, or giving each user a different number of Es is deniable to a certain extent.
- scottmf 9y agoBut such a simple system would make it easy for one user to frame another. You would need a way of signing the username. Perhaps you could hash the user ID with a secret salt, and hide that in the text along with the username.
- wodenokoto 9y agoI dont have access to the paper, but wouldn't unicode normalization (and zero width deletion) effectively remove all watermarking?