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: incomprehensibleapplause 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!