Reformat section "Recommendations" to conform to code style

Add subsections for each recommendation type, fix section IDs and
corresponding heading links, and change line lengths to conform to code
style.
This commit is contained in:
inference 2024-02-06 01:21:39 +00:00
parent 0e1376d52a
commit e690a54498
Signed by: inference
SSH Key Fingerprint: SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc

View File

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<!-- Inferencium - Website - About --> <!-- Inferencium - Website - About -->
<!-- Version: 8.1.0-alpha.9 --> <!-- Version: 8.1.0-alpha.10 -->
<!-- Copyright 2022 Jake Winters --> <!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause --> <!-- SPDX-License-Identifier: BSD-3-Clause -->
@ -367,322 +367,361 @@
</section> </section>
<section id="recommendations"> <section id="recommendations">
<h2><a href="#recommendations">Recommendations</a></h2> <h2><a href="#recommendations">Recommendations</a></h2>
<h3 id="recommendations-hardware"><a href="#recommendations-hardware">Hardware</a></h3> <section id="recommendations-hardware">
<h4 id="recommendations-hardware-smartphone"><a href="#recommendations-hardware-smartphone">Smartphone</a></h4> <h3><a href="#recommendations-hardware">Hardware</a></h3>
<div style="overflow-x:auto;"> <section id="recommendations-hardware-smartphone">
<table> <h4><a href="#recommendations-hardware-smartphone">Smartphone</a></h4>
<tr> <div style="overflow-x:auto;">
<th id="hardware-smartphone-type">Type</th> <table>
<th id="hardware-smartphone">Hardware</th> <thead>
<th id="hardware-smartphone-description">Description</th> <tr>
<th id="hardware-smartphone-source_model">Source model<br/> <th id="hardware-smartphone-type">Type</th>
(License)</th> <th id="hardware-smartphone">Hardware</th>
</tr> <th id="hardware-smartphone-description">Description</th>
<tr> <th id="hardware-smartphone-source_model">Source model<br/>
<th id="hardware-smartphone-smartphone">Smartphone</th> (License)</th>
<th id ="google-pixel" headers="hardware hardware-smartphone-smartphone"> </tr>
<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/> </thead>
Google Pixel <tbody>
</th> <tr>
<td class="desc" headers="hardware-description google-pixel"> <th id="hardware-smartphone-smartphone">Smartphone</th>
<h5>Security/Privacy</h5> <th id ="google-pixel" headers="hardware hardware-smartphone-smartphone">
<p>Google Pixel devices are the best Android <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/>
devices available on the market for Google Pixel
<a href="https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html">security and privacy</a>.</p> </th>
<p>They allow locking the bootloader with a <td class="desc" headers="hardware-description google-pixel">
<a href="https://android.googlesource.com/platform/external/avb/+/master/README.md#pixel-2-and-later">custom Android Verified Boot (AVB) key</a> <h5>Security/Privacy</h5>
in order to preserve security and privacy <p>Google Pixel devices are the best
features when installing a custom operating Android devices available on the market
system, such as for
<a href="https://source.android.com/docs/security/features/verifiedboot/">verified boot</a> <a href="https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html">security and privacy</a>.</p>
which verifies that the OS has not been <p>They allow locking the bootloader
corrupted or tampered with, and with a
<a href="https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection">rollback protection</a> <a href="https://android.googlesource.com/platform/external/avb/+/master/README.md#pixel-2-and-later">custom Android Verified Boot (AVB) key</a>
which prevents an adversary from rolling in order to preserve security and
back the OS or firmware version to a privacy features when installing a
previous version with known security custom operating system, such as
vulnerabilities.</p> <a href="https://source.android.com/docs/security/features/verifiedboot/">verified boot</a>
<p>They also include a which verifies that the OS has not been
<a href="https://developer.android.com/training/articles/keystore#HardwareSecurityModule">hardware security module</a> corrupted or tampered with, and
(Titan M2, improving on the previous <a href="https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection">rollback protection</a>
generation which prevents an adversary from rolling
<a href="https://security.googleblog.com/2018/10/building-titan-better-security-through.html">Titan M</a>) back the OS or firmware version to a
which is extremely resistant to both remote previous version with known security
and physical attacks due to being completely vulnerabilities.</p>
isolated from the rest of the system, <p>They also include a
including the operating system. Titan M2 <a href="https://developer.android.com/training/articles/keystore#HardwareSecurityModule">hardware security module</a>
ensures that the device cannot be remotely (Titan M2, improving on the previous
compromised by requiring the side buttons of generation
the device to be physically pressed for some <a href="https://security.googleblog.com/2018/10/building-titan-better-security-through.html">Titan M</a>)
sensitive operations. Titan M2 also takes which is extremely resistant to both
the role of remote and physical attacks due to being
<a href="https://source.android.com/docs/security/best-practices/hardware#strongbox-keymaster">Android StrongBox Keymaster</a>, completely isolated from the rest of the
a system, including the operating system.
<a href="https://source.android.com/docs/security/features/keystore">hardware-backed Keystore</a> Titan M2 ensures that the device cannot
containing sensitive user keys which are be remotely compromised by requiring the
unavailable to the OS or apps running on it side buttons of the device to be
without authorisation from Titan M2 itself. physically pressed for some sensitive
<a href="https://android-developers.googleblog.com/2018/05/insider-attack-resistance.html">Insider attack resistance</a> operations. Titan M2 also takes the role
ensures that Titan M2 firmware can be of
flashed only if the user PIN/password is <a href="https://source.android.com/docs/security/best-practices/hardware#strongbox-keymaster">Android StrongBox Keymaster</a>,
already known, making it impossible to a
backdoor the device without already knowing <a href="https://source.android.com/docs/security/features/keystore">hardware-backed Keystore</a>
these secrets.</p> containing sensitive user keys which are
<p>Google Pixel device kernels are compiled unavailable to the OS or apps running on
with it without authorisation from Titan M2
<a href="https://android-developers.googleblog.com/2018/10/control-flow-integrity-in-android-kernel.html">forward-edge control-flow integrity</a> itself.
and <a href="https://android-developers.googleblog.com/2018/05/insider-attack-resistance.html">Insider attack resistance</a>
<a href="https://security.googleblog.com/2019/10/protecting-against-code-reuse-in-linux_30.html">backward-edge control-flow integrity</a> ensures that Titan M2 firmware can be
to prevent code reuse attacks against the flashed only if the user PIN/password is
kernel. MAC address randomisation is already known, making it impossible to
<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> backdoor the device without already
<p>Google releases knowing these secrets.</p>
<a href="https://source.android.com/docs/security/bulletin/pixel/">guaranteed monthly security updates</a>, <p>Google Pixel device kernels are
ensuring Google Pixel devices are up-to-date compiled with
and quickly protected against security <a href="https://android-developers.googleblog.com/2018/10/control-flow-integrity-in-android-kernel.html">forward-edge control-flow integrity</a>
vulnerabilities.</p> and
<p>Pixel 6-series and 7-series devices are a <a href="https://security.googleblog.com/2019/10/protecting-against-code-reuse-in-linux_30.html">backward-edge control-flow integrity</a>
large improvement over the already very to prevent code reuse attacks against
secure and private previous generation Pixel the kernel. MAC address randomisation is
devices. They replace ARM-based Titan M with <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>
RISC-V-based Titan M2, reducing trust by <p>Google releases
removing ARM from the equation. Titan M2 is <a href="https://source.android.com/docs/security/bulletin/pixel/">guaranteed monthly security updates</a>,
more resiliant to attacks than Titan M, and ensuring Google Pixel devices are
is up-to-date and quickly protected against
<a href="https://www.tuv-nederland.nl/assets/files/cerfiticaten/2022/09/nscib-cc-22-0228971-cert-final.pdf">AVA_VAN.5 certified</a>, security vulnerabilities.</p>
the highest level of vulnerability <p>Pixel 6-series and 7-series devices
assessment. Google's in-house Tensor are a large improvement over the already
System-on-Chip includes Tensor Security very secure and private previous
Core, further improving device security.</p> generation Pixel devices. They replace
<p>Pixel 8-series includes Armv9's ARM-based Titan M with RISC-V-based
<a href="https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/enhanced-security-through-mte">Memory Tagging Extension</a>, Titan M2, reducing trust by removing ARM
which dramatically increases device security from the equation. Titan M2 is more
by eliminating up to 95% of all security resiliant to attacks than Titan M, and
issues caused by memory-unsafety.</p> is
<h5>Support</h5> <a href="https://www.tuv-nederland.nl/assets/files/cerfiticaten/2022/09/nscib-cc-22-0228971-cert-final.pdf">AVA_VAN.5 certified</a>,
<p>Pixel 5a is supported for a the highest level of vulnerability
<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> assessment. Google's in-house Tensor
<p>Pixel 6-series, Pixel 7-series, Pixel System-on-Chip includes Tensor Security
Fold, and Pixel Tablet are supported for a Core, further improving device
<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> security.</p>
<p>Pixel 8-series is supported for a <p>Pixel 8-series includes Armv9's
<a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-pro">minimum of 7 years from launch</a>.</p> <a href="https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/enhanced-security-through-mte">Memory Tagging Extension</a>,
</td> which dramatically increases device
<td headers="hardware-smartphone-source_model google-pixel"> security by eliminating up to 95% of all
</td> security issues caused by
</tr> memory-unsafety.</p>
</table> <h5>Support</h5>
</div> <p>Pixel 5a is supported for a
<h3 id="recommendations-software"><a href="#recommendations-software">Software</a></h3> <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>
<h4 id="recommendations-software-desktop"><a href="#recommendations-software-desktop">Desktop</a></h4> <p>Pixel 6-series, Pixel 7-series, Pixel
<div style="overflow-x:auto;"> Fold, and Pixel Tablet are supported for
<table> a
<tr> <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>
<th id="software-desktop-type">Type</th> <p>Pixel 8-series is supported for a
<th id="software-desktop">Software</th> <a href="https://support.google.com/nexus/answer/4457705#zippy=%2Cpixel-pro">minimum of 7 years from launch</a>.</p>
<th id="software-desktop-description">Description</th> </td>
<th id="software-desktop-source_model">Source model<br/> <td headers="hardware-smartphone-source_model google-pixel">
(License)</th> </td>
</tr> </tr>
<tr> </tbody>
<th id="software-desktop-os">Operating system</th> </table>
<th id="gentoo_linux" headers="software-desktop software-desktop-os"> </div>
<img src="asset/img/logo-gentoo_linux.png" width="100" height="100" alt="Gentoo Linux logo"/><br/> </section>
Gentoo Linux </section>
</th> <section id="recommendations-software">
<td class="desc" headers="software-description gentoo_linux"> <h3><a href="#recommendations-software">Software</a></h3>
<p><a href="https://www.gentoo.org/">Gentoo Linux</a> <section id="recommendations-software-desktop">
is a highly modular, source-based, Linux-based <h4><a href="#recommendations-software-desktop">Desktop</a></h4>
operating system which allows vast customisation to <div style="overflow-x:auto;">
tailor the operating system to suit your specific <table>
needs. There are many advantages to such an <thead>
operating system, with the most notable being the <tr>
ability to optimise the software for security, <th id="software-desktop-type">Type</th>
privacy, performance, or power usage; however, there <th id="software-desktop">Software</th>
are effectively unlimited other use cases, or a <th id="software-desktop-description">Description</th>
combination of multiple use cases.</p> <th id="software-desktop-source_model">Source model<br/>
<p>I have focused on security hardening and privacy (License)</th>
hardening, placing performance below those aspects, </tr>
although my system is still very performant. Some of </thead>
the hardening I apply includes <tbody>
<a href="https://en.wikipedia.org/wiki/Buffer_overflow_protection">stack protection</a>, <tr>
<a href="https://en.wikipedia.org/wiki/Integer_overflow">signed integer overflow trapping</a>, <th id="software-desktop-os">Operating system</th>
and GrapheneOS' <th id="gentoo_linux" headers="software-desktop software-desktop-os">
<a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a> <img src="asset/img/logo-gentoo_linux.png" width="100" height="100" alt="Gentoo Linux logo"/><br/>
memory allocator.</p> Gentoo Linux
<p>You can find my Gentoo Linux configurations in my </th>
<a href="https://src.inferencium.net/Inferencium/cfg/">configuration respository</a>.</p> <td class="desc" headers="software-description gentoo_linux">
</td> <p><a href="https://www.gentoo.org/">Gentoo Linux</a>
<td headers="software-desktop-source_model gentoo_linux"> is a highly modular, source-based, Linux-based
Open-source<br/> operating system which allows vast customisation
(GPL-2.0-only) to tailor the operating system to suit your
</td> specific needs. There are many advantages to
</tr> such an operating system, with the most notable
<tr> being the ability to optimise the software for
<th id="software-web_browser">Web browser</th> security, privacy, performance, or power usage;
<th id="chromium" headers="software-desktop software-web_browser"> however, there are effectively unlimited other
<img src="asset/img/logo-chromium.png" width="100" height="100" alt="Chromium logo"/><br/> use cases, or a combination of multiple use
Chromium cases.</p>
</th> <p>I have focused on security hardening and
<td class="desc" headers="software-description chromium"> privacy hardening, placing performance below
<p><a href="https://chromium.org/">Chromium</a> those aspects, although my system is still very
is a highly secure web browser which is often ahead performant. Some of the hardening I apply
of other web browsers in security aspects. It has a includes
dedicated security team and a very impressive <a href="https://en.wikipedia.org/wiki/Buffer_overflow_protection">stack protection</a>,
<a href="https://www.chromium.org/Home/chromium-security/brag-sheet/">security brag sheet</a>. <a href="https://en.wikipedia.org/wiki/Integer_overflow">signed integer overflow trapping</a>,
Chromium's security features include a strong and GrapheneOS'
<a href="https://code.google.com/p/chromium/wiki/LinuxSandboxing">multi-layer sandbox</a>, <a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a>
strong memory allocator.</p>
<a href="https://www.chromium.org/Home/chromium-security/site-isolation">site isolation</a>, <p>You can find my Gentoo Linux configurations
<a href="https://www.chromium.org/Home/chromium-security/binding-integrity">Binding Integrity</a> in my
memory hardening, and <a href="https://src.inferencium.net/Inferencium/cfg/">configuration respository</a>.</p>
<a href="https://www.chromium.org/developers/testing/control-flow-integrity/">control-flow integrity (CFI)</a>.</p></td> </td>
<td headers="software-desktop-source_model chromium"> <td headers="software-desktop-source_model gentoo_linux">
Open-source<br/> Open-source<br/>
(BSD-3-Clause) (GPL-2.0-only)
</td> </td>
</tr> </tr>
</table> <tr>
</div> <th id="software-web_browser">Web browser</th>
<h4 id="recommendations-software-smartphone"><a href="#recommendations-software-smartphone">Smartphone</a></h4> <th id="chromium" headers="software-desktop software-web_browser">
<div style="overflow-x:auto;"> <img src="asset/img/logo-chromium.png" width="100" height="100" alt="Chromium logo"/><br/>
<table> Chromium
<tr> </th>
<th id="software-smartphone-type">Type</th> <td class="desc" headers="software-description chromium">
<th id="software-smartphone">Software</th> <p><a href="https://chromium.org/">Chromium</a>
<th id="software-smartphone-description">Description</th> is a highly secure web browser which is often ahead
<th id="software-smartphone-source_model">Source model<br/> of other web browsers in security aspects. It has a
(License)</th> dedicated security team and a very impressive
</tr> <a href="https://www.chromium.org/Home/chromium-security/brag-sheet/">security brag sheet</a>.
<tr> Chromium's security features include a strong
<th id="software-smartphone-os">Operating system</th> <a href="https://code.google.com/p/chromium/wiki/LinuxSandboxing">multi-layer sandbox</a>,
<th id="grapheneos" headers="software-smartphone software-smartphone-os"> strong
<img src="asset/img/logo-grapheneos.png" width="100" height="100" alt="GrapheneOS logo"/><br/> <a href="https://www.chromium.org/Home/chromium-security/site-isolation">site isolation</a>,
GrapheneOS <a href="https://www.chromium.org/Home/chromium-security/binding-integrity">Binding Integrity</a>
</th> memory hardening, and
<td class="desc" headers="software-smartphone-description grapheneos"> <a href="https://www.chromium.org/developers/testing/control-flow-integrity/">control-flow integrity (CFI)</a>.</p></td>
<p><a href="https://grapheneos.org/">GrapheneOS</a> <td headers="software-desktop-source_model chromium">
is a security-hardened, privacy-hardened, Open-source<br/>
secure-by-default, Android-based operating system (BSD-3-Clause)
which implements extensive, systemic security and </td>
privacy hardening to the Android Open Source Project </tr>
used as its base codebase. Its hardening includes </tbody>
closing gaps for apps to access sensitive system </table>
information, a secure app spawning feature which </div>
avoids sharing address space layout and other </section>
secrets AOSP's default Zygote app spawning model <section id="recommendations-software-smartphone">
would share, <h4><a href="#recommendations-software-smartphone">Smartphone</a></h4>
<a href="https://github.com/GrapheneOS/kernel_gs-gs101/">hardened kernel</a>, <div style="overflow-x:auto;">
hardened memory allocator <table>
(<a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a>) <thead>
to protect against common memory corruption <tr>
vulnerabilities, <th id="software-smartphone-type">Type</th>
<a href="https://github.com/GrapheneOS/platform_bionic/">hardened Bionic standard C library</a>, <th id="software-smartphone">Software</th>
<a href="https://github.com/GrapheneOS/platform_system_sepolicy/">stricter SELinux policies</a>, <th id="software-smartphone-description">Description</th>
and local and remote hardware-backed attestation <th id="software-smartphone-source_model">Source model<br/>
(<a href="https://attestation.app/about/">Auditor</a>) (License)</th>
to ensure the OS has not been corrupted or tampered </tr>
with.</p> </thead>
<p>GrapheneOS only supports <tbody>
<a href="https://grapheneos.org/faq#device-support">high security and well-supported devices</a> <tr>
which receive full support from their manufacturers, <th id="software-smartphone-os">Operating system</th>
including firmware updates, long support lifecycles, <th id="grapheneos" headers="software-smartphone software-smartphone-os">
secure hardware, and overall high security <img src="asset/img/logo-grapheneos.png" width="100" height="100" alt="GrapheneOS logo"/><br/>
practices.</p> GrapheneOS
<p>For an extensive list of features GrapheneOS </th>
provides, visit its <td class="desc" headers="software-smartphone-description grapheneos">
<a href="https://grapheneos.org/features/">official features list</a> <p><a href="https://grapheneos.org/">GrapheneOS</a>
which provides extensive documentation.</p> is a security-hardened, privacy-hardened,
</td> secure-by-default, Android-based operating
<td headers="software-smartphone-source_model grapheneos"> system which implements extensive, systemic
Open-source<br/> security and privacy hardening to the Android
(MIT) Open Source Project used as its base codebase.
</td> Its hardening includes closing gaps for apps to
</tr> access sensitive system information, a secure
<tr> app spawning feature which avoids sharing
<th id="software-smartphone-web_browser">Web browser</th> address space layout and other secrets AOSP's
<th id="vanadium" headers="software-smartphone software-smartphone-web_browser"> default Zygote app spawning model would share,
<img src="asset/img/logo-vanadium.png" width="100" height="100" alt="Vanadium logo"/><br/> <a href="https://github.com/GrapheneOS/kernel_gs-gs101/">hardened kernel</a>,
Vanadium hardened memory allocator
</th> (<a href="https://github.com/GrapheneOS/hardened_malloc/">hardened_malloc</a>)
<td class="desc" headers="software-smartphone-description vanadium"> to protect against common memory corruption
<p>Vanadium is a security-hardened, privacy-hardened vulnerabilities,
Chromium-based web browser which utilises <a href="https://github.com/GrapheneOS/platform_bionic/">hardened Bionic standard C library</a>,
GrapheneOS' operating system hardening to implement <a href="https://github.com/GrapheneOS/platform_system_sepolicy/">stricter SELinux policies</a>,
stronger defenses to the already very secure and local and remote hardware-backed attestation
Chromium web browser. Its hardening alongside (<a href="https://attestation.app/about/">Auditor</a>)
Chromium's base security features includes to ensure the OS has not been corrupted or
<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>, tampered with.</p>
<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>, <p>GrapheneOS only supports
and <a href="https://grapheneos.org/faq#device-support">high security and well-supported devices</a>
<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> which receive full support from their
<p>Vanadium's source code, including its Chromium manufacturers, including firmware updates, long
patch-set, can be found in its support lifecycles, secure hardware, and overall
<a href="https://github.com/GrapheneOS/Vanadium/">official repository</a>.</p></td> high security practices.</p>
<td headers="software-smartphone-source_model vanadium"> <p>For an extensive list of features GrapheneOS
Open-source<br/> provides, visit its
(GPL-2.0-only) <a href="https://grapheneos.org/features/">official features list</a>
</td> which provides extensive documentation.</p>
</tr> </td>
<tr> <td headers="software-smartphone-source_model grapheneos">
<th rowspan="2" id="software-smartphone-messenger">Messenger</th> Open-source<br/>
<th id="molly" headers="software-smartphone software-smartphone-messenger"> (MIT)
<img src="asset/img/logo-molly.png" width="100" height="100" alt="Molly logo"/><br/> </td>
Molly </tr>
</th> <tr>
<td class="desc" headers="software-smartphone-description molly"> <th id="software-smartphone-web_browser">Web browser</th>
<p><a href="https://molly.im/">Molly</a> <th id="vanadium" headers="software-smartphone software-smartphone-web_browser">
is a security-hardened, privacy-hardened <img src="asset/img/logo-vanadium.png" width="100" height="100" alt="Vanadium logo"/><br/>
<a href="https://signal.org/">Signal</a> Vanadium
client which hardens Signal by using a variety of </th>
<a href="https://github.com/mollyim/mollyim-android#features">unique features</a>, <td class="desc" headers="software-smartphone-description vanadium">
allowing <p>Vanadium is a security-hardened,
<a href="https://github.com/mollyim/mollyim-android/wiki/Data-Encryption-At-Rest">locking the database when not in use</a>, privacy-hardened Chromium-based web browser
and which utilises GrapheneOS' operating system
<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> hardening to implement stronger defenses to the
to protect user keys using the device's hardware already very secure Chromium web browser. Its
security module.</p> hardening alongside Chromium's base security
<p>Molly is available in features includes
<a href="https://github.com/mollyim/mollyim-android#free-and-open-source">2 flavours</a>: <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>,
<ul> <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>,
<li>Molly, which includes the same and
proprietary Google code as Signal to <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>
support more features.</li> <p>Vanadium's source code, including its Chromium
<li>Molly-FOSS, which removes the patch-set, can be found in its
proprietary Google code to provide <a href="https://github.com/GrapheneOS/Vanadium/">official repository</a>.</p>
an entirely open-source client.</li> </td>
</ul> <td headers="software-smartphone-source_model vanadium">
</p> Open-source<br/>
</td> (GPL-2.0-only)
<td headers="software-smartphone-source_model molly"> </td>
Open-source<br/> </tr>
(GPL-3.0-only) <tr>
</td> <th rowspan="2" id="software-smartphone-messenger">Messenger</th>
</tr> <th id="molly" headers="software-smartphone software-smartphone-messenger">
<tr> <img src="asset/img/logo-molly.png" width="100" height="100" alt="Molly logo"/><br/>
<th id="conversations" headers="software-smartphone software-smartphone-messenger"> Molly
<img src="asset/img/logo-conversations.png" width="100" height="100" alt="Conversations logo"/><br/> </th>
Conversations <td class="desc" headers="software-smartphone-description molly">
</th> <p><a href="https://molly.im/">Molly</a>
<td class="desc" headers="software-smartphone-description conversations"> is a security-hardened, privacy-hardened
<p><a href="https://conversations.im/">Conversations</a> <a href="https://signal.org/">Signal</a>
is a well-designed Android client which hardens Signal by using a variety
<a href="https://xmpp.org/">XMPP</a> of
client which serves as the de facto XMPP reference <a href="https://github.com/mollyim/mollyim-android#features">unique features</a>,
client and has great usability.</p> allowing
</td> <a href="https://github.com/mollyim/mollyim-android/wiki/Data-Encryption-At-Rest">locking the database when not in use</a>,
<td headers="software-smartphone-source_model conversations"> and
Open-source<br/> <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>
(GPL-3.0-only) to protect user keys using the device's hardware
</td> security module.</p>
</tr> <p>Molly is available in
</table> <a href="https://github.com/mollyim/mollyim-android#free-and-open-source">2 flavours</a>:
</div> <ul>
</section> <li>Molly, which includes the
<section id="recommendations-music"> same proprietary Google code as
<h3><a href="#recommendations-music">Music</a></h3> Signal to support more
<p>For a curated list of music I enjoy, visit my features.</li>
<a href="music.xhtml">music page</a>.</p> <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>
<section id="gnulinux_or_linux"> <section id="gnulinux_or_linux">
<h2><a href="#gnulinux_or_linux">Is it GNU/Linux or Just Linux?</a></h2> <h2><a href="#gnulinux_or_linux">Is it GNU/Linux or Just Linux?</a></h2>