blob: 528408a27f5302db8fdbf56334473ac4b3d2b194 [file] [log] [blame] [view] [edit]
# Secure
Security and privacy are woven deeply into the architecture of Fuchsia.
The basic building blocks of Fuchsia, the kernel primitives,
are exposed to applications as object-capabilities.
This means that applications running on Fuchsia have no ambient authority:
applications can interact only with the objects
to which they have been granted access explicitly.
Software is delivered in hermetic packages and everything is sandboxed.
All software that runs on the system, including applications and system
components, receives the least privilege it needs to perform its job and
gains access only to the information it needs to know.
Because capabilities routing and software isolation are enforced by the
operating system, developers dont have to build an additional
system for security.
## Fuchsia builds on a kernel designed to securely isolate software
**[Zircon](/docs/concepts/kernel/README.md)
is a capability-based, object-oriented kernel**
The Zircon system fully isolates processes by default,
and must explicitly grant capabilities and resources.
Fuchsia passes capabilities and resources by handles rather than name,
which leads to a system that only grants software access to what it needs.
## Components are the fundamental unit of software execution
**[Components](/docs/concepts/components/v2/introduction.md)
are isolated containers for Fuchsia software**
Nearly all user space software is a component,
from system services to end-user applications.
The component framework encourages the composition of loosely coupled software.
Capabilities used and exposed must be explicitly declared.
## Software is delivered in self-contained packages
**[Packages](/docs/concepts/packages/package.md)
have everything they need to run every time**
Components are distributed through hermetic, or self-contained, packages
that include all needed files.
Fuchsia packages are a collection of components, files, and metadata.
Isolated namespaces mean a component only has visibility to its own package.
## Fuchsia has no global file system or ambient authority
**[Namespaces](/docs/concepts/framework/namespaces.md)
prevent programs from escaping their containers**
Fuchsia aims to have no ambient authority,
which means every operation is scoped to an object capability.
Similarly, Fuchsia has no global file system.
Instead, each program is given its own local namespace in which to operate.