-
32C3 preroll music
-
Herald: I think hacking satellites is fun.
-
I think it’s even more fun when
it’s all ‘security by obscurity’.
-
I would like to present you
Sec and schneider.
-
Both are members of the Munich CCC.
Sec worked as a security consultant
-
but he’s probably best known for the
‘Hacker Jeopardy’. Which he has been doing
-
for more than a decade.
And obviously the rad1o!
-
applause
-
And schneider is an awesome developer
for hardware and software.
-
So, who has been to Camp and
seen the talk about Iridium there?
-
Please raise your hand.
Wow.
-
And who has seen
the Iridium talk on 31C3?
-
Even more people. And who hasn’t
had any Iridium update at all?
-
Wow. Okay, so without further ado,
here is your yearly Iridium update!
-
applause
Sec laughs
-
schneider: Yes, hello, thank you for
coming to this Congress’ edition
-
of the Iridium talk. laughs We’ve
increased our slot size by 100%
-
compared to one year ago. And we’ve also,
I guess, increased the amount of content
-
by quite a bit. In the last
year we’ve got ourselves
-
some devices to play with from Iridium.
Modems, actually. More than one of them.
-
A phone, with contract. And that helped
us a lot getting more knowledge
-
about Iridium. Now, apparently, I guess
half of you haven’t seen any talk
-
about Iridium from us before. So here’s
a short introduction. Iridium is a global
-
satellite network made out of Low Earth
Orbit satellites, built by Motorola
-
in the nineties. It has 66 active logical
satellites. And with ‘logical’ we mean
-
one satellite can be more than one
satellite in orbit. Maybe it has failed
-
a little bit and now they have two
satellites in one spot producing
-
one logical satellite still functioning.
You have worldwide global coverage,
-
even at the poles, on every place on
earth, on the water – everywhere.
-
Services: you’ve got messaging, you’ve
got voice, you’ve got internet IP data.
-
And even some special services which are
broadcast-only, which they only send down
-
to earth, and the receiver doesn’t receive
anything. Now, Iridium coverage –
-
there’s a lot of Iridium satellites, and
they produce a spot beam pattern
-
on the planet. There’s 48 spot beams,
each of them covering roughly 400 km
-
in diameter. All spot beams together
roughly 4500 km. Now, if you have
-
a very sensitive setup you can receive
more than one spot beam at the same time.
-
And that’s going to be another issue
during this talk. If you want to have
-
a look at this on a global scale you can
see how much area one Iridium satellite
-
is covering on earth. Quite a lot. And by
receiving them you get a lot of knowledge.
-
Why look at it? Now. There’s almost
no info about Iridium available online
-
or in paper, or any way. It’s a completely
proprietary protocol. There’s nothing
-
about it available. Its worldwide visible.
You go out there you get Iridium signals.
-
You go to the pole you get Iridium signals.
So it’s nice to have a look at it and
-
talk about it, and everyone can just go
out and have a look at it. Low barrier
-
of entry. Cheap RTLSDRs are good enough
to get pager messages from Iridium.
-
There’s lots of interesting services: the
pagers, Iridium Burst. The devices for that
-
are passive. They don’t send anything
out. So probably interesting
-
for Intelligence services also. And
future-proof. There’s nation states
-
interested in Iridium, namely the United
States and also quite a commercial
-
venture behind it. There’s going to be
Iridium Next, launched next year.
-
At least that’s the plan. It’s going
to replace all of the satellites,
-
66 more satellites. They will de-orbit
the old ones. But still the system will
-
stay compatible with the current system.
So, worth the effort. Applications.
-
Tracking, fleet management, mobile data,
emergency services. There are devices
-
for emergency responders to tell
them where to go, based on Iridium.
-
Maybe that’s in a helicopter or a plane.
Maritime sensors – very interesting.
-
With Iridium antennas you don’t have to
point the antenna at a specific point
-
in the sky. You have something, it can
wobble around, will still work fine.
-
Aircraft communications – we’ve seen that.
While the spot beams cover all of earth,
-
apparently they also work 10 kilometers
up, and there’s a lot of applications
-
for aircrafts. We have been
doing this for almost 2 years.
-
And one year ago at Congress
we had pager messages. Nice.
-
We also had the downlink demodulated
and descrambling going on.
-
The Ring Alert Channel identified, and
some data stuff. Then the rad1o happened.
-
And really, the rad1o was a secret project
to get more Iridium receivers out there.
-
That worked great. It has good coverage
on Iridium. It did delay us a little bit, so
-
after the rad1o we spent a lot of time
again on Iridium. And we got a lot of stuff
-
going: short-burst data decoding. We've
raided a phone, had a look at that.
-
We looked at IP traffic on Iridium. And
even got more data out of that SBD modem
-
than just data which it receives. So.
-
One year ago this was our recommended
setup: passive antenna and very expensive
-
bandpass and low noise amplifiers.
That works but since Camp we’ve got
-
a much better setup: modified GPS
antennas – they’re super cheap,
-
they work almost out-of-the-box, you
remove one filter, you maybe replace
-
one of the components in there, you’ve
got a pretty nice Iridium antenna.
-
Optionally, you can add an Iridium filter
in there and then you can also use it
-
in busy environments. Just one thing:
if you get one of these antennas
-
make sure it has screws in it so you can
reseal it again and take it outdoors.
-
Modifications: you remove one filter,
you get an Iridium patch antenna
-
– available on Mouser, Digikey… –
that’s no big deal. You solder it in,
-
you’ve got a nice antenna. We’ve got
this thing documented in our Wiki.
-
Have a look at that. You will get a good
Iridium antenna. Though, one thing is
-
potentially…
applause
-
– thanks! – …missing if you
are in an urban environment
-
and there’s lots of GSM and UMTS going on
you probably want to add an Iridium filter
-
in there. Murata actually makes one
specifically for Iridium. You pop that in
-
and you’ve got a nice and clean signal.
It depends on the environment
-
but highly recommended.
Now, receiver setups.
-
Cheapest option: take that antenna,
attach it to an RTLSDR (preferably
-
E4000 tuner) and you get Iridium
reception. Just a portion of the band,
-
roughly 20..40%, but still enough
to get a good idea about Iridium.
-
We’ve started with that, we’ve been
running this for a long time. And,
-
example for pagers – more
than enough. Next best thing:
-
“real” SDR: rad1o, HackRF, USRP.
With more coverage.
-
Passive antenna works with these, they
have a good enough amplifier to do it. But
-
the cabling must be quite short. You
cannot have many losses in the cable.
-
So, therefor the really recommended setup
from us is having an active antenna
-
with an SDR. You can take the antenna
outside, have 5 meters of cable,
-
put the SDR inside. Weatherproof setup.
You can leave it there. We have
-
something like that in Munich,
works a treat. Yes.
-
State of the tool chain: we’ve improved
that quite a lot. It’s a lot speedier now.
-
We have better signal processing, we get
the signals down a little bit nicer, faster,
-
and also now have the option to cover
a much wider band of Iridium,
-
like the whole band. And now it’s feasible
for us to actually decode everything
-
on the Iridium. Not real-time, that’s way
too much computing effort now. But we can
-
put it on a disk and decode it then. For
real-time processing really a major effort
-
has still to be done. But,
well, we’ll see what happens.
-
applause
-
Continuing on that… to make use of
modern multi-core processors we’ve added
-
a Queue in there. And you can utilize
as many cores as you want to decode
-
Iridium signals. Just one thing: the stuff
on the left still runs on a single CPU,
-
or a single core. And that’s limiting us in
terms of what we can do. But really,
-
most faster cores right now can handle the
whole Iridium band, so, should be fine.
-
We had a play with an Iridium test set.
Dieter from the Osmocom guys got one.
-
We had a play session. That was
a real boost. He also helped us a lot
-
on the Link Control Word (LCW) and other
stuff to decode. That gave us a boost.
-
At the beginning of this year, just before
doing the rad1o, and got a lot off of that.
-
Barrier Air recommended (?) these
devices, nice. Now, SBD modems.
-
We got ourselves a few of these things.
They’re ‘Short Burst Data modems’.
-
‘Short Burst Data’ means that you get
little packets of data. You can send it
-
to the satellite, the satellite can send it
back to you. They’re used all over the place
-
for all kinds of services for Iridium.
These ones are specifically cheap.
-
We got a group order going, from SteveM,
also Osmocom guy. 50 Euros per piece,
-
was rather cheap. Now, the thing is
these are really simple SBD modems.
-
They don’t have a SIM card. They
really rely only on the internal IMEI.
-
They don’t have a secret in there,
or nothing else… anything else.
-
They don’t authenticate themselves
against the network, the network doesn’t
-
authenticate it[self] against the modem.
Nothing. You supply your contract guy
-
with your IMEI, and you get a contract
for that thing. Really interesting.
-
This modem also has debug interfaces,
a test port interface which we found
-
interesting because it was mentioned in
the documentation, quote: “maybe
-
you can change the IMEI, or stuff
like that”. Interesting. It runs
-
over the Digital Peripheral Link (DPL)
which is like some other multiplex thingy
-
over that, which is actually a physical
link. And in there, there’s the TPI.
-
There’s absolutely no documentation
available about TPI. There’s a small bit
-
of documentation about DPL for
another device. We had a look at that.
-
DPL format then looks like that: You
have a start byte, a length, data, checksum
-
and an X. So that’s pretty easy. That
was fast implement. But the TPI stuff
-
was more tricky, so we had to get into
the firmware. During the OsmoDevCon
-
tnt got into extracting firmware from an
update image, and we had a look at that.
-
And really, you get a table of
TPI commands and most of them are
-
not implemented but some are. And
after reversing a lot of the firmware
-
we figured out where to go and where to
look for the EEPROM stuff. And now
-
we have on Github available TPI support
for this modem. You can change the IMEI,
-
so what you can do is get a contract for
one modem, take another modem, you clone
-
this modem onto that modem, now you have
a contract for two modems. Interesting.
-
laughter and applause
-
And also these IMEIs are not… I mean
-
they are blocks, probably you can
guess one. You shouldn’t do that.
-
I think that’s a big hole. They did that
on purpose. There are modems with SIM.
-
They authenticate themselves against
the network. But that’s about it.
-
And who knows how secure that is. We’ll
have a look at that at some point later.
-
The code is on Github but
not quite everything. laughs
-
Then there’s another thing. There’s a debug
interface. It spits out debug information
-
all the time. You enable it also via
writing to some EEPROM location.
-
And if you do that what it spits at you
is this. From 1990, really! laughs
-
Interesting. So this stuff evolved quite
a lot. So we’re now 25 years later
-
and this code is still running. If you
enable all of the debug information
-
you get lots of stuff.
First two lines: Ring Alert channel.
-
This we had decoded already,
earlier this year, most of it.
-
It proved that most of the stuff we did
is right. We also got more stuff,
-
broadcast channel, some sync packets,
traffic channels. Some of these information
-
you already have integrated
into the tool chain. Not all of it yet,
-
but this firmware is a real nice thing
-
to get data from.
Packets.
-
Iridium has 10.5 MHz of bandwidth. At
the moment they’re using ca. 8.5 MHz,
-
at least in Europe. We see roughly 2,000
detected bursts per second on average.
-
And we decode of these roughly
1,200 into Iridium frames.
-
And roughly 80% of these don’t have severe
errors, so we can get a link control word
-
or decode some stuff –
at least categorize it.
-
If you look at that this is
a four-minute interval on Iridium.
-
The whole band; these are roughly
a few hundred thousand packets,
-
so there’s quite a lot going on.
At the top you see the pager channels.
-
Every 20 seconds this small burst on the
Ring Alert Channel, always active, and
-
then down there there’s data channels,
broadcast channels and more of this stuff.
-
Last year we looked at pager channels,
that’s only 500 kHz of data.
-
Now we’re looking at 10 MHz, that’s
not going to be done in real time
-
with our current tool chain. Right now,
we can look at roughly 2 MHz, do it
-
in real time, so that you get a good idea
about Iridium. There’s a lot of room
-
for improvement, at least that’s what you
think. So if someone wants to help us there
-
we are happy about to do that.
At the moment it’s good enough for us
-
to get more data
out of the Iridium system.
-
We usually just record to hard disk,
get the data off. It’s lots of data.
-
I mean, you have to think about 80 GB
per hour if you capture the whole band.
-
So you only can do that for specific
things, if you maybe want to have
-
one transaction of a modem. We’re
only looking at the downlink but
-
at the same time Iridium suggests that
people use their service so that it goes
-
up to the satellite, across to another
satellite, and down again. Because
-
that will save them bandwidth on their
single gateway somewhere in the U.S.
-
And now Sec will tell you more
about different frame types.
-
applause
-
Sec: Thank you. So we’re
going to look a little bit into
-
what is all coming down
from the Iridium satellites.
-
I mean, a little bit of it
we already know. Like…
-
this is the overview of the packets.
I mean, schneider already told you
-
the small bits at the top, the green
ones are the pager channel where
-
all the pager messages come, which
were part of our last year’s talk.
-
The red below that is the Ring Alert
channel. And then we have
-
categorized the other traffic, like
the blue are the Broadcast channels.
-
Interestingly, not all of the frequencies
are used at the same time, but
-
that changes over time. And then
we have several things like blocks
-
of IP packets, blocks of streams of voice
packets, and other data packets. And
-
now we are going to look at them one by
one. The first is the Pager Message frames
-
which are already known from the talk.
We identified them, they start with
-
a unique pattern at the beginning,
which is hex 9669 encoded
-
as binary phase-shift keying (BPSK). And
our cool tool chain decodes them, and
-
this is the message I think we used last
year. It’s not very interesting, it was
-
just for testing. There’s not much to say
about this, I think that’s more or less
-
completely solved. Then we have…
Oh, what I wanted to say is that
-
Iridium doesn’t really want you to use
this anymore. They say: “If you can
-
get a pager [device] somewhere, then we
will still honor it but you can’t get one
-
from us!” That makes them hard to
get, maybe a little bit expensive but
-
they’re still in use. I mean we see lots
of messages going on. Then there are
-
the Ring Alert frames. We can’t identify
them by looking at them alone.
-
We identify them by the frequency
range they’re in. This is a little bit
-
like randomly guessed
where the best cut-off point is.
-
The format is mostly known from our play
session with the Racal thing we showed you
-
before. Dieter took a lot of work from
us [off us] by reversing the firmware
-
and getting us info how to decode
this. We did a brief overview
-
at the Camp talk. The frames
look like this. laughs
-
It contains mostly information like the
current satellite and the beam you are
-
seeing at the moment. Then it contains
the position which alternates between
-
the position where the satellite is at and
the position where the beam that you are
-
currently seeing hits the earth. So that
could, in theory, be used for geolocation
-
but it’s really, really very broad
information. I mean you could probably
-
average this or something like that.
And then it also contains the pages,
-
so when the network wants a device
to contact the network because it has
-
some information for it it sends the PAGE
message. Unfortunately, that TMSI,
-
that’s a temporary identity, so we can’t
really tell you which actual device it is.
-
We intend to look into how this
is mapped in the future, but
-
we didn’t have time for it. This is
as the Ring Alert channel sends
-
the Beam ID. You can see as a satellite
passes over our receiver. Which Beam IDs
-
we see you can see that depending
on the noise and whatever…
-
you can also see several spot beams at the
same time, or shortly after each other.
-
The next part of the family of packets
are the Broadcast frames.
-
We can identify them by
a checksum, a BCH checksum.
-
The polynomial is 1207 which is actually
the bit-reverse of the polynomial that’s
-
used to protect the messaging
packets. I don’t really know why but
-
it helps to distinguish those packets.
Most info about those packets are also
-
taken from the Racal Test Set firmware.
We’ve also shown them at the Camp talk
-
very briefly. They look like this!
-
They contain information about the
network where it tells the devices
-
what frequency offset they have and what
timing offset they have, to correct for this,
-
or what power they are receiving so they
can adjust the power. That’s not really
-
our focus at the moment because that’s
boring stuff like about the internals
-
of the network. And the interesting
stuff are the data frames.
-
We can identify them, they have a valid
Link Control Word. I mean, at the beginning
-
a special set of bits that is protected
-
by BCH checksum but before you get to the
correct bits you have to re-sort those bits,
-
and it’s the most bizarre scrambling of
bits I’ve seen so far, and I have no idea
-
how they came up with this order. If anyone
has an idea I would be offering a beer.
-
This is three different parts and the
content after the Link Control Word
-
is always 312 bits long which is
the maximum packet length.
-
If you look at the descrambled Link
Control Word those three parts
-
are protected by separate
BCH checksum polynomials,
-
like the first 29, and then
465 and 41.There’s
-
one interesting thing: the middle part of
the Link Control Word is missing one bit.
-
Fortunately, the BCH checksum can correct
bit errors, so you’re expected to have like…
-
in half of the packets you’re expected
to have a bit error there because they
-
obviously didn’t have the space to fit
this bit and just dropped it on the floor.
-
The first part of the Link Control Word
which is three bits long – that gives us
-
eight choices – is the Sub-type of
the data frame. That we can use
-
to differentiate the packets.
The second and third part contain
-
more network information about handoff
and acquisition channel and stuff
-
which we took from the TPI debug code
that schneider mentioned before.
-
But we’re not too interested in that
network management stuff at the moment.
-
So we are going through the Sub-types of
the data packets now, starting at the top,
-
the ‘Sub-type 7’. This is just
a synchronization packet.
-
If you look at the packet in a waterfall
diagram you can see that it’s
-
a single line which can be used by the
receiver to get frequency offsets and stuff.
-
It’s about 43% of all the
data packets we see.
-
It’s just alternating 0 and 1 bits, and
our tool chain just decodes them as it’s
-
a sync packet, and all the bits were as
expected so it’s also not very interesting.
-
The next Sub-type we see is (3).
We don’t see (4) to (6),
-
we have not seen them anywhere. The
Sub-type 3 is packets that look like this.
-
And they have a little bit [of] information
at the beginning, and a little bit more
-
information at the end. So to me it looks
like one of those two parts is supposedly
-
a checksum but I have no idea what’s
encoded there. We have found no information
-
and, maybe at some later date.
The next Sub-type…
-
– Oh I forgot! The next Sub-type
-
is Sub-type 2 which is…
the packets are descrambled,
-
I mean the same descrambling algorithm
as we had before at the Pager channel,
-
just in three different blocks, and is
again protected with a BCH checksum
-
with yet another polynomial. I can give
a whole other talk about reversing
-
BCH checksums and CRCs now.
laughs
-
After the BCH checksum is removed
there’s a CRC which protects this again.
-
It’s a common polynomial, the CCITT
polynomial. And the packet then has
-
a little bit header at the beginning which
is in blue, and the CRC of this packet
-
is okay. And the header has fields
that we don’t know but one field is
-
the 3 bit counter. That can be used
to reassemble longer packets.
-
This is one example. We have several
packets and the counter… we sorted them
-
by this counter so we can reassemble
them into a larger packet.
-
If you then look at the thus
reassembled packets they have
-
what I call an identifier, of 2 bytes at
the start of the datagram which identifies
-
which kind of data is in there. We’ve seen
about 40 different identifiers so far,
-
roughly. Most of them we still
don’t know what’s in there.
-
That’s about 70% of the stuff
we see inside the data packets.
-
Many are empty, they consist of Zeros.
Even some of them don’t have a valid CRC,
-
there are just Zeros where the CRC is
supposed to be. We will be looking at those
-
later on but we’ve identified some
identifiers which contain interesting stuff.
-
The first one of those is 09.01
which contains SMS messages.
-
We did lease us a telephone and just sent
some SMS, and looked at what comes down.
-
This is one re-assembled SMS message.
And if you put it into our current tool chain
-
it results in this output. The format is
very similar to the SMS PDU format
-
used in GSM. The only difference is
the orange bytes which are not part
-
of the PDU format and we just removed
them. And if you remove them
-
this comes out. This is
just the decoded message.
-
applause
-
So, the green numbers, one is the SMSC
Centre Number, and the other is
-
the Sender Number. And date and time
when it was sent. And the blue numbers
-
are just length indicators. The message
is encoded in the 7-bit GSM alphabet
-
which is basically ASCII except
for umlauts and other stuff. Then
-
the other identifier we got is 76.08 which
contains short burst data messages
-
which are sent by those modems that
schneider showed you. Those modems…
-
SBD messages itself can be from the
specification 1960 or 1890 bytes,
-
depending if they’re mobile-originated or
mobile-terminated. That means send them
-
from a modem or receive them with a modem.
But the one we have can only send
-
messages up to 340 or 270 bytes. Still
this is longer than what the reassembled
-
3 bit counter gives us. So we have another
type for continuation of those messages.
-
And then we have the SBD message,
if you want to send it. The interface is
-
very simple. You just send an email to
data@sbd.iridium.com, put the IMEI
-
you want to send it to in the subject,
and put an attachment on it, and it gets
-
sent out. You can also have a contract
where you send it via just TCP connection
-
to an IP port. That works in both
directions. You can send it from the modem
-
to test your computer, or the other way
but Iridium-side… while there is
-
some documentation where you have to
connect to they have a firewall which is
-
source IP based, so if you just send
something you cannot reach random people’s
-
SBD modems. Many applications that we’ve
seen use probably transfer from SBD modem
-
to SBD modem. As we are only looking
at the downlink we can still see those
-
messages as they’re coming down to
another modem. And the cost of this thing
-
is about roughly $1 per kilobyte, which
I think reminds me of the nineties’
-
internet costs. laughs
We have an example SBD message
-
that is not very interesting. It looks like
this if you put it through our tool chain.
-
It contains lots of Zero bytes because
that was of one of our test messages,
-
to check for the CRCs
and the continuation stuff.
-
The users we found for this is
stuff like buoys for tuna fishing,
-
or standalone GPS trackers that send
just NMEA sentences of GPS over SBD.
-
And this Moving Map System which is
used by the helicopters from the ADAC
-
to tell the pilot where to go,
where the next emergency is.
-
We have two more Sub-types to go.
The Sub-type 1 packets are protected
-
with a 24 bit frame checksum, yet another
CRC polynomial that had to be reversed.
-
And then when you find it you’ll find out
that, hey, it’s the same one that GSM uses.
-
The header of those packets contains
an 8 bit counter for reassembly.
-
So you can reassemble more packets.
And a length. The raw data itself
-
is bit-reversed, so we have to reflect
each byte. And if you look at it
-
maybe some of you already realized
what this looks like. And otherwise
-
it could have been a Jeopardy question.
So, on the next slide – yes it is PPP –
-
so they’re just transmitting PPP over the
serial line that they have on the air.
-
It can also do multilink PPP, and it can
also do like a raw telnet connection,
-
like just a stream of bytes. Luckily for
us Wireshark supports this PPP dump format
-
and we tested it with Linux and had our
PPP connection and put this into Wireshark
-
and – hey! yeah! – we can see the HTTP
request. Wireshark is a little bit annoyed
-
of the fact that we’re missing half of the
connection, but that’s not a problem.
-
The unfortunate problem of this is,
on the next slide, nobody uses Linux.
-
Windows also uses PPP but Windows
also uses the Microsoft point-to-point
-
compression protocol. The Microsoft
point-to-point compression protocol
-
has one problem: Wireshark can’t decode
it. It just says “compressed data”.
-
So I went and looked it up. And
– why is the slide here?
-
Go one slide farther. The Microsoft
PPP compression is not that difficult.
-
There’s an RFC for it. It’s a very simple
algorithm but someone just needs to do it.
-
We didn’t have the time, maybe someone
can do it. Otherwise we’ll have to do it
-
next year. The other stuff we found,
you will remember the green blobs for IP,
-
this is probably multi-link PPP (MLPPP),
we have seen up to 14 channels active
-
at the same time. We have not gotten
around to looking at this very much
-
but I think it’s a lot of traffic. So
now that we’ve had this there’s…
-
I told you it’s not all PPP on it,
there’s also non-PPP traffic which is…
-
You can’t see the string coming
around and it looks like a Cisco
-
which is telnetting somewhere. Why
is there a Cisco telnet somewhere?
-
And if you look around on the internet you
can find some slides where people are
-
describing the setup, and –hey!–
there’s actually a Cisco on site
-
at the Iridium people, and if you do that
connection the Cisco actually executes
-
a telnet command to somewhere.
applause
-
And the last Sub-type we have
is the Sub-type 0. And this is
-
the interesting part of the talk.
It’s just… voice!
-
And it’s just 312 bit maximum length
of raw voice data. The problem here is
-
that there’s a voice codec, an AMBE voice
codec which is completely undocumented.
-
It has a very low bit rate. And we were
stumped and had no idea how to decode this.
-
And so there were several different
options. The first option was:
-
other people can do it for us!!
Luckily, AMBE is a family of codecs, and
-
tnt did really great work in osmo-gmr and
Thuraya which is a similar AMBE codec.
-
And you can go and see his talk from
last year about this. And we gave him
-
some sample files, and in record time
we got the first version of a decoder
-
for Iridium voice frames. He’s releasing
his code right for this Congress.
-
This is the repository. It should be
accessible by now. This is very fast
-
and has good quality. It’s not perfect,
applause
-
but it’s good.
ongoing applause
-
But wait! We have more.
So the next option is emulation.
-
As you have seen before we’ve got the
firmware for the SBD modem. Interestingly,
-
on the SBD modem there’s the whole
DSP code also, also the voice codec.
-
It’s also on there. So this is an TI DSP
chip which has really, really ugly
-
assembler code. But there is an now
unavailable – except if you know
-
the right people – version of Code Composer
Studio, a Windows software to emulate
-
this DSP chip. And also with the help
of tnt you can get the stuff running.
-
This is the Windows software. It looks
very Windows-software-like. laughter
-
And you can run the codec in there
and it produces the same output
-
as a telephone would.
The only problem is this thing is slow!
-
It takes about… more than one minute
to process a second of voice data.
-
Yeah, this is not fun. And it’s not really
automatable. You have this Windows software
-
and have to click somewhere, and mhmm…
-
Now, you don’t want to do this.
It’s roughly three or four weeks ago
-
[that] I thought: “maybe there’s a third
option?” And the third option is to use
-
the DSP code but, we don’t want to
understand it, but maybe we can just
-
“wing it” and emulate it
by translating into crappy C,
-
and the optimizer will fix it.
It will run fast.
-
laughter and applause
-
There’s documentation for this chip which
describes the CPU and the opcodes.
-
And then you just write a small little
Perl script which looks partly like this.
-
It takes the object dump output which has
the assembler code and then returns
-
parts of C, and puts them all into a file,
and we put it all into the compiler,
-
and –hey!– we’ve got an option which produces...
bit perfect decoder,
-
and it’s running really fast!
The optimizer does it.
-
applause
-
The only problem is that
you need the DSP code for it.
-
So it’s not entirely free because we
can’t really redistribute it. I suspect
-
that nobody really cares about this
old codec but I don’t want to risk it.
-
But the firmware updates for like the SBD
modem are for free on the internet.
-
So it’s just a matter of a little shell
script that grabs the firmware and puts it
-
through the compiler. And then you
should have a perfect thing to decode.
-
I didn’t get around to write this shell
script yet but it will be there soon.
-
If not you can pesten (?) me and I will do it.
And now we have perfect voice decoding,
-
and we want to show this to you.
So we have a demo.
-
applause
-
One of those windows…
schneider: Alt-Tab…
-
Sec: Ich weiß nicht welches
das richtige Fenster ist.
-
laughs
Ich bin kurzsichtig!
-
Was tust du da?
laughs
-
This is really well-prepared.
schneider: Ja, das ist es.
-
Sec: So there’s this tool
which you can run on
-
the output of our tool chain which
contains the packets, and it shows you
-
the frequency and the time of packets
which are supposedly voice frames.
-
And then you can just click
a start point and an end point.
-
audio playback starts
Female TTS voice: You have five hundred
-
and five minutes and 40 seconds left
for this call. Please dial or text 2888
-
for more account information. Please wait
while your call is connected. Beep sound
-
Male caller voice: incomprehensible …
applause in Congress hall
-
the Eagle has landed.
Coast is clear, coast is clear.
-
I need to … terminate this
call now ’cause we have problems…
-
audio cut off
audio playback ends
-
applause
-
schneider: Needless to say, this was of
course recorded from this very phone,
-
from one of our members at the
Munich CCC knowing what we’re doing.
-
So, no problem there.
-
Sec: Was muss ich denn drücken?
schneider: Shift-F5!
-
Sec: Hallo!? … Ah!
-
schneider: So, that’s voice. And… working
quite fine. If you get the packets in,
-
and for the decoder no problem.
We can decode that. But there’s still
-
lots of stuff we don’t… we’re not able to
decode. And they look like voice frames.
-
But they’re not voice.
hey decode as 100% non-decodable.
-
They usually come in trains of three,
so you have on three channels activity
-
with things that looks like voice. It’s not
– so what is it? We have no idea at all.
-
Might be encrypted voice. There are people
who have the idea maybe they used
-
channel-bundling to use some more
bandwidth-intensive cipher.
-
If anyone has any idea about that
that would be great … or a device
-
which uses this would be
even more interesting.
-
Range. Now, we had the phone and
we were traveling a little bit in Germany.
-
And at a distance of roughly 300 km
we placed a call. And in fact could
-
receive that in Munich. Roughly half
of it, and that puts around this circle
-
around Munich where we can receive calls
with Iridium. That’s quite an area. Now,
-
there is no encryption at all on the voice
frames, nothing. They just didn’t bother.
-
The phone has a little bit of
authentication with usually GSM algorithms
-
from the nineties. Nice. But the voice is
unencrypted. So you can bet your ass
-
that if you place a call on Iridium
not only will the U.S. listen to you
-
but everyone else will listen to you.
Just be aware.
-
These things are also available
commercially. We found at least three
-
different vendors supplying the stuff.
Probably only to government agencies
-
and other… well…
laughs
-
I guess if you really want to get
these things you can get them.
-
So, future plans: looking at uplink!
At the moment if we take this phone,
-
place a call, we get what’s coming down
from the satellite. The uplink has
-
a slightly different modulation, at least
in the beginning. We suspect that
-
everything else will be the same.
But so far we haven’t looked at that.
-
Shouldn’t be a big deal, we just need to
take some time and actually do that.
-
Then, there's the ‘GSM tap for Wireshark’
which is a nice interface to put in
-
your own protocol into Wireshark and
decode that. Would be very nice and
-
we’re already working on that. So you can
have a nice view in Wireshark, do filters
-
and see what’s actually going on on the
network. Decoding unknown packets:
-
there’s lots of stuff going on on type
number (2) and type number (0)
-
which we don’t know what it’s yet. Really,
the limiting factor there is devices,
-
which brings us to the next slide. We
need to get access to more devices and
-
we have some on our list to have a look
at. Because if you have a device –
-
it’s the easiest option to actually see
what’s going on. You know which one
-
of these packets is yours, you can decode
these, you can send some special data
-
and play around a little bit. That makes
things really easy, in fact. Then,
-
signaling, handover and authentication.
We haven’t looked at that at all so far.
-
It’s actually not needed, really,
if you just want to get to the data but
-
it’s quite interesting, for example
these phones, they look all the time at
-
what satellites are available and they’d
chose which satellite they want to use.
-
They perform the handovers and all of
these things. We want to have a look
-
at that, too. Further reversing the
firmware. There’s lots of stuff to be learned
-
from firmware and still I guess we
reversed like 10% of that SBD modem.
-
Maybe it has still things to show.
Performance – well, we have already
-
mentioned it, lots of stuff to do. Now,
the code is on Github, almost all of it.
-
Maybe a few bits are missing to get the
whole tool chain working really smoothly.
-
So if you discover that jump into the IRC
channel, bug us and we’ll have a look
-
in our stash and see if there’s something
missing. In general, all the information
-
we’ve presented today is public and in the
Github repository. Again, we’re looking
-
for specification, and especially products
– Iridium GO, OpenPort devices,
-
any SBD enabled device, e.g. Rock Seven
devices, if you have access to this stuff.
-
If you can lend that to us for like two
weeks, would be very nice. And then
-
there’s also Iridium Burst which might
replace some pagers for some of these
-
users. These are modified SBD modems,
they’re passive and you tell Iridium:
-
“Hey, send me this message to Europe, send
me this message to the U.S. or maybe
-
to the globe”. And then these devices will
pick it up, undetectable, and we have
-
an idea which frames these are. These
are special pager frames, we suspect.
-
We see them all around the world,
the same format, probably encrypted,
-
but maybe only somehow cobbled-together,
a somehow cobbled-together encoding
-
which we haven’t seen yet. So,
that’s going to be very interesting.
-
Then, thanks again to tnt, Dieter and
SteveM. That was a great help,
-
very inspiring people. Thanks to the
Osmocom guys. Thank you very much!
-
applause
-
Herald: Thank you for the awesome talk.
Unfortunately, we won’t have any time
-
for questions anymore.
Sec: What??
-
Herald: But I guess we can
contact you via e-mail or IRC
-
or anything else. I’m sorry.
Sec: Why?
-
schneider: We’re on time!
Sec: We’re on time, we have 15 minutes left!
-
discussion on stage
-
Herald: Ooh yeah, I fucked that one up.
We have plenty of time for Q&A!
-
applause
-
I am really sorry. So please line up
at the microphones and get ready
-
to hit Sec and schneider with your
questions. While you do that,
-
Signal Angel, is there something that
we should answer for the internet?
-
Signal Angel: Yes, there is one
question. There is someone asking
-
if the mystery data could be
like sensitive, I don’t know,
-
military, police, or something
like a custom codec?
-
schneider: We have absolutely no idea.
-
Signal Angel: Okay, thanks.
schneider: But… likely!
-
Signal Angel: Thanks.
Sec laughs
-
Herald: Microphone 2, please.
-
Question: Thank you. I heard that the NSA
was trying to secure the Iridium network.
-
Where did they go wrong?
-
schneider: Securing the Iridium network?
laughs
-
Sec: As far as we can tell, at least the
parts that we looked at, there was
-
no attempt to secure it. It’s still
the same stuff that was used
-
when it was built. I mean, we see
some messages that we don’t know.
-
It’s possible that those are encrypted
communications going on. We can’t tell
-
at this point. So, there might be
encrypted communication going on
-
in Iridium that we don’t know about.
-
Herald: Thank you. Microphone No.3,
in the back there. No, nobody!
-
Question: Since it’s conceivable that
you could actually… I mean the actual
-
database that’s verifying the
contracts is ground-based.
-
Does this mean that if you transmit
a phone call to the satellite,
-
that it has to first re-transmit it back
to earth in order to verify that data
-
is allowed to be sent and
relayed, so you should
-
typically be able to make
a phone call over the 150 km radius
-
that the satellite will repeat
back to earth to… no idea?
-
Sec: Actually I don’t really know.
We haven’t gotten that far
-
in our protocol understanding to
even be able to try this. But it would
-
definitely be interesting to try it.
-
Question: I don’t mind throwing a bit
money at that you are gonna try it!
-
Herald: Are there any more questions?
Right now I can’t see any of them… oh!
-
On microphone No.4 there’s a question!
Someone: No!
-
Herald: Then, Signal Angel!
-
Signal Angel: Okay, I have currently
got three questions from internet.
-
I’m going to start with the first one.
That is: the Code Composer Studio version
-
that you found, the old one, whether
it’s specifically to the DSP or…
-
it’s… basically… did the DSP support go
away or what’s the deal with this version?
-
schneider: Yes, exactly. At some point
Code Composer Studio dropped
-
the support for this specific DSP and
we had to get a very old version
-
to have still support for it.
I think it’s CCS version 3.
-
Question: Okay!
Herald: So I would say another question
-
from microphone No.2.
-
Ray: I just wanted to ask: is it legal
to receive these things?
-
Sec: This is a very good question!
And I refer to you:
-
the ‘Weltraum-Theorie’!
wild applause and cheers
-
So as far as I can tell
there’s no problem.
-
laughter, applause and cheers
-
schneider: And if you have a problem
-
we’ll just overrule you.
laughs
-
laughter
Sec: Sorry, it’s only in German!
-
schneider: Thank you for that question!
Herald: Okay, we have another question
-
from the internet.
Signal Angel: Yes, the question is:
-
what is the state of being able to
geo-locate Iridium terminals?
-
schneider: So, during the Ring Alert
you see where a device gets paged.
-
And that’s paging a specific cell.
You know where that cell comes down.
-
So that will tell you a rough estimate
where that terminal is.
-
Of course the cell is big, many
hundreds of kilometers, so
-
probably you can have a look at this
over time and see how the pagings change
-
when the cells hit some border.
If the terminal doesn’t move
-
you can probably pinpoint it better
using that. We haven’t tried that yet.
-
But that’s our guess how it would work.
-
Herald: Okay, bevor wir zur nächsten
Frage kommen eine kurze Durchsage
-
an die Tür-Engel: Der Saal ist voll, liebe
Tür-Engel, bitte lasst niemanden mehr rein.
-
something shouted from audience
Herald continues in German by accident:
-
The next question
from the internet, please!
-
Signal Angel: The question is:
is your data that you collected
-
available somewhere
for somebody else to have a look at?
-
schneider: No. laughs
Okay, so, we won’t publish
-
any recordings or anything like that.
-
We might publish some samples
of our own messages.
-
I mean, you’ve seen a few
on the slides now. If you bug us on IRC
-
we’ll probably have something.
But, in general,
-
you can’t just collect data
and make it public.
-
Sec: I mean the great thing about
this Iridium is: just open your window,
-
you will get data!
schneider: Pretty much!
-
Sec: Lots of data!
-
Herald: Then we have another
question at microphone No.3.
-
Question: So since recording
the data is obviously legal,
-
is it against, like, some policy of Iridium,
that you get angry emails from them?
-
Did you have any contact with them?
-
schneider: As far as I can tell
they are aware of this,
-
and for them it’s a jungle and
I think they just deal with it.
-
Or, in fact, who cares?
-
GSM has been shown to be insecure
for a long time – what’s the most used
-
cellphone network on the planet?
-
Herald: Thanks for that answer.
Microphone No.2, please.
-
Question: Thank you. We’ve talked about
listening. What about manipulating?
-
Sec: As we said we don’t really
have a good understanding
-
of all the signaling and more intricate
details of the handover and stuff,
-
and the authentication. We haven’t really
looked at this because the data we got
-
was so interesting that
we spent our time there.
-
There’s probably lots of possibilities
but we haven’t tried anything yet.
-
schneider: And I would recommend
to not just try that.
-
These things have been built in the
beginning of the nineties and,
-
I’m not sure. Maybe just before they
de-orbit it, so one can have a play.
-
But I wouldn’t. Really.
-
Herald: Do we have more
questions from the internet?
-
Signal Angel: We do.
The next question is…
-
Somebody wanted to know if you… well, they
think you know more than you tell and ask
-
if you’ve got a gag order.
-
Sec: We have definitely not gotten a gag
order. I have had no contact from anyone
-
who is affiliated with Iridium,
or any law at all.
-
schneider: I’ve once checked the logs
on my web server and Iridium servers
-
did access some of my files. Then I got
a little bit scared. And then I realized
-
that was me going over the phone and
downloading something. laughs
-
laughter and applause
-
Herald: Okay, then, microphone No.2!
There’s just the Microphone Angel. Okay.
-
No question from that person.
Then, the internet, please go ahead!
-
Signal Angel: Okay, the internet wants to
know how many uplink stations there are.
-
Sec: There’s one for civilian
use and one for military use.
-
At least as far as
the published information goes.
-
schneider: And one more which we
don’t know what it it’s exactly doing
-
but it’s near the pole.
mumble in the audience
-
Sec: There have been many more in the
past. I mean when they built this thing
-
they had one in Japan. But as far
as the documentation goes
-
they are all inactive.
-
schneider: Yes. You have to know that
Iridium went bankrupt beginning 2000s.
-
And at that point they scaled down
the whole thing a lot to make it
-
more cost-efficient. And they also
scaled-down the amount of gateways.
-
So, sometimes you get references
for lots of gateways for Iridium but
-
they’re all inactive. Not sure what
they’re doing with these any more.
-
Herald: Okay. I think we have
questions from the internet left?
-
Signal Angel: Actually as far
as I know right now we don’t.
-
Herald: Great. Then give a warm hand
of applause for Sec and schneider!
-
applause
-
postroll music
-
subtitles created by c3subtitles.de
in the year 2017. Join, and help us!