website/about.xhtml

668 lines
42 KiB
HTML
Raw Normal View History

2022-06-30 06:19:28 +01:00
<!DOCTYPE html>
<!-- Inferencium - Website - About -->
<!-- Version: 8.1.0-alpha.2 -->
2023-04-13 22:35:34 +01:00
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
2023-04-13 22:44:23 +01:00
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
2023-11-16 16:52:21 +00:00
<title>Inferencium - About</title>
2023-04-13 22:44:23 +01:00
</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>
2024-01-29 18:30:37 +00:00
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
2024-01-29 18:30:37 +00:00
<div><a href="key.xhtml">Key</a></div>
2023-11-16 15:19:34 +00:00
</nav>
<h1 id="about"><a href="#about">About</a></h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
2023-06-18 16:26:02 +01:00
<ul>
2023-09-02 13:44:01 +01:00
<li><a href="#about_me">About Me</a></li>
2024-01-13 07:36:58 +00:00
<li><a href="#date_time">Date and Time</a></li>
2023-09-02 13:44:01 +01:00
<li><a href="#licensing">Licensing</a></li>
2023-06-18 16:26:02 +01:00
<ul>
2023-11-22 03:12:47 +00:00
<li><a href="#licensing-code">Code</a></li>
<ul>
<li><a href="#licensing-bsd-3-clause">BSD 3-Clause License</a></li>
2023-09-09 23:21:05 +01:00
<li><a href="#licensing-gpl-2.0">GNU General Public License v2.0</a></li>
</ul>
2023-09-09 23:21:05 +01:00
<li><a href="#licensing-noncode">Non-code</a></li>
2023-06-18 16:26:02 +01:00
<ul>
2023-09-09 23:21:05 +01:00
<li><a href="#licensing-cc-by-4.0">Creative Commons Attribution 4.0 International</a></li>
2023-06-18 16:26:02 +01:00
</ul>
2023-10-30 06:53:28 +00:00
<li><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open-source and Free Software?</a></li>
2023-06-18 16:26:02 +01:00
</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>
2023-09-16 20:22:32 +01:00
<li><a href="#services">Services</a></li>
<ul>
2023-10-26 04:34:12 +00:00
<li><a href="#services-websites">Websites</a></li>
2023-09-16 20:22:32 +01:00
</ul>
2023-09-02 13:44:01 +01:00
<li><a href="#recommendations">Recommendations</a></li>
2023-06-18 16:26:02 +01:00
<ul>
2023-10-26 04:34:12 +00:00
<li><a href="#recommendations-hardware">Hardware</a></li>
2023-06-18 16:26:02 +01:00
<ul>
2023-10-26 04:34:12 +00:00
<li><a href="#recommendations-hardware-smartphone">Smartphone</a></li>
2023-06-18 16:26:02 +01:00
</ul>
2023-10-26 04:34:12 +00:00
<li><a href="#recommendations-software">Software</a></li>
2023-06-18 16:26:02 +01:00
<ul>
2023-10-26 04:34:12 +00:00
<li><a href="#recommendations-software-desktop">Desktop</a></li>
<li><a href="#recommendations-software-smartphone">Smartphone</a></li>
2023-06-18 16:26:02 +01:00
</ul>
2023-10-26 04:34:12 +00:00
<li><a href="#recommendations-music">Music</a></li>
2023-06-18 16:26:02 +01:00
</ul>
<li><a href="#gnulinux_or_linux">Is it GNU/Linux or Just Linux?</a></li>
2023-06-18 16:26:02 +01:00
</ul>
</nav>
2023-06-18 16:26:02 +01:00
<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>
2023-09-09 23:26:24 +01:00
<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>
2023-06-18 16:26:02 +01:00
</section>
2024-01-13 07:36:58 +00:00
<section id="date_time">
<h2><a href="#date_time">Date and Time</a></h2>
2024-01-13 07:36:58 +00:00
<p>All dates and times across my services are
<a href="https://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>
2023-06-18 16:26:02 +01:00
<section id="licensing">
<h2><a href="#licensing">Licensing</a></h2>
2023-09-09 23:31:11 +01:00
<p>I care about upstreaming and sharing code, strongly preferring licenses which
2023-10-30 06:53:28 +00:00
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>
2023-09-02 13:44:01 +01:00
<p><a href="https://iso.org/standard/81870.html">ISO 5962:2021</a>
2023-06-18 16:26:02 +01:00
is used for licensing, in the format
<code>SPDX-License-Identifier: &lt;license&gt;</code>; see the
<a href="https://spdx.org/licenses/">SPDX License List</a>
2023-06-18 16:26:02 +01:00
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>
2023-10-26 04:30:23 +00:00
<h3 id="licensing-code"><a href="#licensing-code">Code</a></h3>
<h4 id="licensing-bsd-3-clause"><a href="#licensing-bsd-3-clause">BSD 3-Clause License</a></h4>
<code>SPDX-License-Identifier: BSD-3-Clause</code>
2024-01-13 07:40:40 +00:00
<p><b>Type: Permissive</b></p>
<p><a href="https://spdx.org/licenses/BSD-3-Clause.html">BSD 3-Clause License</a>
2023-10-30 06:53:28 +00:00
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>
2023-10-26 04:30:23 +00:00
<h4 id="licensing-gpl-2.0"><a href="#licensing-gpl-2.0">GNU General Public License v2.0</a></h4>
2023-09-09 23:21:05 +01:00
<code>SPDX-License-Identifier: GPL-2.0-only</code>
2024-01-13 07:40:40 +00:00
<p><b>Type: Copyleft</b></p>
2023-09-09 23:21:05 +01:00
<p><a href="https://spdx.org/licenses/GPL-2.0-only.html">GNU General Public License v2.0</a>
2023-10-30 06:53:28 +00:00
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
2023-09-09 23:21:05 +01:00
license, it is avoided unless such restrictions would be
2023-10-30 06:53:28 +00:00
beneficial to my code; whenever this is the case, the
GNU General Public License v2.0 will be used, rather
than the more restrictive
2023-09-09 23:31:11 +01:00
<a href="https://spdx.org/licenses/GPL-3.0-only.html">GNU General Public License v3.0</a>,
2023-10-30 06:53:28 +00:00
and relicensing derivatives under the GNU General Public
License v3.0 will be disallowed.</p>
2023-10-26 04:30:23 +00:00
<h3 id="licensing-noncode"><a href="#licensing-noncode">Non-code</a></h3>
<h4 id="licensing-cc-by-4.0"><a href="#licensing-cc-by-4.0">Creative Commons Attribution 4.0 International</a></h4>
2023-09-09 23:21:05 +01:00
<code>SPDX-License-Identifier: CC-BY-4.0</code>
2024-01-13 07:40:40 +00:00
<p><b>Type: Permissive</b></p>
2023-09-09 23:21:05 +01:00
<p><a href="https://spdx.org/licenses/CC-BY-4.0.html">Creative Commons Attribution 4.0 International</a>
2023-10-30 06:53:28 +00:00
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>
2023-10-26 04:30:23 +00:00
<h3 id="licensing-open_source_vs_free_software"><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
2023-10-26 03:45:06 +00:00
isn't "free", it's not open-source, either.</p>
2023-06-18 16:26:02 +01:00
</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>
2023-09-16 20:22:32 +01:00
<section id="services">
<h2><a href="#services">Services</a></h2>
2023-09-16 20:22:32 +01:00
<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
2023-10-30 06:54:18 +00:00
software become available.</p>
2023-10-26 04:34:12 +00:00
<h3 id="services-websites"><a href="#services-websites">Websites</a></h3>
2023-09-16 20:22:32 +01:00
<ul>
2023-10-30 06:53:28 +00:00
<li>Unnecessary logging avoided (only logs required for security
and debugging purposes)</li>
2023-09-16 20:22:32 +01:00
<li>All server logs purged every 14 days</li>
2023-09-16 20:31:07 +01:00
<li>User IP addresses used only for security and debugging
purposes (purged along with logs)</li>
2024-01-13 08:33:10 +00:00
<li>All connections made via
<a href="https://wikipedia.org/wiki/Transport_Layer_Security#TLS_1.3">TLS 1.3</a>
only to ensure the most secure
<a href="https://wikipedia.org/wiki/Authenticated_encryption">AEAD</a>
ciphers are used, along with
<a href="https://wikipedia.org/wiki/Forward_secrecy">forward secrecy</a></li>
2023-09-16 20:22:32 +01:00
<li>All connections made via high-security AEAD ciphers,
preferring AES-256-GCM for devices with AES
2024-01-30 16:25:42 +00:00
hardware acceleration, and ChaCha20-Poly1305 for devices without
AES hardware acceleration, with AES-128-GCM as a fallback
2023-09-16 20:22:32 +01:00
(AES-128-GCM is mandated for TLS 1.3 by
2024-01-13 08:33:57 +00:00
<a href="https://datatracker.ietf.org/doc/rfc8446#section-9.1">IETF RFC8446 section 9.1</a>)</li>
2023-09-16 20:22:32 +01:00
<li>All connections are made via high-security key exchange
protocols, preferring X25519, with secp256r1 as a fallback
2024-01-30 16:27:52 +00:00
(secp256r1 is mandated for TLS 1.3 by IETF RFC8446 section
9.1)</li>
2024-01-13 08:33:10 +00:00
<li><a href="https://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://wikipedia.org/wiki/DNS_Certification_Authority_Authorization">Certification Authority Authorization (CAA)</a>
2024-01-13 08:33:10 +00:00
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://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>
2023-09-16 20:22:32 +01:00
<li>Referrer headers disabled to prevent knowing where a user
2023-09-16 20:25:05 +01:00
was redirected from</li>
2023-09-16 20:22:32 +01:00
<li>All content sourced from my own domains, with third-party
2024-01-13 08:33:10 +00:00
content prohibited via
<a href="https://wikipedia.org/wiki/Content_Security_Policy">Content Security Policy</a>
2023-09-16 20:22:32 +01:00
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>
2023-06-18 16:26:02 +01:00
<section id="recommendations">
<h2><a href="#recommendations">Recommendations</a></h2>
2023-10-26 04:34:12 +00:00
<h3 id="recommendations-hardware"><a href="#recommendations-hardware">Hardware</a></h3>
<h4 id="recommendations-hardware-smartphone"><a href="#recommendations-hardware-smartphone">Smartphone</a></h4>
2023-10-05 20:16:09 +01:00
<div style="overflow-x:auto;">
2023-06-18 16:26:02 +01:00
<table>
2023-08-30 17:29:32 +01:00
<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>
2023-08-30 17:29:32 +01:00
</tr>
2023-09-02 13:44:01 +01:00
<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/>
2023-10-30 06:53:28 +00:00
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>
2023-11-22 03:27:02 +00:00
<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
2024-01-30 16:39:24 +00:00
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">
2023-10-30 06:53:28 +00:00
</td>
</tr>
</table>
</div>
<h3 id="recommendations-software"><a href="#recommendations-software">Software</a></h3>
<h4 id="recommendations-software-desktop"><a href="#recommendations-software-desktop">Desktop</a></h4>
<div style="overflow-x:auto;">
<table>
<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>
2023-10-30 06:53:28 +00:00
</tr>
<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/>
2023-10-30 06:53:28 +00:00
Gentoo Linux
</th>
<td class="desc" headers="software-description gentoo_linux">
2023-10-30 06:53:28 +00:00
<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
2023-10-30 06:53:28 +00:00
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>,
2023-10-30 06:53:28 +00:00
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
2023-10-30 06:53:28 +00:00
<a href="https://src.inferencium.net/Inferencium/cfg/">configuration respository</a>.</p>
</td>
<td headers="software-desktop-source_model gentoo_linux">
Open-source<br/>
2023-10-30 06:53:28 +00:00
(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/>
2023-10-30 06:53:28 +00:00
Chromium
</th>
<td class="desc" headers="software-description chromium">
2023-10-30 06:53:28 +00:00
<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
2023-10-30 06:53:28 +00:00
<a href="https://www.chromium.org/Home/chromium-security/brag-sheet/">security brag sheet</a>.
Chromium's security features include a strong
2023-10-30 06:53:28 +00:00
<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/>
2023-10-30 06:53:28 +00:00
(BSD-3-Clause)
</td>
</tr>
</table>
</div>
<h4 id="recommendations-software-smartphone"><a href="#recommendations-software-smartphone">Smartphone</a></h4>
<div style="overflow-x:auto;">
<table>
<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>
2023-10-30 06:53:28 +00:00
</tr>
<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/>
2023-10-30 06:53:28 +00:00
GrapheneOS
</th>
<td class="desc" headers="software-smartphone-description grapheneos">
2023-10-30 06:53:28 +00:00
<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,
2023-10-30 06:53:28 +00:00
<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,
2023-10-30 06:53:28 +00:00
<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
2023-10-30 06:53:28 +00:00
(<a href="https://attestation.app/about/">Auditor</a>)
to ensure the OS has not been corrupted or tampered
with.</p>
2023-10-30 06:53:28 +00:00
<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
2023-10-30 06:53:28 +00:00
practices.</p>
<p>For an extensive list of features GrapheneOS
provides, visit its
2023-10-30 06:53:28 +00:00
<a href="https://grapheneos.org/features/">official features list</a>
which provides extensive documentation.</p>
2023-10-30 06:53:28 +00:00
</td>
<td headers="software-smartphone-source_model grapheneos">
Open-source<br/>
2023-10-30 06:53:28 +00:00
(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/>
2023-10-30 06:53:28 +00:00
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
2023-10-30 06:53:28 +00:00
<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
2023-10-30 06:53:28 +00:00
<a href="https://github.com/GrapheneOS/Vanadium/">official repository</a>.</p></td>
<td headers="software-smartphone-source_model vanadium">
Open-source<br/>
2023-10-30 06:53:28 +00:00
(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/>
2023-10-30 06:53:28 +00:00
Molly
</th>
<td class="desc" headers="software-smartphone-description molly">
2023-10-30 06:53:28 +00:00
<p><a href="https://molly.im/">Molly</a>
is a security-hardened, privacy-hardened
2023-10-30 06:53:28 +00:00
<a href="https://signal.org/">Signal</a>
client which hardens Signal by using a variety of
2023-10-30 06:53:28 +00:00
<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
2023-10-30 06:53:28 +00:00
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>
2023-10-30 06:53:28 +00:00
</ul>
</p>
</td>
<td headers="software-smartphone-source_model molly">
Open-source<br/>
2023-10-30 06:53:28 +00:00
(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/>
2023-10-30 06:53:28 +00:00
Conversations
</th>
<td class="desc" headers="software-smartphone-description conversations">
2023-10-30 06:53:28 +00:00
<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>
2023-10-30 06:53:28 +00:00
</td>
<td headers="software-smartphone-source_model conversations">
Open-source<br/>
2023-10-30 06:53:28 +00:00
(GPL-3.0-only)
</td>
</tr>
</table>
</div>
2023-06-18 16:26:02 +01:00
</section>
2023-10-26 04:34:12 +00:00
<section id="recommendations-music">
<h3><a href="#recommendations-music">Music</a></h3>
2023-06-18 16:26:02 +01:00
<p>For a curated list of music I enjoy, visit my
<a href="music.xhtml">music page</a>.</p>
2023-06-18 16:26:02 +01:00
</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
Linus Torvalds. 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>
2023-04-29 11:10:43 +01:00
</body>
2022-06-30 06:19:28 +01:00
</html>