WEBVTT

00:06.500 --> 00:16.460
Hello, I'm Pam Melroy and I'm delighted to be here today for Aerospace Village to talk about cybersecurity lessons learned from human spaceflight.

00:16.460 --> 00:19.660
So I'll start out by introducing myself.

00:19.780 --> 00:27.120
I am a retired Air Force test pilot and a NASA astronaut.

00:27.160 --> 00:32.800
I flew three times in space on the space shuttle to the International Space Station.

00:32.800 --> 00:36.120
My first two missions I was the pilot in the right seat.

00:36.240 --> 00:40.040
And on my final mission, I was the mission commander of the space shuttle.

00:40.420 --> 00:44.360
Now, all of my missions were to the International Space Station.

00:44.360 --> 00:50.760
And this is a picture of what it looks like now in space orbiting above us at about 400 kilometers.

00:50.900 --> 00:53.540
It's an international laboratory.

00:53.680 --> 01:05.580
Now, there's lots of very interesting science that you can do in microgravity as you're whizzing around in low Earth orbit, experiencing a balancing of all the forces.

01:05.580 --> 01:07.600
So it feels like there's no gravity.

01:07.600 --> 01:10.280
You don't feel the effects of gravity, even though they're there.

01:11.980 --> 01:22.000
We discovered we could do a lot of really interesting science on the space shuttle, like fluid mechanics, combustion, and even studying the human body and biology.

01:22.080 --> 01:29.620
But flying on the shuttle, we only flew about six or seven times a year for about 10 days to two weeks at a time.

01:29.860 --> 01:43.760
And so the United States joined with our partners, Russia, Japan, Canada, and Europe to build the International Space Station so that we could do science 24-7, 365 days a year.

01:44.260 --> 01:51.500
And now, of course, if you look at the space station, you realize it's far too big to put on the top of a rocket and launch it.

01:51.500 --> 01:57.320
We had to bring it up a piece at a time and build it as we went along.

01:58.100 --> 02:11.400
If you look in the upper left-hand corner, you can see Atlantis from my second flight with part of the truss segment that the solar arrays sit on, filling up the entire payload bay.

02:11.440 --> 02:23.120
So we carried up an element at a time and then using the robotic arm of the space shuttle and the space station, maneuvered it into position and then bolted it down.

02:23.120 --> 02:29.060
And then we sent spacewalkers outside to make the power, cooling, and data connections.

02:29.060 --> 02:33.280
And then inside the space station, we would activate the element.

02:33.400 --> 02:45.160
Now, most of the time, we actually had to upgrade the software each time that we did that on the ISS because we had new mass properties, new capabilities.

02:45.380 --> 02:55.520
And so it wasn't just activating a new element, it was actually constantly evolving the International Space Station command and data handling system.

02:57.510 --> 03:20.070
Now, after I left NASA, I went on to a variety of opportunities in industry and government, including spending a couple of years with the FAA's Office of Commercial Space Transportation, learning all about space policy and the new emerging commercial space industry.

03:20.070 --> 03:27.750
And I spent four years at DARPA as a deputy of the Tactical Technology Office overseeing the air and space research portfolio.

03:28.130 --> 03:31.650
Space is incredibly important in our daily lives.

03:32.030 --> 03:37.070
The GPS navigation that we have on our phone is just the beginning.

03:37.070 --> 03:44.170
Think of all the apps that use GPS, agriculture, most importantly, financial transactions.

03:44.170 --> 03:48.490
When you use an ATM, the timing signal is set by GPS.

03:48.710 --> 03:53.350
We also use space for national security communications throughout the world.

03:53.350 --> 04:02.510
Think about remote sensing of our Earth to study the weather, be able to predict it, and have other indicators of the health of the Earth.

04:02.510 --> 04:11.770
We've had a very complacent attitude about our satellites because physical access was basically impossible once the satellite was launched.

04:11.770 --> 04:20.530
But now we know that our key infrastructure is at threat on the ground, and it is in space as well from both physical and cyber threats.

04:20.690 --> 04:30.930
Space systems have always focused on safety and mission assurance because you can't access them, you can't repair them, and it's expensive to launch things.

04:30.930 --> 04:37.950
So we've spent a lot of time focusing on redundancy and testing and mission assurance.

04:38.270 --> 04:44.590
Now we have the commercial world coming into play, doing things faster and cheaper.

04:44.810 --> 04:49.530
And we have the potential for lunar exploration.

04:49.610 --> 04:55.250
And we also have nation-states competing for achievements and resources in space.

04:55.250 --> 04:57.350
So the threat is evolving.

04:57.350 --> 05:01.710
We need to understand the implications and prepare for the challenges ahead.

05:01.790 --> 05:09.170
I'm going to talk a little bit about the lessons learned from the software approach to human spaceflight for both a space shuttle and a space station.

05:09.170 --> 05:13.550
But first I'd like to actually address, so what is the real threat?

05:13.550 --> 05:16.330
What could a hacker actually do to a satellite?

05:16.710 --> 05:20.430
Well, the simplest hack, of course, is a denial of service.

05:20.430 --> 05:21.930
Pretty straightforward.

05:21.930 --> 05:24.250
And it's actually happening today.

05:24.250 --> 05:25.790
Jamming of signal.

05:25.790 --> 05:33.190
Sometimes it's inadvertent, just having a transmitter tuned too loudly so it's drowning other transmitters out.

05:33.190 --> 05:35.650
And sometimes it's completely intentional.

05:35.650 --> 05:38.950
You could intercept commands and data.

05:39.030 --> 05:51.890
So you could understand what things the satellite is pointing at, what it's taking pictures of, see that data stream for yourself, and also intercept communications.

05:52.930 --> 05:57.170
There's also the potential for the man-in-the-middle type of attacks.

05:57.170 --> 06:06.510
That's quite a bit harder, actually, with most space systems now, because you would have to really understand the data stream in order to alter it.

06:07.050 --> 06:12.210
Now, could you do something crazy like send it over to hit another satellite?

06:12.210 --> 06:16.290
So if you think about a self-driving car and hacking that, you could drive it off the road.

06:16.290 --> 06:17.270
Well, not really.

06:17.270 --> 06:22.630
Most satellites don't actually carry enough propellant to maneuver over to another satellite.

06:22.630 --> 06:26.350
But what you could do is run the satellite out of fuel.

06:26.610 --> 06:32.050
You could shut down a critical system like cooling or pointing the solar arrays at the sun.

06:32.490 --> 06:41.510
Now, there are roughly 5,000 active satellites in space, but only the International Space Station has humans on board permanently.

06:41.770 --> 06:48.870
So even back in the 70s, when the shuttle was being designed, there was a recognition that it was going to be different.

06:49.050 --> 06:50.710
Lives were going to be at stake.

06:50.710 --> 06:57.530
So a much higher level of attention needed to be paid to software errors that could have catastrophic consequences.

06:57.530 --> 07:04.510
So I'd like to talk about some of the lessons that we can learn from the shuttle and from ISS.

07:08.220 --> 07:12.180
Now, it's kind of easy to make fun of the space shuttle.

07:12.180 --> 07:15.100
Yes, this is a picture from my first flight.

07:15.100 --> 07:22.040
And you can see that we interfaced with the shuttle computers using a cathode ray tube screen.

07:22.100 --> 07:24.940
And that's a blow-up of what it looks like.

07:24.940 --> 07:28.220
It's black with green letters on it.

07:28.220 --> 07:35.740
Absolutely no graphics processing units or, you know, any kind of artistry at all.

07:35.740 --> 07:38.240
It's anything that you could make with numbers and lines.

07:38.240 --> 07:39.920
And that was pretty much it.

07:40.140 --> 07:44.440
We also were very limited in the way that we could communicate.

07:44.440 --> 07:48.060
We didn't have a full keyboard the way most computers do.

07:48.060 --> 07:51.200
We had a small hexadecimal keyboard.

07:51.320 --> 07:53.840
Now, this actually wasn't that bad.

07:53.840 --> 08:06.800
One of the very clever things that was done with shuttle software was the extensive use of bundled commands, what I would, in my simplistic mind, think of as a macro.

08:07.540 --> 08:21.580
So there were many, many things that needed to have multiple tasks done, say to configure the entire vehicle for a different phase of flight or to prepare for another activity.

08:21.580 --> 08:41.920
So rather than throwing switches, which were limited space, or pressing in a number or an action for every single one, you had the capability to hit item and a number and then execute on a given page, and it would set off a whole string of bundled commands.

08:41.920 --> 08:46.840
So it actually wasn't as bad to interface with as you might think.

08:47.420 --> 08:51.080
Now, here's one of the areas that I really didn't like.

08:51.080 --> 08:52.540
The fault summary.

08:52.540 --> 08:56.420
So if something went wrong, this is the page that you went to.

08:56.420 --> 09:02.240
And it had a maximum of 15 faults displayed, which most of the time was pretty okay.

09:02.240 --> 09:05.820
But worse, it doesn't have any scrolling capability.

09:05.900 --> 09:08.960
So on my first flight, we had a malfunction.

09:09.100 --> 09:19.200
We had an electrical bus short on a payload bus that provided about one-third of the power to the payload and the systems aboard the space shuttle.

09:19.500 --> 09:24.620
Now, you can imagine when that happened, every bell and whistle went off inside the space shuttle.

09:24.620 --> 09:29.220
And when I went back to look at this fault sum, I didn't have very many choices.

09:29.220 --> 09:34.400
I had to either write everything down, because when I hit reset, it was gone and I could never see it again.

09:34.480 --> 09:38.780
And the messages would stack up and get lost behind each other.

09:38.780 --> 09:43.820
So definitely, you can see some real weaknesses in the interface area.

09:43.820 --> 09:51.660
I think that was a real challenge, I think, but probably very reflective of the capabilities of the 70s.

09:52.500 --> 09:58.480
The Shuttle General Purpose Computer, or GPC, was a marvel.

09:58.520 --> 10:01.120
Really, incredibly rugged.

10:01.120 --> 10:06.600
So carrying a whole whopping megabyte of RAM, but very, very rugged.

10:06.600 --> 10:07.820
It had to be rugged.

10:07.820 --> 10:12.080
It had to withstand the intense vibration and g's of launch.

10:12.080 --> 10:30.600
It also had to be very radiation tolerant, compared to the laptops that we carried that I'll talk about in a little bit, which had constant cosmic ray hits and corruption of data, requiring you to reboot them typically once a day.

10:30.600 --> 10:33.120
That was not the case with the GPC.

10:33.120 --> 10:36.940
It was very, very rugged, and it was meant to be radiation tolerant.

10:37.040 --> 10:39.780
It was also highly efficient.

10:39.820 --> 10:46.640
Only 400,000 lines of code to operate the entire space shuttle.

10:46.640 --> 10:50.100
Pretty amazing, actually, that we could do that.

10:50.260 --> 10:55.580
Part of the reason for that is that code in space has weight implications.

10:55.640 --> 10:56.760
That's right.

10:56.760 --> 11:05.340
If you're doing more computations, you need more power and more cooling, which is more mass and more volume.

11:05.480 --> 11:13.300
And so efficiency in software is incredibly important in space, and the space shuttle definitely reflected that.

11:14.420 --> 11:22.020
One of the cool things about the space shuttle software was it had a very, very low error rate.

11:22.100 --> 11:32.820
So I'm showing here a table from a great paper that's got the link at the bottom, reflective of the space shuttle software history.

11:32.820 --> 11:44.640
If you look back to the right-hand side there, the total error rate per case lock in 1981 was about eight to nine.

11:44.640 --> 11:46.660
That's pretty darn good.

11:46.660 --> 11:55.860
And within seven years, it was consistently down around one, which is an order of magnitude better than commercial software.

11:55.860 --> 11:59.240
Some would say two orders of magnitude, depending on the software.

11:59.300 --> 12:12.260
And you can see that by the time we got close to the end of the space shuttle, flying the space shuttle, we had gotten the error rates in our new updates down to zero.

12:12.660 --> 12:16.140
Now, how in the world did we do this?

12:16.140 --> 12:18.560
Well, we kind of had to brute force it, right?

12:18.560 --> 12:23.200
It was a lot of verification and testing.

12:23.520 --> 12:28.400
So each space shuttle mission had unique software on it.

12:28.400 --> 12:37.660
Now, there was the core software, which was the same, but it was actually a unique software load because you had a different payload.

12:37.660 --> 12:39.600
You had different mass properties.

12:39.620 --> 12:43.980
Maybe you were going to the space station, or maybe you were going to a different inclination.

12:43.980 --> 12:55.880
So for each shuttle mission, months were spent on that unique software load doing verification in SAIL, the Shuttle Avionics Integration Laboratory.

12:56.120 --> 13:09.420
And the idea behind that is you would have crews and engineers who would run through tons and tons of scenarios, lots of procedures, to verify that there were no unwanted changes to the software.

13:09.420 --> 13:16.200
This is pretty amazing, considering that there were no auto debugging capabilities at that time.

13:16.200 --> 13:24.000
So it was very manual intensive, but it does show that it is possible to get very, very low error rates.

13:24.020 --> 13:45.440
One of the other interesting things about the shuttle software program was that not only was verification very intense, but if a bug or an error was found, the program would go back and take a look at what process escape allowed that bug to slip through.

13:45.680 --> 14:03.980
So in addition to just checking the software, they were also looking at the entire coding process to go back and see if they could trap any other bugs that were from the same process escape, and plug that process escape so that future bugs would not be introduced to the system.

14:05.140 --> 14:20.260
Another aspect of the Space Shuttle that was really interesting and added to the resiliency of the system was the flexible redundancy in the software systems put into the general purpose computers.

14:20.260 --> 14:25.020
So we carried five GPCs aboard the Space Shuttle.

14:25.020 --> 14:36.140
Four of them were loaded with the primary avionics software system, known as PASS, and one computer was loaded with backup flight software, or BFS.

14:36.240 --> 14:40.520
That software was developed completely independently.

14:40.520 --> 14:47.080
It was a separate company, a separate group of people, there was no interaction or interfacing between them.

14:47.080 --> 15:00.000
That backup flight software was there to protect in case there was a flaw in the primary avionics software system that affected the four primary computers that were used.

15:00.000 --> 15:05.020
Now, backup flight software didn't have all the same capability as PASS.

15:05.020 --> 15:16.580
It had basically what you needed to complete an ascent and get to orbit safely, or if you had a problem occur on entry, to get down to the ground.

15:16.840 --> 15:27.760
So on ascent and entry, we flew with four computers running in parallel with each other and the backup ready to go.

15:27.760 --> 15:44.820
And if there were any failures that you lost confidence in either the software or the GPCs, the crew could press a red button on the stick and instantly jump over to the backup flight software and then get into a safe place with that software.

15:45.140 --> 15:47.700
Any computer could take any of that software.

15:47.700 --> 15:58.660
If you got on orbit and realized that the BFS computer that had BFS loaded into it had a hardware problem, that was fine.

15:58.660 --> 16:03.720
You could load BFS for entry into any one of the other GPCs.

16:04.000 --> 16:10.300
The mass memory unit on board had several copies of both sets of software.

16:10.880 --> 16:34.100
So if you found an error in the software, maybe there was a coding problem or a corruption, in one of the GPCs you could reload the software from the mass memory unit and you had actually several copies to select from in case again somewhere on the mass memory unit there was a corruption or a failure.

16:34.160 --> 16:37.140
Incredibly flexible, incredibly redundant.

16:38.940 --> 16:52.840
The other key aspect that I think had a very positive impact on resiliency but also on security is a distributed architecture and the space shuttle was one of the first vehicles to use this capability.

16:52.960 --> 17:07.060
So the idea is that you separate critical functions and then you're very careful and limit what information is allowed to pass between them and there are checks to make sure that you protect that.

17:07.080 --> 17:20.200
So on orbit we would shut down three of the GPCs into basically into a warm mode and so that we could restart them if we needed to.

17:20.200 --> 17:25.260
We had one actually was warm as a warm backup and the other two were shut down completely.

17:25.440 --> 17:29.480
And then in one computer we had guidance, navigation, and control.

17:29.480 --> 17:41.900
Very critical software controlling the vehicle, knowing where its navigation state was, knowing where you were pointed, all very very critical aspects of operating the vehicle.

17:41.920 --> 17:55.840
And then in another computer we loaded systems management software or SM software and that had critical functions having to do with the systems but the communications between these were very tightly structured.

17:57.320 --> 18:08.740
Well we found pretty quickly that three CRTs was not enough information for the crew especially as our missions began to get more complex on in the shuttle program.

18:08.740 --> 18:18.640
And so we added a third tier to the distributed architecture, a payload general support computer or PGSC.

18:18.640 --> 18:25.080
And that's a picture of the IBM ThinkPad that I flew on my missions as a PGSC.

18:25.240 --> 18:29.900
Each crew would carry somewhere between five and seven PGSCs.

18:29.980 --> 18:37.920
They performed functions like a world map so that you could just glance at the map and know exactly where over the earth you were.

18:37.920 --> 18:44.820
You could see critical things like if there was a loss of communications coming up, a comm outage, or something like that.

18:44.820 --> 18:47.840
But we used them heavily for mission support.

18:47.840 --> 18:59.040
In the bottom left picture is me and my friend Koichi Wakata had just completed a very complex robotics operation using the two PGSCs mounted behind us.

18:59.040 --> 19:02.760
Of course in microgravity it was pretty easy to mount those anywhere that you wanted to.

19:02.760 --> 19:07.980
They just would stick with a little bit of velcro on a platform.

19:08.220 --> 19:17.400
And those PGSCs would take data from the GNC and the SM computers but could not send anything back.

19:17.400 --> 19:24.060
So it was a one-way flow of data from the GNC computer or the SM computer to the PGSC.

19:24.440 --> 19:40.420
Now in the bottom right hand corner you see a picture of the Rendezvous and Proximity Operations Program, or RPOP, which is an app that we used to visualize the orbital mechanics between the shuttle and the station.

19:40.420 --> 19:48.400
And that picture was taken shortly after I docked to the space station showing my approach, my line of approach.

19:48.400 --> 19:57.840
Now we also used these laptops for email, but the email wasn't directly connected.

19:57.840 --> 20:03.780
In fact, what would happen is the ground would sync up our mail three times a day.

20:03.780 --> 20:13.640
So you know, three times a day we'd get a message from the ground, basically mail call, and you know, everybody would scramble for a computer to check their email.

20:14.400 --> 20:18.980
We could do that because we were only in space about 10 days to two weeks at a time.

20:18.980 --> 20:22.580
We also used it for file sharing and other things like that.

20:22.580 --> 20:28.760
The PGSCs were absolutely essential, but they were also very isolated and very protected.

20:30.020 --> 20:45.380
Now this is a pretty happy story about the overall security of the shuttle software system and how we approached it, but that doesn't mean that we didn't have unanticipated issues, almost all of them resulting from complexity.

20:45.680 --> 21:00.440
So we used for many, many years on the space shuttle, inertial navigation units were the primary form of maintaining the navigation state, you know, where are you in space?

21:00.440 --> 21:07.100
And the ground could uplink information from a radar pass or something that gave us more precise information.

21:07.100 --> 21:24.280
But when the opportunity came to integrate a GPS receiver, when they started to become lightweight enough and ubiquitous enough, that was a great opportunity because we were doing highly precise navigation maneuvers like rendezvousing with the space station.

21:24.280 --> 21:35.660
Now the first time we tested it was on STS-91 and of course we were smart enough not to make the GPS receiver be the only generation of the nav state.

21:35.660 --> 21:42.060
In fact, we disconnected the GPS receiver from the primary nav state of the GNC computer.

21:42.060 --> 21:47.920
So we didn't want to influence or upset that, but we wanted to monitor it.

21:47.920 --> 21:54.420
So there was an aiding state, basically a secondary state that the GPS receiver would periodically update.

21:54.420 --> 22:01.600
And that way we could sort of measure and see what the nav state would look like if the GPS receiver was updating it.

22:01.760 --> 22:03.600
Well, we had a little hiccup.

22:03.600 --> 22:11.400
The GPS receiver had a software anomaly and basically went into a control-alt-delete type reboot situation.

22:11.700 --> 22:21.460
And unfortunately, at exactly the same time, the GNC computer sent a message to the GPS receiver asking for an update to the aiding state.

22:21.460 --> 22:23.640
Well, the GPS receiver never saw it.

22:23.640 --> 22:31.480
When it came back up on board, it was not a flag that was set.

22:31.480 --> 22:38.140
And so as far as the GPS receiver was concerned, it had never been asked for the information and never provided it.

22:38.140 --> 22:42.380
So the GNC computer at that point said, uh-oh, GPS receiver is down.

22:42.380 --> 22:46.720
So stopped asking for updates from the GPS receiver.

22:46.720 --> 22:50.460
Now that aiding state began to degrade, right?

22:50.460 --> 22:55.380
You're propagating a navigation state without putting any corrections in.

22:55.380 --> 23:03.440
And sooner or later, the numbers started to go pretty funky and math errors began to be generated.

23:03.440 --> 23:04.680
No problem, right?

23:04.680 --> 23:05.300
No problem.

23:05.300 --> 23:11.720
I told you already, very limited information flows between the GNC computer and the systems management computer.

23:11.720 --> 23:13.540
Everything should be just fine.

23:13.540 --> 23:21.020
Well, there are two very important things that are communicated between the GNC computer and SM.

23:21.020 --> 23:22.960
The first one is the nav state.

23:22.960 --> 23:28.480
So the systems management computer knows where to point the antenna to talk to the ground.

23:28.800 --> 23:38.600
Unfortunately, when those math errors started to generate, the other type of information came into play, which is error codes.

23:38.600 --> 23:44.660
Of course, the systems management computer wants to know if there's a problem on the GNC computer.

23:44.660 --> 23:54.660
Well, the intercomputer communication bus got flooded with these math errors, which essentially choked out passing the nav state.

23:54.660 --> 24:00.540
So the systems management computer did not receive any updated shuttle state vectors.

24:00.540 --> 24:08.360
And eventually, this antenna lost lock with the satellite that linked it to the ground.

24:08.360 --> 24:14.020
And one of the most serious problems that can happen in space is a loss of communications.

24:14.020 --> 24:16.500
And it happened while the crew was asleep.

24:16.640 --> 24:30.740
Well, MCC to the rescue, mission control was able to actually get in and figure out how to manually... they eventually got a lock over a ground station.

24:30.740 --> 24:40.440
They sent a command to manually point the antenna at the TDRS satellite and then were able to fix the problem.

24:40.440 --> 24:49.740
But it just points out that it was really incredibly resilient and they thought through as many errors as they could.

24:49.740 --> 24:52.820
But in a complex system like this, you can still have problems.

24:53.700 --> 24:56.920
Now, we learned a lot for the International Space Station.

24:56.960 --> 24:59.580
I'd like to say we really upped our game.

24:59.880 --> 25:04.840
We learned a lot about security, starting all the way with the ground system.

25:04.840 --> 25:12.860
Even back in the Apollo days, there was not the capability to talk straight from Houston up to the spacecraft.

25:12.980 --> 25:28.380
But instead, a large set of antennas in White Sands, New Mexico, talking to the tracking and data relay satellite, which then communicates low data rate S-band audio information and high data rate KU-band video and payload data.

25:28.380 --> 25:32.300
This entire network is completely owned by NASA.

25:32.300 --> 25:36.280
So this is not going through open internet.

25:36.280 --> 25:38.200
There's no cloud.

25:38.200 --> 25:41.380
This is completely controlled to NASA.

25:41.380 --> 25:43.340
And of course, it's been updated.

25:43.340 --> 25:45.980
So just another aspect of the security.

25:48.060 --> 25:53.100
Another interesting issue was around mission control commanding.

25:53.100 --> 25:59.100
Now, people weren't really thinking about hacking, but what they were thinking about is making mistakes.

25:59.160 --> 26:02.420
So an innocent mistake could send a bad command.

26:02.420 --> 26:04.420
Now, that was true for the space shuttle, too.

26:04.420 --> 26:13.220
But we had fewer controllers for the space shuttle, all hands on deck, the six times a year or seven times a year that the shuttle was flying.

26:13.220 --> 26:18.300
So a high level of proficiency in a very small pool of people.

26:18.300 --> 26:28.820
Well, with the International Space Station operating 365 days a year and 24-7, we needed a lot more controllers.

26:28.820 --> 26:42.140
So there's a very rigorous certification process required for controllers in the International Space Station Mission Control Center to allow them to send commands to the space station.

26:42.140 --> 27:00.100
In addition, there are screening protocols, both before it ever leaves MCC, going up to the ISS, and once it's on board ISS, to check and make sure that that command will not inadvertently do some damage to the station.

27:00.240 --> 27:12.560
And so, again, really all of these characteristics were really there for safety, but they have the added capability of adding to the cybersecurity as well.

27:13.520 --> 27:15.780
Now, distributed architecture.

27:15.780 --> 27:19.460
This is at a whole new level on the space station.

27:19.460 --> 27:30.700
So starting with the command and control computers, multiplexer, demultiplexer, or MDMs, there's three command and control MDMs that control the station.

27:30.700 --> 27:43.540
And just like the GNC and the SM computers on the shuttle, in this case, there are multiple separate payload and ISS element MDMs to control the system.

27:43.540 --> 27:45.980
So highly distributed in that regard.

27:46.020 --> 27:50.780
And again, with very strict rules about bus traffic between them.

27:50.860 --> 27:57.280
Now, the crew on board the space station does not have cathode ray tubes, I'm very happy to report.

27:57.280 --> 28:01.280
Instead, they use a laptop called the portable computer system.

28:01.280 --> 28:03.300
I apologize for all the acronyms.

28:03.300 --> 28:05.080
This is what NASA does, though.

28:05.080 --> 28:11.640
Anyway, the PCS is used for the crew to send commands to the ISS MDMs.

28:11.640 --> 28:13.640
It's essentially a remote terminal.

28:13.640 --> 28:15.100
It plugs in.

28:15.500 --> 28:17.880
They are not networked to each other.

28:17.880 --> 28:22.720
They are plugged directly into the station and can send commands.

28:22.960 --> 28:30.600
Now, they have the same issues that we did on the space shuttle, wanting more screens, more apps, more capability.

28:30.600 --> 28:33.000
And so there is an ops LAN.

28:33.380 --> 28:37.760
It is a local area network using station support computers.

28:39.080 --> 28:44.840
These computers are used for procedures, email, and everything else.

28:44.840 --> 28:46.300
Including Twitter.

28:46.300 --> 28:53.480
Now, you may be wondering, because I told you on the space shuttle, we didn't have real-time access to the internet.

28:54.000 --> 28:59.460
Well, that's a real hardship on the space station, if you stop and think about that for a moment.

28:59.460 --> 29:02.800
Because there are people living up there for six months.

29:03.260 --> 29:05.780
And, I mean, just even really simple things.

29:05.780 --> 29:11.560
Like, if you were up there for six months, and maybe you wanted to go on the internet and buy your husband a birthday present.

29:11.560 --> 29:13.200
And lots and lots of other things.

29:13.200 --> 29:20.060
So, and of course, the onset of Twitter, which astronauts have embraced completely.

29:20.440 --> 29:25.560
So, it took a fair amount of work to set up the cyber security.

29:25.560 --> 29:28.700
Because that was already a consideration even by then.

29:28.700 --> 29:34.900
So, there's a computer inside the firewall at the Johnson Space Center that is the proxy computer.

29:34.900 --> 29:41.060
So, the space station support computers talk to the proxy computer, which then goes out onto the internet.

29:41.140 --> 29:47.400
Now, of course, just like any computer, it's still subject, potentially, to malware.

29:47.460 --> 29:57.500
But the most important thing is the station support computers, in no way, shape, or form, are networked to the actual commanding of the station.

29:57.500 --> 30:02.320
They're completely separate systems, and they don't talk to each other.

30:02.320 --> 30:11.180
And so, a hacker might be able to get at, with great difficulty, but might be able to get at somebody's email on board the space station.

30:11.180 --> 30:14.400
But they couldn't take over controlling the station.

30:14.520 --> 30:18.200
Sort of the ultimate in a distributed architecture.

30:18.760 --> 30:23.160
So, the use of computers is so important on the International Space Station.

30:23.160 --> 30:29.240
I just want to show an example, actually, of how they're used operationally.

30:29.240 --> 30:34.920
And this is a picture from my third flight in space, where we had a lot of important robotics operations.

30:35.180 --> 30:40.440
So, in the center of the screen, you will see three videos.

30:40.460 --> 30:45.560
And then, underneath the one on the left, and on the right, are two hand controllers.

30:45.660 --> 30:49.480
They control the robotic arm of the space station.

30:49.520 --> 30:52.940
So, that's how you move the arms with those hand controllers.

30:54.380 --> 31:00.880
Now, I talked about the PCS, which does command, and it actually can send commands to the big arm.

31:00.880 --> 31:04.600
Turn it on, turn it off, switch power sources, and so forth.

31:04.600 --> 31:07.860
And so, the PCS on the right was set up for ISS commands.

31:07.860 --> 31:11.680
And then, there's a backup PCS set up in the middle.

31:11.680 --> 31:22.660
It enables you to quickly, if there's a hardware or software failure on the primary PCS, you could go to the backup PCS very quickly.

31:22.660 --> 31:29.220
And in addition, it allows you to monitor other critical systems that interact with the robotic arm.

31:29.840 --> 31:36.080
And then, the other three computers, the two above and the one to the left, are part of the OPSLAN.

31:36.080 --> 31:37.660
They're station support computers.

31:37.660 --> 31:43.380
They provide extra camera views, procedures, file sharing, etc., etc.

31:45.800 --> 31:50.160
Now, areas of concern in space systems for me.

31:50.160 --> 31:56.460
I'd like to shift gears a little bit and say, this is what I see out there that is worrying me.

31:56.460 --> 32:06.600
First of all, uplink and downlink to most satellites is encrypted, but the data on the bus itself is not.

32:07.140 --> 32:11.480
So, of course, it's easy to say, well, there's no way to access it.

32:11.480 --> 32:12.380
It's just out there.

32:12.380 --> 32:13.560
It's in space.

32:13.580 --> 32:17.060
But in fact, I think it is an area of concern.

32:17.060 --> 32:21.580
It's something that we should be thinking about encrypting onboard traffic as well.

32:21.900 --> 32:29.420
Ground system vulnerabilities is probably the one place that if you're talking to a space person, they will acknowledge there is a cyber risk.

32:29.520 --> 32:32.520
Our ground systems are very vulnerable.

32:32.520 --> 32:40.160
They're just as vulnerable as any enterprise computer, as part of any enterprise IT system.

32:40.320 --> 32:51.040
Something interesting, particularly in DoD, is that all of the constellations and all of the satellites, most of them have completely unique ground systems.

32:51.040 --> 32:52.840
Now, DoD is moving away from that.

32:52.840 --> 32:55.900
They're having a common ground system going forward.

32:55.900 --> 32:57.940
But what that means is that they're all different.

32:57.940 --> 33:05.340
Now, the good news is, well, if you figured out an exploit in one, it wouldn't necessarily work on another one.

33:05.340 --> 33:15.120
But the flip side to that, from an enterprise IT management standpoint, is configuration management, patching, and so forth, is a nightmare.

33:15.160 --> 33:17.660
So, that is a real concern.

33:17.660 --> 33:21.160
And fortunately, it's being addressed in DoD.

33:21.540 --> 33:23.200
Edge computing.

33:23.200 --> 33:39.900
Well, the challenge there is, you know, I had talked a little earlier about how man-in-the-middle attacks are kind of hard on satellites, because real-time, you have to see the data stream and then figure out what you want to inject into it.

33:39.900 --> 33:45.240
Well, edge computing is becoming increasingly important.

33:45.240 --> 33:51.640
Now, I mentioned the fact that in the past, it's been minimized to do computations on board.

33:51.640 --> 34:01.040
There was really just enough code and just enough hardware to run the satellite, run its payload, and then communicate all the data to the ground.

34:01.080 --> 34:04.880
And that's, as I said, because it had weight implications.

34:04.920 --> 34:13.340
Well, with the advent of Moore's Law, satellites are becoming smaller and more efficient because their electronics are more efficient.

34:13.660 --> 34:25.780
So, one of the challenges in low-Earth orbit is, as you whiz around the Earth every 90 minutes, you really can only downlink your information when you happen to be within sight of a ground station.

34:25.780 --> 34:30.920
And any one ground station, you're only in sight of between 5 and 10 minutes.

34:31.020 --> 34:36.920
So, you could take a picture, but you might actually end up waiting a half an hour before you can downlink it.

34:37.120 --> 34:45.060
Well, that's actually a challenge if you've got very short periods of time to get a lot of data down.

34:45.100 --> 35:02.640
And so, increasingly, we're moving into a place where there's more and more computation moving on board and really getting high-quality edge computing so that you can do all the data management, and that minimizes the amount of information that you have to downlink.

35:02.640 --> 35:12.780
I'm just going to send you a notification that something has occurred, or I'll send you a highly processed picture of what you're most interested in instead of a giant data stream.

35:12.780 --> 35:18.080
Well , that is also going to make it a lot easier for man-in-the-middle attacks.

35:18.560 --> 35:25.620
Finally , the most serious problem I think we have in aerospace is complacency.

35:25.620 --> 35:32.860
As I said, many people in space think that their systems are not vulnerable to cyber.

35:33.080 --> 35:35.060
We have an attitude in aerospace.

35:35.060 --> 35:38.900
It's part of our culture and our values to think about safety.

35:38.900 --> 35:45.440
Safety is integral from design to test and verification and operations.

35:45.440 --> 35:47.500
We just think that way.

35:47.600 --> 36:02.160
We are going to have to figure out how to insert cybersecurity and an awareness of that into the values and the culture of aerospace, all the way from the beginning in design and all the way through to operations.

36:02.160 --> 36:05.660
I really think we are going to need to do that.

36:06.460 --> 36:11.320
Now, fortunately, there's some exciting work being done on cyber-physical systems.

36:11.320 --> 36:20.300
One of my favorite demonstrations was in the Information Innovation Office, or I2O, at DARPA when I was there.

36:20.580 --> 36:25.660
It's the DARPA High Assurance Cyber Military Systems Program, or HACMS.

36:25.660 --> 36:33.680
So the picture you see there is an optionally crewed helicopter called Little Bird, built by Boeing.

36:33.720 --> 36:40.360
Now, the HACMS program gave a group of hackers access to the flight data recorder.

36:40.400 --> 36:48.080
And within 30 minutes, they had hacked their way into critical systems on the Little Bird, which really surprised everyone.

36:48.560 --> 36:57.720
So the HACMS program funded several performers to develop security capability and a secure kernel.

36:57.760 --> 37:06.580
So I'm not a software person, but to me, a secure kernel is very much like the distributed architecture that I talked about for the shuttle and station.

37:06.580 --> 37:20.480
You have a separation of critical functions, and then you have a high level of restrictions about what information and checks that go on for information that flows in and out of that critical area.

37:20.480 --> 37:25.080
This secure kernel was loaded into Little Bird.

37:25.080 --> 37:34.680
Those same hackers were given access in the same way, and all they could do was shut down the flight data recorder, not very important, and point the camera.

37:34.680 --> 37:41.600
So it is possible to develop secure cyber physical systems.

37:41.780 --> 37:51.240
Now, the HACMS program is over, but the System Security Integrated Through Hardware and Firmware program, or SIF, is still active.

37:51.240 --> 38:12.500
And those of you who were at DEF CON last year may remember that DARPA, through the SIF program, brought a voting box, a voting computer, to DEF CON to work on the vulnerabilities and challenges of how to protect that hardware system from software exploits.

38:12.500 --> 38:14.040
So I have high hopes.

38:14.040 --> 38:16.560
There's a lot of really good work going on.

38:16.560 --> 38:24.080
I would like to see these best practices and these technologies proliferate into space.

38:25.440 --> 38:30.200
So a lot of interesting trends in space that are going to have an impact on this.

38:30.780 --> 38:39.900
Some of you may be familiar with some of these proliferated low-earth orbit, or PLEO, constellations like Starlink or OneWeb.

38:40.160 --> 38:45.560
Now, I talked about low-earth orbit and having to wait until you came over a ground station.

38:45.560 --> 39:04.480
Well, the idea here is to have enough satellites which are also connected through cross-links, through a mesh network, such that if one satellite takes a picture , it can send the information through the mesh network to another satellite that's over a ground station.

39:04.480 --> 39:14.100
And so this would greatly increase the persistence and, in fact, make data ubiquitous at any time.

39:14.100 --> 39:17.060
Now, there's some real challenges with mesh networking.

39:18.800 --> 39:23.840
So the Space Defense Agency is working on that right now.

39:23.980 --> 39:32.420
I think you're going to see a lot more of these cross-links and these mesh networks, which, of course, will increase the attack vectors as well.

39:33.920 --> 39:37.500
NASA's working on going to the Moon and on to Mars.

39:37.500 --> 39:45.920
Their Moon-to-Mars program is a program that, just like the Space Station, they've reached out to international partners.

39:45.920 --> 39:58.260
So far, Europe, Japan, Canada, and Australia have all expressed interest in joining in going to the Moon to prepare and develop the technologies that will allow us to go on to Mars.

39:58.300 --> 40:04.700
And there will be an orbiting logistics platform called Gateway in lunar orbit.

40:04.700 --> 40:19.630
And then, not too different from the International Space Station, a Moon village made up of different elements that different countries have doing whatever science they're most interested in, but having shared infrastructure.

40:21.900 --> 40:27.440
As we push out into the solar system, we're going to need a lot more logistics hubs.

40:27.440 --> 40:35.820
So the most efficient way to get from point A to point B in space is through careful transfers of orbits.

40:35.820 --> 40:38.640
Low Earth orbit to geosynchronous orbit.

40:38.640 --> 40:41.440
Geosynchronous orbit to lunar orbit.

40:41.440 --> 40:44.780
Geosynchronous orbit to Mars orbit.

40:44.780 --> 41:05.820
And you're going to see these logistics hubs that allow us to refuel or even build new satellites, store and supply logistics, and transfer not just data, but also goods and supplies out into the solar system.

41:06.540 --> 41:12.100
NASA's already thinking about solar system internet, but there's a big challenge with that.

41:12.620 --> 41:15.180
Communications is done through RF.

41:15.180 --> 41:19.500
And what that means is it's prone to blockouts and fading.

41:19.540 --> 41:30.360
Now, the way internet protocol works today is a packet that cannot show that it has connection all the way to its destination never gets sent.

41:30.420 --> 41:37.320
Well, you can't have that in space because you're going to have these blockages, this fading of signal periodically.

41:37.320 --> 41:46.060
So NASA has been working on delay-tolerant networking that allows data to be cached as it pushes out.

41:46.240 --> 41:51.020
And so that way, if there is a loss of signal, that's fine.

41:51.020 --> 41:59.440
It can tolerate microseconds up to seconds and then pass along the information once the network is re-established.

41:59.720 --> 42:03.000
Interestingly, this has implications as well.

42:03.040 --> 42:19.880
DARPA has also been working on it for disruption-tolerant networking, and that's more for emergencies, disasters, humanitarian disasters, and things like that where there's not a consistent capability for the internet.

42:19.880 --> 42:31.500
And so delay or disruption-tolerant networking is going to be incredibly important as we develop a solar system internet.

42:32.840 --> 42:42.260
So I just want to say how wonderful it is to be here, and thanks for inviting me to participate at the Aerospace Village.

42:42.260 --> 42:44.400
I'm very excited about HACCASAT.

42:44.400 --> 42:46.040
I think it's a really great idea.

42:46.040 --> 42:54.520
It's a way to get insight into what the actual vulnerabilities are, just like we did the demonstration for HACCAMS.

42:54.520 --> 43:01.020
But it's important to remember that the implications for space cybersecurity are huge.

43:01.020 --> 43:11.160
Even today, I talked about how much of our economy depends on GPS, weather, and so many other pieces of data that we get from space.

43:11.160 --> 43:16.000
But there are bigger implications as we build out a solar system internet.

43:16.000 --> 43:34.140
We're really going to have the opportunity to completely think this through again and go on to internet 2.0 technologies, like delay-tolerant networking, and build in security from the beginning, which is something that we didn't do with internet 1.0.

43:34.540 --> 43:46.520
So I'm hopeful that someone out there that's listening today will have some ideas about how to build a more secure internet for the solar system.

43:46.520 --> 43:49.000
And I'm just going to ask you to get cracking on that.

43:49.000 --> 43:50.080
Thank you.

