
Chromium OS Security
Chromium OS Security
Google Chrome OS is an open source operating system for people who spend most of their time on the web built around the core tenets of speed, simplicity and security. http://www.chromium.org
Content
0 ->
0.45 -> Hi.
0.63 -> I'm Will Drewry.
1.64 -> In this video, we'll be
discussing ideas we have for
3.4 -> creating an open operating
system that aims to be
5.1 -> secure by default.
6.44 -> Chromium OS is driven
by the fact that all
8.26 -> apps are web apps.
9.566 -> And because of that, we get a
lot of interesting security
11.82 -> features that we can
take advantage of.
14.72 -> Web apps are already
protected from each other.
16.52 -> It's just how the
internet works.
18.03 -> Every web app is on a domain
and each domain can't access
20.54 -> each other without jumping
through some crazy hoops.
23.12 -> And so we want that kind of
default security and we get
25.61 -> that for free from
the internet.
28.07 -> Now below that, we want to make
sure that things that go wrong
30.42 -> when web apps do bad things,
that we keep them isolated from
33.06 -> the system, and we do
that with a sandbox.
35.13 -> So we make sure that all the
code that's running to access
38.61 -> that external data, that
runs isolated from the
40.992 -> rest of the system.
41.38 -> And we root that, and we
make sure it runs into its
43.445 -> own process name space.
45.53 -> But it's kind of not enough.
46.89 -> That just stops one part.
48.23 -> We want to do it to the
whole system so we step
50.13 -> up a level, and we cover
what the browser needs.
53.3 -> So we see, does the browser
need to access this?
55.41 -> Does the browser need
to access that?
56.85 -> If it does, we give it
access, but that's it.
58.77 -> We limit it there.
59.82 -> And we do that using the same
approach we use for process
62.185 -> name spacing, but we apply
a bunch of other things.
64.14 -> We limit the capabilities.
65.44 -> We put it in secure no-root
jails, so there's no way
68.14 -> that it can ever access
superuser privileges.
70.41 -> And then as we move up, or
further down into the system,
73.38 -> there are system services, and
we want those isolated
75.3 -> the same way.
76.41 -> So we can use those same
tricks, but we can also apply a
80.22 -> globally-aggressive mandatory
access control scheme.
83.25 -> Normally, you can only do that
in a very pointed fashion.
85.49 -> You can apply it to one program
or another program, because
87.51 -> you know how they work.
89.58 -> But when you download something
new, it doesn't work.
91.66 -> So we get around that.
93.69 -> All the things we have are
known in advance, and we can
97.12 -> secure them appropriately.
98.59 -> Everything else is a web app.
100.48 -> Below the system services and
below the browser is where all
103.05 -> the files are, all the files
that run the browser, and all
104.955 -> the files that run those
services, and all the
106.43 -> configuration data.
107.93 -> So we keep all the root files
from the data, all the system
110.28 -> information on one partition.
112.08 -> And then all your data is kept
encrypted on another partition.
115.29 -> That means it makes it
really easy for us to
116.84 -> do system updates.
118.11 -> If we want to pull down some
extra information, we can just
120.53 -> pull it down, we can apply it,
and then reboot,
123.33 -> and you're good.
124.58 -> What's interesting, though,
is that we use multiple
126.4 -> partitions for this.
127.41 -> We keep a system partition, and
we keep a second system
129.46 -> partition, and when we download
and update, we check to make
131.7 -> sure that update's authentic,
and then we check what happened
134.75 -> in the original partition, and
then just update the
136.74 -> other partition.
138.09 -> When everything's done, then
we flip the switch, and
140.57 -> you're ready to go.
141.32 -> But if you interrupt it along
the way, that's not a problem.
143.575 -> You should be OK.
145.63 -> Even though we check the
signature on the auto update to
147.52 -> make sure no one's tampered
with it, we should
149.06 -> really be doing more.
149.74 -> We need to make sure that the
root file system hasn't been
151.82 -> changed since the last
time we updated it.
153.84 -> We want to make sure that all
the software we've installed
155.585 -> is exactly as it should be.
157.45 -> To do that, we look at the file
system in a block level, and
159.98 -> each block has been hashed.
161.46 -> And that cryptographic hash is
stored in a big binary blob at
163.85 -> the end of the file system.
165.21 -> That blob is then checked by
the kernel during boot to
167.4 -> make sure that nothing has
changed on the file system.
170.3 -> Checking the file system
isn't enough, though.
171.97 -> We have to make sure the
kernel hasn't been changed.
173.93 -> To do that, we can check
it with our firmware.
175.75 -> We have custom firmware
and that gives us that
177.9 -> really fast boot speed.
179.16 -> It also gives a small read-only
segment, and in that read-only
181.64 -> segment, we can store public
key, and we can store useful
185.17 -> secure recovery data.
186.96 -> That key can then check
anything that comes after it in
189.346 -> the boot path, and so we can
make sure that any changeable
191.73 -> firmware is up-to-date and as
we expect, and the
194.38 -> kernel is OK.
195.68 -> We know there are
going to be bugs.
196.85 -> We can't stop everything.
198.41 -> But we can make sure that if
something does happen, you
200.62 -> could reboot and
you'll be safe.
202.2 -> So the secure recovery
code is triggered by the
203.99 -> verified boot process.
205.31 -> If something's wrong and you
need to clean your system up,
207.48 -> you can boot right into it,
plug a USB stick in, and then
209.98 -> you'll know your system
is a known good state.
211.9 -> That concludes our overview
of what we have in mind.
214.63 -> We know it's not perfect and
there's a lot of room to
216.3 -> innovate, and we'd
like your help.
217.96 -> If you're a developer, put your
netbook in developer mode, and
220.21 -> come on over to chromium.org.
Source: https://www.youtube.com/watch?v=A9WVmNfgjtQ