chase term paper

advertisement
Rogers 1
Overview:
Google Chrome OS is a new Linux operating system that has been designed by Google
using a minimalist approach. It is primarily used to work with web applications. In simplest
terms, the user interface consists almost entirely of Google Chrome. This is not an OS for a
workstation. Instead, it is aimed at people who plan on using mainly just the internet.
Google Chrome OS can be easily confused with Chromium OS. These are not actually
the same thing. Chrome is built upon Chromium. Chromium OS is an open source Linux-based
project. Chrome OS is just the commercial version offered by google on select hardware.
Machines running Google Chrome OS are called Chromebooks. These are designed to be
used with the internet. Speed and security are the two main focus points of these devices. They
are very minimalist in approach. Not even data is stored on the device itself; instead, it is stored
in the cloud, which is accessed through the internet connection. Chromebooks are targeted at
users who mainly use the web browser when they access their computer. After all, there is so
much can be done through the web and web apps now.
UI:
The user interface in Chrome OS is designed to be unobtrusive. The system UI is
designed to use only a small amount of the screen space. This is accomplished through
combining apps and "combining apps and standard web pages into a minimal tab strip"
(http://www.chromium.org/user-experience). Instead of having the standard two strips of web
tabs and applications, Chromium OS gives you a combination of the two, creating a single strip
from which you can access applications and web pages. To make the UI more user-friendly,
Chrome OS has reduced window management. Windows now operate in a full-screen mode,
while secondary tasks are handled in panels. These panels are "floating windows that can dock to
the bottom of the screen as a means of handling tasks like chat, music players, or other
accessories" (http://www.chromium.org/user-experience). Of course, the option for split screen is
still available, allowing the user to view two windows side-by-side.
Rogers 2
Architecture:
The design documents show that "Chromium OS consists of three major components:
•
The Chromium-based browser and the window manager
•
System-level software and user-land serviced: the kernel, drivers, connection
manager, and so on
•
Firmware"
(http://www.chromium.org/chromium-os/chromiumos-design-docs/softwarearchitecture)
The window manager has already been touched on a little in this paper. It handles all of
the interactions the user has with multiple client windows. The windows can be blended together
through use of the XComposite extension that redirects "client windows to offscreen pixmaps so
that it can draw a final, composited image incorporating their contents"
(http://www.chromium.org/chromium-os/chromiumos-design-docs/software-architecture). These
windows are then animated and rendered via OpenGL or OpenGLIES.
As for the kernel, it is mostly stock. There are, however, a handful of patches to improve
the boot performance of the OS. Going for maximum functionality, the init process has been
streamlined so that only services that are absolutely critical are running. The design documents
provide us with "a quick list of things that we depend on:
•
D-Bus: The browser uses D-Bus to interact with the rest of the system. Examples
of this include the battery meter and network picker.
•
Connection Manager: Provides a common API for interacting with the network
devices, provides a DNS proxy, and manages network services for 3G, wireless,
and ethernet.
•
WPA Supplicant: Used to connect to wireless networks.
•
Autoupdate: Our autoupdate daemon silently installs new system images.
•
Power Management: (ACPI on Intel) Handles power management events like
closing the lid or pushing the power button.
•
Standard Linux services: NTP, syslog, and cron."
(http://www.chromium.org/chromium-os/chromiumos-design-docs/software-architecture).
Rogers 3
The firmware is designed with one goal in mind: "to make booting the OS faster and
more secure" (http://www.chromium.org/chromium-os/chromiumos-design-docs/softwarearchitecture). This is done by keeping only the necessary components. Support is also added for
each step in the boot process. Support for system recovery is being added into the firmware
itself. Chromium avoids having the complexity of most PC firmware. This firmware has no need
for backwards compatibility with most of the legacy hardware. The design documents show that
the firmware implements "the following functionality:
•
System recovery: The recovery firmware can re-install Chromium OS in the event
that the system has become corrupt or compromised.
•
Verified boot: Each time the system boots, Chromium OS verifies that the
firmware, kernel, and system image have not been tampered with or become
corrupt. This process starts in the firmware.
•
Fast boot: We have improved boot performance by removing a lot of complexity
that is normally found in PC firmware." (http://www.chromium.org/chromiumos/chromiumos-design-docs/software-architecture).
Security:
A huge emphasis was placed on security; it was actually designed with security in mind.
The developers had one main goal in mind during the development of this OS. They wanted "a
system that is both practically secure and easy to use"
(https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview). This was accomplished by following four principals: "
•
The perfect is the enemy of the good.
•
Deploy defenses in depth.
•
Make devices secure by default.
•
Don't scapegoat our users
This first principal is easy enough to follow. There is only one thing that needs to be kept
in mind: there is no perfect solution. No matter what, there will be mistakes, there will be
vulnerabilities. Just because something is not perfect does not mean that it is not very good. In
Rogers 4
this case, the goal is to make the security very good, and not focus on searching for a mythical
solution to all security problems.
To make the system very good, Chrome OS closely followed the second principal about
defenses. Chrome OS deploys a variety of defenses to slow down attackers. This approach makes
it difficult to break into the system, but makes the assumption that the attacker will eventually
get access. At the point, they run into the next layer of defenses. This layer attempts to prevent
attackers from turning an account compromise into a kernel or root exploit. Another layer raises
the difficulty on the attacker by "preventing him from adding an account, installing services, or
re-compromising the system after reboot"
(https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview).
The next principal shows how much of a priority security is. Security is not an
afterthought; instead, the OS should be secure by default. This task is generally tough to
accomplish as solutions typically need to be deployed as software is added to machines. These
solutions, however, take a toll on the system performance and the ease-of-use. Google has an
advantage in this department; they know exactly what software is meant to be running on the
machines. This allows them to "deploy solutions that leave the user's machine humming along
nicely" (https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-designdocs/security-overview).
Up next is a curious principal. What exactly does it mean to not scapegoat users? The
design documents show that this is talking about blaming users for security issues. Google is
trying to take a step forward in prevention because "it is difficult to make accurate judgments
about one's level of risk in the face of such complexity, and that is not" the fault of the user
(https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview). Google sets a lofty goal to prevent this by attempting to only have users make a
decision on things that they truly understand. This must include a "fail-safe if they don't
understand a choice and just want to click and make it go away"
(https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview).
Rogers 5
Chromium OS and Google Chrome OS:
Chromium OS is an open source project. This code is available to anyone who would
wish to view it, modify it, or use it in anyway. Google Chrome OS, however, is a Google
product. It is based off of Chromium OS, though with some differences. Chrome OS is only
available prepackaged in Google's Chromebooks. This operating system is geared towards userfriendliness, security, and speed. There are extra features contained in Chrome OS that are not
supported by Chromium OS. This includes verified boot and easy recovery. These two features
require hardware changes, thus making it incompatible with Chromium OS. Chromebooks are
specifically design to run Chrome OS seamlessly. The hardware on the Chromebooks are
specifically optimized for enhanced security and performance. On top of this, Google3 Chrome
OS automatically updates seamlessly, while Chromium OS does not. Finally, Chrome OS
"includes some binary packages which are not allowed to be included in the Chromium OS
project. A non-exhaustive list:
•
Adobe Flash
•
PDF plugin
•
Netflix Instant
•
Google Talk
•
Work is ongoing to migrate to WebRTC so no plugins will be required
•
3G Cellular support (but work is ongoing to address this)
•
Older versions of Chrome OS might contain proprietary Synaptic Touchpad
Drivers
*
All recent releases (R20+) should be using the open source CMT driver
*
NB: open source drivers have long existed and are automatically used in
Chromium OS"
(http://www.chromium.org/chromium-os/chromium-os-faq).
Download