Update webpage "About" from version 6.2.0 to 6.2.2

This commit is contained in:
inference 2023-10-30 07:03:40 +00:00
parent 41a7718813
commit f44a1003aa
Signed by: inference
SSH Key Fingerprint: SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc

View File

@ -5,7 +5,7 @@
<!-- Copyright 2022 Jake Winters --> <!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause --> <!-- SPDX-License-Identifier: BSD-3-Clause -->
<!-- Version: 6.2.0 --> <!-- Version: 6.2.2 -->
<html> <html>
@ -47,7 +47,7 @@
<ul> <ul>
<li><a href="#licensing-cc-by-4.0">Creative Commons Attribution 4.0 International</a></li> <li><a href="#licensing-cc-by-4.0">Creative Commons Attribution 4.0 International</a></li>
</ul> </ul>
<li><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open-source and Free Software?</a></li> <li><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open-source and Free Software?</a></li>
</ul> </ul>
<li><a href="#services">Services</a></li> <li><a href="#services">Services</a></li>
<ul> <ul>
@ -70,25 +70,26 @@
</section> </section>
<section id="about_me"> <section id="about_me">
<h2 id="about_me"><a href="#about_me">About Me</a></h2> <h2 id="about_me"><a href="#about_me">About Me</a></h2>
<p>I am Jake Winters, also known by my pseudonym "Inference", a security researcher <p>I am Jake Winters, also known by my pseudonym "Inference", a security
based in United Kingdom.<br> researcher based in United Kingdom.<br>
I am the founder, lead developer, and administrator, of Inferencium.<br> I am the founder, lead developer, and administrator, of Inferencium.<br>
All opinions are my own, and are not necessarily shared with projects or people I am All opinions are my own, and are not necessarily shared with projects or people
affiliated with.</p> I am affiliated with.</p>
<p>I write about my research and experience in cybersecurity and also physical security. <p>I write about my research and experience in cybersecurity and also physical
Most of my postings are security-related, but I occasionally post about other aspects of security. Most of my postings are security-related, but I occasionally post
my life.</p> about other aspects of my life.</p>
<p>I am an open source advocate for the preservation and modifiability of source code. I <p>I am an open source advocate for the preservation and modifiability of source
believe source code should be considered human knowledge as much as past knowledge and code. I believe source code should be considered human knowledge as much as past
teachings were; it is how modern humanity survives and runs.<br> knowledge and teachings were; it is how modern humanity survives and runs.<br>
Source code being modifiable allows it to be adapted for use by anyone, whether to add Source code being modifiable allows it to be adapted for use by anyone, whether
features, harden it for increased security and/or privacy, or provide accessibility for to add features, harden it for increased security and/or privacy, or provide
disabled users.<br> accessibility for disabled users.<br>
I am also a modular design advocate for the ability to securely and robustly make I am also a modular design advocate for the ability to securely and robustly
changes to hardware and software without the entire system being affected.</p> make changes to hardware and software without the entire system being
<p>I run the public Systems Hardening XMPP channel dedicated to systems security and affected.</p>
privacy hardening at <code>sys-hardening@muc.xmpp.inferencium.net</code>, and its <p>I run the public Systems Hardening XMPP channel dedicated to systems security
respective off-topic channel at and privacy hardening at <code>sys-hardening@muc.xmpp.inferencium.net</code>,
and its respective off-topic channel at
<code>sys-hardening-ot@muc.xmpp.inferencium.net</code>.</p> <code>sys-hardening-ot@muc.xmpp.inferencium.net</code>.</p>
<p>If you wish to contact me for any reason, you can use my <p>If you wish to contact me for any reason, you can use my
<a href="https://inferencium.net/contact.html">contact methods</a>.</p> <a href="https://inferencium.net/contact.html">contact methods</a>.</p>
@ -108,15 +109,17 @@
<section id="licensing"> <section id="licensing">
<h2 id="licensing"><a href="#licensing">Licensing</a></h2> <h2 id="licensing"><a href="#licensing">Licensing</a></h2>
<p>I care about upstreaming and sharing code, strongly preferring licenses which <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 have high license compatibility in order to permit sharing code with as many
as possible; for this reason, permissive licenses are my preferred choice, while avoiding other projects as possible; for this reason, permissive licenses are my
copyleft licenses and other licenses which place restrictions on how my code may be used, preferred choice, while avoiding copyleft licenses and other licenses which
and prevent me from including important proprietary code, such as firmware, which can patch place restrictions on how my code may be used, and prevent me from including
security vulnerabilities, privacy issues, and stability issues. All of my code is and important proprietary code, such as firmware, which can patch security
will be permissively licensed unless specific circumstances make it impractical or vulnerabilities, privacy issues, and stability issues. All of my code is and
infeasible to do so. My goal is to share code which has the least amount of restrictions as will be permissively licensed unless specific circumstances make it impractical
possible, to allow wider propagation of my code and allow more use cases and possibilities, or infeasible to do so. My goal is to share code which has the least amount of
as well as ensuring proprietary code, whenever required, is permitted to be included.</p> 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.</p>
<p>My preferred licenses and rationale for using them are below; any licenses <p>My preferred licenses and rationale for using them are below; any licenses
not listed are chosen on a case-by-case basis.</p> not listed are chosen on a case-by-case basis.</p>
<p><a href="https://iso.org/standard/81870.html">ISO 5962:2021</a> <p><a href="https://iso.org/standard/81870.html">ISO 5962:2021</a>
@ -129,50 +132,48 @@
<code>SPDX-License-Identifier: BSD-3-Clause</code> <code>SPDX-License-Identifier: BSD-3-Clause</code>
<p>Type: Permissive</p> <p>Type: Permissive</p>
<p><a href="https://spdx.org/licenses/BSD-3-Clause.html">BSD 3-Clause License</a> <p><a href="https://spdx.org/licenses/BSD-3-Clause.html">BSD 3-Clause License</a>
is a highly permissive is a highly permissive license which allows content
license which allows content licensed under it to be licensed under it to be used in any way, whether in
used in any way, whether in source or binary form, and source or binary form, and allows sublicensing under a
allows sublicensing under a different license, with the different license, with the only restrictions being the
only restrictions being the original copyright notice original copyright notice must be kept in order to
must be kept in order to attribute the original creator attribute the original creator of the licensed content,
of the licensed content, and the name of the project and the name of the project and/or its contributors may
and/or its contributors may not be used to endorse or not be used to endorse or promote products derived from
promote products derived from the original project.</p> the original project.</p>
<h4 id="licensing-gpl-2.0"><a href="#licensing-gpl-2.0">GNU General Public License v2.0</a></h4> <h4 id="licensing-gpl-2.0"><a href="#licensing-gpl-2.0">GNU General Public License v2.0</a></h4>
<code>SPDX-License-Identifier: GPL-2.0-only</code> <code>SPDX-License-Identifier: GPL-2.0-only</code>
<p>Type: Copyleft</p> <p>Type: Copyleft</p>
<p><a href="https://spdx.org/licenses/GPL-2.0-only.html">GNU General Public License v2.0</a> <p><a href="https://spdx.org/licenses/GPL-2.0-only.html">GNU General Public License v2.0</a>
is a strong is a strong copyleft license which restricts use of
copyleft license which restricts use of content licensed content licensed under it by requiring all source code
under it by requiring all source code of the content to of the content to be publicly available, making
be publicly available, making binary-only form and binary-only form and inclusion of proprietary code
inclusion of proprietary code impossible, requiring all impossible, requiring all derivatives to be licensed
derivatives to be licensed under the same license under the same license (allowing sublicensing under only
(allowing sublicensing under only newer GPL licenses if newer GPL licenses if <code>GPL-2.0-or-later</code> is
<code>GPL-2.0-or-later</code> is specified in the SPDX- specified in the SPDX license identifier), and requiring
License-Identifier), and requiring the original the original copyright notice to be kept in order to
copyright notice to be kept in order to attribute the attribute the original creator of the licensed
original creator of the licensed content.<br> content.<br>
Due to the restrictive and invasive nature of this Due to the restrictive and invasive nature of this
license, it is avoided unless such restrictions would be license, it is avoided unless such restrictions would be
beneficial to my code; whenever this is the beneficial to my code; whenever this is the case, the
case, the GNU General Public License v2.0 will be used, GNU General Public License v2.0 will be used, rather
rather than the more restrictive than the more restrictive
<a href="https://spdx.org/licenses/GPL-3.0-only.html">GNU General Public License v3.0</a>, <a href="https://spdx.org/licenses/GPL-3.0-only.html">GNU General Public License v3.0</a>,
and relicensing and relicensing derivatives under the GNU General Public
derivatives under the GNU General Public License v3.0 License v3.0 will be disallowed.</p>
will be disallowed.</p>
<h3 id="licensing-noncode"><a href="#licensing-noncode">Non-code</a></h3> <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> <h4 id="licensing-cc-by-4.0"><a href="#licensing-cc-by-4.0">Creative Commons Attribution 4.0 International</a></h4>
<code>SPDX-License-Identifier: CC-BY-4.0</code> <code>SPDX-License-Identifier: CC-BY-4.0</code>
<p>Type: Permissive</p> <p>Type: Permissive</p>
<p><a href="https://spdx.org/licenses/CC-BY-4.0.html">Creative Commons Attribution 4.0 International</a> <p><a href="https://spdx.org/licenses/CC-BY-4.0.html">Creative Commons Attribution 4.0 International</a>
is a is a highly permissive license which allows content
highly permissive license which allows content licensed licensed under it to be used in any way, in any medium,
under it to be used in any way, in any medium, with the with the only restriction being the original copyright
only restriction being the original copyright notice notice must be kept in order to attribute the original
must be kept in order to attribute the original creator creator of the licensed content.</p>
of the licensed content.</p>
<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> <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 <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 places restrictions on how the code may be used, it is either
@ -186,18 +187,18 @@
<p>This list contains the policies and practices of my services.</p> <p>This list contains the policies and practices of my services.</p>
<p>My policies and practices are heavily security- and privacy-focused, with <p>My policies and practices are heavily security- and privacy-focused, with
improvements made on an ongoing basis as new technologies, protocols, and improvements made on an ongoing basis as new technologies, protocols, and
software etc become available.</p> software become available.</p>
<h3 id="services-websites"><a href="#services-websites">Websites</a></h3> <h3 id="services-websites"><a href="#services-websites">Websites</a></h3>
<ul> <ul>
<li>Unnecessary logging avoided (only logs required for <li>Unnecessary logging avoided (only logs required for security
security and debugging purposes)</li> and debugging purposes)</li>
<li>All server logs purged every 14 days</li> <li>All server logs purged every 14 days</li>
<li>User IP addresses used only for security and debugging <li>User IP addresses used only for security and debugging
purposes (purged along with logs)</li> purposes (purged along with logs)</li>
<li>All connections made via TLS 1.3 (TLS 1.2 and older are <li>All connections made via TLS 1.3 (TLS 1.2 and older are
unsupported) to ensure the most secure AEAD ciphers are used, unsupported) to ensure the most secure AEAD ciphers are used,
along with forward secrecy (each connection uses a along with forward secrecy (each connection uses a different key
different key to previous connections)</li> to previous connections)</li>
<li>All connections made via high-security AEAD ciphers, <li>All connections made via high-security AEAD ciphers,
preferring AES-256-GCM for devices with AES preferring AES-256-GCM for devices with AES
hardware-acceleration, and ChaCha20-Poly1305 for devices without hardware-acceleration, and ChaCha20-Poly1305 for devices without
@ -236,279 +237,385 @@
(License - SPDX)</th> (License - SPDX)</th>
</tr> </tr>
<tr> <tr>
<td>Smartphone</td> <td>Smartphone</td>
<td><img src="asset/img/google-pixel_8_pro.png" width="100px" height="100px"/><br> <td>
<br> <img src="asset/img/google-pixel_8_pro.png" width="100px" height="100px"/><br>
Google Pixel</td>
<td class="td-desc"><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 SoC
includes Tensor Security Core, further improving device
security.<br>
Pixel 8-series includes Arm v9'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>
<p>Pixel 6-series and 7-series devices 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>,
an increase from previous generations'
<a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-a-g-pixel-pixel-a-g-pixel-a-pixel-xl-pixel">minimum support lifecycles of 3 years</a>.<br>
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>,
putting it on the same support level as Apple;
Google have even surpassed Apple in this regard,
as Apple does not commit to a support timeframe
for their devices.</p></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>Type</th>
<th>Software</th>
<th>Description</th>
<th>Source model<br>
<br>
(License - SPDX)</th>
</tr>
<tr>
<td>Operating system</td>
<td><img src="asset/img/logo-gentoo_linux.png" width="100px" height="100px"/><br>
<br>
Gentoo Linux</td>
<td class="td-desc"><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 wrapping</a>,
and GrapheneOS'
<a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a>
memory allocator.</p>
You can find my Gentoo Linux configurations in
my
<a href="https://src.inferencium.net/Inferencium/cfg/">configuration respository</a>.</p></td>
<td>Open source<br>
<br>
(GPL-2.0-only)</td>
</tr>
<tr>
<td>Web browser</td>
<td><img src="asset/img/logo-chromium.png" width="100px" height="100px"/><br>
<br>
Chromium</td>
<td class="td-desc"><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>Open source<br>
<br>
(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>Type</th>
<th>Software</th>
<th>Description</th>
<th>Source model<br>
<br>
(License - SPDX)</th>
</tr>
<tr>
<td>Operating system</td>
<td><img src="asset/img/logo-grapheneos.png" width="100px" height="100px"/><br>
<br>
GrapheneOS</td>
<td class="td-desc"><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 vulnerabilties,
<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>Open source<br>
<br>
(MIT)</td>
</tr>
<tr>
<td>Web browser</td>
<td><img src="asset/img/logo-vanadium.png" width="100px" height="100px"/><br>
<br>
Vanadium</td>
<td class="td-desc"><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 patchset,
can be found in its
<a href="https://github.com/GrapheneOS/Vanadium/">official repository</a>.</p></td>
<td>Open source<br>
<br>
(GPL-2.0-only)</td>
</tr>
<tr>
<td>Messenger</td>
<td><img src="asset/img/logo-molly.png" width="100px" height="100px"><br>
<br>
Molly</td>
<td class="td-desc"><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>
<br> <br>
<li>Molly-FOSS, which removes the Google Pixel
proprietary Google code to provide an </td>
entirely open-source client.</li> <td class="td-desc">
</ul> <p>Google Pixel devices are
</p></td> the best Android devices
<td>Open source<br> available on the market
<br> for
(GPL-3.0-only)</td> <a href="https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html">security and privacy</a>.</p>
</tr> <p>They allow locking the
<tr> bootloader with a
<td>Messenger</td> <a href="https://android.googlesource.com/platform/external/avb/+/master/README.md#pixel-2-and-later">custom Android Verified Boot (AVB) key</a>
<td><img src="asset/img/logo-conversations.png" width="100px" height="100px"><br> in order to preserve security
<br> and privacy features when
Conversations</td> installing a custom operating
<td class="td-desc"><p><a href="https://conversations.im/">Conversations</a> system, such as
is a well-designed Android <a href="https://source.android.com/docs/security/features/verifiedboot/">verified boot</a>
<a href="https://xmpp.org/">XMPP</a> which verifies that the OS has
client which serves as the de facto XMPP not been corrupted or tampered
reference client and has great usability.</p></td> with, and
<td>Open source<br> <a href="https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection">rollback protection</a>
<br> which prevents an adversary from
(GPL-3.0-only)</td> rolling back the OS or firmware
</tr> version to a previous version
</table> with known security vulnerabilities.</p>
</div> <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.<br>
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>
<p>Pixel 6-series and 7-series
devices 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>,
an increase from previous
generations'
<a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-a-g-pixel-pixel-a-g-pixel-a-pixel-xl-pixel">minimum support lifecycles of 3 years</a>.<br>
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>,
putting it on the same support
level as Apple; Google have even
surpassed Apple in this regard,
as Apple does not commit to a
support timeframe for their
devices.</p>
</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>Type</th>
<th>Software</th>
<th>Description</th>
<th>Source model<br>
<br>
(License - SPDX)</th>
</tr>
<tr>
<td>Operating system</td>
<td>
<img src="asset/img/logo-gentoo_linux.png" width="100px" height="100px"/><br>
<br>
Gentoo Linux
</td>
<td class="td-desc">
<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>
You can find my Gentoo Linux
configurations in my
<a href="https://src.inferencium.net/Inferencium/cfg/">configuration respository</a>.</p>
</td>
<td>
Open source<br>
<br>
(GPL-2.0-only)
</td>
</tr>
<tr>
<td>Web browser</td>
<td>
<img src="asset/img/logo-chromium.png" width="100px" height="100px"/><br>
<br>
Chromium
</td>
<td class="td-desc">
<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>
Open source<br>
<br>
(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>Type</th>
<th>Software</th>
<th>Description</th>
<th>Source model<br>
<br>
(License - SPDX)</th>
</tr>
<tr>
<td>Operating system</td>
<td>
<img src="asset/img/logo-grapheneos.png" width="100px" height="100px"/><br>
<br>
GrapheneOS
</td>
<td class="td-desc">
<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 vulnerabilties,
<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>
Open source<br>
<br>
(MIT)
</td>
</tr>
<tr>
<td>Web browser</td>
<td>
<img src="asset/img/logo-vanadium.png" width="100px" height="100px"/><br>
<br>
Vanadium
</td>
<td class="td-desc">
<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 patchset,
can be found in its
<a href="https://github.com/GrapheneOS/Vanadium/">official repository</a>.</p></td>
<td>
Open source<br>
<br>
(GPL-2.0-only)
</td>
</tr>
<tr>
<td>Messenger</td>
<td>
<img src="asset/img/logo-molly.png" width="100px" height="100px"><br>
<br>
Molly
</td>
<td class="td-desc">
<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>
Open source<br>
<br>
(GPL-3.0-only)
</td>
</tr>
<tr>
<td>Messenger</td>
<td>
<img src="asset/img/logo-conversations.png" width="100px" height="100px"><br>
<br>
Conversations
</td>
<td class="td-desc">
<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>
Open source<br>
<br>
(GPL-3.0-only)
</td>
</tr>
</table>
</div>
</section> </section>
<section id="recommendations-music"> <section id="recommendations-music">
<h3 id="recommendations-music"><a href="#recommendations-music">Music</a></h3> <h3 id="recommendations-music"><a href="#recommendations-music">Music</a></h3>