Fix code to conform to code style
This commit is contained in:
parent
73cc05c071
commit
ed0747fe4e
781
about.html
781
about.html
@ -5,7 +5,7 @@
|
||||
<!-- Copyright 2022 Jake Winters -->
|
||||
<!-- SPDX-License-Identifier: BSD-3-Clause -->
|
||||
|
||||
<!-- Version: 6.2.1-alpha.1 -->
|
||||
<!-- Version: 6.2.1-alpha.2 -->
|
||||
|
||||
|
||||
<html>
|
||||
@ -47,7 +47,7 @@
|
||||
<ul>
|
||||
<li><a href="#licensing-cc-by-4.0">Creative Commons Attribution 4.0 International</a></li>
|
||||
</ul>
|
||||
<li><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open-source and Free Software?</a></li>
|
||||
<li><a href="#licensing-open_source_vs_free_software">Do I Distinguish Between Open-source and Free Software?</a></li>
|
||||
</ul>
|
||||
<li><a href="#services">Services</a></li>
|
||||
<ul>
|
||||
@ -70,25 +70,26 @@
|
||||
</section>
|
||||
<section id="about_me">
|
||||
<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
|
||||
based in United Kingdom.<br>
|
||||
<p>I am Jake Winters, also known by my pseudonym "Inference", a security
|
||||
researcher based in United Kingdom.<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
|
||||
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.<br>
|
||||
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.<br>
|
||||
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 the public Systems Hardening XMPP channel dedicated to systems security and
|
||||
privacy hardening at <code>sys-hardening@muc.xmpp.inferencium.net</code>, and its
|
||||
respective off-topic channel at
|
||||
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.<br>
|
||||
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.<br>
|
||||
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 the public Systems Hardening XMPP channel dedicated to systems security
|
||||
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>
|
||||
<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>
|
||||
@ -108,15 +109,17 @@
|
||||
<section id="licensing">
|
||||
<h2 id="licensing"><a href="#licensing">Licensing</a></h2>
|
||||
<p>I care about upstreaming and sharing code, strongly preferring licenses which
|
||||
have high license compatibility in order to permit sharing code with as many other projects
|
||||
as possible; for this reason, permissive licenses are my preferred choice, while avoiding
|
||||
copyleft licenses and other licenses which place restrictions on how my code may be used,
|
||||
and prevent me from including important proprietary code, such as firmware, which can patch
|
||||
security vulnerabilities, privacy issues, and stability issues. 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.</p>
|
||||
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. 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.</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>
|
||||
<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>
|
||||
<p>Type: Permissive</p>
|
||||
<p><a href="https://spdx.org/licenses/BSD-3-Clause.html">BSD 3-Clause License</a>
|
||||
is a highly permissive
|
||||
license which allows content licensed under it to be
|
||||
used in any way, whether in source or binary form, and
|
||||
allows sublicensing under a different license, with the
|
||||
only restrictions being the original copyright notice
|
||||
must be kept in order to attribute the original creator
|
||||
of the licensed content, and the name of the project
|
||||
and/or its contributors may not be used to endorse or
|
||||
promote products derived from the original project.</p>
|
||||
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>
|
||||
<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>
|
||||
<p>Type: Copyleft</p>
|
||||
<p><a href="https://spdx.org/licenses/GPL-2.0-only.html">GNU General Public License v2.0</a>
|
||||
is a strong
|
||||
copyleft license which restricts use of content licensed
|
||||
under it by requiring all source code of the content to
|
||||
be publicly available, making binary-only form and
|
||||
inclusion of proprietary code impossible, requiring all
|
||||
derivatives to be licensed under the same license
|
||||
(allowing sublicensing under only newer GPL licenses if
|
||||
<code>GPL-2.0-or-later</code> is specified in the SPDX-
|
||||
License-Identifier), and requiring the original
|
||||
copyright notice to be kept in order to attribute the
|
||||
original creator of the licensed content.<br>
|
||||
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.<br>
|
||||
Due to the restrictive and invasive nature of this
|
||||
license, it is avoided unless such restrictions would be
|
||||
beneficial to my code; whenever this is the
|
||||
case, the GNU General Public License v2.0 will be used,
|
||||
rather than the more restrictive
|
||||
beneficial to my code; whenever this is the case, the
|
||||
GNU General Public License v2.0 will be used, rather
|
||||
than the more restrictive
|
||||
<a href="https://spdx.org/licenses/GPL-3.0-only.html">GNU General Public License v3.0</a>,
|
||||
and relicensing
|
||||
derivatives under the GNU General Public License v3.0
|
||||
will be disallowed.</p>
|
||||
and relicensing derivatives under the GNU General Public
|
||||
License v3.0 will be disallowed.</p>
|
||||
<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>
|
||||
<code>SPDX-License-Identifier: CC-BY-4.0</code>
|
||||
<p>Type: Permissive</p>
|
||||
<p><a href="https://spdx.org/licenses/CC-BY-4.0.html">Creative Commons Attribution 4.0 International</a>
|
||||
is a
|
||||
highly permissive license which allows content licensed
|
||||
under it to be used in any way, in any medium, with the
|
||||
only restriction being the original copyright notice
|
||||
must be kept in order to attribute the original creator
|
||||
of the licensed content.</p>
|
||||
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>
|
||||
<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
|
||||
@ -189,15 +190,15 @@
|
||||
software etc become available.</p>
|
||||
<h3 id="services-websites"><a href="#services-websites">Websites</a></h3>
|
||||
<ul>
|
||||
<li>Unnecessary logging avoided (only logs required for
|
||||
security and debugging purposes)</li>
|
||||
<li>Unnecessary logging avoided (only logs required for security
|
||||
and debugging purposes)</li>
|
||||
<li>All server logs purged every 14 days</li>
|
||||
<li>User IP addresses used only for security and debugging
|
||||
purposes (purged along with logs)</li>
|
||||
<li>All connections made via TLS 1.3 (TLS 1.2 and older are
|
||||
unsupported) to ensure the most secure AEAD ciphers are used,
|
||||
along with forward secrecy (each connection uses a
|
||||
different key to previous connections)</li>
|
||||
along with forward secrecy (each connection uses a different key
|
||||
to previous connections)</li>
|
||||
<li>All connections made via high-security AEAD ciphers,
|
||||
preferring AES-256-GCM for devices with AES
|
||||
hardware-acceleration, and ChaCha20-Poly1305 for devices without
|
||||
@ -236,279 +237,385 @@
|
||||
(License - SPDX)</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Smartphone</td>
|
||||
<td><img src="asset/img/google-pixel_8_pro.png" width="100px" height="100px"/><br>
|
||||
<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 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 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>
|
||||
<td>Smartphone</td>
|
||||
<td>
|
||||
<img src="asset/img/google-pixel_8_pro.png" width="100px" height="100px"/><br>
|
||||
<br>
|
||||
<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>
|
||||
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 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 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>
|
||||
<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 id="recommendations-music">
|
||||
<h3 id="recommendations-music"><a href="#recommendations-music">Music</a></h3>
|
||||
|
Loading…
x
Reference in New Issue
Block a user