Monthly Archives: August 2009

Compromising Reflections

I’ve been interested in TEMPEST and related technologies for a while. Here’s another link to another paper:

This project investigates a novel eavesdropping technique for spying at a distance on data that is displayed on an arbitrary computer screen, including the currently prevalent LCD monitors. Our technique exploits reflections of the screen’s optical emanations in various objects that one commonly finds in close proximity to the screen and uses those reflections to recover the original screen content. Such objects include eyeglasses, tea pots, spoons, plastic bottles, and even the eye of the user.

We have demonstrated that this attack can be successfully mounted to spy on even small fonts using inexpensive, off-the-shelf equipment (less than 1500 dollars) from a distance of up to 10 meters. Relying on more expensive equipment allowed us to conduct this attack from over 30 meters away, demonstrating that similar attacks are feasible from the other side of the street or from a close-by building. We additionally establish theoretical limitations of the attack; these limitations may help to estimate the risk that this attack can be successfully mounted in a given environment.

Compromising Reflections

Decoding packet….

It’s late, so I am not figuring this out, but I seem to be getting quite a bit of ripple in the output of this demodulator. I bet that it is because I don’t know what I am doing. Oh well. More for later, I guess.

Picture 3

FET Transistor Homemade From Cadmium Sulfide Photocell.

I’ve blogged about the experiments of Nyle Steiner before, but just recently got back to his Spark Bang Buzz website again, and found that he’s added a couple of interesting bits. In particular, he shows how to modify a common Cadmium Sulfide Photocell to act like a field effect transistor. The voltage gain provided is quite small (about 1/10) but the power gain is better and the principle is quite interesting. Check it out.

FET Transistor Homemade From Cadmium Sulfide Photocell.

Passing the Amateur Extra test by guessing…

The Amateur Extra test is 50 questions, multiple choice, with 4 answers per question. A passing grade is 35 or more. A few minutes of programming this morning, even before I had any coffee yielded that the exact probability of passing was:

      4677523340461106447
------------------------------
158456325028528675187087900672

or about 1 in 33.9 billion.

This wasn’t that interesting of a question, but to solve it, I hacked up a quick but limited implementation of rational arithmetic in Python. I was wondering if there was a better way to implement this in Python so overloading would “just work”. I didn’t know how, and the problem was simple enough, so I didn’t try. Here’s my solution.

#!/usr/bin/env python

def gcd(a, b):
    if (a < b):
        a, b = b, a
    while b != 0:
        a, b = b, a%b
    return a 

class Rational:
    def __init__(self, a, b):
        self.a = a 
        self.b = b 
    def __str__(self):
        return "[%d / %d]" % (self.a, self.b)
    def pow(self, p):
        return Rational(pow(self.a, p), pow(self.b, p))
    def mult(self, r):
        tmpa = self.a * r.a ;
        tmpb = self.b * r.b ;
        d = gcd(tmpa, tmpb)
        return Rational(tmpa//d, tmpb//d)
    def imult(self, i):
        tmpa = self.a * i ;
        tmpb = self.b ;
        d = gcd(tmpa, tmpb)
        return Rational(tmpa//d, tmpb//d)
    def add(self, r):
        tmpa = self.a * r.b + r.a * self.b
        tmpb = self.b * r.b 
        d = gcd(tmpa, tmpb)
        return Rational(tmpa//d, tmpb//d)

p = Rational(1, 4)
q = Rational(3, 4)

def fact(n):
        c = 1 
        while n > 1:
                c = c * n 
                n = n - 1 
        return c 

def comb(a, b):
        return fact(a)/(fact(b)*fact(a-b))

total = Rational(0, 1)

for t in range(35, 51):
        x = p.pow(t).mult(q.pow(50-t)).imult(comb(50, t))
        total = total.add(x)

print "Exact probability is",  total
print "Only about 1 in", total.b // total.a, "will pass"

A Personal Satellite Kit?

Planet Earth has entered the age of the Personal Satellite with the introduction of Interorbital’s TubeSat Personal Satellite (PS) Kit. The new IOS TubeSat PS Kit is the low-cost alternative to the CubeSat. It has three-quarters of the mass (0.75-kg) and volume of a CubeSat, but still offers plenty of room for most experiments or functions.

The interesting bit? Total cost = $8000, including launch costs. You can use paypal to order one and get a launch slot.

The not so interesting bit? It doesn’t appear that the launch vehicle actually exists.

Via Interorbital Systems – TubeSat Personal Satellite Kit | International Space Fellowship.

Beginnings of an SSTV demodulator

So, armed with the SSTV link that I dug out yesterday, and with a couple of hours this morning to tinker, I started working on an SSTV decoder. It’s not much different than the APT and WEFAX decoders I had written before, but they used amplitude modulation of an audio subcarrier, and most (all?) SSTV modes are based upon frequency modulation. But the only real difference is instead of recovering the amplitude of the carrier, you recover the change in phase. I’ll write this up in more detail sometime when I feel like writing, but here’s some example “demodulations”. The first comes from the header:

yyy

This is from the beginning of the recording of my Robot36 encoded picture. It starts with the so-called VIS code, which has 300ms of 1900hz audio, 10ms of 1200hz audio, and 300ms of 1900hz audio. You then see the mode indentifier, which begins and ends with 30ms of 1200hz, and with the identifier having ones and zeros encoded as 1100hz and 1300hz audio respectively. Neat!

Looking at a later part, we get this:

xxx

This shows scanlines from the image. Between the two tallest peaks, you see two scanlines. The two longer stretches are the intensity information, the two shorter, the R-Y and B-Y color channels.

It won’t be too hard to convert this into a picture, but I’ve been mucking with this too long today. Stay tuned for more developments.

Addendum: The bandpass filter in these examples was probably not positioned optimally (centered on 1500Hz, rather than 1700Hz). I’ve corrected it.

KR7A SSTV Demodulator

Don’t you hate it when you remember seeing a webpage but can’t remember exactly how to get there? This one took me a bunch of judicious web searching to finally uncover again. It basically details how you might go about making an SSTV demodulator, some of the details of which I was a bit sketchy on. This page not only gives you the answer, but shows some of the mathematics that makes you have some confidence that what you are doing is right. I’m too tired to figure it out tonight, but I’m archiving it for later:

KR7A SSTV Demodulator.

SSTV from the ISS, August 3 and 4

The ISS should be operating SSTV on August 3 and 4, using the Robot36 mode. I’ll go ahead and see if I can catch some pictures from space that way. Should work well, after my success with AO-51.

SSTV Aug 3 & 4 | ISS Fan Club.

Addendum: If you want to test your SSTV software before hand, you might want to use a recording that I made. Go here and fetch the linked .wav recording, and use it to test your SSTV software. It will also help you know what an SSTV signal sounds like.