TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: Send Secret Messages over Twitter as Public Tweets

128 pointsby dpapathanasiouover 11 years ago

13 comments

breyover 11 years ago
Steganography conceals the existence of the message, not just the contents.<p>if David Miranda gets stopped at Heathrow and:<p><pre><code> On the following morning, the gener·al requested permission to return the emperor&#x27;s visit, by waiting on him in his palace. A pitched battle follow·ed. But the pride of Iztapalapan, on which its lord had freely l·avished his care and his revenues, was its celebrated gardens. ... </code></pre> is in his twitter account, it&#x27;s in no way plausible that they&#x27;re just innocuous tweets, and he can be compelled to reveal the secret.<p>A true steganographic message would have looked indistiguishable from any other tweet that he would have made normally. this is a cute system, but it&#x27;s not steganography.
评论 #6428155 未加载
评论 #6428692 未加载
dpapathanasiouover 11 years ago
This is a side project I&#x27;ve been working on for the Lisp in Summer Projects[1] contest.<p>It&#x27;s a text steganography app using a simple book cipher, written in Clojure.<p>I welcome any feedback from HN so let me know what you think!<p>[1] <a href="http://lispinsummerprojects.org/" rel="nofollow">http:&#x2F;&#x2F;lispinsummerprojects.org&#x2F;</a>
评论 #6427335 未加载
评论 #6427076 未加载
评论 #6429329 未加载
评论 #6427139 未加载
ctzover 11 years ago
The amusing thing about sending ciphertexts over twitter compared to english text is that you can actually fit in more information, assuming you do the encryption and ciphertext encoding right. That&#x27;s because twitter transports 140 unicode code points.<p>(This has nothing to do with steganography, but seems relevant nonetheless. )
danieldkover 11 years ago
Cool! One other fun approach may be to use syntactic transformation (topicalization, middle field ordering, etc.) or lexical variation (e.g. through synonyms):<p><a href="https://www.cerias.purdue.edu/assets/pdf/bibtex_archive/PSI000441.pdf" rel="nofollow">https:&#x2F;&#x2F;www.cerias.purdue.edu&#x2F;assets&#x2F;pdf&#x2F;bibtex_archive&#x2F;PSI0...</a><p>The advantage of such an approach is that you can use coherent text&#x2F;messages.
评论 #6428165 未加载
rwover 11 years ago
I wrote a textual steganography library and CLI in 2011, called Plainsight: <a href="https://github.com/rw/plainsight" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rw&#x2F;plainsight</a><p>Additionally, @workmajj and I wrote TweetFS using Plainsight. It lets you recursively pack up directories and post them as an encoded linked list of Tweets to Twitter: <a href="https://github.com/rw/tweetfs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rw&#x2F;tweetfs</a><p>I presented Plainsight at Hack&#x27;n&#x27;Tell NYC in 2011 and a video was recorded: <a href="http://bit.ly/pecGgW" rel="nofollow">http:&#x2F;&#x2F;bit.ly&#x2F;pecGgW</a><p>Plainsight uses each byte of the input message to generate tokens. Bits are used to decide how to traverse the token tree, weighted by frequency. The drawbacks are 1) verbosity and 2) incorrect grammar.<p>One of the lessons of writing Plainsight is that <i>spam can be used to contain secret messages</i>. Send enough gibberish to enough people, with your intended recipient included, and you&#x27;ll look like a spammer--not a spy.<p>I also wrote a fuzzing tool, called Shag, to find edge cases, e.g. for single-byte inputs: <a href="https://github.com/rw/shag/blob/master/shag.rb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rw&#x2F;shag&#x2F;blob&#x2F;master&#x2F;shag.rb</a><p>-- Example 1 (regular text)<p>Type your message to encode:<p><pre><code> echo &#x27;Meet at Union Square at noon. The password is FuriousGreen.&#x27; &gt; cleartext </code></pre> Then, pipe it through Plainsight:<p><pre><code> cat cleartext | plainsight -m encipher -f sherlock.txt &gt; ciphertext </code></pre> The output will be Doyle-esque gibberish:<p><pre><code> cat ciphertext | fold -s which was the case, of a light. And, his hand. &quot;BALLARAT.&quot; only applicant?&quot; decline be walking we do, the point of the little man in a strange, her husband&#x27;s hand, going said road, path but you do know what I have heard of you, I found myself to get away from home and for the ventilator little cold night, and I he had left my friend Sherlock of our visitor and he had an idea was not to abuse step I of you, I knew what I was then the first signs it is the daughter, at least a fellow-countryman. had come. as I have already explained, the garden. what you can see a of importance. your hair. a picture upon of the money which had brought a you have a little good deal in way: out to my wife and hurry.&quot; made your hair. a charge me a series events, and excuse no sign his note-book has come away and in my old Sherlock was already down to do with the twisted </code></pre> Now, decipher that ciphertext:<p><pre><code> cat ciphertext | plainsight -m decipher -f sherlock.txt &gt; deciphered cat deciphered Meet at Union Square at noon. The password is FuriousGreen. </code></pre> -- Example 2 (binary data)<p><pre><code> $ dd if=&#x2F;dev&#x2F;urandom of=&#x2F;dev&#x2F;stdout bs=1 count=10 | plainsight -m encipher -f 1984.txt 10+0 records in 10+0 records out 10 bytes (10 B) copied, 9e-05 s, 111 kB&#x2F;s Adding models: Model: 1984.txt added in 0.89s (context == 2) input is &quot;&lt;stdin&gt;&quot;, output is &quot;&lt;stdout&gt;&quot; enciphering: 100%|#####################################################################################################################################################################|474.67 B&#x2F;s | Time: 0:00:00 which is a war is real, the proles used mind on the telescreen. He could see through all right to. You have read what said. &#x27;Yes,&#x27; only in the Ministry</code></pre>
评论 #6428314 未加载
评论 #6428221 未加载
评论 #6428238 未加载
评论 #6430268 未加载
drakaalover 11 years ago
The big issue I see is that Twitter detects and delete gibberish as spam. So at best case your posts randomly get filtered when you use this.<p>At worst case after posting a bunch of gibberish Twitter bans your account.
评论 #6427936 未加载
评论 #6427540 未加载
评论 #6427203 未加载
评论 #6427330 未加载
评论 #6427192 未加载
hhmover 11 years ago
Very nice! I worked on a similar steganographic system (not for tweets though) that you can find here: <a href="https://github.com/hmoraldo/markovTextStego" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;hmoraldo&#x2F;markovTextStego</a> There you&#x27;ll find both the source code and a link to a paper explaining how it works and how it differs from other approaches.
timrover 11 years ago
At Twitter Peak Hype, when journalists were writing silly things like: &quot;Twitter is nothing less than a <i>new internet protocol!</i>&quot;, I had a perverse fantasy of implementing TCP&#x2F;T(weet).<p>If someone were to do this, it would effectively subsume all further &quot;I implemented $X on Twitter&quot; posts. Sort of like showing that a language is Turing complete.
评论 #6428240 未加载
gpsarakisover 11 years ago
Nice project. Considering a stream of tweets how can you find the beginning and the end of a sentence&#x2F;message?
评论 #6428175 未加载
netman21over 11 years ago
Or you could use <a href="https://scrambls.com/" rel="nofollow">https:&#x2F;&#x2F;scrambls.com&#x2F;</a> which uses strong crypto and works for facebook or any site. Keeping in mind that any short message protocol is vulnerable to cryptanalysis.
cbrover 11 years ago
For this to be secure (one-time-pad) you can&#x27;t reuse the corpus. That&#x27;s a big enough pain that I doubt people will actually do it. Which means you can start decoding their tweets once you collect enough.
评论 #6428194 未加载
alexharris66over 11 years ago
Cool. Much better than my secret twitter message project: <a href="http://www.twhatever.com/tweets" rel="nofollow">http:&#x2F;&#x2F;www.twhatever.com&#x2F;tweets</a> :)
bzalaskyover 11 years ago
So, horse_ebooks could have an ulterior motive?