English is the world bridge language and most widespread language across the world. Also, English articles often have much greater quality than other languages.
746 lines
46 KiB
HTML
746 lines
46 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<!-- Inferencium - Website - About -->
|
|
<!-- Version: 8.1.0-alpha.13 -->
|
|
|
|
<!-- Copyright 2022 Jake Winters -->
|
|
<!-- SPDX-License-Identifier: BSD-3-Clause -->
|
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<link rel="stylesheet" href="main.css"/>
|
|
<title>Inferencium - About</title>
|
|
</head>
|
|
<body>
|
|
<nav class="navbar">
|
|
<div><a href="index.xhtml"><img src="asset/img/logo-inferencium-no_text.png" width="110" height="110" alt="Inferencium logo"/></a></div>
|
|
<div><a href="index.xhtml" class="title">Inferencium</a></div>
|
|
<div><a href="about.xhtml">About</a></div>
|
|
<div><a href="documentation.xhtml">Documentation</a></div>
|
|
<div><a href="source.xhtml">Source</a></div>
|
|
<div><a href="changelog.xhtml">Changelog</a></div>
|
|
<div><a href="blog.xhtml">Blog</a></div>
|
|
<div><a href="contact.xhtml">Contact</a></div>
|
|
<div><a href="directory.xhtml">Directory</a></div>
|
|
<div><a href="key.xhtml">Key</a></div>
|
|
</nav>
|
|
<h1 id="about"><a href="#about">About</a></h1>
|
|
<nav id="toc">
|
|
<h2><a href="#toc">Table of Contents</a></h2>
|
|
<ul>
|
|
<li><a href="#about_me">About Me</a></li>
|
|
<li><a href="#date_time">Date and Time</a></li>
|
|
<li><a href="#licensing">Licensing</a></li>
|
|
<ul>
|
|
<li><a href="#licensing-code">Code</a></li>
|
|
<ul>
|
|
<li><a href="#licensing-code-bsd3clause">BSD 3-Clause License</a></li>
|
|
<li><a href="#licensing-code-gpl2.0only">GNU General Public License v2.0</a></li>
|
|
</ul>
|
|
<li><a href="#licensing-noncode">Non-code</a></li>
|
|
<ul>
|
|
<li><a href="#licensing-noncode-ccby4.0">Creative Commons Attribution 4.0 International</a></li>
|
|
</ul>
|
|
<li><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open Source and Free Software?</a></li>
|
|
</ul>
|
|
<li><a href="#versioning">Versioning</a></li>
|
|
<ul>
|
|
<li><a href="#versioning-numbering_scheme">What is the Numbering Scheme?</a></li>
|
|
<li><a href="#versioning-phases">What Are the Phases?</a></li>
|
|
</ul>
|
|
<li><a href="#services">Services</a></li>
|
|
<ul>
|
|
<li><a href="#services-websites">Websites</a></li>
|
|
</ul>
|
|
<li><a href="#recommendations">Recommendations</a></li>
|
|
<ul>
|
|
<li><a href="#recommendations-hardware">Hardware</a></li>
|
|
<ul>
|
|
<li><a href="#recommendations-hardware-smartphone">Smartphone</a></li>
|
|
</ul>
|
|
<li><a href="#recommendations-software">Software</a></li>
|
|
<ul>
|
|
<li><a href="#recommendations-software-desktop">Desktop</a></li>
|
|
<li><a href="#recommendations-software-smartphone">Smartphone</a></li>
|
|
</ul>
|
|
<li><a href="#recommendations-music">Music</a></li>
|
|
</ul>
|
|
<li><a href="#gnulinux_or_linux">Is it GNU/Linux or Just Linux?</a></li>
|
|
</ul>
|
|
</nav>
|
|
<section id="about_me">
|
|
<h2><a href="#about_me">About Me</a></h2>
|
|
<p>I am Jake Winters, also known by my pseudonym
|
|
"Inference", a security researcher based in United
|
|
Kingdom.</p>
|
|
<p>I am the founder, lead developer, and administrator, of
|
|
Inferencium.</p>
|
|
<p>All opinions are my own, and are not necessarily shared
|
|
with projects or people I am affiliated with.</p>
|
|
<p>I write about my research and experience in cybersecurity
|
|
and also physical security. Most of my postings are
|
|
security-related, but I occasionally post about other
|
|
aspects of my life.</p>
|
|
<p>I am an open source advocate for the preservation and
|
|
modifiability of source code. I believe source code should
|
|
be considered human knowledge as much as past knowledge and
|
|
teachings were; it is how modern humanity survives and runs.
|
|
Source code being modifiable allows it to be adapted for use
|
|
by anyone, whether to add features, harden it for increased
|
|
security and/or privacy, or provide accessibility for
|
|
disabled users.</p>
|
|
<p>I am also a modular design advocate for the ability to
|
|
securely and robustly make changes to hardware and software
|
|
without the entire system being affected.</p>
|
|
<p>I run multiple XMPP channels; a directory of channels can
|
|
be found on the
|
|
<a href="https://inferencium.net/directory.xhtml">directory</a>
|
|
webpage.</p>
|
|
<p>If you wish to contact me for any reason, you can use my
|
|
<a href="https://inferencium.net/contact.xhtml">contact methods</a>.</p>
|
|
</section>
|
|
<section id="date_time">
|
|
<h2><a href="#date_time">Date and Time</a></h2>
|
|
<p>All dates and times across my services are
|
|
<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a>-compliant.
|
|
The short-form format <code>YYYY-MM-DD</code> is used for
|
|
dates, and <code>hh:mm:ss</code> is used for times, with
|
|
display of seconds being based on required level of
|
|
accuracy. The full expression may be used when necessary;
|
|
<code>YYYYMMDDThhmmssZ</code> (UTC without offset),
|
|
<code>YYYYMMDDThhmmss+hhmm</code> (with positive offset), or
|
|
<code>YYYYMMDDThhmmss-hhmm</code> (with negative
|
|
offset).</p>
|
|
</section>
|
|
<section id="licensing">
|
|
<h2><a href="#licensing">Licensing</a></h2>
|
|
<p>I care about upstreaming and sharing code, strongly
|
|
preferring licenses which have high license compatibility in
|
|
order to permit sharing code with as many other projects as
|
|
possible; for this reason, permissive licenses are my
|
|
preferred choice, while avoiding copyleft licenses and other
|
|
licenses which place restrictions on how my code may be
|
|
used, and prevent me from including important proprietary
|
|
code, such as firmware, which can patch security
|
|
vulnerabilities, privacy issues, and stability issues.</p>
|
|
<p>All of my code is and will be permissively licensed
|
|
unless specific circumstances make it impractical or
|
|
infeasible to do so. My goal is to share code which has the
|
|
least amount of restrictions as possible, to allow wider
|
|
propagation of my code and allow more use cases and
|
|
possibilities, as well as ensuring proprietary code,
|
|
whenever required, is permitted to be included and/or linked
|
|
to.</p>
|
|
<p><a href="https://iso.org/standard/81870.html">ISO 5962:2021</a>
|
|
is used for licensing, in the format
|
|
<code>SPDX-License-Identifier: <var><license></var></code>;
|
|
see the
|
|
<a href="https://spdx.org/licenses/">SPDX License List</a>
|
|
for the full list of available licenses under this
|
|
standard.</p>
|
|
<p>My preferred licenses and rationale for using them are
|
|
below; any licenses not listed are chosen on a case-by-case
|
|
basis.</p>
|
|
<section id="licensing-code">
|
|
<h3><a href="#licensing-code">Code</a></h3>
|
|
<section id="licensing-code-bsd3clause">
|
|
<h4><a href="#licensing-code-bsd3clause">BSD 3-Clause License</a></h4>
|
|
<p><b>SPDX License Identifier:</b> <code>BSD-3-Clause</code></p>
|
|
<p><b>Type: Permissive</b></p>
|
|
<p><a href="https://spdx.org/licenses/BSD-3-Clause.html">BSD 3-Clause License</a>
|
|
is a highly permissive license which
|
|
allows content licensed under it to be
|
|
used in any way, whether in source or
|
|
binary form, and allows sublicensing
|
|
under a different license, with the only
|
|
restrictions being the original
|
|
copyright notice must be kept in order
|
|
to attribute the original creator of the
|
|
licensed content, and the name of the
|
|
project and/or its contributors may not
|
|
be used to endorse or promote products
|
|
derived from the original project.</p>
|
|
</section>
|
|
<section id="licensing-code-gpl2.0only">
|
|
<h4><a href="#licensing-code-gpl2.0only">GNU General Public License v2.0</a></h4>
|
|
<p><b>SPDX License Identifier:</b> <code>GPL-2.0-only</code></p>
|
|
<p><b>Type: Copyleft</b></p>
|
|
<p><a href="https://spdx.org/licenses/GPL-2.0-only.html">GNU General Public License v2.0</a>
|
|
is a strong copyleft license which
|
|
restricts use of content licensed under
|
|
it by requiring all source code of the
|
|
content to be publicly available, making
|
|
binary-only form and inclusion of
|
|
proprietary code impossible, requiring
|
|
all derivatives to be licensed under the
|
|
same license (allowing sublicensing
|
|
under only newer GPL licenses if
|
|
<code>GPL-2.0-or-later</code> is
|
|
specified in the SPDX License
|
|
Identifier), and requiring the original
|
|
copyright notice to be kept in order to
|
|
attribute the original creator of the
|
|
licensed content.</p>
|
|
<p>Due to the restrictive and invasive
|
|
nature of this license, it is avoided
|
|
unless such restrictions would be
|
|
beneficial to my code; whenever this is
|
|
the case, the GNU General Public License
|
|
v2.0 will be used, rather than the more
|
|
restrictive
|
|
<a href="https://spdx.org/licenses/GPL-3.0-only.html">GNU General Public License v3.0</a>,
|
|
and relicensing derivatives under the
|
|
GNU General Public License v3.0 will be
|
|
disallowed.</p>
|
|
</section>
|
|
</section>
|
|
<section id="licensing-noncode">
|
|
<h3><a href="#licensing-noncode">Non-code</a></h3>
|
|
<section id="licensing-noncode-ccby4.0">
|
|
<h4><a href="#licensing-noncode-ccby4.0">Creative Commons Attribution 4.0 International</a></h4>
|
|
<p><b>SPDX License Identifier:</b> <code>CC-BY-4.0</code></p>
|
|
<p><b>Type: Permissive</b></p>
|
|
<p><a href="https://spdx.org/licenses/CC-BY-4.0.html">Creative Commons Attribution 4.0 International</a>
|
|
is a highly permissive license which
|
|
allows content licensed under it to be
|
|
used in any way, in any medium, with the
|
|
only restriction being the original
|
|
copyright notice must be kept in order
|
|
to attribute the original creator of the
|
|
licensed content.</p>
|
|
</section>
|
|
</section>
|
|
<section id="licensing-open_source_vs_free_software">
|
|
<h3><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open Source and Free Software?</a></h3>
|
|
<p>No. If code is not released under an open-source
|
|
license and places restrictions on how the code may be
|
|
used, it is either source-available (if viewing the code
|
|
is permitted) or proprietary. "Free software" only
|
|
causes confusion and exists to push an ideology by a
|
|
specific group of people. If software isn't "free", it's
|
|
not open-source, either.</p>
|
|
</section>
|
|
</section>
|
|
<section id="versioning">
|
|
<h2><a href="#versioning">Versioning</a></h2>
|
|
<section id="versioning-numbering_scheme">
|
|
<h3><a href="#versioning-numbering_scheme">What is the Numbering Scheme?</a></h3>
|
|
<p>All code uses
|
|
<a href="https://semver.org">Semantic Versioning</a>.
|
|
The numbering scheme divided into 3 blocks (herein referred to
|
|
as Block 0, Block 1, and Block 2, in left-to-right order); the
|
|
version blocks are separated by periods. When a version number
|
|
block is incremented, all blocks to the right of it are reset to
|
|
0. The legacy versioning scheme was a similar numerical
|
|
versioning scheme which lacked standardisation.</p>
|
|
<p>Block 0 contains the <code><var>MAJOR</var></code> version;
|
|
this number is incremented whenever an API-incompatible change
|
|
is made to the code.</p>
|
|
<p>Block 1 contains the <code><var>MINOR</var></code> version;
|
|
this number is incremented whenever an API-compatible,
|
|
substantial change is made to the code, such as adding a
|
|
feature.</p>
|
|
<p>Block 2 contains the <code><var>PATCH</var></code> version;
|
|
this number is incremented whenever an API-compatible,
|
|
unsubstantial change is made to the code, such as fixing or
|
|
optimising the code.</p>
|
|
<p>Development and pre-release versions are suffixed with
|
|
a hyphen, followed by their phase, a period, then the version of
|
|
that phase; for example, <code>-alpha.<var>n</var></code> for an
|
|
alpha version, <code>-beta.<var>n</var></code> for a beta
|
|
version, and <code>-rc.<var>n</var></code> for a release
|
|
candidate version, with <code><var>n</var></code> being a
|
|
non-negative integer. Stable versions have no suffix.</p>
|
|
</section>
|
|
<section id="versioning-phases">
|
|
<h3><a href="#versioning-phases">What Are the Phases?</a></h3>
|
|
<p>There are 4 phases of development. Each phase typically has
|
|
its own branch in each source code repository. The phases are as
|
|
follows:
|
|
<ol>
|
|
<li>Alpha: Pre-alpha development and alpha
|
|
testing occurs in this phase. Features are
|
|
added, modified, and/or removed. Fixes and
|
|
optimisations may also occur if they are caught
|
|
during this phase. This is where the majority of
|
|
changes occur and where the fine-grained commits
|
|
can be found. Breakage is highly likely within
|
|
this phase as it makes no attempt to be stable
|
|
or usable due to being where the most rapid
|
|
development occurs. Code is tested internally in
|
|
a fine-grained manner and is moved to the next
|
|
phase only when it is deemed feature-complete
|
|
and reasonably stable for broader public
|
|
testing. If you would like to assist in testing
|
|
code in this phase, you must use the code and/or
|
|
tags from the source code repositories due to it
|
|
not being available publicly outside of
|
|
them.</li>
|
|
<li>Beta: Feature-complete testing occurs in
|
|
this phase. Only bug fixes and optimisations
|
|
occur in this phase, such as stability and
|
|
security fixes. This phase is classified as
|
|
stable enough for broad public testing and is
|
|
made available publicly in many cases without
|
|
having to use the source code repositories.
|
|
Since this phase contains only feature-complete
|
|
code, no features will be added, modified, or
|
|
removed in this phase.</li>
|
|
<li>Release candidate (RC): Feature-complete
|
|
testing occurs in this phase. Code in the RC
|
|
phase is often stable enough for production
|
|
usage, but is not yet completely acceptable to
|
|
be classified as stable by my standards. This
|
|
phase is often skipped due to most bugs being
|
|
caught in the beta phase, but will be used
|
|
should the need arise for finer-grained testing
|
|
beyond what the beta phase can provide. Like the
|
|
beta phase, code in this phase is available
|
|
publicly without requiring usage of the source
|
|
code repositories.</li>
|
|
<li>Stable: Feature-complete and well-tested
|
|
code is moved to this phase. Code in this phase
|
|
is deemed to be stable enough for production
|
|
usage and full support is provided.</li>
|
|
</ol>
|
|
</p>
|
|
<p>When development of a new version has begun, the code within
|
|
the alpha phase is rebased onto the most recent code from the
|
|
stable phase before work commences. This cycle continues for the
|
|
lifetime of the code.</p>
|
|
</section>
|
|
</section>
|
|
<section id="services">
|
|
<h2><a href="#services">Services</a></h2>
|
|
<p>This list contains the policies and practices of my services.</p>
|
|
<p>My policies and practices are heavily security- and privacy-focused, with
|
|
improvements made on an ongoing basis as new technologies, protocols, and
|
|
software become available.</p>
|
|
<h3 id="services-websites"><a href="#services-websites">Websites</a></h3>
|
|
<ul>
|
|
<li>Unnecessary logging avoided (only logs required for security
|
|
and debugging purposes)</li>
|
|
<li>All server logs purged every 14 days</li>
|
|
<li>User IP addresses used only for security and debugging
|
|
purposes (purged along with logs)</li>
|
|
<li>All connections made via
|
|
<a href="https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.3">TLS 1.3</a>
|
|
only to ensure the most secure
|
|
<a href="https://en.wikipedia.org/wiki/Authenticated_encryption">AEAD</a>
|
|
ciphers are used, along with
|
|
<a href="https://en.wikipedia.org/wiki/Forward_secrecy">forward secrecy</a></li>
|
|
<li>All connections made via high-security AEAD ciphers,
|
|
preferring AES-256-GCM for devices with AES
|
|
hardware acceleration, and ChaCha20-Poly1305 for devices without
|
|
AES hardware acceleration, with AES-128-GCM as a fallback
|
|
(AES-128-GCM is mandated for TLS 1.3 by
|
|
<a href="https://datatracker.ietf.org/doc/rfc8446#section-9.1">IETF RFC8446 section 9.1</a>)</li>
|
|
<li>All connections are made via high-security key exchange
|
|
protocols, preferring X25519, with secp256r1 as a fallback
|
|
(secp256r1 is mandated for TLS 1.3 by IETF RFC8446 section
|
|
9.1)</li>
|
|
<li><a href="https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions">Domain Name System Security Extensions (DNSSEC)</a>
|
|
enabled to provide a root-of-trust for encryption and
|
|
authentication for domain and server configuration</li>
|
|
<li><a href="https://en.wikipedia.org/wiki/DNS_Certification_Authority_Authorization">Certification Authority Authorization (CAA)</a>
|
|
records enabled to prevent all certificate authorities other
|
|
than
|
|
<a href="https://letsencrypt.org/">Let's Encrypt</a> from
|
|
issuing TLS certificates for my domains</li>
|
|
<li><a href="https://en.wikipedia.org/wiki/SSHFP_record">Secure Shell fingerprint (SSHFP)</a>
|
|
records enabled to provide a DNS-based root-of-trust for SSH
|
|
connections to my domains</li>
|
|
<li>Referrer headers disabled to prevent knowing where a user
|
|
was redirected from</li>
|
|
<li>All content sourced from my own domains, with third-party
|
|
content prohibited via
|
|
<a href="https://en.wikipedia.org/wiki/Content_Security_Policy">Content Security Policy</a>
|
|
configuration</li>
|
|
<li>All servers physically under my control (no VPS or other
|
|
hosting providers)</li>
|
|
<li>No proprietary services, ensuring I have complete control
|
|
over my services, and vendor lock-in does not occur</li>
|
|
</ul>
|
|
</section>
|
|
<section id="recommendations">
|
|
<h2><a href="#recommendations">Recommendations</a></h2>
|
|
<section id="recommendations-hardware">
|
|
<h3><a href="#recommendations-hardware">Hardware</a></h3>
|
|
<section id="recommendations-hardware-smartphone">
|
|
<h4><a href="#recommendations-hardware-smartphone">Smartphone</a></h4>
|
|
<div style="overflow-x:auto;">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th id="hardware-smartphone-type">Type</th>
|
|
<th id="hardware-smartphone">Hardware</th>
|
|
<th id="hardware-smartphone-description">Description</th>
|
|
<th id="hardware-smartphone-source_model">Source model<br/>
|
|
(License)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th id="hardware-smartphone-smartphone">Smartphone</th>
|
|
<th id ="google-pixel" headers="hardware hardware-smartphone-smartphone">
|
|
<img src="asset/img/google-pixel_8_pro.png" width="100" height="100" alt="Front and rear view of a Google Pixel 8 Pro in Obsidian colour"/><br/>
|
|
Google Pixel
|
|
</th>
|
|
<td class="desc" headers="hardware-description google-pixel">
|
|
<h5>Security/Privacy</h5>
|
|
<p>Google Pixel devices are the best
|
|
Android devices available on the market
|
|
for
|
|
<a href="https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html">security and privacy</a>.</p>
|
|
<p>They allow locking the bootloader
|
|
with a
|
|
<a href="https://android.googlesource.com/platform/external/avb/+/master/README.md#pixel-2-and-later">custom Android Verified Boot (AVB) key</a>
|
|
in order to preserve security and
|
|
privacy features when installing a
|
|
custom operating system, such as
|
|
<a href="https://source.android.com/docs/security/features/verifiedboot/">verified boot</a>
|
|
which verifies that the OS has not been
|
|
corrupted or tampered with, and
|
|
<a href="https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection">rollback protection</a>
|
|
which prevents an adversary from rolling
|
|
back the OS or firmware version to a
|
|
previous version with known security
|
|
vulnerabilities.</p>
|
|
<p>They also include a
|
|
<a href="https://developer.android.com/training/articles/keystore#HardwareSecurityModule">hardware security module</a>
|
|
(Titan M2, improving on the previous
|
|
generation
|
|
<a href="https://security.googleblog.com/2018/10/building-titan-better-security-through.html">Titan M</a>)
|
|
which is extremely resistant to both
|
|
remote and physical attacks due to being
|
|
completely isolated from the rest of the
|
|
system, including the operating system.
|
|
Titan M2 ensures that the device cannot
|
|
be remotely compromised by requiring the
|
|
side buttons of the device to be
|
|
physically pressed for some sensitive
|
|
operations. Titan M2 also takes the role
|
|
of
|
|
<a href="https://source.android.com/docs/security/best-practices/hardware#strongbox-keymaster">Android StrongBox Keymaster</a>,
|
|
a
|
|
<a href="https://source.android.com/docs/security/features/keystore">hardware-backed Keystore</a>
|
|
containing sensitive user keys which are
|
|
unavailable to the OS or apps running on
|
|
it without authorisation from Titan M2
|
|
itself.
|
|
<a href="https://android-developers.googleblog.com/2018/05/insider-attack-resistance.html">Insider attack resistance</a>
|
|
ensures that Titan M2 firmware can be
|
|
flashed only if the user PIN/password is
|
|
already known, making it impossible to
|
|
backdoor the device without already
|
|
knowing these secrets.</p>
|
|
<p>Google Pixel device kernels are
|
|
compiled with
|
|
<a href="https://android-developers.googleblog.com/2018/10/control-flow-integrity-in-android-kernel.html">forward-edge control-flow integrity</a>
|
|
and
|
|
<a href="https://security.googleblog.com/2019/10/protecting-against-code-reuse-in-linux_30.html">backward-edge control-flow integrity</a>
|
|
to prevent code reuse attacks against
|
|
the kernel. MAC address randomisation is
|
|
<a href="https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html">implemented well, along with minimal probe requests and randomised initial sequence numbers</a>.</p>
|
|
<p>Google releases
|
|
<a href="https://source.android.com/docs/security/bulletin/pixel/">guaranteed monthly security updates</a>,
|
|
ensuring Google Pixel devices are
|
|
up-to-date and quickly protected against
|
|
security vulnerabilities.</p>
|
|
<p>Pixel 6-series and 7-series devices
|
|
are a large improvement over the already
|
|
very secure and private previous
|
|
generation Pixel devices. They replace
|
|
ARM-based Titan M with RISC-V-based
|
|
Titan M2, reducing trust by removing ARM
|
|
from the equation. Titan M2 is more
|
|
resiliant to attacks than Titan M, and
|
|
is
|
|
<a href="https://www.tuv-nederland.nl/assets/files/cerfiticaten/2022/09/nscib-cc-22-0228971-cert-final.pdf">AVA_VAN.5 certified</a>,
|
|
the highest level of vulnerability
|
|
assessment. Google's in-house Tensor
|
|
System-on-Chip includes Tensor Security
|
|
Core, further improving device
|
|
security.</p>
|
|
<p>Pixel 8-series includes Armv9's
|
|
<a href="https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/enhanced-security-through-mte">Memory Tagging Extension</a>,
|
|
which dramatically increases device
|
|
security by eliminating up to 95% of all
|
|
security issues caused by
|
|
memory-unsafety.</p>
|
|
<h5>Support</h5>
|
|
<p>Pixel 5a is supported for a
|
|
<a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-a-g-pixel-pixel-a-g-pixel-a-pixel-xl-pixel">minimum of 3 years from launch</a>.</p>
|
|
<p>Pixel 6-series, Pixel 7-series, Pixel
|
|
Fold, and Pixel Tablet are supported for
|
|
a
|
|
<a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-a-pixel-pixel-pro-pixel-a-pixel-pixel-pro-pixel-fold">minimum of 5 years from launch</a>.</p>
|
|
<p>Pixel 8-series is supported for a
|
|
<a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-pro">minimum of 7 years from launch</a>.</p>
|
|
</td>
|
|
<td headers="hardware-smartphone-source_model google-pixel">
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
<section id="recommendations-software">
|
|
<h3><a href="#recommendations-software">Software</a></h3>
|
|
<section id="recommendations-software-desktop">
|
|
<h4><a href="#recommendations-software-desktop">Desktop</a></h4>
|
|
<div style="overflow-x:auto;">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th id="software-desktop-type">Type</th>
|
|
<th id="software-desktop">Software</th>
|
|
<th id="software-desktop-description">Description</th>
|
|
<th id="software-desktop-source_model">Source model<br/>
|
|
(License)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th id="software-desktop-os">Operating system</th>
|
|
<th id="gentoo_linux" headers="software-desktop software-desktop-os">
|
|
<img src="asset/img/logo-gentoo_linux.png" width="100" height="100" alt="Gentoo Linux logo"/><br/>
|
|
Gentoo Linux
|
|
</th>
|
|
<td class="desc" headers="software-description gentoo_linux">
|
|
<p><a href="https://www.gentoo.org/">Gentoo Linux</a>
|
|
is a highly modular, source-based, Linux-based
|
|
operating system which allows vast customisation
|
|
to tailor the operating system to suit your
|
|
specific needs. There are many advantages to
|
|
such an operating system, with the most notable
|
|
being the ability to optimise the software for
|
|
security, privacy, performance, or power usage;
|
|
however, there are effectively unlimited other
|
|
use cases, or a combination of multiple use
|
|
cases.</p>
|
|
<p>I have focused on security hardening and
|
|
privacy hardening, placing performance below
|
|
those aspects, although my system is still very
|
|
performant. Some of the hardening I apply
|
|
includes
|
|
<a href="https://en.wikipedia.org/wiki/Buffer_overflow_protection">stack protection</a>,
|
|
<a href="https://en.wikipedia.org/wiki/Integer_overflow">signed integer overflow trapping</a>,
|
|
and GrapheneOS'
|
|
<a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a>
|
|
memory allocator.</p>
|
|
<p>You can find my Gentoo Linux configurations
|
|
in my
|
|
<a href="https://src.inferencium.net/Inferencium/cfg/">configuration respository</a>.</p>
|
|
</td>
|
|
<td headers="software-desktop-source_model gentoo_linux">
|
|
Open-source<br/>
|
|
(GPL-2.0-only)
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th id="software-web_browser">Web browser</th>
|
|
<th id="chromium" headers="software-desktop software-web_browser">
|
|
<img src="asset/img/logo-chromium.png" width="100" height="100" alt="Chromium logo"/><br/>
|
|
Chromium
|
|
</th>
|
|
<td class="desc" headers="software-description chromium">
|
|
<p><a href="https://chromium.org/">Chromium</a>
|
|
is a highly secure web browser which is often ahead
|
|
of other web browsers in security aspects. It has a
|
|
dedicated security team and a very impressive
|
|
<a href="https://www.chromium.org/Home/chromium-security/brag-sheet/">security brag sheet</a>.
|
|
Chromium's security features include a strong
|
|
<a href="https://code.google.com/p/chromium/wiki/LinuxSandboxing">multi-layer sandbox</a>,
|
|
strong
|
|
<a href="https://www.chromium.org/Home/chromium-security/site-isolation">site isolation</a>,
|
|
<a href="https://www.chromium.org/Home/chromium-security/binding-integrity">Binding Integrity</a>
|
|
memory hardening, and
|
|
<a href="https://www.chromium.org/developers/testing/control-flow-integrity/">control-flow integrity (CFI)</a>.</p></td>
|
|
<td headers="software-desktop-source_model chromium">
|
|
Open-source<br/>
|
|
(BSD-3-Clause)
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
<section id="recommendations-software-smartphone">
|
|
<h4><a href="#recommendations-software-smartphone">Smartphone</a></h4>
|
|
<div style="overflow-x:auto;">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th id="software-smartphone-type">Type</th>
|
|
<th id="software-smartphone">Software</th>
|
|
<th id="software-smartphone-description">Description</th>
|
|
<th id="software-smartphone-source_model">Source model<br/>
|
|
(License)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th id="software-smartphone-os">Operating system</th>
|
|
<th id="grapheneos" headers="software-smartphone software-smartphone-os">
|
|
<img src="asset/img/logo-grapheneos.png" width="100" height="100" alt="GrapheneOS logo"/><br/>
|
|
GrapheneOS
|
|
</th>
|
|
<td class="desc" headers="software-smartphone-description grapheneos">
|
|
<p><a href="https://grapheneos.org/">GrapheneOS</a>
|
|
is a security-hardened, privacy-hardened,
|
|
secure-by-default, Android-based operating
|
|
system which implements extensive, systemic
|
|
security and privacy hardening to the Android
|
|
Open Source Project used as its base codebase.
|
|
Its hardening includes closing gaps for apps to
|
|
access sensitive system information, a secure
|
|
app spawning feature which avoids sharing
|
|
address space layout and other secrets AOSP's
|
|
default Zygote app spawning model would share,
|
|
<a href="https://github.com/GrapheneOS/kernel_gs-gs101/">hardened kernel</a>,
|
|
hardened memory allocator
|
|
(<a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a>)
|
|
to protect against common memory corruption
|
|
vulnerabilities,
|
|
<a href="https://github.com/GrapheneOS/platform_bionic/">hardened Bionic standard C library</a>,
|
|
<a href="https://github.com/GrapheneOS/platform_system_sepolicy/">stricter SELinux policies</a>,
|
|
and local and remote hardware-backed attestation
|
|
(<a href="https://attestation.app/about/">Auditor</a>)
|
|
to ensure the OS has not been corrupted or
|
|
tampered with.</p>
|
|
<p>GrapheneOS only supports
|
|
<a href="https://grapheneos.org/faq#device-support">high security and well-supported devices</a>
|
|
which receive full support from their
|
|
manufacturers, including firmware updates, long
|
|
support lifecycles, secure hardware, and overall
|
|
high security practices.</p>
|
|
<p>For an extensive list of features GrapheneOS
|
|
provides, visit its
|
|
<a href="https://grapheneos.org/features/">official features list</a>
|
|
which provides extensive documentation.</p>
|
|
</td>
|
|
<td headers="software-smartphone-source_model grapheneos">
|
|
Open-source<br/>
|
|
(MIT)
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th id="software-smartphone-web_browser">Web browser</th>
|
|
<th id="vanadium" headers="software-smartphone software-smartphone-web_browser">
|
|
<img src="asset/img/logo-vanadium.png" width="100" height="100" alt="Vanadium logo"/><br/>
|
|
Vanadium
|
|
</th>
|
|
<td class="desc" headers="software-smartphone-description vanadium">
|
|
<p>Vanadium is a security-hardened,
|
|
privacy-hardened Chromium-based web browser
|
|
which utilises GrapheneOS' operating system
|
|
hardening to implement stronger defenses to the
|
|
already very secure Chromium web browser. Its
|
|
hardening alongside Chromium's base security
|
|
features includes
|
|
<a href="https://github.com/GrapheneOS/Vanadium/blob/13/patches/0081-Implement-UI-for-JIT-site-settings.patch">disabling JavaScript just-in-time (JIT) compilation by default</a>,
|
|
<a href="https://github.com/GrapheneOS/Vanadium/blob/13/patches/0051-stub-out-the-battery-status-API.patch">stubbing out the battery status API to prevent abuse of it</a>,
|
|
and
|
|
<a href="https://github.com/GrapheneOS/Vanadium/blob/13/patches/0084-Toggle-for-navigating-external-URL-in-incognito.patch">always-on Incognito mode as an option</a>.</p>
|
|
<p>Vanadium's source code, including its Chromium
|
|
patch-set, can be found in its
|
|
<a href="https://github.com/GrapheneOS/Vanadium/">official repository</a>.</p>
|
|
</td>
|
|
<td headers="software-smartphone-source_model vanadium">
|
|
Open-source<br/>
|
|
(GPL-2.0-only)
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="2" id="software-smartphone-messenger">Messenger</th>
|
|
<th id="molly" headers="software-smartphone software-smartphone-messenger">
|
|
<img src="asset/img/logo-molly.png" width="100" height="100" alt="Molly logo"/><br/>
|
|
Molly
|
|
</th>
|
|
<td class="desc" headers="software-smartphone-description molly">
|
|
<p><a href="https://molly.im/">Molly</a>
|
|
is a security-hardened, privacy-hardened
|
|
<a href="https://signal.org/">Signal</a>
|
|
client which hardens Signal by using a variety
|
|
of
|
|
<a href="https://github.com/mollyim/mollyim-android#features">unique features</a>,
|
|
allowing
|
|
<a href="https://github.com/mollyim/mollyim-android/wiki/Data-Encryption-At-Rest">locking the database when not in use</a>,
|
|
and
|
|
<a href="https://github.com/mollyim/mollyim-android/blob/a81ff7d120adc9d427be17239107343146bad704/app/src/main/java/org/thoughtcrime/securesms/crypto/MasterSecretUtil.java#L91">utilising Android StrongBox</a>
|
|
to protect user keys using the device's hardware
|
|
security module.</p>
|
|
<p>Molly is available in
|
|
<a href="https://github.com/mollyim/mollyim-android#free-and-open-source">2 flavours</a>:
|
|
<ul>
|
|
<li>Molly, which includes the
|
|
same proprietary Google code as
|
|
Signal to support more
|
|
features.</li>
|
|
<li>Molly-FOSS, which removes
|
|
the proprietary Google code to
|
|
provide an entirely open-source
|
|
client.</li>
|
|
</ul>
|
|
</p>
|
|
</td>
|
|
<td headers="software-smartphone-source_model molly">
|
|
Open-source<br/>
|
|
(GPL-3.0-only)
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th id="conversations" headers="software-smartphone software-smartphone-messenger">
|
|
<img src="asset/img/logo-conversations.png" width="100" height="100" alt="Conversations logo"/><br/>
|
|
Conversations
|
|
</th>
|
|
<td class="desc" headers="software-smartphone-description conversations">
|
|
<p><a href="https://conversations.im/">Conversations</a>
|
|
is a well-designed Android
|
|
<a href="https://xmpp.org/">XMPP</a>
|
|
client which serves as the de facto XMPP
|
|
reference client and has great usability.</p>
|
|
</td>
|
|
<td headers="software-smartphone-source_model conversations">
|
|
Open-source<br/>
|
|
(GPL-3.0-only)
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
<section id="recommendations-music">
|
|
<h3><a href="#recommendations-music">Music</a></h3>
|
|
<p>For a curated list of music I enjoy,
|
|
visit my
|
|
<a href="music.xhtml">music page</a>.</p>
|
|
</section>
|
|
</section>
|
|
<section id="gnulinux_or_linux">
|
|
<h2><a href="#gnulinux_or_linux">Is it GNU/Linux or Just Linux?</a></h2>
|
|
<p>It's just Linux. GNU is unrelated to Linux, which is a
|
|
kernel developed by
|
|
<a href="https://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>.
|
|
Linux can be used entirely without GNU software in
|
|
userspace, and the kernel can be compiled without the use of
|
|
GNU tools. Just because GNU tools were used to initally
|
|
develop and compile the kernel, and were initially the only
|
|
available tools for userspace, does not make this true
|
|
today, and it never made GNU a part of Linux itself at any
|
|
point of time.</p>
|
|
<p>Where are all of the other forward-slashes for every
|
|
other piece of software on a Linux-based system which makes
|
|
it just as usable? If a system is running "GNU/Linux", it
|
|
should be using more than a single forward-slash when there
|
|
is more to the system than only GNU.</p>
|
|
</section>
|
|
</body>
|
|
</html>
|