the lie
within
the fiction

stenography through fonts

  • Steganography.



  • Hiding in plain sight.
  • Hiding from you? From me?
  • Hiding from a computer?



  • Do you believe everything you read?

  • Lies.



  • A lot can be used to lie on the internet.
  • Flash, javascript, html5,
  • embeds, ajax, ...



  • Fonts can't lie, right ?

wrong.html

<!DOCTYPE html>
<html><head><link href="wrong_fontface.css" rel="stylesheet"/>
    <link href="styles/fontmap.css" rel="stylesheet"/>
  </head>
  <body>
    <div class="modified">
      <font1>WRONG.</font1>
      <textarea placeholder=" ... " rows="1"></textarea>
    </div>
</body></html>
A computer will read WRONG but a human will read RIGHT .

Why?

The letter h

<CharString name="h">
          -74 12 51 callsubr
          hstem
          323 63 callsubr
          109 -57 -143 0 hvcurveto
          -66 -171 -112 241 rlineto
          0 -36 73 61 vhcurveto
          14 -222 -14 vlineto
          18 -1 27 0 24 -51 rrcurveto
          0 11 -21 177 -384 vhcurveto
          13 hlineto
          122 315 rlineto
          140 58 37 2 30 hhcurveto
          14 vlineto
          endchar
</CharString>

  • LOL nope.
  • That wasn't the letter "h".
  • It was the letter "v".
  • You didn't know?



  • Neither does the computer.

Tricky bits:


  • Multi-maps -> multiple fonts
  • Kerning
  • Ligatures
  • Spaces: one long word or non-breaking spaces?
  • Firefox/Opera vs Chrome


Usage?


  • Stenography
  • Preventing copying and pasting
  • Hiding text from the computer
  • Fooling automated text-analysis
  • Art

Thanks, you.

https://github.com/thoppe/TheLieWithinTheFiction

@metasemantic