Fix code indentation

This commit closes #59.
This commit is contained in:
inference 2024-03-18 00:36:16 +00:00
parent bcb3b6cd75
commit cdeeb241c4
Signed by: inference
SSH Key Fingerprint: SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc
23 changed files with 2699 additions and 2940 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,57 +1,57 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Blog -->
<!-- Version: 8.0.0 -->
<!-- Version: 8.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Blog</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><b>2022-12-20</b></li>
<ul>
<li><a href="blog/the_chromium_monopoly.xhtml">#3 - The Chromium Monopoly</a></li>
</ul>
<li><b>2022-06-30</b></li>
<ul>
<li><a href="blog/untrusted_the_issue_with_decentralisation.xhtml">#2 - Untrusted: The Issue with Decentralisation</a></li>
</ul>
<li><b>2022-01-29</b></li>
<ul>
<li><a href="blog/systemd_insecurity.xhtml">#1 - systemd Insecurity</a></li>
</ul>
<li><b>2022-01-27</b></li>
<ul>
<li><a href="blog/foss_is_working_against_itself.xhtml">#0 - FOSS is Working Against Itself</a></li>
</ul>
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Blog</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><b>2022-12-20</b></li>
<ul>
<li><a href="blog/the_chromium_monopoly.xhtml">#3 - The Chromium Monopoly</a></li>
</ul>
<li><b>2022-06-30</b></li>
<ul>
<li><a href="blog/untrusted_the_issue_with_decentralisation.xhtml">#2 - Untrusted: The Issue with Decentralisation</a></li>
</ul>
<li><b>2022-01-29</b></li>
<ul>
<li><a href="blog/systemd_insecurity.xhtml">#1 - systemd Insecurity</a></li>
</ul>
<li><b>2022-01-27</b></li>
<ul>
<li><a href="blog/foss_is_working_against_itself.xhtml">#0 - FOSS is Working Against Itself</a></li>
</ul>
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,195 +1,175 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Blog - #0 -->
<!-- Version: 9.0.0 -->
<!-- Version: 9.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - FOSS is Working Against Itself</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - FOSS is Working Against Itself</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Blog - #0</h1>
<h2>FOSS is Working Against Itself</h2>
<p class="update_date">Posted: 2022-01-27 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-10-31 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#examples">Examples</a></li>
<ul>
<li><a href="#examples-smartphones">Smartphones</a></li>
</ul>
<li><a href="#solution">Solution</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
<h1>Blog - #0</h1>
<h2>FOSS is Working Against Itself</h2>
<p class="update_date">Posted: 2022-01-27 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-10-31 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#examples">Examples</a></li>
<ul>
<li><a href="#examples-smartphones">Smartphones</a></li>
</ul>
<li><a href="#solution">Solution</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
<section id="introduction">
<h2><a href="#introduction">Introduction</a></h2>
<p>The world has become a dangerous, privacy invading, human rights stripping,
totalitarian place; in order to combat this, people are joining a growing, and
dangerous, trend, which I will refer to in this post as the "Free and Open
Source (FOSS) movement". With that stated, I will now debunk the misinformation
being spread inside of this extremely flawed movement.</p>
<p>The
<a href="https://en.wikipedia.org/wiki/Free_software">FOSS</a>
movement is an attempt to regain
<a href="https://en.wikipedia.org/wiki/Privacy">privacy</a>
and
<a href="https://en.wikipedia.org/wiki/Control_(psychology)">control</a>
over our devices and data, but the entire concept of FOSS-only, at the current
time, is severely, and dangerously, flawed. What the FOSS community does not
seem to understand is the fact that most FOSS software cares not about
<a href="https://en.wikipedia.org/wiki/Security">security</a>.
"Security"; keep that word in mind as you progress through this article. What is
security? Security is being safe and secure from adversaries and unwanted
consequences; security protects our rights and allows us to protect ourselves.
Without security, we have no protection, and without protection, we have a lack
of certainty of everything else, including privacy and control, which is what
the FOSS movement is seeking.</p>
<p>FOSS projects rarely take security into account; they simply look at the
surface level, rather than the actual
<a href="https://en.wikipedia.org/wiki/Root_cause_analysis">root cause</a>
of the issues they are attempting to fight against. In this case, the focus is
on privacy and control. Without security mechanisms to protect the privacy
features and the ability to control your devices and data, it can be stripped
away as if it never existed in the first place, which, inevitably, leads us back
to the beginning, and the cycle repeats. With this
<a href="https://en.wikipedia.org/wiki/Ideology">ideology</a>,
privacy and control will <em>never</em> be achieved. There is no foundation to
build privacy or control upon. It is impossible to build a solid, freedom
respecting platform on this model.</p>
<section id="introduction">
<h2><a href="#introduction">Introduction</a></h2>
<p>The world has become a dangerous, privacy invading, human rights stripping, totalitarian
place; in order to combat this, people are joining a growing, and dangerous, trend, which I will
refer to in this post as the "Free and Open Source (FOSS) movement". With that stated, I will
now debunk the misinformation being spread inside of this extremely flawed movement.</p>
<p>The
<a href="https://en.wikipedia.org/wiki/Free_software">FOSS</a>
movement is an attempt to regain
<a href="https://en.wikipedia.org/wiki/Privacy">privacy</a>
and
<a href="https://en.wikipedia.org/wiki/Control_(psychology)">control</a>
over our devices and data, but the entire concept of FOSS-only, at the current time, is
severely, and dangerously, flawed. What the FOSS community does not seem to understand is the
fact that most FOSS software cares not about
<a href="https://en.wikipedia.org/wiki/Security">security</a>.
"Security"; keep that word in mind as you progress through this article. What is security?
Security is being safe and secure from adversaries and unwanted consequences; security protects
our rights and allows us to protect ourselves. Without security, we have no protection, and
without protection, we have a lack of certainty of everything else, including privacy and
control, which is what the FOSS movement is seeking.</p>
<p>FOSS projects rarely take security into account; they simply look at the surface level,
rather than the actual
<a href="https://en.wikipedia.org/wiki/Root_cause_analysis">root cause</a>
of the issues they are attempting to fight against. In this case, the focus is on privacy and
control. Without security mechanisms to protect the privacy features and the ability to control
your devices and data, it can be stripped away as if it never existed in the first place, which,
inevitably, leads us back to the beginning, and the cycle repeats. With this
<a href="https://en.wikipedia.org/wiki/Ideology">ideology</a>,
privacy and control will <em>never</em> be achieved. There is no foundation to build privacy or
control upon. It is impossible to build a solid, freedom respecting platform on this model.</p>
</section>
<section id="examples">
<h2><a href="#examples">Examples</a></h2>
<section id="examples-smartphones">
<h3><a href="#examples-smartphones">Smartphones</a></h3>
<p>A FOSS phone, especially so-called
"<a href="https://en.wikipedia.org/wiki/Linux_for_mobile_devices#Smartphones">Linux phones</a>"
are completely detrimental to privacy and control, because they do not have the security
necessary to enforce that privacy.
<a href="https://en.wikipedia.org/wiki/Bootloader_unlocking">Unlocked bootloaders</a>
prevent the device from
<a href="https://source.android.com/docs/security/features/verifiedboot/">verifying the integrity of the boot chain</a>,
including the OS, meaning any adversary, whether a stranger who happens to pick up the
device, or a big tech or government entity, can simply inject malicious code into your
software and you wouldn't have any idea it was there. If that's not enough of a backdoor
for you to reconsider your position, how about the trivial
<a href="https://en.wikipedia.org/wiki/Evil_maid_attack">evil maid</a>
and data extraction attacks which could be executed on your device, without coercion?
With Android phones, this is bad enough to completely break the privacy and control the
FOSS movement seeks, but "Linux phones" take it a step further by implementing barely
any security, if any at all.
<a href="https://en.wikipedia.org/wiki/Privilege_escalation">Privilege escalation</a>
is trivial to achieve on any Linux system, which is the reason Linux
<a href="https://en.wikipedia.org/wiki/Hardening_(computing)">hardening</a>
strategies often include restricting access to the root account; if you
<a href="https://en.wikipedia.org/wiki/Rooting_(Android)">root your Android phone</a>,
or use a "Linux phone", you've already destroyed the security model, and thus privacy
and control model you were attempting to achieve. Not only are these side effects of
FOSS, so is the absolutely illogical restriction of not being able to, or making it
unnecessarily difficult to, install and update critical components of the system, such
as proprietary
<a href="https://en.wikipedia.org/wiki/Firmware">firmware</a>,
which just so happens to be almost all of them. "Linux phones" are not as free as they
proclaim to be.</p>
<p>You may ask "What's so bad about using
<a href="https://lineageos.org/">LineageOS</a>?",
to which I answer with "What's not bad about it?".</p>
<ul>
<li>LineageOS uses
<a href="https://github.com/LineageOS/hudson/blob/master/lineage-build-targets">debug builds</a>,
not safe and secure release builds.</li>
<li>LineageOS requires an unlocked bootloader. Even when installed on devices
which support custom Android Verified Boot (AVB) keys, the bootloader cannot be
locked due to lack of the OS being signed.</li>
<li>LineageOS does not install critically important firmware without manual
flashing, requiring users to perform a second update to install this firmware;
this likely causes users to ignore the notification or miss firmware
updates.</li>
<li>LineageOS does not implement
<a href="https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection">rollback protection</a>,
meaning any adversary, from a stranger who physically picks up the device, to a
goverment entity remotely, can simply downgrade the OS to a previous version in
order to exploit known
<a href="https://en.wikipedia.org/wiki/Vulnerability_(computing)">security vulnerabilities</a>.</li>
</ul>
<p>LineageOS is not the only Android OS (commonly, and incorrectly, referred to as a
"ROM") with such issues, but it is one of the worst. The only things such insecure OSes
can provide you are customisation abilities, and a backdoor to your data. They are best
suited as a development OS, not a production OS.</p>
</section>
<section id="examples">
<h2><a href="#examples">Examples</a></h2>
<section id="examples-smartphones">
<h3><a href="#examples-smartphones">Smartphones</a></h3>
<p>A FOSS phone, especially so-called
"<a href="https://en.wikipedia.org/wiki/Linux_for_mobile_devices#Smartphones">Linux phones</a>"
are completely detrimental to privacy and control, because they
do not have the security necessary to enforce that privacy.
<a href="https://en.wikipedia.org/wiki/Bootloader_unlocking">Unlocked bootloaders</a>
prevent the device from
<a href="https://source.android.com/docs/security/features/verifiedboot/">verifying the integrity of the boot chain</a>,
including the OS, meaning any adversary, whether a stranger who
happens to pick up the device, or a big tech or government
entity, can simply inject malicious code into your software and
you wouldn't have any idea it was there. If that's not enough of
a backdoor for you to reconsider your position, how about the
trivial
<a href="https://en.wikipedia.org/wiki/Evil_maid_attack">evil maid</a>
and data extraction attacks which could be executed on your
device, without coercion? With Android phones, this is bad
enough to completely break the privacy and control the FOSS
movement seeks, but "Linux phones" take it a step further by
implementing barely any security, if any at all.
<a href="https://en.wikipedia.org/wiki/Privilege_escalation">Privilege escalation</a>
is trivial to achieve on any Linux system, which is the reason
Linux
<a href="https://en.wikipedia.org/wiki/Hardening_(computing)">hardening</a>
strategies often include restricting access to the root account;
if you
<a href="https://en.wikipedia.org/wiki/Rooting_(Android)">root your Android phone</a>,
or use a "Linux phone", you've already destroyed the security
model, and thus privacy and control model you were attempting to
achieve. Not only are these side effects of FOSS, so is the
absolutely illogical restriction of not being able to, or making
it unnecessarily difficult to, install and update critical
components of the system, such as proprietary
<a href="https://en.wikipedia.org/wiki/Firmware">firmware</a>,
which just so happens to be almost all of them. "Linux phones"
are not as free as they proclaim to be.</p>
<p>You may ask "What's so bad about using
<a href="https://lineageos.org/">LineageOS</a>?",
to which I answer with "What's not bad about it?".
<ul>
<li>LineageOS uses
<a href="https://github.com/LineageOS/hudson/blob/master/lineage-build-targets">debug builds</a>,
not safe and secure release builds.</li>
<li>LineageOS requires an unlocked bootloader.
Even when installed on devices which support
custom Android Verified Boot (AVB) keys, the
bootloader cannot be locked due to lack of the
OS being signed.</li>
<li>LineageOS does not install critically
important firmware without manual flashing,
requiring users to perform a second update to
install this firmware; this likely causes users
to ignore the notification or miss firmware
updates.</li>
<li>LineageOS does not implement
<a href="https://source.android.com/docs/security/features/verifiedboot/verified-boot#rollback-protection">rollback protection</a>,
meaning any adversary, from a stranger who
physically picks up the device, to a goverment
entity remotely, can simply downgrade the OS to
a previous version in order to exploit known
<a href="https://en.wikipedia.org/wiki/Vulnerability_(computing)">security vulnerabilities</a>.</li>
</ul>
</p>
<p>LineageOS is not the only Android OS (commonly, and
incorrectly, referred to as a "ROM") with such issues, but it is
one of the worst. The only things such insecure OSes can provide
you are customisation abilities, and a backdoor to your data.
They are best suited as a development OS, not a production
OS.</p>
</section>
</section>
<section id="solution">
<h2><a href="#solution">Solution</a></h2>
<p>What can you do about this? The answer is simple; however, it does require
you to use logic, fact, and evidence, not emotion, which is a difficult pill for
most people to swallow. Use your adversaries' weapons against them. The only way
to effectively combat the privacy invasion and lack of control of our devices
and data is to become a
<a href="https://en.wikipedia.org/wiki/Turncoat">renegade</a>
and not take sides. Yes, that means not taking sides with the closed-source,
proprietary, big tech and government entities, but it also means not taking
sides with any FOSS entities. The only way to win this war is to take
<em>whatever</em> hardware and software you can, and use it tactically.</p>
<p>The best solution for device security, privacy, and control, is to use a
Google Pixel (currently, Pixel 5a or newer) running
<a href="https://grapheneos.org/">GrapheneOS</a>.
Google Pixel devices allow you complete bootloader freedom, including the
<a href="https://android.googlesource.com/platform/external/avb/+/master/README.md#pixel-2-and-later">ability to lock the bootloader after flashing a custom OS</a>
(GrapheneOS includes a custom OS signing key to allow locking the bootloader and
enabling verified boot to prevent
<a href="https://en.wikipedia.org/wiki/Malware">malware</a>
persistence, evil maid attacks, and boot chain
<a href="https://en.wikipedia.org/wiki/Data_corruption">corruption</a>),
<a href="https://support.google.com/nexus/answer/4457705">long device support lifecycles</a>
(minimum 3 years for Pixel 5a, minimum 5 years for Pixel 6-series and 7-series,
and minimum 7 years for Pixel 8-series and newer), and
<a href="https://source.android.com/docs/security/bulletin/pixel/">guaranteed monthly security updates</a>
for the entire support timeframe of the devices.</p>
</section>
<section id="conclusion">
<h2><a href="#conclusion">Conclusion</a></h2>
<p>Use what you can, and do what you can. By neglecting security, you are, even
if unintentionally, neglecting exactly what you are trying to gain; privacy and
control.</p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</section>
<section id="solution">
<h2><a href="#solution">Solution</a></h2>
<p>What can you do about this? The answer is simple; however, it does require you to use logic,
fact, and evidence, not emotion, which is a difficult pill for most people to swallow. Use your
adversaries' weapons against them. The only way to effectively combat the privacy invasion and
lack of control of our devices and data is to become a
<a href="https://en.wikipedia.org/wiki/Turncoat">renegade</a>
and not take sides. Yes, that means not taking sides with the closed-source, proprietary, big
tech and government entities, but it also means not taking sides with any FOSS entities. The
only way to win this war is to take <em>whatever</em> hardware and software you can, and use it
tactically.</p>
<p>The best solution for device security, privacy, and control, is to use a Google Pixel
(currently, Pixel 5a or newer) running
<a href="https://grapheneos.org/">GrapheneOS</a>.
Google Pixel devices allow you complete bootloader freedom, including the
<a href="https://android.googlesource.com/platform/external/avb/+/master/README.md#pixel-2-and-later">ability to lock the bootloader after flashing a custom OS</a>
(GrapheneOS includes a custom OS signing key to allow locking the bootloader and enabling
verified boot to prevent
<a href="https://en.wikipedia.org/wiki/Malware">malware</a>
persistence, evil maid attacks, and boot chain
<a href="https://en.wikipedia.org/wiki/Data_corruption">corruption</a>),
<a href="https://support.google.com/nexus/answer/4457705">long device support lifecycles</a>
(minimum 3 years for Pixel 5a, minimum 5 years for Pixel 6-series and 7-series, and minimum 7
years for Pixel 8-series and newer), and
<a href="https://source.android.com/docs/security/bulletin/pixel/">guaranteed monthly security updates</a>
for the entire support timeframe of the devices.</p>
</section>
<section id="conclusion">
<h2><a href="#conclusion">Conclusion</a></h2>
<p>Use what you can, and do what you can. By neglecting security, you are, even if
unintentionally, neglecting exactly what you are trying to gain; privacy and control.</p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,99 +1,95 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Blog - #1 -->
<!-- Version: 9.0.0 -->
<!-- Version: 9.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - systemd Insecurity</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - systemd Insecurity</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Blog - #1</h1>
<h2>systemd Insecurity</h2>
<p class="update_date">Posted: 2022-01-29 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-10-31 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#issue-0">Issue #0 - Against CVE Assignment</a></li>
<li><a href="#issue-1">Issue #1 - CVEs Are Not Useful</a></li>
<li><a href="#issue-2">Issue #2 - Security is a Circus</a></li>
<li><a href="#issue-3">Issue #3 - Blaming the User</a></li>
</ul>
</nav>
<h1>Blog - #1</h1>
<h2>systemd Insecurity</h2>
<p class="update_date">Posted: 2022-01-29 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-10-31 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#issue-0">Issue #0 - Against CVE Assignment</a></li>
<li><a href="#issue-1">Issue #1 - CVEs Are Not Useful</a></li>
<li><a href="#issue-2">Issue #2 - Security is a Circus</a></li>
<li><a href="#issue-3">Issue #3 - Blaming the User</a></li>
</ul>
</nav>
<p>Anyone who cares about security may want to switch from systemd as soon as possible; its lead
developer doesn't care about your security at all.</p>
<section id="issue-0">
<h2><a href="#issue-0">Issue #0 - Against CVE Assignment</a></h2>
<blockquote>"You don't assign CVEs to every single random bugfix we do, do
you?"</blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p><b>My thoughts:</b> Yes, if they're security-related.</p>
<p>Source:
<a href="https://github.com/systemd/systemd/pull/5998#issuecomment-303782334">systemd GitHub Issue 5998</a></p>
</section>
<section id="issue-1">
<h2><a href="#issue-1">Issue #1 - CVEs Are Not Useful</a></h2>
<blockquote>"Humpf, I am not convinced this is the right way to announce this.
We never did that, and half the CVEs aren't useful anyway, hence I am not sure
we should start with that now, because it is either inherently incomplete or
blesses the nonsensical part of the CVE circus which we really shouldn't
bless..."</blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p><b>My thoughts:</b> CVEs are supposed to be for security, and a log of when they
were found and their severity, so yes, it <em>is</em> the correct way to
announce it. It seems as if over 95 security-concious people think the same.</p>
<p>Source:
<a href="https://github.com/systemd/systemd/pull/6225#issuecomment-311739869">systemd GitHub Issue 6225</a></p>
</section>
<section id="issue-2">
<h2><a href="#issue-2">Issue #2 - Security is a Circus</a></h2>
<blockquote>"I am not sure I buy enough into the security circus to do that
though for any minor issue..."</blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p>Source:
<a href="https://github.com/systemd/systemd/issues/5144#issuecomment-276740654">systemd GitHub Issue 5144</a></p>
</section>
<section id="issue-3">
<h2><a href="#issue-3">Issue #3 - Blaming the User</a></h2>
<blockquote><p>"Yes, as you found out "0day" is not a valid username. I wonder
which tool permitted you to create it in the first place. Note that not
permitting numeric first characters is done on purpose: to avoid ambiguities
between numeric UID and textual user names.</p>
<p>systemd will validate all configuration data you drop at it, making it hard to
generate invalid configuration. Hence, yes, it's a feature that we don't permit
invalid user names, and I'd consider it a limitation of xinetd that it doesn't
refuse an invalid username.</p>
<p>So, yeah, I don't think there's anything to fix in systemd here. I understand
this is annoying, but still: the username is clearly not valid."</p></blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p><b>My thoughts:</b> systemd was the thing that allowed root access just because a
username started with a number, then Poettering blamed the user.</p>
<p>Source:
<a href="https://github.com/systemd/systemd/issues/6237#issuecomment-311900864">systemd GitHub Issue 6237</a></p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
<p>Anyone who cares about security may want to switch from systemd as soon as possible; its lead
developer doesn't care about your security at all.</p>
<section id="issue-0">
<h2><a href="#issue-0">Issue #0 - Against CVE Assignment</a></h2>
<blockquote>"You don't assign CVEs to every single random bugfix we do, do you?"</blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p><b>My thoughts:</b> Yes, if they're security-related.</p>
<p>Source:
<a href="https://github.com/systemd/systemd/pull/5998#issuecomment-303782334">systemd GitHub Issue 5998</a></p>
</section>
<section id="issue-1">
<h2><a href="#issue-1">Issue #1 - CVEs Are Not Useful</a></h2>
<blockquote>"Humpf, I am not convinced this is the right way to announce this. We never did
that, and half the CVEs aren't useful anyway, hence I am not sure we should start with that now,
because it is either inherently incomplete or blesses the nonsensical part of the CVE circus
which we really shouldn't bless..."</blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p><b>My thoughts:</b> CVEs are supposed to be for security, and a log of when they were found
and their severity, so yes, it <em>is</em> the correct way to announce it. It seems as if over
95 security-concious people think the same.</p>
<p>Source:
<a href="https://github.com/systemd/systemd/pull/6225#issuecomment-311739869">systemd GitHub Issue 6225</a></p>
</section>
<section id="issue-2">
<h2><a href="#issue-2">Issue #2 - Security is a Circus</a></h2>
<blockquote>"I am not sure I buy enough into the security circus to do that though for any minor
issue..."</blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p>Source:
<a href="https://github.com/systemd/systemd/issues/5144#issuecomment-276740654">systemd GitHub Issue 5144</a></p>
</section>
<section id="issue-3">
<h2><a href="#issue-3">Issue #3 - Blaming the User</a></h2>
<blockquote><p>"Yes, as you found out "0day" is not a valid username. I wonder which tool
permitted you to create it in the first place. Note that not permitting numeric first characters
is done on purpose: to avoid ambiguities between numeric UID and textual user names.</p>
<p>systemd will validate all configuration data you drop at it, making it hard to generate
invalid configuration. Hence, yes, it's a feature that we don't permit invalid user names, and
I'd consider it a limitation of xinetd that it doesn't refuse an invalid username.</p>
<p>So, yeah, I don't think there's anything to fix in systemd here. I understand this is
annoying, but still: the username is clearly not valid."</p></blockquote>
<p>- Lennart Poettering, systemd lead developer</p>
<p><b>My thoughts:</b> systemd was the thing that allowed root access just because a username
started with a number, then Poettering blamed the user.</p>
<p>Source:
<a href="https://github.com/systemd/systemd/issues/6237#issuecomment-311900864">systemd GitHub Issue 6237</a></p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,112 +1,100 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Blog - #3 -->
<!-- Version: 9.0.0 -->
<!-- Version: 9.0.0-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - The Chromium Monopoly</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap">Sitemap</a></div>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - The Chromium Monopoly</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap">Sitemap</a></div>
</nav>
<h1>Blog - #3</h1>
<h2>The Chromium Monopoly</h2>
<p class="update_date">Posted: 2022-12-20 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-11-11 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#solution">Solution</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
<h1>Blog - #3</h1>
<h2>The Chromium Monopoly</h2>
<p class="update_date">Posted: 2022-12-20 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-11-11 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#solution">Solution</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
<section id="introduction">
<h2><a href="#introduction">Introduction</a></h2>
<p>It's no secret that I'm an advocate of Chromium and will use it for the
foreseeable future. It is a highly secure web browser which provides strong
protection against malicious wesbites and the code they run, and, while I am not
too interested in high performance, it is a very performant web browser, despite
its security features.</p>
<p>However, the intention of this blog post is not to promote Chromium for any
reason, but rather show an issue with it; an issue which is larger than may be
realised by web-surfing users. That issue is the large monopoly Chromium has in
the web browser market;
<a href="https://en.wikipedia.org/wiki/Usage_share_of_web_browsers#Summary_tables">Chromium's market share is around 65%</a>,
making it the largest slice of the cake. The issue becomes even deeper and more
problematic when you realise that the second-place web browser, Safari, has only
an 18% market share.</p>
<p>The main issue with this type of monopoly is the large amounts of power and
influence it gives Chromium, which can lead to, and is leading to, excessive
authority of how the web should work, and the standards which are implemented,
which all other web browsers must comply with in order to have a fully working
web.</p>
</section>
<section id="solution">
<h2><a href="#solution">Solution</a></h2>
<p>In order to combat the Chromium monopoly, users typically go over to
Chromium's classical rival, Firefox. However, Firefox is dying and has lost
almost all of its userbase over the last 2-3 years; the reason for this is a
tale of selfishness and greed, caused by Firefox's parent company to go off
course and lose its original goal of providing a freedom-respecting, open web.
Mozilla caused self-inflicted damage which it cannot recover from, and, to me,
is already dead. The vultures are simply waiting for the final, small group of
users to abandon the project before Firefox finally succumbs to its own demise;
the demise it caused itself.</p>
<p>If attempting to increase Firefox's market share to previous levels will be
in vain, what is the solution? How can we prevent Chromium from completely
taking over the web and dictating everything we do and how the web should be
designed and used?</p>
<p>To find the answer to these important but difficult questions, we must go to
the alternatives which still have a fighting chance. Safari, developed by Apple,
is based on WebKit, an engine completely independent of Chromium and
Firefox.</p>
<p>Just using a non-Chromium-based web browser is not enough; the choice must
already have enough market share to still be relevant, and be capable of gaining
new users. Safari, being preinstalled on Apple devices including iPhone and Mac,
already has a great advantage over Firefox. Apple devices, especially iPhone, is
abundant in streets everywhere on the planet. Safari is the default choice for
Apple users and has a large market share simply because of how widespread it is.
Exploiting this fact is the only way to gain more market share and take down
Chromium before it is too late; the clock is ticking, and Apple are the only
ones preventing Chromium from completely taking over the web. Backing Safari
instead of Firefox will keep the WebKit market share from falling to a
critically low percentage, making it impossible to make a comeback, as has
happened to Firefox. Sometimes, directly supporting a political party is not the
way to get them into power, supporting the second-place alternative is, in order
to keep the one you don't want out of power, giving the party you do want in
power an advantage. To win this war against the Chromium monopoly, we must be
tactical, not emotional.</p>
</section>
<section id="conclusion">
<h2><a href="#conclusion">Conclusion</a></h2>
<p>Supporting Safari is the first step in supporting WebKit and promoting usage
of the independent web engine. Buying time while supporting and contributing to
WebKit browser projects is the best and only chance anyone has at competing with
Chromium, and preventing it from increasing its dominance to unstoppable levels,
at which point there will be no return.</p>
</section>
<div class="sitemap-small"><a href="../sitemap">Sitemap</a></div>
</body>
<section id="introduction">
<h2><a href="#introduction">Introduction</a></h2>
<p>It's no secret that I'm an advocate of Chromium and will use it for the foreseeable future.
It is a highly secure web browser which provides strong protection against malicious wesbites
and the code they run, and, while I am not too interested in high performance, it is a very
performant web browser, despite its security features.</p>
<p>However, the intention of this blog post is not to promote Chromium for any reason, but
rather show an issue with it; an issue which is larger than may be realised by web-surfing
users. That issue is the large monopoly Chromium has in the web browser market;
<a href="https://en.wikipedia.org/wiki/Usage_share_of_web_browsers#Summary_tables">Chromium's market share is around 65%</a>,
making it the largest slice of the cake. The issue becomes even deeper and more problematic when
you realise that the second-place web browser, Safari, has only an 18% market share.</p>
<p>The main issue with this type of monopoly is the large amounts of power and influence it
gives Chromium, which can lead to, and is leading to, excessive authority of how the web should
work, and the standards which are implemented, which all other web browsers must comply with in
order to have a fully working web.</p>
</section>
<section id="solution">
<h2><a href="#solution">Solution</a></h2>
<p>In order to combat the Chromium monopoly, users typically go over to Chromium's classical
rival, Firefox. However, Firefox is dying and has lost almost all of its userbase over the last
2-3 years; the reason for this is a tale of selfishness and greed, caused by Firefox's parent
company to go off course and lose its original goal of providing a freedom-respecting, open web.
Mozilla caused self-inflicted damage which it cannot recover from, and, to me, is already dead.
The vultures are simply waiting for the final, small group of users to abandon the project
before Firefox finally succumbs to its own demise; the demise it caused itself.</p>
<p>If attempting to increase Firefox's market share to previous levels will be in vain, what is
the solution? How can we prevent Chromium from completely taking over the web and dictating
everything we do and how the web should be designed and used?</p>
<p>To find the answer to these important but difficult questions, we must go to the alternatives
which still have a fighting chance. Safari, developed by Apple, is based on WebKit, an engine
completely independent of Chromium and Firefox.</p>
<p>Just using a non-Chromium-based web browser is not enough; the choice must already have
enough market share to still be relevant, and be capable of gaining new users. Safari, being
preinstalled on Apple devices including iPhone and Mac, already has a great advantage over
Firefox. Apple devices, especially iPhone, is abundant in streets everywhere on the planet.
Safari is the default choice for Apple users and has a large market share simply because of how
widespread it is. Exploiting this fact is the only way to gain more market share and take down
Chromium before it is too late; the clock is ticking, and Apple are the only ones preventing
Chromium from completely taking over the web. Backing Safari instead of Firefox will keep the
WebKit market share from falling to a critically low percentage, making it impossible to make a
comeback, as has happened to Firefox. Sometimes, directly supporting a political party is not
the way to get them into power, supporting the second-place alternative is, in order to keep the
one you don't want out of power, giving the party you do want in power an advantage. To win this
war against the Chromium monopoly, we must be tactical, not emotional.</p>
</section>
<section id="conclusion">
<h2><a href="#conclusion">Conclusion</a></h2>
<p>Supporting Safari is the first step in supporting WebKit and promoting usage of the
independent web engine. Buying time while supporting and contributing to WebKit browser projects
is the best and only chance anyone has at competing with Chromium, and preventing it from
increasing its dominance to unstoppable levels, at which point there will be no return.</p>
</section>
<div class="sitemap-small"><a href="../sitemap">Sitemap</a></div>
</body>
</html>

View File

@ -1,169 +1,148 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Blog - #2 -->
<!-- Version: 9.0.0 -->
<!-- Version: 9.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - Untrusted: The Issue with Decentralisation</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Blog - Untrusted: The Issue with Decentralisation</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Blog - #2</h1>
<h2>Untrusted: The Issue with Decentralisation</h2>
<p class="update_date">Posted: 2022-06-30 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-11-11 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#examples">Examples</a></li>
<ul>
<li><a href="#examples-messaging">Messaging</a></li>
</ul>
<li><a href="#solution">Solution</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
<h1>Blog - #2</h1>
<h2>Untrusted: The Issue with Decentralisation</h2>
<p class="update_date">Posted: 2022-06-30 (UTC+00:00)</p>
<p class="update_date">Updated: 2023-11-11 (UTC+00:00)</p>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#examples">Examples</a></li>
<ul>
<li><a href="#examples-messaging">Messaging</a></li>
</ul>
<li><a href="#solution">Solution</a></li>
<li><a href="#conclusion">Conclusion</a></li>
</ul>
</nav>
<section id="introduction">
<h2><a href="#introduction">Introduction</a></h2>
<p>A recent trend is seeing people move towards decentralised services and
platforms. While this is reasonable and I can understand why they are doing such
a thing, they are seemingly doing it without thinking about the possible
consequences of doing so. The issue with decentralisation is trust; there is no
way to pin a key to a specific person, to ensure that you are communicating with
the same person you are supposed to be communicating with. In this article, I
will discuss some of the security issues with the decentralised model.</p>
<section id="introduction">
<h2><a href="#introduction">Introduction</a></h2>
<p>A recent trend is seeing people move towards decentralised services and platforms. While this
is reasonable and I can understand why they are doing such a thing, they are seemingly doing it
without thinking about the possible consequences of doing so. The issue with decentralisation is
trust; there is no way to pin a key to a specific person, to ensure that you are communicating
with the same person you are supposed to be communicating with. In this article, I will discuss
some of the security issues with the decentralised model.</p>
</section>
<section id="examples">
<h2><a href="#examples">Examples</a></h2>
<section id="examples-messaging">
<h3><a href="#examples-messaging">Messaging</a></h3>
<p>When it comes to messaging your contacts on a centralised platform, such as Twitter
or Facebook, the keys are pinned to that user account, using the user's password as the
method of identification. This approach makes it impossible to log in as a specific user
without their password, should it be strong enough to not be guessed, whether via
personal guessing or exhaustive search. The trust in this centralised model is the high
security these platforms have. It is extremely unlikely that anyone other than a
government would be able to access the accounts stored on such platforms' servers, which
makes the physical security trusted. As for remote security, should a user's password be
compromised, it can typically be reset if the user can prove they are the owner of the
account via some form of identification; this is where the trust issue of
decentralisation occurs.</p>
<p>In the decentralised model, keys are kept on the users' devices, in their possession.
While this soveriegnty is welcomed, it introduces a critical flaw in the security of
communicating with anyone via a decentralised platform; should a user's device be lost,
stolen, or otherwise compromised, there is no way to know it happened and what the new
keys really are, and if the same user generated those keys. There is no centralised
point where anyone can go to check if the compromised user has updated their keys, which
means there must already have been at least one other secure channel in place before the
compromise occurred. Even if there was, the security of endpoint devices, especially
typical users, is much lower than a well protected corporation's servers, making even
those secure channels questionable to trust. Should all secure channels be compromised,
there is literally no way to know if the person you are communicating with is the real
person or an imposter; there is no root of trust. This point is fatal; game over. The
only way to establish trust again would be to physically meet and exchange keys.</p>
</section>
<section id="examples">
<h2><a href="#examples">Examples</a></h2>
<section id="examples-messaging">
<h3><a href="#examples-messaging">Messaging</a></h3>
<p>When it comes to messaging your contacts on a centralised
platform, such as Twitter or Facebook, the keys are pinned to
that user account, using the user's password as the method of
identification. This approach makes it impossible to log in as a
specific user without their password, should it be strong enough
to not be guessed, whether via personal guessing or exhaustive
search. The trust in this centralised model is the high security
these platforms have. It is extremely unlikely that anyone other
than a government would be able to access the accounts stored on
such platforms' servers, which makes the physical security
trusted. As for remote security, should a user's password be
compromised, it can typically be reset if the user can prove
they are the owner of the account via some form of
identification; this is where the trust issue of
decentralisation occurs.</p>
<p>In the decentralised model, keys are kept on the users'
devices, in their possession. While this soveriegnty is
welcomed, it introduces a critical flaw in the security of
communicating with anyone via a decentralised platform; should a
user's device be lost, stolen, or otherwise compromised, there
is no way to know it happened and what the new keys really are,
and if the same user generated those keys. There is no
centralised point where anyone can go to check if the
compromised user has updated their keys, which means there must
already have been at least one other secure channel in place
before the compromise occurred. Even if there was, the security
of endpoint devices, especially typical users, is much lower
than a well protected corporation's servers, making even those
secure channels questionable to trust. Should all secure
channels be compromised, there is literally no way to know if
the person you are communicating with is the real person or an
imposter; there is no root of trust. This point is fatal; game
over. The only way to establish trust again would be to
physically meet and exchange keys.</p>
</section>
</section>
<section id="solution">
<h2><a href="#solution">Solution</a></h2>
<p>I'll cut to the chase; there isn't a definitive solution. The best way to
handle this situation is to design your threat model and think about your
reasoning for avoiding centralised platforms. Is it lack of trust of a specific
company? Is it the possibility of centralised platforms going offline? Only by
thinking logically and tactically can you solve both the issue of centralisation
and decentralisation. Often, one size fits all is never the correct approach,
nor does it typically work.</p>
<p>In order to avoid the issue of loss of trust due to lack of root of trust,
all users' keys must be stored in a centralised location where all contacts are
able to go to in case of compromise or to periodically check the state of keys
and to see if they have changed. This centralised location requires some sort of
identification to ensure that the user changing their keys is really the same
person who initially signed up for the platform, using a trust-on-first-use
(TOFU) model, which isn't much different than what today's centralised platforms
are already doing; the only difference is who is controlling the location; trust
is still present and required.</p>
<p>In order to have a root of trust, I have posted my keys to my website, which
is protected by multiple layers of security:
<ol>
<li>I have provided identification to my domain name registrar,
to ensure I can access the website I rightfully own, should it
be compromised, by providing identification to the domain name
registrar.</li>
<li>I have provided identification to my virtual private server
host, to ensure I can access the virtual private servers I
rightfully rent, should they be compromised, by providing
identification to the virtual private server host.</li>
<li>I have pinned my website to a globally trusted certificate
authority, Let's Encrypt, which is a trusted party to manage TLS
certificates and ensure ownership of the domain when connecting
to it.</li>
<li>I have enabled DNSSEC on my domain, so it is extremely
difficult to spoof my domain to make you believe you're
connecting to it when you're actually connecting to someone
else's.</li>
</ol>
</p>
<p>While not the most secure implementation of a root of trust, it is the most
secure implementation currently available to me. While the domain name registrar
or virtual private server host could tamper with my domain and data, they are
the most trustworthy parties available. In its current form, decentralisation
would make this impossible to implement in any form.</p>
</section>
<section id="conclusion">
<h2><a href="#conclusion">Conclusion</a></h2>
<p>Do not demand anonymity; demand privacy and control of your own data.
Complete anonymity makes it impossible to have a root of trust, and is typically
never necessary. It is possible for someone else to hold your keys, without them
taking control of them and dictating what you can and cannot do (X's
misinformation policy comes to mind). If a platform is not listening to your or
other people's concerns about how it is being run, show those platforms that you
will not stand for it, and move to a different one. This may not be ideal, but
it's not different to moving from one decentralised platform to another.
Centralisation is not what is evil, the people in control of the platforms are
what is potentially evil. Carefully, logically, and tactically, choose who to
trust. Decentralisation doesn't do much for trust when you must still trust the
operator of the decentralised platform, and are still subject to the possibly
draconian policies of that decentralised platform. If government is what you are
trying to avoid, there is no denying it is feasibly impossible to avoid it; a
government could always take down the decentralised platform, forcing you to
move to another, and they could also take down the centralised key storage site
mentioned earlier in this article. A government is not something you can so
easily avoid. Decentralisation does not solve the government issue. In order to
live a happy, fun, and fulfilled life, while protecting yourself against logical
threats, there are only two words you must live by: Threat model.</p>
</section>
<div class="sitemap-small"><a href="../sitemap">Sitemap</a></div>
</body>
</section>
<section id="solution">
<h2><a href="#solution">Solution</a></h2>
<p>I'll cut to the chase; there isn't a definitive solution. The best way to handle this
situation is to design your threat model and think about your reasoning for avoiding centralised
platforms. Is it lack of trust of a specific company? Is it the possibility of centralised
platforms going offline? Only by thinking logically and tactically can you solve both the issue
of centralisation and decentralisation. Often, one size fits all is never the correct approach,
nor does it typically work.</p>
<p>In order to avoid the issue of loss of trust due to lack of root of trust, all users' keys
must be stored in a centralised location where all contacts are able to go to in case of
compromise or to periodically check the state of keys and to see if they have changed. This
centralised location requires some sort of identification to ensure that the user changing their
keys is really the same person who initially signed up for the platform, using a
trust-on-first-use (TOFU) model, which isn't much different than what today's centralised
platforms are already doing; the only difference is who is controlling the location; trust is
still present and required.</p>
<p>In order to have a root of trust, I have posted my keys to my website, which
is protected by multiple layers of security:</p>
<ol>
<li>I have provided identification to my domain name registrar, to ensure I can access
the website I rightfully own, should it be compromised, by providing identification to
the domain name registrar.</li>
<li>I have provided identification to my virtual private server host, to ensure I can
access the virtual private servers I rightfully rent, should they be compromised, by
providing identification to the virtual private server host.</li>
<li>I have pinned my website to a globally trusted certificate authority, Let's Encrypt,
which is a trusted party to manage TLS certificates and ensure ownership of the domain
when connecting to it.</li>
<li>I have enabled DNSSEC on my domain, so it is extremely difficult to spoof my domain
to make you believe you're connecting to it when you're actually connecting to someone
else's.</li>
</ol>
<p>While not the most secure implementation of a root of trust, it is the most secure
implementation currently available to me. While the domain name registrar or virtual private
server host could tamper with my domain and data, they are the most trustworthy parties
available. In its current form, decentralisation would make this impossible to implement in any
form.</p>
</section>
<section id="conclusion">
<h2><a href="#conclusion">Conclusion</a></h2>
<p>Do not demand anonymity; demand privacy and control of your own data. Complete anonymity
makes it impossible to have a root of trust, and is typically never necessary. It is possible
for someone else to hold your keys, without them taking control of them and dictating what you
can and cannot do (X's misinformation policy comes to mind). If a platform is not listening to
your or other people's concerns about how it is being run, show those platforms that you will
not stand for it, and move to a different one. This may not be ideal, but it's not different to
moving from one decentralised platform to another. Centralisation is not what is evil, the
people in control of the platforms are what is potentially evil. Carefully, logically, and
tactically, choose who to trust. Decentralisation doesn't do much for trust when you must still
trust the operator of the decentralised platform, and are still subject to the possibly
draconian policies of that decentralised platform. If government is what you are trying to
avoid, there is no denying it is feasibly impossible to avoid it; a government could always take
down the decentralised platform, forcing you to move to another, and they could also take down
the centralised key storage site mentioned earlier in this article. A government is not
something you can so easily avoid. Decentralisation does not solve the government issue. In
order to live a happy, fun, and fulfilled life, while protecting yourself against logical
threats, there are only two words you must live by: Threat model.</p>
</section>
<div class="sitemap-small"><a href="../sitemap">Sitemap</a></div>
</body>
</html>

View File

@ -1,44 +1,44 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Changelog -->
<!-- Version: 6.0.0 -->
<!-- Version: 6.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Changelog</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="changelog/firmware-aa000-0.xhtml">Firmware - aa000-0</a></li>
<li><a href="changelog/firmware-xa000-0.xhtml">Firmware - xa000-0</a></li>
<li><a href="changelog/firmware-xb000-0.xhtml">Firmware - xb000-0</a></li>
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Changelog</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="changelog/firmware-aa000-0.xhtml">Firmware - aa000-0</a></li>
<li><a href="changelog/firmware-xa000-0.xhtml">Firmware - xa000-0</a></li>
<li><a href="changelog/firmware-xb000-0.xhtml">Firmware - xb000-0</a></li>
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,153 +1,151 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Changelog - Firmware - aa000-0 -->
<!-- Version: 5.0.0 -->
<!-- Version: 5.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog - Firmware - aa000-0</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap">Sitemap</a></div>
</nav>
<h1>Changelog - Firmware - aa000-0</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#7.0.0.8">7.0.0.8</a></li>
<li><a href="#6.0.0.7">6.0.0.7</a></li>
<li><a href="#5.0.0.6">5.0.0.6</a></li>
<li><a href="#4.0.0.5">4.0.0.5</a></li>
<li><a href="#3.0.0.4">3.0.0.4</a></li>
<li><a href="#2.0.0.3">2.0.0.3</a></li>
<li><a href="#1.0.0.2">1.0.0.2</a></li>
<li><a href="#0.0.0.1">0.0.0.1</a></li>
</ul>
</nav>
<article id="7.0.0.8">
<h2><a href="#7.0.0.8">7.0.0.8</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-7.0.0.8">firmware-aa000-0-7.0.0.8</a></li>
</ul>
<p>Changelog (since version 6.0.0.7):</p>
<ul>
<li>Update readme</li>
<li>Update WHENCE</li>
<li>Update check_whence script</li>
<li>Update AMD CPU Family 19h microcode</li>
</ul>
</article>
<article id="6.0.0.7">
<h2><a href="#6.0.0.7">6.0.0.7</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-6.0.0.7">firmware-aa000-0-6.0.0.7</a></li>
</ul>
<p>Changelog (since version 5.0.0.6):</p>
<ul>
<li>Add AMD GPU Beige Goby firmware</li>
<li>Remove AMD GPU Navy Flounder firmware</li>
</ul>
</article>
<article id="5.0.0.6">
<h2><a href="#5.0.0.6">5.0.0.6</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-5.0.0.6">firmware-aa000-0-5.0.0.6</a></li>
</ul>
<p>Changelog (since version 4.0.0.5):</p>
<ul>
<li>Remove unnecessary Realtek RTL8125B NIC firmware</li>
</ul>
</article>
<article id="4.0.0.5">
<h2><a href="#4.0.0.5">4.0.0.5</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-4.0.0.5">firmware-aa000-0-4.0.0.5</a></li>
</ul>
<p>Changelog (since version 3.0.0.4):</p>
<ul>
<li>Update readme</li>
<li>Update Makefile</li>
<li>Update WHENCE</li>
<li>Update check_whence script</li>
<li>Update copy-firmware script</li>
<li>Add Realtek RTL8125B NIC firmware</li>
</ul>
</article>
<article id="3.0.0.4">
<h2><a href="#3.0.0.4">3.0.0.4</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-3.0.0.4">firmware-aa000-0-3.0.0.4</a></li>
</ul>
<p>Changelog (since version 2.0.0.3):</p>
<ul>
<li>Update WHENCE</li>
<li>Update AMD GPU Navy Flounder DMCUB firmware to version
0.0.172.0</li>
</ul>
</article>
<article id="2.0.0.3">
<h2><a href="#2.0.0.3">2.0.0.3</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-2.0.0.3">firmware-aa000-0-2.0.0.3</a></li>
</ul>
<p>Changelog (since version 1.0.0.2):</p>
<ul>
<li>Update readme</li>
<li>Switch AMD CPU microcode readme from plaintext formatting to
AsciiDoc formatting</li>
<li>Update AMD CPU microcode readme</li>
<li>Update WHENCE</li>
<li>Update AMD GPU Navy Flounder DMCUB firmware</li>
</ul>
</article>
<article id="1.0.0.2">
<h2><a href="#1.0.0.2">1.0.0.2</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-1.0.0.2">firmware-aa000-0-1.0.0.2</a></li>
</ul>
<p>Changelog (since version 0.0.0.1):</p>
<ul>
<li>Remove AMD GPU Green Sardine firmware</li>
</ul>
</article>
<article id="0.0.0.1">
<h2><a href="#0.0.0.1">0.0.0.1</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-0.0.0.1">firmware-aa000-0-0.0.0.1</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>Initial release</li>
</ul>
</article>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog - Firmware - aa000-0</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap">Sitemap</a></div>
</nav>
<h1>Changelog - Firmware - aa000-0</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#7.0.0.8">7.0.0.8</a></li>
<li><a href="#6.0.0.7">6.0.0.7</a></li>
<li><a href="#5.0.0.6">5.0.0.6</a></li>
<li><a href="#4.0.0.5">4.0.0.5</a></li>
<li><a href="#3.0.0.4">3.0.0.4</a></li>
<li><a href="#2.0.0.3">2.0.0.3</a></li>
<li><a href="#1.0.0.2">1.0.0.2</a></li>
<li><a href="#0.0.0.1">0.0.0.1</a></li>
</ul>
</nav>
<article id="7.0.0.8">
<h2><a href="#7.0.0.8">7.0.0.8</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-7.0.0.8">firmware-aa000-0-7.0.0.8</a></li>
</ul>
<p>Changelog (since version 6.0.0.7):</p>
<ul>
<li>Update readme</li>
<li>Update WHENCE</li>
<li>Update check_whence script</li>
<li>Update AMD CPU Family 19h microcode</li>
</ul>
</article>
<article id="6.0.0.7">
<h2><a href="#6.0.0.7">6.0.0.7</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-6.0.0.7">firmware-aa000-0-6.0.0.7</a></li>
</ul>
<p>Changelog (since version 5.0.0.6):</p>
<ul>
<li>Add AMD GPU Beige Goby firmware</li>
<li>Remove AMD GPU Navy Flounder firmware</li>
</ul>
</article>
<article id="5.0.0.6">
<h2><a href="#5.0.0.6">5.0.0.6</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-5.0.0.6">firmware-aa000-0-5.0.0.6</a></li>
</ul>
<p>Changelog (since version 4.0.0.5):</p>
<ul>
<li>Remove unnecessary Realtek RTL8125B NIC firmware</li>
</ul>
</article>
<article id="4.0.0.5">
<h2><a href="#4.0.0.5">4.0.0.5</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-4.0.0.5">firmware-aa000-0-4.0.0.5</a></li>
</ul>
<p>Changelog (since version 3.0.0.4):</p>
<ul>
<li>Update readme</li>
<li>Update Makefile</li>
<li>Update WHENCE</li>
<li>Update check_whence script</li>
<li>Update copy-firmware script</li>
<li>Add Realtek RTL8125B NIC firmware</li>
</ul>
</article>
<article id="3.0.0.4">
<h2><a href="#3.0.0.4">3.0.0.4</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-3.0.0.4">firmware-aa000-0-3.0.0.4</a></li>
</ul>
<p>Changelog (since version 2.0.0.3):</p>
<ul>
<li>Update WHENCE</li>
<li>Update AMD GPU Navy Flounder DMCUB firmware to version 0.0.172.0</li>
</ul>
</article>
<article id="2.0.0.3">
<h2><a href="#2.0.0.3">2.0.0.3</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-2.0.0.3">firmware-aa000-0-2.0.0.3</a></li>
</ul>
<p>Changelog (since version 1.0.0.2):</p>
<ul>
<li>Update readme</li>
<li>Switch AMD CPU microcode readme from plaintext formatting to AsciiDoc formatting</li>
<li>Update AMD CPU microcode readme</li>
<li>Update WHENCE</li>
<li>Update AMD GPU Navy Flounder DMCUB firmware</li>
</ul>
</article>
<article id="1.0.0.2">
<h2><a href="#1.0.0.2">1.0.0.2</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-1.0.0.2">firmware-aa000-0-1.0.0.2</a></li>
</ul>
<p>Changelog (since version 0.0.0.1):</p>
<ul>
<li>Remove AMD GPU Green Sardine firmware</li>
</ul>
</article>
<article id="0.0.0.1">
<h2><a href="#0.0.0.1">0.0.0.1</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/src/tag/firmware-aa000-0-0.0.0.1">firmware-aa000-0-0.0.0.1</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>Initial release</li>
</ul>
</article>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,108 +1,108 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Changelog - Firmware - xa000-0 -->
<!-- Version: 5.0.0 -->
<!-- Version: 5.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog - Firmware - xa000-0</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Changelog - Firmware - xa000-0</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#4.0.0.4">4.0.0.4</a></li>
<li><a href="#3.0.0.3">3.0.0.3</a></li>
<li><a href="#2.0.0.2">2.0.0.2</a></li>
<li><a href="#1.0.0.1">1.0.0.1</a></li>
<li><a href="#0.0.0.0">0.0.0.0</a></li>
</ul>
</nav>
<article id="4.0.0.4">
<h2><a href="#4.0.0.4">4.0.0.4</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-4.0.0.4">firmware-xa000-0-4.0.0.4</a></li>
</ul>
<p>Changelog (since version 3.0.0.3):</p>
<ul>
<li>Update readme</li>
<li>Update WHENCE</li>
<li>Update AMD CPU Family 17h microcode</li>
<li>Update AMD GPU Raven VCN firmware</li>
</ul>
</article>
<article id="3.0.0.3">
<h2><a href="#3.0.0.3">3.0.0.3</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-3.0.0.3">firmware-xa000-0-3.0.0.3</a></li>
</ul>
<p>Changelog (since version 2.0.0.2):</p>
<ul>
<li>Add Realtek RTL8125B NIC firmware</li>
</ul>
</article>
<article id="2.0.0.2">
<h2><a href="#2.0.0.2">2.0.0.2</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-2.0.0.2">firmware-xa000-0-2.0.0.2</a></li>
</ul>
<p>Changelog (since version 1.0.0.1):</p>
<ul>
<li>Update readme</li>
<li>Update Makefile</li>
<li>Update WHENCE</li>
<li>Update check_whence script</li>
<li>Update copy-firmware script</li>
</ul>
</article>
<article id="1.0.0.1">
<h2><a href="#1.0.0.1">1.0.0.1</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-1.0.0.1">firmware-xa000-0-1.0.0.1</a></li>
</ul>
<p>Changelog (since version 0.0.0.0):</p>
<ul>
<li>Update WHENCE</li>
</ul>
</article>
<article id="0.0.0.0">
<h2><a href="#0.0.0.0">0.0.0.0</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-0.0.0.0">firmware-xa000-0-0.0.0.0</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>Initial release</li>
</ul>
</article>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog - Firmware - xa000-0</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Changelog - Firmware - xa000-0</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#4.0.0.4">4.0.0.4</a></li>
<li><a href="#3.0.0.3">3.0.0.3</a></li>
<li><a href="#2.0.0.2">2.0.0.2</a></li>
<li><a href="#1.0.0.1">1.0.0.1</a></li>
<li><a href="#0.0.0.0">0.0.0.0</a></li>
</ul>
</nav>
<article id="4.0.0.4">
<h2><a href="#4.0.0.4">4.0.0.4</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-4.0.0.4">firmware-xa000-0-4.0.0.4</a></li>
</ul>
<p>Changelog (since version 3.0.0.3):</p>
<ul>
<li>Update readme</li>
<li>Update WHENCE</li>
<li>Update AMD CPU Family 17h microcode</li>
<li>Update AMD GPU Raven VCN firmware</li>
</ul>
</article>
<article id="3.0.0.3">
<h2><a href="#3.0.0.3">3.0.0.3</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-3.0.0.3">firmware-xa000-0-3.0.0.3</a></li>
</ul>
<p>Changelog (since version 2.0.0.2):</p>
<ul>
<li>Add Realtek RTL8125B NIC firmware</li>
</ul>
</article>
<article id="2.0.0.2">
<h2><a href="#2.0.0.2">2.0.0.2</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-2.0.0.2">firmware-xa000-0-2.0.0.2</a></li>
</ul>
<p>Changelog (since version 1.0.0.1):</p>
<ul>
<li>Update readme</li>
<li>Update Makefile</li>
<li>Update WHENCE</li>
<li>Update check_whence script</li>
<li>Update copy-firmware script</li>
</ul>
</article>
<article id="1.0.0.1">
<h2><a href="#1.0.0.1">1.0.0.1</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-1.0.0.1">firmware-xa000-0-1.0.0.1</a></li>
</ul>
<p>Changelog (since version 0.0.0.0):</p>
<ul>
<li>Update WHENCE</li>
</ul>
</article>
<article id="0.0.0.0">
<h2><a href="#0.0.0.0">0.0.0.0</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/src/tag/firmware-xa000-0-0.0.0.0">firmware-xa000-0-0.0.0.0</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>Initial release</li>
</ul>
</article>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,68 +1,68 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Changelog - Firmware - xb000-0 -->
<!-- Version: 5.0.0 -->
<!-- Version: 5.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog - Firmware - xb000-0</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Changelog - Firmware - xb000-0</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#1.0.0.1">1.0.0.1</a></li>
<li><a href="#0.0.0.0">0.0.0.0</a></li>
</ul>
</nav>
<article id="1.0.0.1">
<h2><a href="#1.0.0.1">1.0.0.1</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xb000-0/src/tag/firmware-xb000-0-1.0.0.1">firmware-xb000-0-1.0.0.1</a></li>
</ul>
<p>Changelog (since version 0.0.0.0):</p>
<ul>
<li>Update readme</li>
<li>Update WHENCE</li>
<li>Update AMD CPU Family 19h microcode</li>
<li>Update AMD GPU Green Sardine VCN firmware</li>
</ul>
</article>
<article id="0.0.0.0">
<h2><a href="#0.0.0.0">0.0.0.0</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xb000-0/src/tag/firmware-xb000-0-0.0.0.0">firmware-xb000-0-0.0.0.0</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>Initial release</li>
</ul>
</article>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Changelog - Firmware - xb000-0</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Changelog - Firmware - xb000-0</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#1.0.0.1">1.0.0.1</a></li>
<li><a href="#0.0.0.0">0.0.0.0</a></li>
</ul>
</nav>
<article id="1.0.0.1">
<h2><a href="#1.0.0.1">1.0.0.1</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xb000-0/src/tag/firmware-xb000-0-1.0.0.1">firmware-xb000-0-1.0.0.1</a></li>
</ul>
<p>Changelog (since version 0.0.0.0):</p>
<ul>
<li>Update readme</li>
<li>Update WHENCE</li>
<li>Update AMD CPU Family 19h microcode</li>
<li>Update AMD GPU Green Sardine VCN firmware</li>
</ul>
</article>
<article id="0.0.0.0">
<h2><a href="#0.0.0.0">0.0.0.0</a></h2>
<p>Tags:</p>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xb000-0/src/tag/firmware-xb000-0-0.0.0.0">firmware-xb000-0-0.0.0.0</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>Initial release</li>
</ul>
</article>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,91 +1,83 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Contact -->
<!-- Version: 10.1.0 -->
<!-- Version: 10.1.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Contact</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Contact</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#e2ee">End-to-end encrypted contact methods</a></li>
<ul>
<li><a href="#e2ee-preferred">Preferred</a></li>
<!--<li><a href="#e2ee-metadatafree">Metadata-free</a></li>-->
</ul>
<!--<li><a href="#non-private" class="body-link">Non-private Contact Methods</a></li>-->
</ul>
</nav>
<section id="e2ee">
<h2><a href="#e2ee">End-to-end Encrypted Contact Methods</a></h2>
<section id="e2ee-preferred">
<h3><a href="#e2ee-preferred">Preferred</a></h3>
<p>Whenever possible, use the following contact methods; they
allow verification to mitigate man-in-the-middle attacks, have
high security, and reasonable privacy.</p>
<p><strong>Use the
<a href="key.xhtml">keys</a>
for each contact method to verify my devices.</strong></p>
<p>Note: Verification does not verify a person, only their devices,
and can be defeated via coercion or other force.</p>
<p><img src="asset/img/logo/signal.png" class="logo-small" width="40" height="40" alt="Signal logo"/>Signal
<ul>
<li><a href="https://signal.me/#eu/rXOem_06yX9bsIXE2IM4wAqu6MdZKrEeepdhm28bo0M82s2UXo1GHrew2grpTIkJ">inference.01</a></li>
</ul>
</p>
<p><img src="asset/img/logo/xmpp.png" class="logo-small" width="40" height="40" alt="XMPP logo"/>XMPP
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a> (Main) - (<a href="key.xhtml#xmpp-inferencium">Key</a>)</li>
</ul>
</p>
</section>
<!--
<section id="e2ee-metadatafree">
<h3><a href="#e2ee-metadatafree">Metadata-free</a></h3>
<p>If metadata leakage is an issue for you, you can use the
following contact methods.</p>
<p>These services do not have verification functionality and
will be treated as less secure; <strong>unless you really need
to use these services, use a preferred method
instead.</strong></p>
</section>
-->
</section>
<!--
<section id="nonprivate">
<h2><a href="#nonprivate" class="h2">Non-private Contact Methods</a></h2>
<p>The following contact methods do not utilise end-to-end encryption, or I do
not use such functionality; they are suitable for public contact only, including
directly and groups. Do not use these methods if confidentiality and/or privacy
is required.</p>
</section>
-->
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Contact</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Contact</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#e2ee">End-to-end encrypted contact methods</a></li>
<ul>
<li><a href="#e2ee-preferred">Preferred</a></li>
<!--<li><a href="#e2ee-metadatafree">Metadata-free</a></li>-->
</ul>
<!--<li><a href="#non-private" class="body-link">Non-private Contact Methods</a></li>-->
</ul>
</nav>
<section id="e2ee">
<h2><a href="#e2ee">End-to-end Encrypted Contact Methods</a></h2>
<section id="e2ee-preferred">
<h3><a href="#e2ee-preferred">Preferred</a></h3>
<p>Whenever possible, use the following contact methods; they allow verification to mitigate
man-in-the-middle attacks, have high security, and reasonable privacy.</p>
<p><strong>Use the
<a href="key.xhtml">keys</a>
for each contact method to verify my devices.</strong></p>
<p>Note: Verification does not verify a person, only their devices, and can be defeated via
coercion or other force.</p>
<p><img src="asset/img/logo/signal.png" class="logo-small" width="40" height="40" alt="Signal logo"/>Signal</p>
<ul>
<li><a href="https://signal.me/#eu/rXOem_06yX9bsIXE2IM4wAqu6MdZKrEeepdhm28bo0M82s2UXo1GHrew2grpTIkJ">inference.01</a></li>
</ul>
<p><img src="asset/img/logo/xmpp.png" class="logo-small" width="40" height="40" alt="XMPP logo"/>XMPP</p>
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a> (Main) - (<a href="key.xhtml#xmpp-inferencium">Key</a>)</li>
</ul>
</section>
<!--
<section id="e2ee-metadatafree">
<h3><a href="#e2ee-metadatafree">Metadata-free</a></h3>
<p>If metadata leakage is an issue for you, you can use the following contact methods.</p>
<p>These services do not have verification functionality and will be treated as less secure;
<strong>unless you really need to use these services, use a preferred method
instead.</strong></p>
</section>
<section id="nonprivate">
<h2><a href="#nonprivate" class="h2">Non-private Contact Methods</a></h2>
<p>The following contact methods do not utilise end-to-end encryption, or I do not use
such functionality; they are suitable for public contact only, including directly and
groups. Do not use these methods if confidentiality and/or privacy is required.</p>
</section>
-->
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,187 +1,171 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Directory -->
<!-- Version: 5.0.1 -->
<!-- Version: 5.0.2-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Directory</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Directory</h1>
<section id="xmpp">
<h2><a href="#xmpp">XMPP</a></h2>
<p>This is a list of XMPP channels hosted by me. Channels branded as
Inferencium are run by me. Channels not under Inferencium branding are
either run by me or other people, but are hosted on Inferencium servers.</p>
<p>Public channels can be joined by anyone without an invitation. Non-public
channels require an invitation; requirements for invitations differ
per channel.</p>
<p>For assistance within any channel, contact a moderator of the channel. If an
issue is related to a moderator, contact an administrator; administrators should
not be contacted unless the issue cannot be resolved by a moderator.</p>
<div style="overflow-x: auto;">
<table class="lrg">
<colgroup>
<col class="med"/>
<col style="width:35%"/>
<col class="small"/>
<col style="width:20%"/>
<col style="width:20%"/>
</colgroup>
<thead>
<tr>
<th id="name">Name</th>
<th id="description">Description</th>
<th id="public">Public?</th>
<th id="moderator">Moderators</th>
<th id="admin">Administrators</th>
</tr>
</thead>
<tbody>
<tr>
<th id="inf"><a href="xmpp://gojayi@muc.xmpp.inferencium.net?join">Inferencium</a></th>
<td class="desc" headers="description inf">
<p>Inferencium general channel.</p>
<p><b>Topic:</b> Any, excluding
NSFW.</p>
<p>Multimedia prohibited unless
part of discussion.</p>
</td>
<td class="red" headers="public inf">
No
</td>
<td class="desc" headers="moderator inf">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin inf">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="inf-moderation"><a href="xmpp://moderation@muc.xmpp.inferencium.net?join">Inferencium - Moderation</a></th>
<td class="desc" headers="description inf-moderation">
<p>Inferencium moderation channel.</p>
<p><b>Topic:</b> Moderation of all XMPP
channels hosted by Inferencium.</p>
<p>Inferencium moderators only.</p>
</td>
<td class="red" headers="public inf-moderation">
No
</td>
<td class="desc" headers="moderator inf-moderation">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin inf-moderation">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="inf-multimedia"><a href="xmpp://multimedia@muc.xmpp.inferencium.net?join">Inferencium - Multimedia</a></th>
<td class="desc" headers="description inf-multimedia">
<p>Inferencium multimedia channel.</p>
<p><b>Topic:</b> Any, excluding
NSFW.</p>
<p>Discussion prohibited outside of
multimedia discussion.</p>
</td>
<td class="red" headers="public inf-multimedia">
No
</td>
<td class="desc" headers="moderator inf-multimedia">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin inf-multimedia">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="sys-hardening"><a href="xmpp://sys-hardening@muc.xmpp.inferencium.net?join">Systems Hardening</a></th>
<td class="desc" headers="description sys-hardening">
<p>Systems Hardening security and
privacy channel.</p>
<p><b>Topic:</b> General security
and privacy.</p>
</td>
<td class="green" headers="public sys-hardening">
Yes (Temporarily unavailable)
</td>
<td class="desc" headers="moderator sys-hardening">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin sys-hardening">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="sys-hardening-ot"><a href="xmpp://sys-hardening-ot@muc.xmpp.inferencium.net?join">Systems Hardening - Off-topic</a></th>
<td class="desc" headers="description sys-hardening-ot">
<p>Systems Hardening off-topic
channel.</p>
<p><b>Topic:</b> Any, excluding NSFW,
security, and privacy.</p>
</td>
<td class="green" headers="public sys-hardening-ot">
Yes (Temporarily unavailable)
</td>
<td class="desc" headers="moderator sys-hardening-ot">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin sys-hardening-ot">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Directory</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Directory</h1>
<section id="xmpp">
<h2><a href="#xmpp">XMPP</a></h2>
<p>This is a list of XMPP channels hosted by me. Channels branded as Inferencium are run by me.
Channels not under Inferencium branding are either run by me or other people, but are hosted on
Inferencium servers.</p>
<p>Public channels can be joined by anyone without an invitation. Non-public channels require an
invitation; requirements for invitations differ per channel.</p>
<p>For assistance within any channel, contact a moderator of the channel. If an issue is related to
a moderator, contact an administrator; administrators should not be contacted unless the issue
cannot be resolved by a moderator.</p>
<div style="overflow-x: auto;">
<table class="lrg">
<colgroup>
<col class="med"/>
<col style="width:35%"/>
<col class="small"/>
<col style="width:20%"/>
<col style="width:20%"/>
</colgroup>
<thead>
<tr>
<th id="name">Name</th>
<th id="description">Description</th>
<th id="public">Public?</th>
<th id="moderator">Moderators</th>
<th id="admin">Administrators</th>
</tr>
</thead>
<tbody>
<tr>
<th id="inf"><a href="xmpp://gojayi@muc.xmpp.inferencium.net?join">Inferencium</a></th>
<td class="desc" headers="description inf">
<p>Inferencium general channel.</p>
<p><b>Topic:</b> Any, excluding NSFW.</p>
<p>Multimedia prohibited unless part of discussion.</p>
</td>
<td class="red" headers="public inf">No</td>
<td class="desc" headers="moderator inf">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin inf">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="inf-moderation"><a href="xmpp://moderation@muc.xmpp.inferencium.net?join">Inferencium - Moderation</a></th>
<td class="desc" headers="description inf-moderation">
<p>Inferencium moderation channel.</p>
<p><b>Topic:</b> Moderation of all XMPP channels hosted by Inferencium.</p>
<p>Inferencium moderators only.</p>
</td>
<td class="red" headers="public inf-moderation">No</td>
<td class="desc" headers="moderator inf-moderation">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin inf-moderation">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="inf-multimedia"><a href="xmpp://multimedia@muc.xmpp.inferencium.net?join">Inferencium - Multimedia</a></th>
<td class="desc" headers="description inf-multimedia">
<p>Inferencium multimedia channel.</p>
<p><b>Topic:</b> Any, excluding NSFW.</p>
<p>Discussion prohibited outside of multimedia discussion.</p>
</td>
<td class="red" headers="public inf-multimedia">
No
</td>
<td class="desc" headers="moderator inf-multimedia">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin inf-multimedia">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="sys-hardening"><a href="xmpp://sys-hardening@muc.xmpp.inferencium.net?join">Systems Hardening</a></th>
<td class="desc" headers="description sys-hardening">
<p>Systems Hardening security and privacy channel.</p>
<p><b>Topic:</b> General security and privacy.</p>
</td>
<td class="green" headers="public sys-hardening">Yes
(Temporarily unavailable)</td>
<td class="desc" headers="moderator sys-hardening">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin sys-hardening">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
<tr>
<th id="sys-hardening-ot"><a href="xmpp://sys-hardening-ot@muc.xmpp.inferencium.net?join">Systems Hardening - Off-topic</a></th>
<td class="desc" headers="description sys-hardening-ot">
<p>Systems Hardening off-topic channel.</p>
<p><b>Topic:</b> Any, excluding NSFW, security, and privacy.</p>
</td>
<td class="green" headers="public sys-hardening-ot">Yes
(Temporarily unavailable)</td>
<td class="desc" headers="moderator sys-hardening-ot">
<ul>
<li><a href="xmpp://homejacob@inferencium.net">homejacob@inferencium.net</a></li>
<li><a href="xmpp://life00@inferencium.net">life00@inferencium.net</a></li>
</ul>
</td>
<td class="desc" headers="admin sys-hardening-ot">
<ul>
<li><a href="xmpp://inference@inferencium.net">inference@inferencium.net</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,46 +1,46 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Documentation -->
<!-- Version: 5.0.0 -->
<!-- Version: 5.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Documentation</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Documentation</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="documentation/hardened_malloc.xhtml">hardened_malloc</a></li>
<li><a href="documentation/openssl_selfsigned_certificate_chain.xhtml">OpenSSL Self-signed Certificate Chain</a></li>
<!--<li><a href="documentation/specification-system-aa000.xhtml">Specification - System - aa000</a></li>-->
<!--<li><a href="documentation/specification-system-xa000.xhtml">Specification - System - xa000</a></li>-->
<!--<li><a href="documentation/specification-system-xb000.xhtml">Specification - System - xb000</a></li>-->
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Documentation</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Documentation</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="documentation/hardened_malloc.xhtml">hardened_malloc</a></li>
<li><a href="documentation/openssl_selfsigned_certificate_chain.xhtml">OpenSSL Self-signed Certificate Chain</a></li>
<!--<li><a href="documentation/specification-system-aa000.xhtml">Specification - System - aa000</a></li>-->
<!--<li><a href="documentation/specification-system-xa000.xhtml">Specification - System - xa000</a></li>-->
<!--<li><a href="documentation/specification-system-xb000.xhtml">Specification - System - xb000</a></li>-->
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,133 +1,125 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Documentation - hardened_malloc -->
<!-- Version: 5.0.0 -->
<!-- Version: 5.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Documentation - hardened_malloc</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="hardened_malloc"><a href="#hardened_malloc">Documentation - hardened_malloc</a></h1>
<section id="introduction">
<p>This documentation contains instructions to use
<a href="https://github.com/GrapheneOS/hardened_malloc">hardened_malloc</a>
memory allocator as the system's default memory allocator. These instructions
apply to both musl and glibc C libraries on Unix-based and Unix-like
systems.</p>
<p>hardened_malloc can also be used per-application and/or per-user, in which
case root permissions are not required; this documentation focuses on
system-wide usage of hardened_malloc, assumes root privileges, and assumes the
compiled library will be located in a path readable and executable by all users
of the system.</p>
<p>For the complete hardened_malloc documentation, visit its
<a href="https://github.com/GrapheneOS/hardened_malloc#hardened_malloc">official documentation</a>.</p>
<p>This documentation is also available in portable AsciiDoc format in my
<a href="https://src.inferencium.net/Inferencium/doc/src/branch/stable/security/hardened_malloc.adoc">documentation source code repository</a>.</p>
</section>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#memory_pages">Increase Permitted Amount of Memory Pages</a></li>
<li><a href="#clone_source_code">Clone hardened_malloc Source Code</a></li>
<li><a href="#enter_local_repository">Enter hardened_malloc Local Git Repository</a></li>
<li><a href="#compile">Compile hardened_malloc</a></li>
<li><a href="#copy_library">Copy Compiled hardened_malloc Library</a></li>
<li><a href="#preload_on_boot">Set System to Preload hardened_malloc on Boot</a></li>
</ul>
</nav>
<section id="memory_pages">
<h2><a href="#memory_pages">Increase Permitted Amount of Memory Pages</a></h2>
<p>Add <code>vm.max_map_count = 1048576</code> to
<code>/etc/sysctl.conf</code> to accommodate hardened_malloc's large amount of
guard pages.</p>
</section>
<section id="clone_source_code">
<h2><a href="#clone_source_code">Clone hardened_malloc Source Code</a></h2>
<p><code>$ git clone https://github.com/GrapheneOS/hardened_malloc.git</code></p>
</section>
<section id="enter_local_repository">
<h2><a href="#enter_local_repository">Enter hardened_malloc Local Git Repository</a></h2>
<p><code>$ cd hardened_malloc/</code></p>
</section>
<section id="compile">
<h2><a href="#compile">Compile hardened_malloc</a></h2>
<p><code>$ make <var>&lt;arguments&gt;</var></code></p>
<p><code>CONFIG_N_ARENA=<var>n</var></code> can be adjusted to increase parallel
performance at the expense of memory usage, or decrease memory usage at the
expense of parallel performance, where <code><var>n</var></code> is a
non-negative integer. Higher values prefer parallel performance, whereas lower
values prefer lower memory usage. Note that having too many arenas may cause
memory fragmentation and decrease system performance. The number of arenas has
no impact on the security properties of hardened_malloc.</p>
<table align="center">
<thead>
<tr>
<th id="arena-min">Minimum</th>
<th id="arena-max">Maximum</th>
<th id="arena-def">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td headers="arena-min">1</td>
<td headers="arena-max">256</td>
<td headers="arena-def">4</td>
</tr>
</tbody>
</table>
<p>For extra security, <code>CONFIG_SEAL_METADATA=true</code> can be used in
order to control whether
<a href="https://www.kernel.org/doc/html/v6.7/core-api/protection-keys.html">Memory Protection Keys</a>
are used to disable access to all writable allocator state outside of the memory
allocator code. It's currently disabled by default due to a significant
performance cost for this use case on current-generation hardware. Whether or
not this feature is enabled, the metadata is all contained within an isolated
memory region with high-entropy random guard regions around it.</p>
<p>For low-memory systems, <code>VARIANT=light</code> can be used to compile the
light variant of hardened_malloc, which sacrifices some security for much less
memory usage. This option still produces a more hardened memory allocator than
both the default musl and glibc allocators, despite the security sacrifices over
the full variant.</p>
<p>For all compile-time options, see the
<a href="https://github.com/GrapheneOS/hardened_malloc#configuration">configuration section</a>
of hardened_malloc's extensive official documentation.</p>
</section>
<section id="copy_library">
<h2><a href="#copy_library">Copy Compiled hardened_malloc Library</a></h2>
<p><code># cp out/libhardened_malloc.so <var>&lt;target path&gt;</var></code></p>
</section>
<section id="preload_on_boot">
<h2><a href="#preload_on_boot">Set System to Preload hardened_malloc on Boot</a></h2>
<p><b>musl-based systems:</b> Add
<code>LD_PRELOAD=<var>&lt;hardened_malloc path&gt;</var></code> to
<code>/etc/environment</code></p>
<p><b>glibc-based systems:</b> Add
<code><var>&lt;hardened_malloc path&gt;</var></code> to
<code>/etc/ld.so.preload</code></p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Documentation - hardened_malloc</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="hardened_malloc"><a href="#hardened_malloc">Documentation - hardened_malloc</a></h1>
<section id="introduction">
<p>This documentation contains instructions to use
<a href="https://github.com/GrapheneOS/hardened_malloc">hardened_malloc</a>
memory allocator as the system's default memory allocator. These instructions apply to both musl and
glibc C libraries on Unix-based and Unix-like systems.</p>
<p>hardened_malloc can also be used per-application and/or per-user, in which case root permissions are
not required; this documentation focuses on system-wide usage of hardened_malloc, assumes root
privileges, and assumes the compiled library will be located in a path readable and executable by all
users of the system.</p>
<p>For the complete hardened_malloc documentation, visit its
<a href="https://github.com/GrapheneOS/hardened_malloc#hardened_malloc">official documentation</a>.</p>
<p>This documentation is also available in portable AsciiDoc format in my
<a href="https://src.inferencium.net/Inferencium/doc/src/branch/stable/security/hardened_malloc.adoc">documentation source code repository</a>.</p>
</section>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#memory_pages">Increase Permitted Amount of Memory Pages</a></li>
<li><a href="#clone_source_code">Clone hardened_malloc Source Code</a></li>
<li><a href="#enter_local_repository">Enter hardened_malloc Local Git Repository</a></li>
<li><a href="#compile">Compile hardened_malloc</a></li>
<li><a href="#copy_library">Copy Compiled hardened_malloc Library</a></li>
<li><a href="#preload_on_boot">Set System to Preload hardened_malloc on Boot</a></li>
</ul>
</nav>
<section id="memory_pages">
<h2><a href="#memory_pages">Increase Permitted Amount of Memory Pages</a></h2>
<p>Add <code>vm.max_map_count = 1048576</code> to <code>/etc/sysctl.conf</code> to accommodate
hardened_malloc's large amount of guard pages.</p>
</section>
<section id="clone_source_code">
<h2><a href="#clone_source_code">Clone hardened_malloc Source Code</a></h2>
<p><code>$ git clone https://github.com/GrapheneOS/hardened_malloc.git</code></p>
</section>
<section id="enter_local_repository">
<h2><a href="#enter_local_repository">Enter hardened_malloc Local Git Repository</a></h2>
<p><code>$ cd hardened_malloc/</code></p>
</section>
<section id="compile">
<h2><a href="#compile">Compile hardened_malloc</a></h2>
<p><code>$ make <var>&lt;arguments&gt;</var></code></p>
<p><code>CONFIG_N_ARENA=<var>n</var></code> can be adjusted to increase parallel performance at the
expense of memory usage, or decrease memory usage at the expense of parallel performance, where
<code><var>n</var></code> is a non-negative integer. Higher values prefer parallel performance,
whereas lower values prefer lower memory usage. Note that having too many arenas may cause memory
fragmentation and decrease system performance. The number of arenas has no impact on the security
properties of hardened_malloc.</p>
<table align="center">
<thead>
<tr>
<th id="arena-min">Minimum</th>
<th id="arena-max">Maximum</th>
<th id="arena-def">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td headers="arena-min">1</td>
<td headers="arena-max">256</td>
<td headers="arena-def">4</td>
</tr>
</tbody>
</table>
<p>For extra security, <code>CONFIG_SEAL_METADATA=true</code> can be used in order to control
whether
<a href="https://www.kernel.org/doc/html/v6.7/core-api/protection-keys.html">Memory Protection Keys</a>
are used to disable access to all writable allocator state outside of the memory allocator code.
It's currently disabled by default due to a significant performance cost for this use case on
current-generation hardware. Whether or not this feature is enabled, the metadata is all contained
within an isolated memory region with high-entropy random guard regions around it.</p>
<p>For low-memory systems, <code>VARIANT=light</code> can be used to compile the light variant of
hardened_malloc, which sacrifices some security for much less memory usage. This option still
produces a more hardened memory allocator than both the default musl and glibc allocators, despite
the security sacrifices over the full variant.</p>
<p>For all compile-time options, see the
<a href="https://github.com/GrapheneOS/hardened_malloc#configuration">configuration section</a>
of hardened_malloc's extensive official documentation.</p>
</section>
<section id="copy_library">
<h2><a href="#copy_library">Copy Compiled hardened_malloc Library</a></h2>
<p><code># cp out/libhardened_malloc.so <var>&lt;target path&gt;</var></code></p>
</section>
<section id="preload_on_boot">
<h2><a href="#preload_on_boot">Set System to Preload hardened_malloc on Boot</a></h2>
<p><b>musl-based systems:</b> Add <code>LD_PRELOAD=<var>&lt;hardened_malloc path&gt;</var></code> to
<code>/etc/environment</code></p>
<p><b>glibc-based systems:</b> Add <code><var>&lt;hardened_malloc path&gt;</var></code> to
<code>/etc/ld.so.preload</code></p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,137 +1,156 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Documentation - OpenSSL Self-signed Certificate Chain -->
<!-- Version: 5.0.0 -->
<!-- Version: 5.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Documentation - OpenSSL Self-signed Certificate Chain</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="openssl_selfsigned_certificate_chain"><a href="#openssl_selfsigned_certificate_chain">Documentation - OpenSSL Self-signed Certificate Chain</a></h1>
<section id="introduction">
<p>This documentation contains the complete set of commands to create a new OpenSSL
self-signed certificate chain with V3 subjectAltName (SAN) extensions enabled. Multiple
SANs can be included in a certificate by adding each domain as a comma-delimited string.
Each key can be encrypted or unencrypted, with multiple encryption options; AES
(<code>aes128</code> or <code>aes256</code>) is recommended. Optional verification can
also be performed between multiple levels of certificates to ensure the chain of trust
is valid.</p>
<p>This documentation is also available in portable AsciiDoc format in my
<a href="https://src.inferencium.net/Inferencium/doc/src/branch/stable/security/openssl_selfsigned_certificate_chain.adoc">documentation source code repository</a>.</p>
</section>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#create_certificate_authority_key">Create Certificate Authority Key</a></li>
<li><a href="#verify_certificate_authority_key">Verify Certificate Authority Key</a></li>
<li><a href="#create_certificate_authority_certificate">Create Certificate Authority Certificate</a></li>
<li><a href="#convert_certificate_to_pem_format">Convert Certificate to PEM Format</a></li>
<li><a href="#verify_certificate_authority_certificate">Verify Certificate Authority Certificate</a></li>
<li><a href="#create_intermediate_certificate_authority_key">Create Intermediate Certificate Authority Key</a></li>
<li><a href="#verify_intermediate_certificate_authority_key">Verify Intermediate Certificate Authority Key</a></li>
<li><a href="#create_intermediate_certificate_authority_signing_request">Create Intermediate Certificate Signing Request</a></li>
<li><a href="#create_intermediate_certificate_authority_certificate">Create Intermediate Certificate Authority Certificate</a></li>
<li><a href="#verify_intermediate_certificate_authority_certificate">Verify Intermediate Certificate Authority Certificate</a></li>
<li><a href="#verify_chain_of_trust-ca_to_intermediate">Verify Chain of Trust (CA to Intermediate)</a></li>
<li><a href="#create_server_key">Create Server Key</a></li>
<li><a href="#verify_server_key">Verify Server Key</a></li>
<li><a href="#create_server_certificate_signing_request">Create Server Cerificate Signing Request</a></li>
<li><a href="#create_server_certificate">Create Server Certificate</a></li>
<li><a href="#verify_server_certificate">Verify Server Certificate</a></li>
<li><a href="#verify_chain_of_trust-intermediate_to_server">Verify Chain of Trust (Intermediate to Server)</a></li>
</ul>
</nav>
<section id="create_certificate_authority_key">
<h2><a href="#create_certificate_authority_key">Create Certificate Authority Key</a></h2>
<p><code>openssl genrsa <var>&lt;encryption type&gt;</var> -out <var>&lt;CA key name&gt;</var>.pem <var>&lt;key size&gt;</var></code></p>
</section>
<section id="verify_certificate_authority_key">
<h2><a href="#verify_certificate_authority_key">Verify Certificate Authority Key</a></h2>
<p><code>openssl rsa -noout -text -in <var>&lt;CA key name&gt;</var>.pem</code></p>
</section>
<section id="create_certificate_authority_certificate">
<h2><a href="#create_certificate_authority_certificate">Create Certificate Authority Certificate</a></h2>
<p><code>openssl req -new -x509 -days <var>&lt;days of validity&gt;</var> -extensions v3_ca -key <var>&lt;CA key name&gt;</var>.pem -out <var>&lt;CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="convert_certificate_to_pem_format">
<h2><a href="#convert_certificate_to_pem_format">Convert Certificate to PEM Format</a></h2>
<p><code>openssl x509 -in <var>&lt;CA certificate name&gt;</var>.pem -out <var>&lt;CA certificate name&gt;</var>.pem -outform PEM</code></p>
</section>
<section id="verify_certificate_authority_certificate">
<h2><a href="#verify_certificate_authority_certificate">Verify Certificate Authority Certificate</a></h2>
<p><code>openssl x509 -noout -text -in <var>&lt;CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="create_intermediate_certificate_authority_key">
<h2><a href="#create_intermediate_certificate_authority_key">Create Intermediate Certificate Authority Key</a></h2>
<p><code>openssl genrsa <var>&lt;encryption type&gt;</var> -out <var>&lt;intermediate CA key name&gt;</var>.pem <var>&lt;key size&gt;</var></code></p>
</section>
<section id="verify_intermediate_certificate_authority_key">
<h2><a href="#verify_intermediate_certificate_authority_key">Verify Intermediate Certificate Authority Key</a></h2>
<p><code>openssl rsa -noout -text -in <var>&lt;intermediate CA key name&gt;</var>.pem</code></p>
</section>
<section id="create_intermediate_certificate_authority_signing_request">
<h2><a href="#create_intermediate_certificate_authority_signing_request">Create Intermediate Certificate Authority Signing Request</a></h2>
<p><code>openssl req -new -sha256 -key <var>&lt;intermediate CA key name&gt;</var>.pem -out <var>&lt;intermediate CA certificate signing request name&gt;</var>.pem</code></p>
</section>
<section id="create_intermediate_certificate_authority_certificate">
<h2><a href="#create_intermediate_certificate_authority_certificate">Create Intermediate Certificate Authority Certificate</a></h2>
<p><code>openssl ca -config <var>&lt;intermediate CA configuration file&gt;</var> -extensions v3_intermediate_ca -days <var>&lt;days of validity&gt;</var> -notext -md sha256 -in <var>&lt;intermediate CA signing request name&gt;</var>.pem -out <var>&lt;intermediate CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_intermediate_certificate_authority_certificate">
<h2><a href="#verify_intermediate_certificate_authority_certificate">Verify Intermediate Certificate Authority Certificate</a></h2>
<p><code>openssl x509 -noout -text -in <var>&lt;intermediate CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_chain_of_trust-ca_to_intermediate">
<h2><a href="#verify_chain_of_trust-ca_to_intermediate">Verify Chain of Trust (CA to Intermediate)</a></h2>
<p><code>openssl verify -CAfile <var>&lt;CA certificate name&gt;</var>.pem <var>&lt;intermediate CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="create_server_key">
<h2><a href="#create_server_key">Create Server Key</a></h2>
<p><code>openssl genrsa <var>&lt;encryption type&gt;</var> -out <var>&lt;server key name&gt;</var>.pem <var>&lt;key size&gt;</var></code></p>
</section>
<section id="verify_server_key">
<h2><a href="#verify_server_key">Verify Server Key</a></h2>
<p><code>openssl rsa -noout -text -in <var>&lt;server key name&gt;</var>.pem</code></p>
</section>
<section id="create_server_certificate_signing_request">
<h2><a href="#create_server_certificate_signing_request">Create Server Certificate Signing Request</a></h2>
<p><code>openssl req -new -sha256 -subj "/C=<var>&lt;country&gt;</var>/ST=<var>&lt;state/province&gt;</var>/L=<var>&lt;locality&gt;</var>/O=<var>&lt;organization&gt;</var>/CN=<var>&lt;common name&gt;</var>" -addext "subjectAltName = DNS.1:<var>&lt;alternative DNS entry&gt;</var>" -key <var>&lt;server key name&gt;</var>.pem -out <var>&lt;server certificate signing request name&gt;</var>.pem</code></p>
</section>
<section id="create_server_certificate">
<h2><a href="#create_server_certificate">Create Server Certificate</a></h2>
<p><code>openssl x509 -sha256 -req -days <var>&lt;days of validity&gt;</var> -in <var>&lt;server certificate signing request name&gt;</var>.pem -CA <var>&lt;intermediate CA certificate name&gt;</var>.pem -CAkey <var>&lt;intermediate CA key name&gt;</var>.pem -extensions SAN -extfile &lt;(cat /etc/ssl/openssl.cnf &lt;(printf "\n[SAN]\nsubjectAltName=DNS.1:")) -out <var>&lt;server certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_server_certificate">
<h2><a href="#verify_server_certificate">Verify Server Certificate</a></h2>
<p><code>openssl x509 -noout -text -in <var>&lt;server certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_chain_of_trust-intermediate_to_server">
<h2><a href="#verify_chain_of_trust-intermediate_to_server">Verify Chain of Trust (Intermediate to Server)</a></h2>
<p><code>openssl verify -CAfile <var>&lt;intermediate CA certificate name&gt;</var>.pem <var>&lt;server certificate&gt;</var>.pem</code></p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="../main.css"/>
<link rel="icon shortcut" href="../asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Documentation - OpenSSL Self-signed Certificate Chain</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="../index.xhtml"><img src="../asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="../index.xhtml">Inferencium</a></div>
<div><a href="../about.xhtml">About</a></div>
<div><a href="../news.xhtml">News</a></div>
<div><a href="../documentation.xhtml">Documentation</a></div>
<div><a href="../source.xhtml">Source</a></div>
<div><a href="../changelog.xhtml">Changelog</a></div>
<div><a href="../blog.xhtml">Blog</a></div>
<div><a href="../contact.xhtml">Contact</a></div>
<div><a href="../directory.xhtml">Directory</a></div>
<div><a href="../key.xhtml">Key</a></div>
<div class="sitemap"><a href="../sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="openssl_selfsigned_certificate_chain"><a href="#openssl_selfsigned_certificate_chain">Documentation - OpenSSL Self-signed Certificate Chain</a></h1>
<section id="introduction">
<p>This documentation contains the complete set of commands to create a new OpenSSL self-signed
certificate chain with V3 subjectAltName (SAN) extensions enabled. Multiple SANs can be included in a
certificate by adding each domain as a comma-delimited string. Each key can be encrypted or unencrypted,
with multiple encryption options; AES (<code>aes128</code> or <code>aes256</code>) is recommended.
Optional verification can also be performed between multiple levels of certificates to ensure the chain
of trust is valid.</p>
<p>This documentation is also available in portable AsciiDoc format in my
<a href="https://src.inferencium.net/Inferencium/doc/src/branch/stable/security/openssl_selfsigned_certificate_chain.adoc">documentation source code repository</a>.</p>
</section>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#create_certificate_authority_key">Create Certificate Authority Key</a></li>
<li><a href="#verify_certificate_authority_key">Verify Certificate Authority Key</a></li>
<li><a href="#create_certificate_authority_certificate">Create Certificate Authority Certificate</a></li>
<li><a href="#convert_certificate_to_pem_format">Convert Certificate to PEM Format</a></li>
<li><a href="#verify_certificate_authority_certificate">Verify Certificate Authority Certificate</a></li>
<li><a href="#create_intermediate_certificate_authority_key">Create Intermediate Certificate Authority Key</a></li>
<li><a href="#verify_intermediate_certificate_authority_key">Verify Intermediate Certificate Authority Key</a></li>
<li><a href="#create_intermediate_certificate_authority_signing_request">Create Intermediate Certificate Signing Request</a></li>
<li><a href="#create_intermediate_certificate_authority_certificate">Create Intermediate Certificate Authority Certificate</a></li>
<li><a href="#verify_intermediate_certificate_authority_certificate">Verify Intermediate Certificate Authority Certificate</a></li>
<li><a href="#verify_chain_of_trust-ca_to_intermediate">Verify Chain of Trust (CA to Intermediate)</a></li>
<li><a href="#create_server_key">Create Server Key</a></li>
<li><a href="#verify_server_key">Verify Server Key</a></li>
<li><a href="#create_server_certificate_signing_request">Create Server Cerificate Signing Request</a></li>
<li><a href="#create_server_certificate">Create Server Certificate</a></li>
<li><a href="#verify_server_certificate">Verify Server Certificate</a></li>
<li><a href="#verify_chain_of_trust-intermediate_to_server">Verify Chain of Trust (Intermediate to Server)</a></li>
</ul>
</nav>
<section id="create_certificate_authority_key">
<h2><a href="#create_certificate_authority_key">Create Certificate Authority Key</a></h2>
<p><code>openssl genrsa <var>&lt;encryption type&gt;</var> -out <var>&lt;CA key name&gt;</var>.pem
<var>&lt;key size&gt;</var></code></p>
</section>
<section id="verify_certificate_authority_key">
<h2><a href="#verify_certificate_authority_key">Verify Certificate Authority Key</a></h2>
<p><code>openssl rsa -noout -text -in <var>&lt;CA key name&gt;</var>.pem</code></p>
</section>
<section id="create_certificate_authority_certificate">
<h2><a href="#create_certificate_authority_certificate">Create Certificate Authority Certificate</a></h2>
<p><code>openssl req -new -x509 -days <var>&lt;days of validity&gt;</var> -extensions v3_ca -key
<var>&lt;CA key name&gt;</var>.pem -out <var>&lt;CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="convert_certificate_to_pem_format">
<h2><a href="#convert_certificate_to_pem_format">Convert Certificate to PEM Format</a></h2>
<p><code>openssl x509 -in <var>&lt;CA certificate name&gt;</var>.pem -out
<var>&lt;CA certificate name&gt;</var>.pem -outform PEM</code></p>
</section>
<section id="verify_certificate_authority_certificate">
<h2><a href="#verify_certificate_authority_certificate">Verify Certificate Authority Certificate</a></h2>
<p><code>openssl x509 -noout -text -in <var>&lt;CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="create_intermediate_certificate_authority_key">
<h2><a href="#create_intermediate_certificate_authority_key">Create Intermediate Certificate Authority Key</a></h2>
<p><code>openssl genrsa <var>&lt;encryption type&gt;</var> -out
<var>&lt;intermediate CA key name&gt;</var>.pem <var>&lt;key size&gt;</var></code></p>
</section>
<section id="verify_intermediate_certificate_authority_key">
<h2><a href="#verify_intermediate_certificate_authority_key">Verify Intermediate Certificate Authority Key</a></h2>
<p><code>openssl rsa -noout -text -in <var>&lt;intermediate CA key name&gt;</var>.pem</code></p>
</section>
<section id="create_intermediate_certificate_authority_signing_request">
<h2><a href="#create_intermediate_certificate_authority_signing_request">Create Intermediate Certificate Authority Signing Request</a></h2>
<p><code>openssl req -new -sha256 -key <var>&lt;intermediate CA key name&gt;</var>.pem -out
<var>&lt;intermediate CA certificate signing request name&gt;</var>.pem</code></p>
</section>
<section id="create_intermediate_certificate_authority_certificate">
<h2><a href="#create_intermediate_certificate_authority_certificate">Create Intermediate Certificate Authority Certificate</a></h2>
<p><code>openssl ca -config <var>&lt;intermediate CA configuration file&gt;</var> -extensions
v3_intermediate_ca -days <var>&lt;days of validity&gt;</var> -notext -md sha256 -in
<var>&lt;intermediate CA signing request name&gt;</var>.pem -out
<var>&lt;intermediate CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_intermediate_certificate_authority_certificate">
<h2><a href="#verify_intermediate_certificate_authority_certificate">Verify Intermediate Certificate Authority Certificate</a></h2>
<p><code>openssl x509 -noout -text -in
<var>&lt;intermediate CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_chain_of_trust-ca_to_intermediate">
<h2><a href="#verify_chain_of_trust-ca_to_intermediate">Verify Chain of Trust (CA to Intermediate)</a></h2>
<p><code>openssl verify -CAfile <var>&lt;CA certificate name&gt;</var>.pem
<var>&lt;intermediate CA certificate name&gt;</var>.pem</code></p>
</section>
<section id="create_server_key">
<h2><a href="#create_server_key">Create Server Key</a></h2>
<p><code>openssl genrsa <var>&lt;encryption type&gt;</var> -out
<var>&lt;server key name&gt;</var>.pem <var>&lt;key size&gt;</var></code></p>
</section>
<section id="verify_server_key">
<h2><a href="#verify_server_key">Verify Server Key</a></h2>
<p><code>openssl rsa -noout -text -in <var>&lt;server key name&gt;</var>.pem</code></p>
</section>
<section id="create_server_certificate_signing_request">
<h2><a href="#create_server_certificate_signing_request">Create Server Certificate Signing Request</a></h2>
<p><code>openssl req -new -sha256 -subj "/C=<var>&lt;country&gt;</var>/ST=<var>&lt;state/province&gt;</var>/L=<var>&lt;locality&gt;</var>/O=<var>&lt;organization&gt;</var>/CN=<var>&lt;common name&gt;</var>"
-addext "subjectAltName = DNS.1:<var>&lt;alternative DNS entry&gt;</var>" -key
<var>&lt;server key name&gt;</var>.pem -out
<var>&lt;server certificate signing request name&gt;</var>.pem</code></p>
</section>
<section id="create_server_certificate">
<h2><a href="#create_server_certificate">Create Server Certificate</a></h2>
<p><code>openssl x509 -sha256 -req -days <var>&lt;days of validity&gt;</var> -in
<var>&lt;server certificate signing request name&gt;</var>.pem -CA
<var>&lt;intermediate CA certificate name&gt;</var>.pem -CAkey
<var>&lt;intermediate CA key name&gt;</var>.pem -extensions SAN -extfile &lt;(cat
/etc/ssl/openssl.cnf &lt;(printf "\n[SAN]\nsubjectAltName=DNS.1:")) -out
<var>&lt;server certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_server_certificate">
<h2><a href="#verify_server_certificate">Verify Server Certificate</a></h2>
<p><code>openssl x509 -noout -text -in <var>&lt;server certificate name&gt;</var>.pem</code></p>
</section>
<section id="verify_chain_of_trust-intermediate_to_server">
<h2><a href="#verify_chain_of_trust-intermediate_to_server">Verify Chain of Trust (Intermediate to Server)</a></h2>
<p><code>openssl verify -CAfile <var>&lt;intermediate CA certificate name&gt;</var>.pem
<var>&lt;server certificate&gt;</var>.pem</code></p>
</section>
<div class="sitemap-small"><a href="../sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,35 +1,35 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Index -->
<!-- Version: 7.0.0 -->
<!-- Version: 7.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

242
key.xhtml
View File

@ -1,137 +1,125 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Key -->
<!-- Version: 9.0.0 -->
<!-- Version: 9.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Key</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Key</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#notes">Notes</a></li>
<li><a href="#e2ee">End-to-end Encrypted Contact Methods</a></li>
<ul>
<li><a href="#xmpp">XMPP</a></li>
<ul>
<li><a href="#xmpp-inferencium">inference@inferencium.net (Main)</a></li>
<ul>
<li><a href="#xmpp-inferencium-current">Current</a></li>
<ul>
<li><a href="#xmpp-inferencium-current-1">#1</a></li>
</ul>
<li><a href="#xmpp-inferencium-legacy">Legacy</a></li>
<ul>
<li><a href="#xmpp-inferencium-legacy-0">#0</a></li>
</ul>
</ul>
</ul>
</ul>
<li><a href="#file_git_signing">File/Git Signing</a></li>
<ul>
<li><a href="#ssh">SSH</a></li>
<ul>
<li><a href="#ssh-current">Current</a></li>
<ul>
<li><a href="#ssh-current-1">#1</a></li>
</ul>
<li><a href="#ssh-legacy">Legacy</a></li>
<ul>
<li><a href="#ssh-legacy-0">#0</a></li>
</ul>
</ul>
</ul>
</ul>
</nav>
<section id="notes">
<h2><a href="#notes">Notes</a></h2>
<ul>
<li>You can also find my keys on
<a href="https://github.com/inferenceus/key">GitHub</a>
and
<a href="https://codeberg.org/inference/key">Codeberg</a>
in order to check for discrepancies between the keys</li>
<li>Verification does not verify a person, only their devices, and can
be defeated via coercion or other force</li>
</ul>
</section>
<section id="e2ee">
<h2><a href="#e2ee">End-to-end Encrypted Contact Methods</a></h2>
<section id="xmpp">
<h3><a href="#xmpp"><img class="logo-small" src="asset/img/logo/xmpp.png" width="40" height="40" alt="XMPP logo"/>XMPP</a></h3>
<p class="update_date">Updated: 2023-10-16 (UTC+00:00)</p>
<p>Whenever possible, open the links to pin the fingerprints directly
from this webpage; if that is not possible, manually verify the
fingerprints.</p>
<h4 id="xmpp-inferencium"><a href="#xmpp-inferencium">inference@inferencium.net (Main)</a></h4>
<h5 id="xmpp-inferencium-current"><a href="#xmpp-inferencium-current">Current</a></h5>
<h6 id="xmpp-inferencium-current-1"><a href="#xmpp-inferencium-current-1">#1</a></h6>
<code>
67ee49da 37bcc392 691d9151 851e4240 6b5e80c2 e7d060b5 78dfdb41 443f9c52
</code>
<p><a href="xmpp:inference@inferencium.net?omemo-sid-1641576775=67ee49da37bcc392691d9151851e42406b5e80c2e7d060b578dfdb41443f9c52">xmpp:inference@inferencium.net?omemo-sid-1641576775=67ee49da37bcc392691d9151851e42406b5e80c2e7d060b578dfdb41443f9c52</a></p>
<h5 id="xmpp-inferencium-legacy"><a href="#xmpp-inferencium-legacy">Legacy</a></h5>
<h6 id="xmpp-inferencium-legacy-0"><a href="#xmpp-inferencium-legacy-0">#0</a></h6>
<code>
1bd03c6a 5e011655 2fafd697 da4fce70 63de5a83 a264a34a fcce78fe 6b06820c
</code>
<p><a href="xmpp:inference@inferencium.net?omemo-sid-1586888206=1bd03c6a5e0116552fafd697da4fce7063de5a83a264a34afcce78fe6b06820c">xmpp:inference@inferencium.net?omemo-sid-1586888206=1bd03c6a5e0116552fafd697da4fce7063de5a83a264a34afcce78fe6b06820c</a></p>
</section>
</section>
<section id="file_git_signing">
<h2><a href="#file_git_signing">File/Git Signing</a></h2>
<section id="ssh">
<h3><a href="#ssh">SSH</a></h3>
<p class="update_date">Updated: 2023-07-27 (UTC+00:00)</p>
<p>Each SSH key is signed by the previous key, allowing verification of
the chain of keys, and root of trust.</p>
<h4 id="ssh-current"><a href="ssh-current">Current</a></h4>
<h5 id="ssh-current-1"><a href="#ssh-current-1">#1 (2023-07-27 - present)</a></h5>
<h6 id="ssh-current-1-fingerprint"><a href="#ssh-current-1-fingerprint">Fingerprint</a></h6>
<code>
SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc
</code>
<h6 id="ssh-current-1-key"><a href="#ssh-current-1-key">Key</a></h6>
<code>
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHPGnrIg7dI7GUqA+lTztJSrn+7QyRceajqs4iaU8UG
</code>
<h4 id="ssh-legacy"><a href="#ssh-legacy">Legacy</a></h4>
<h5 id="ssh-legacy-0"><a href="#ssh-legacy-0">#0 (2023-01-01 - 2023-07-27)</a></h5>
<h6 id="ssh-legacy-0-fingerprint"><a href="#ssh-legacy-0-fingerprint">Fingerprint</a></h6>
<code>
SHA256:9Pl0nZ2UJacgm+IeEtLSZ4FOESgP1eKCtRflfPfdX9M
</code>
<h6 id="ssh-legacy-0-key"><a href="#ssh-legacy-0-key">Key</a></h6>
<code>
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINs8UH2hVmNSg0qKig/9ZQt07IuOHsorRfw1doEgMuJ8
</code>
</section>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Key</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Key</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#notes">Notes</a></li>
<li><a href="#e2ee">End-to-end Encrypted Contact Methods</a></li>
<ul>
<li><a href="#xmpp">XMPP</a></li>
<ul>
<li><a href="#xmpp-inferencium">inference@inferencium.net (Main)</a></li>
<ul>
<li><a href="#xmpp-inferencium-current">Current</a></li>
<ul>
<li><a href="#xmpp-inferencium-current-1">#1</a></li>
</ul>
<li><a href="#xmpp-inferencium-legacy">Legacy</a></li>
<ul>
<li><a href="#xmpp-inferencium-legacy-0">#0</a></li>
</ul>
</ul>
</ul>
</ul>
<li><a href="#file_git_signing">File/Git Signing</a></li>
<ul>
<li><a href="#ssh">SSH</a></li>
<ul>
<li><a href="#ssh-current">Current</a></li>
<ul>
<li><a href="#ssh-current-1">#1</a></li>
</ul>
<li><a href="#ssh-legacy">Legacy</a></li>
<ul>
<li><a href="#ssh-legacy-0">#0</a></li>
</ul>
</ul>
</ul>
</ul>
</nav>
<section id="notes">
<h2><a href="#notes">Notes</a></h2>
<ul>
<li>You can also find my keys on
<a href="https://github.com/inferenceus/key">GitHub</a>
and
<a href="https://codeberg.org/inference/key">Codeberg</a>
in order to check for discrepancies between the keys</li>
<li>Verification does not verify a person, only their devices, and can be defeated via coercion
or other force</li>
</ul>
</section>
<section id="e2ee">
<h2><a href="#e2ee">End-to-end Encrypted Contact Methods</a></h2>
<section id="xmpp">
<h3><a href="#xmpp"><img class="logo-small" src="asset/img/logo/xmpp.png" width="40" height="40" alt="XMPP logo"/>XMPP</a></h3>
<p class="update_date">Updated: 2023-10-16 (UTC+00:00)</p>
<p>Whenever possible, open the links to pin the fingerprints directly
from this webpage; if that is not possible, manually verify the
fingerprints.</p>
<h4 id="xmpp-inferencium"><a href="#xmpp-inferencium">inference@inferencium.net (Main)</a></h4>
<h5 id="xmpp-inferencium-current"><a href="#xmpp-inferencium-current">Current</a></h5>
<h6 id="xmpp-inferencium-current-1"><a href="#xmpp-inferencium-current-1">#1</a></h6>
<code>67ee49da 37bcc392 691d9151 851e4240 6b5e80c2 e7d060b5 78dfdb41 443f9c52</code>
<p><a href="xmpp:inference@inferencium.net?omemo-sid-1641576775=67ee49da37bcc392691d9151851e42406b5e80c2e7d060b578dfdb41443f9c52">xmpp:inference@inferencium.net?omemo-sid-1641576775=67ee49da37bcc392691d9151851e42406b5e80c2e7d060b578dfdb41443f9c52</a></p>
<h5 id="xmpp-inferencium-legacy"><a href="#xmpp-inferencium-legacy">Legacy</a></h5>
<h6 id="xmpp-inferencium-legacy-0"><a href="#xmpp-inferencium-legacy-0">#0</a></h6>
<code>1bd03c6a 5e011655 2fafd697 da4fce70 63de5a83 a264a34a fcce78fe 6b06820c</code>
<p><a href="xmpp:inference@inferencium.net?omemo-sid-1586888206=1bd03c6a5e0116552fafd697da4fce7063de5a83a264a34afcce78fe6b06820c">xmpp:inference@inferencium.net?omemo-sid-1586888206=1bd03c6a5e0116552fafd697da4fce7063de5a83a264a34afcce78fe6b06820c</a></p>
</section>
</section>
<section id="file_git_signing">
<h2><a href="#file_git_signing">File/Git Signing</a></h2>
<section id="ssh">
<h3><a href="#ssh">SSH</a></h3>
<p class="update_date">Updated: 2023-07-27 (UTC+00:00)</p>
<p>Each SSH key is signed by the previous key, allowing verification of the chain of keys,
and root of trust.</p>
<h4 id="ssh-current"><a href="ssh-current">Current</a></h4>
<h5 id="ssh-current-1"><a href="#ssh-current-1">#1 (2023-07-27 - present)</a></h5>
<h6 id="ssh-current-1-fingerprint"><a href="#ssh-current-1-fingerprint">Fingerprint</a></h6>
<code>SHA256:FtEVfx1CmTKMy40VwZvF4k+3TC+QhCWy+EmPRg50Nnc</code>
<h6 id="ssh-current-1-key"><a href="#ssh-current-1-key">Key</a></h6>
<code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHPGnrIg7dI7GUqA+lTztJSrn+7QyRceajqs4iaU8UG</code>
<h4 id="ssh-legacy"><a href="#ssh-legacy">Legacy</a></h4>
<h5 id="ssh-legacy-0"><a href="#ssh-legacy-0">#0 (2023-01-01 - 2023-07-27)</a></h5>
<h6 id="ssh-legacy-0-fingerprint"><a href="#ssh-legacy-0-fingerprint">Fingerprint</a></h6>
<code>SHA256:9Pl0nZ2UJacgm+IeEtLSZ4FOESgP1eKCtRflfPfdX9M</code>
<h6 id="ssh-legacy-0-key"><a href="#ssh-legacy-0-key">Key</a></h6>
<code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINs8UH2hVmNSg0qKig/9ZQt07IuOHsorRfw1doEgMuJ8</code>
</section>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

328
main.css
View File

@ -1,315 +1,319 @@
/* Inferencium - Website - CSS - Main */
/* Version: 12.0.1 */
/* Version: 12.0.2-alpha.1 */
/* Copyright 2022 Jake Winters */
/* SPDX-License-Identifier: BSD-3-Clause */
/* Display Size - Large
Colour Scheme - Dark */
/* Body */
body {
padding-top: 40px;
margin-left: min(400px, 45vw);
margin-right: min(150px, 12vw);
font-family: Roboto, sans-serif;
font-size: 16px;
line-height: 130%;
background-color: #121212;
color: #ffffff;
padding-top: 40px;
margin-left: min(400px, 45vw);
margin-right: min(150px, 12vw);
font-family: Roboto, sans-serif;
font-size: 16px;
line-height: 130%;
background-color: #121212;
color: #ffffff;
}
/* Headings */
h1, h1 a, h1 a:visited, h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited, h4, h4 a, h4 a:visited, h5, h5 a, h5 a:visited, h6, h6 a, h6 a:visited {
text-align: left;
line-height: 130%;
color: #ffffff;
h1, h1 a, h1 a:visited, h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited, h4, h4 a, h4 a:visited, h5, h5 a, h5 a:visited,
h6, h6 a, h6 a:visited {
text-align: left;
line-height: 130%;
color: #ffffff;
}
h1, h1 a, h1 a:visited {
text-align: center;
font-size: 24px;
text-align: center;
font-size: 24px;
}
h2, h2 a, h2 a:visited {
font-size: 22px;
font-size: 22px;
}
h3, h3 a, h3 a:visited {
font-size: 20px;
font-size: 20px;
}
h4, h4 a, h4 a:visited {
font-size: 19px;
font-size: 19px;
}
h5, h5 a, h5 a:visited {
font-size: 18px;
font-size: 18px;
}
h6, h6 a, h6 a:visited {
font-size: 17px;
font-size: 17px;
}
/* Paragraph */
p {
font-size: 16px;
font-size: 16px;
}
/* Blockquote */
blockquote {
font-size: 16px;
font-size: 16px;
}
/* Code */
code, pre {
font-size: 15px;
background-color: #424242;
padding: 2px;
font-size: 15px;
background-color: #424242;
padding: 2px;
}
/* Links */
a {
font-size: 16px;
color: #90caf9;
text-decoration: none;
font-size: 16px;
color: #90caf9;
text-decoration: none;
}
a:visited {
color: #ce93d8;
color: #ce93d8;
}
a:hover {
text-decoration: underline;
text-decoration: underline;
}
/* Lists */
li {
font-size: 16px;
font-size: 16px;
}
ul li::before {
margin-left: -1em;
display: inline-block;
width: 1em;
font-weight: bold;
margin-left: -1em;
display: inline-block;
width: 1em;
font-weight: bold;
}
/* Tables */
table, th, td {
border: 2px solid;
border-collapse: collapse;
border-color: #ffffff;
padding: 15px;
font-size: 16px;
border: 2px solid;
border-collapse: collapse;
border-color: #ffffff;
padding: 15px;
font-size: 16px;
}
th {
font-size: 16px;
font-weight: bold;
text-align: center;
font-size: 16px;
font-weight: bold;
text-align: center;
}
td {
font-size: 16px;
text-align: center;
font-size: 16px;
text-align: center;
}
td.desc {
text-align: left;
text-align: left;
}
td.desc-small {
text-align: left;
text-align: left;
}
td.green {
background-color: #00a70a
background-color: #00a70a
}
td.red {
background-color: #e50000;
background-color: #e50000;
}
colgroup col.small {
width: 10%;
width: 10%;
}
colgroup col.med {
width: 15%;
width: 15%;
}
colgroup col.lrg {
width: 65%;
width: 65%;
}
/* Image */
img.avatar {
width: 10%;
height: 10%;
margin-top: 15px;
margin-right: 15px;
margin-bottom: 15px;
width: 10%;
height: 10%;
margin-top: 15px;
margin-right: 15px;
margin-bottom: 15px;
}
img.logo-small {
transform: translate(0px, 13px);
margin-right: 15px;
transform: translate(0px, 13px);
margin-right: 15px;
}
/* Navigation bar */
nav.navbar {
height: 100%;
width: 250px;
position: fixed;
left: 0;
top: 0;
padding-top: 55px;
background-color: #909090;
text-align: center;
z-index: 99;
overflow: auto;
height: 100%;
width: 250px;
position: fixed;
left: 0;
top: 0;
padding-top: 55px;
background-color: #909090;
text-align: center;
z-index: 99;
overflow: auto;
}
nav.navbar div, nav.navbar div a, nav.navbar div a:visited {
padding: 6px;
font-family: Roboto, sans-serif;
font-size: 22px;
color: #000000;
display: block;
z-index: 100;
padding: 6px;
font-family: Roboto, sans-serif;
font-size: 22px;
color: #000000;
display: block;
z-index: 100;
}
nav.navbar div.title a, nav.navbar div.title a:visited {
padding: 8px;
font-family: Roboto, sans-serif;
font-size: 28px;
padding: 8px;
font-family: Roboto, sans-serif;
font-size: 28px;
}
nav.navbar div.logo a img, nav.navbar div.logo a img {
width: 110px;
height: 110px;
width: 110px;
height: 110px;
}
nav.navbar div.sitemap a, nav.navbar div.sitemap a:visited {
position: absolute;
bottom: 120px;
left: 90px;
font-size: 14px;
position: absolute;
bottom: 120px;
left: 90px;
font-size: 14px;
}
div.sitemap-small {
display: none;
display: none;
}
/* Media */
/* Display Size - Small */
@media (max-width: 600px) {
body {
padding-top: 60px;
margin: 15px;
position: relative;
overflow-x: scroll;
}
body {
padding-top: 60px;
margin: 15px;
position: relative;
overflow-x: scroll;
}
nav.navbar {
display: flex;
align-items: center;
padding-top: 6px;
padding-bottom: 6px;
white-space: nowrap;
width: 100vw;
height: 35px;
overflow-y: hidden;
}
nav.navbar {
display: flex;
align-items: center;
padding-top: 6px;
padding-bottom: 6px;
white-space: nowrap;
width: 100vw;
height: 35px;
overflow-y: hidden;
}
nav.navbar div.logo a img {
width: 30px;
height: 30px;
}
nav.navbar div.logo a img {
width: 30px;
height: 30px;
}
nav.navbar .title {
display: none;
}
nav.navbar .title {
display: none;
}
nav.navbar div.sitemap {
display: none;
}
nav.navbar div.sitemap {
display: none;
}
nav.navbar div a {
font-size: 20px;
}
nav.navbar div a {
font-size: 20px;
}
h2, h3, h4, h5, h6 {
text-align: center;
}
h2, h3, h4, h5, h6 {
text-align: center;
}
div.sitemap-small, div.sitemap-small a {
display: block;
padding-top: 20px;
margin-right: auto;
margin-left: auto;
width: 50%;
text-align: center;
font-size: 12px;
}
div.sitemap-small, div.sitemap-small a {
display: block;
padding-top: 20px;
margin-right: auto;
margin-left: auto;
width: 50%;
text-align: center;
font-size: 12px;
}
img.avatar {
display: block;
width: 30%;
margin-right: auto;
margin-left: auto;
}
img.avatar {
display: block;
width: 30%;
margin-right: auto;
margin-left: auto;
}
.update_date {
text-align: center;
}
.update_date {
text-align: center;
}
table {
width: 200vw;
}
table {
width: 200vw;
}
table.lrg {
width: 300vw;
}
table.lrg {
width: 300vw;
}
}
/* Colour Scheme - Light */
@media (prefers-color-scheme: light) {
body {
background-color: #fafafa;
color: #000000;
}
body {
background-color: #fafafa;
color: #000000;
}
h1, h1 a, h1 a:visited, h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited, h4, h4 a, h4 a:visited, h5, h5 a, h5 a:visited, h6, h6 a, h6 a:visited, code {
color: #000000;
}
h1, h1 a, h1 a:visited, h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited, h4, h4 a, h4 a:visited, h5, h5 a,
h5 a:visited, h6, h6 a, h6 a:visited, code {
color: #000000;
}
a {
color: #1565c0;
}
a {
color: #1565c0;
}
a:visited {
color: #6a1b9a;
}
a:visited {
color: #6a1b9a;
}
code, pre {
background-color: #e0e2ec;
}
code, pre {
background-color: #e0e2ec;
}
table, th, td {
border-color: #000000;
}
table, th, td {
border-color: #000000;
}
}

View File

@ -1,111 +1,108 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Music -->
<!-- Version: 7.0.0 -->
<!-- Version: 7.0.1-alpha.1 -->
<!-- Copyright 2023 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Music</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="music"><a href="#music">Music</a></h1>
<section id="music_list">
<p>This is a curated list of my personally-enjoyed music. The list
is alphabetically-sorted A-Z, based on artist name, followed by
track name, and is formatted as
<code><var>ARTIST</var> - <var>TRACK</var></code>. Each item in the
list has its own individual link which will take you to an official
source of the item (or the best alternative when an official source
is unavailable). It is your responsibility to comply with any local
laws when following these links and/or consuming any media found in
this list.</p>
<ul>
<li><a href="https://youtube.com/watch?v=_Eq_qQUPvGQ">Altare - Impulse</a></li>
<li><a href="https://youtube.com/watch?v=mXWhf35hOXA">Anomy5 - Predator</a></li>
<li><a href="https://youtube.com/watch?v=woNrNfFVsKc">CHENDA &amp; Shiah Maisel - Ten More Minutes</a></li>
<li><a href="https://youtube.com/watch?v=s-l5PF2WZbo">Chiru-san - Akari</a></li>
<li><a href="https://youtube.com/watch?v=RzfmTBLxJeI">Chiru-san - Foresaken</a></li>
<li><a href="https://youtube.com/watch?v=ObzI00TsE9Q">Chiru-san - Restart</a></li>
<li><a href="https://youtube.com/watch?v=9SyRFMCQJh4">CoyDE - BReAK tHe BONdS feat. 夏铜子</a></li>
<li><a href="https://youtube.com/watch?v=rf5trwF_zA4">CRYSEHD - Gold</a></li>
<li><a href="https://youtube.com/watch?v=1Esb_x6hmt0">Cult To Follow - 10 Seconds From Panic</a></li>
<li><a href="https://youtube.com/watch?v=9lH9EFEV4_4">CVllXXX - FAKE</a></li>
<li><a href="https://youtube.com/watch?v=7ioym7mmtEA">CVllXXX - NEW FAKER</a></li>
<li><a href="https://youtube.com/watch?v=UHe9zJr6qYo">Dakku - Ephemeral</a></li>
<li><a href="https://youtube.com/watch?v=ALwM-MfU3E4">Dakku - Healing</a></li>
<li><a href="https://youtube.com/watch?v=cZvt23iBVVo">Digitalism - Pogo</a></li>
<li><a href="https://youtube.com/watch?v=ZYbfelzEXNQ">Direct &amp; CloudNone - Elixir</a></li>
<li><a href="https://youtube.com/watch?v=ZLYmRRfjngc">DJ Electrohead - Hit the Floor</a></li>
<li><a href="https://youtube.com/watch?v=-U-WgwY9LWg">Dominik Schwarz - Sekai</a></li>
<li><a href="https://youtube.com/watch?v=gT7FqWkLFp8">Enrico Sangiuliano - EOL</a></li>
<li><a href="https://youtube.com/watch?v=jg6UFlHQLlY">Enrico Sangiuliano - Future Dust</a></li>
<li><a href="https://youtube.com/watch?v=RnHV_qzxrC8">Enrico Sangiuliano - Glitch In Time</a></li>
<li><a href="https://youtube.com/watch?v=jeOBL38uznA">Enrico Sangiuliano - Physical Change</a></li>
<li><a href="https://youtube.com/watch?v=XtptYWXLdvo">Essenger - After Dark</a></li>
<li><a href="https://youtube.com/watch?v=qRJVcQsqieU">Essenger - Tenebrous</a></li>
<li><a href="https://youtube.com/watch?v=uNj3vZQLNWM">Essenger - Tenebrous (Irons Remix)</a></li>
<li><a href="https://youtube.com/watch?v=xpNtLeDiUVk">Eternxlkz - FINAL ROUND</a></li>
<li><a href="https://youtube.com/watch?v=iYYWtgNFU7M">Eternxlkz - krushed ENOUGH!</a></li>
<li><a href="https://youtube.com/watch?v=0k01vYB66lc">Eynsai - MONOMYTH</a></li>
<li><a href="https://youtube.com/watch?v=gGHOUcHBkzY">Eynsai - RECAPTURE</a></li>
<li><a href="https://youtube.com/watch?v=Z9uxrzhLpJk">FWLR - Existentia</a></li>
<li><a href="https://youtube.com/watch?v=8bCaXe5fIB4">Geoxor - I Like You</a></li>
<li><a href="https://youtube.com/watch?v=v9_9tYQd7yg">Geoxor &amp; SVRGE - DEAD</a></li>
<li><a href="https://youtube.com/watch?v=-Jf2xm-QPV0">GRAM - Yggdrasil</a></li>
<li><a href="https://youtube.com/watch?v=ktf_HPqTOXM">Haloweak - C.O.R.E</a></li>
<li><a href="https://youtube.com/watch?v=q2DBeby7ni8">Haloweak - NARWHAL</a></li>
<li><a href="https://youtube.com/watch?v=RHu804DrBZc">Haloweak - 傀儡 曲</a></li>
<li><a href="https://youtube.com/watch?v=SxlW79tDhCA">HOYO-MiX, Jonathan Steingard - Wildfire</a></li>
<li><a href="https://youtube.com/watch?v=a_iImCoKgDo">Hunsh &amp; FRESHER - DEMONCORE</a></li>
<li><a href="https://youtube.com/watch?v=IEm1_FKQXmQ">INDX8 x DraGonis - Puppet</a></li>
<li><a href="https://youtube.com/watch?v=Wm8vcFn0bgY">Infected Mushroom - Kazabubu</a></li>
<li><a href="https://youtube.com/watch?v=NUWAxqhyV4M">Juche - Keep My Back</a></li>
<li><a href="https://youtube.com/watch?v=EgKtheQbIJA">Juche - System</a></li>
<li><a href="https://youtube.com/watch?v=UAcgD1ZU0_U">Juche - Without Any Thought</a></li>
<li><a href="https://youtube.com/watch?v=HgQRt-ahE10">kittyangel - pleasure</a></li>
<li><a href="https://youtube.com/watch?v=O9p-7j9RtmY">KoruSe - EMPTINESS</a></li>
<li><a href="https://youtube.com/watch?v=lw41VIlb3pQ">KoruSe - LOST FUTURE</a></li>
<li><a href="https://youtube.com/watch?v=UzpbIArboCE">KoruSe - OUTTA CONTROL</a></li>
<li><a href="https://youtube.com/watch?v=dw8MxXc_NcU">KoruSe - THE HEIST</a></li>
<li><a href="https://youtube.com/watch?v=9yi2sCP7vb4">KoruSe x askat - Response</a></li>
<li><a href="https://youtube.com/watch?v=YxTD_pNXq60">KoruSe x asuro - HEAVENS FEEL</a></li>
<li><a href="https://youtube.com/watch?v=vsCXQ8MuM0k">KoruSe x liqueur - METASTASIS</a></li>
<li><a href="https://youtube.com/watch?v=yOIj9lTv32c">KoruSe, MITUJURO - NEW WAY</a></li>
<li><a href="https://youtube.com/watch?v=cnlthFUKKMY">KoruSe x mzmff - SENSES</a></li>
<li><a href="https://youtube.com/watch?v=Xq5nl_Q2GDw">Kuwanano - DELETE</a></li>
<li><a href="https://youtube.com/watch?v=rp1gPVrMFgM">Lappy - Chrono Apocalypse</a></li>
<li><a href="https://youtube.com/watch?v=pq0XnxdSzjg">Lappy - Counter Blade</a></li>
<li><a href="https://youtube.com/watch?v=prBG2Lkt3pk">Lappy - Crescendo of Fate</a></li>
<li><a href="https://youtube.com/watch?v=P9UJSP4lzto">Lappy - Operation Shadowfall</a></li>
<li><a href="https://youtube.com/watch?v=mkSipPCg7CI">Lappy - Try Resisting Me</a></li>
<li><a href="https://youtube.com/watch?v=q2zcxPhOPd0">SVRGE - Animosity</a></li>
<li><a href="https://youtube.com/watch?v=ucoTKQpXrhI">SVRGE - Eternal</a></li>
<li><a href="https://youtube.com/watch?v=YwzIbcuaFUo">SVRGE - Nocturnal</a></li>
<li><a href="https://youtube.com/watch?v=QJF-ObxFtoc">Touhou - U.N. Owen Was Her? (Cosmowave Remix)</a></li>
</ul>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Music</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="music"><a href="#music">Music</a></h1>
<section id="music_list">
<p>This is a curated list of my personally-enjoyed music. The list is alphabetically-sorted A-Z, based
on artist name, followed by track name, and is formatted as <code><var>ARTIST</var> -
<var>TRACK</var></code>. Each item in the list has its own individual link which will take you to an
official source of the item (or the best alternative when an official source is unavailable). It is your
responsibility to comply with any local laws when following these links and/or consuming any media found
in this list.</p>
<ul>
<li><a href="https://youtube.com/watch?v=_Eq_qQUPvGQ">Altare - Impulse</a></li>
<li><a href="https://youtube.com/watch?v=mXWhf35hOXA">Anomy5 - Predator</a></li>
<li><a href="https://youtube.com/watch?v=woNrNfFVsKc">CHENDA &amp; Shiah Maisel - Ten More Minutes</a></li>
<li><a href="https://youtube.com/watch?v=s-l5PF2WZbo">Chiru-san - Akari</a></li>
<li><a href="https://youtube.com/watch?v=RzfmTBLxJeI">Chiru-san - Foresaken</a></li>
<li><a href="https://youtube.com/watch?v=ObzI00TsE9Q">Chiru-san - Restart</a></li>
<li><a href="https://youtube.com/watch?v=9SyRFMCQJh4">CoyDE - BReAK tHe BONdS feat. 夏铜子</a></li>
<li><a href="https://youtube.com/watch?v=rf5trwF_zA4">CRYSEHD - Gold</a></li>
<li><a href="https://youtube.com/watch?v=1Esb_x6hmt0">Cult To Follow - 10 Seconds From Panic</a></li>
<li><a href="https://youtube.com/watch?v=9lH9EFEV4_4">CVllXXX - FAKE</a></li>
<li><a href="https://youtube.com/watch?v=7ioym7mmtEA">CVllXXX - NEW FAKER</a></li>
<li><a href="https://youtube.com/watch?v=UHe9zJr6qYo">Dakku - Ephemeral</a></li>
<li><a href="https://youtube.com/watch?v=ALwM-MfU3E4">Dakku - Healing</a></li>
<li><a href="https://youtube.com/watch?v=cZvt23iBVVo">Digitalism - Pogo</a></li>
<li><a href="https://youtube.com/watch?v=ZYbfelzEXNQ">Direct &amp; CloudNone - Elixir</a></li>
<li><a href="https://youtube.com/watch?v=ZLYmRRfjngc">DJ Electrohead - Hit the Floor</a></li>
<li><a href="https://youtube.com/watch?v=-U-WgwY9LWg">Dominik Schwarz - Sekai</a></li>
<li><a href="https://youtube.com/watch?v=gT7FqWkLFp8">Enrico Sangiuliano - EOL</a></li>
<li><a href="https://youtube.com/watch?v=jg6UFlHQLlY">Enrico Sangiuliano - Future Dust</a></li>
<li><a href="https://youtube.com/watch?v=RnHV_qzxrC8">Enrico Sangiuliano - Glitch In Time</a></li>
<li><a href="https://youtube.com/watch?v=jeOBL38uznA">Enrico Sangiuliano - Physical Change</a></li>
<li><a href="https://youtube.com/watch?v=XtptYWXLdvo">Essenger - After Dark</a></li>
<li><a href="https://youtube.com/watch?v=qRJVcQsqieU">Essenger - Tenebrous</a></li>
<li><a href="https://youtube.com/watch?v=uNj3vZQLNWM">Essenger - Tenebrous (Irons Remix)</a></li>
<li><a href="https://youtube.com/watch?v=xpNtLeDiUVk">Eternxlkz - FINAL ROUND</a></li>
<li><a href="https://youtube.com/watch?v=iYYWtgNFU7M">Eternxlkz - krushed ENOUGH!</a></li>
<li><a href="https://youtube.com/watch?v=0k01vYB66lc">Eynsai - MONOMYTH</a></li>
<li><a href="https://youtube.com/watch?v=gGHOUcHBkzY">Eynsai - RECAPTURE</a></li>
<li><a href="https://youtube.com/watch?v=Z9uxrzhLpJk">FWLR - Existentia</a></li>
<li><a href="https://youtube.com/watch?v=8bCaXe5fIB4">Geoxor - I Like You</a></li>
<li><a href="https://youtube.com/watch?v=v9_9tYQd7yg">Geoxor &amp; SVRGE - DEAD</a></li>
<li><a href="https://youtube.com/watch?v=-Jf2xm-QPV0">GRAM - Yggdrasil</a></li>
<li><a href="https://youtube.com/watch?v=ktf_HPqTOXM">Haloweak - C.O.R.E</a></li>
<li><a href="https://youtube.com/watch?v=q2DBeby7ni8">Haloweak - NARWHAL</a></li>
<li><a href="https://youtube.com/watch?v=RHu804DrBZc">Haloweak - 傀儡 曲</a></li>
<li><a href="https://youtube.com/watch?v=SxlW79tDhCA">HOYO-MiX, Jonathan Steingard - Wildfire</a></li>
<li><a href="https://youtube.com/watch?v=a_iImCoKgDo">Hunsh &amp; FRESHER - DEMONCORE</a></li>
<li><a href="https://youtube.com/watch?v=IEm1_FKQXmQ">INDX8 x DraGonis - Puppet</a></li>
<li><a href="https://youtube.com/watch?v=Wm8vcFn0bgY">Infected Mushroom - Kazabubu</a></li>
<li><a href="https://youtube.com/watch?v=NUWAxqhyV4M">Juche - Keep My Back</a></li>
<li><a href="https://youtube.com/watch?v=EgKtheQbIJA">Juche - System</a></li>
<li><a href="https://youtube.com/watch?v=UAcgD1ZU0_U">Juche - Without Any Thought</a></li>
<li><a href="https://youtube.com/watch?v=HgQRt-ahE10">kittyangel - pleasure</a></li>
<li><a href="https://youtube.com/watch?v=O9p-7j9RtmY">KoruSe - EMPTINESS</a></li>
<li><a href="https://youtube.com/watch?v=lw41VIlb3pQ">KoruSe - LOST FUTURE</a></li>
<li><a href="https://youtube.com/watch?v=UzpbIArboCE">KoruSe - OUTTA CONTROL</a></li>
<li><a href="https://youtube.com/watch?v=dw8MxXc_NcU">KoruSe - THE HEIST</a></li>
<li><a href="https://youtube.com/watch?v=9yi2sCP7vb4">KoruSe x askat - Response</a></li>
<li><a href="https://youtube.com/watch?v=YxTD_pNXq60">KoruSe x asuro - HEAVENS FEEL</a></li>
<li><a href="https://youtube.com/watch?v=vsCXQ8MuM0k">KoruSe x liqueur - METASTASIS</a></li>
<li><a href="https://youtube.com/watch?v=yOIj9lTv32c">KoruSe, MITUJURO - NEW WAY</a></li>
<li><a href="https://youtube.com/watch?v=cnlthFUKKMY">KoruSe x mzmff - SENSES</a></li>
<li><a href="https://youtube.com/watch?v=Xq5nl_Q2GDw">Kuwanano - DELETE</a></li>
<li><a href="https://youtube.com/watch?v=rp1gPVrMFgM">Lappy - Chrono Apocalypse</a></li>
<li><a href="https://youtube.com/watch?v=pq0XnxdSzjg">Lappy - Counter Blade</a></li>
<li><a href="https://youtube.com/watch?v=prBG2Lkt3pk">Lappy - Crescendo of Fate</a></li>
<li><a href="https://youtube.com/watch?v=P9UJSP4lzto">Lappy - Operation Shadowfall</a></li>
<li><a href="https://youtube.com/watch?v=mkSipPCg7CI">Lappy - Try Resisting Me</a></li>
<li><a href="https://youtube.com/watch?v=q2zcxPhOPd0">SVRGE - Animosity</a></li>
<li><a href="https://youtube.com/watch?v=ucoTKQpXrhI">SVRGE - Eternal</a></li>
<li><a href="https://youtube.com/watch?v=YwzIbcuaFUo">SVRGE - Nocturnal</a></li>
<li><a href="https://youtube.com/watch?v=QJF-ObxFtoc">Touhou - U.N. Owen Was Her? (Cosmowave Remix)</a></li>
</ul>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,60 +1,58 @@
<!DOCTYPE html>
<!-- Inferencium - Website - News -->
<!-- Version: 1.0.0 -->
<!-- Version: 1.0.1-alpha.1 -->
<!-- Copyright 2024 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - News</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="news"><a href="#news">News</a></h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#2024-02-01">2024-02-01</a></li>
<ul>
<li><a href="#mirror-codeberg">Source Code Mirror - Codeberg</a></li>
</ul>
</ul>
</nav>
<section id="2024-02-01">
<h2><a href="#2024-02-01">2024-02-01</a></h2>
<article id="mirror-codeberg">
<h3><a href="#mirror-codeberg">Source Code Mirror - Codeberg</a></h3>
<p><a href="https://src.inferencium.net/Inferencium">Inferencium source code repositories</a>
are now mirrored at
<a href="https://codeberg.org/Inferencium">Codeberg</a>.
In case of service disruption of the main Inferencium source
code repositories, the mirrors can be used to access the source
code.</p>
<p>Due to terms of service restrictions, proprietary code and
related repositories, such as firmware, are unable to be
mirrored to Codeberg.</p>
</article>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - News</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="news"><a href="#news">News</a></h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="#2024-02-01">2024-02-01</a></li>
<ul>
<li><a href="#mirror-codeberg">Source Code Mirror - Codeberg</a></li>
</ul>
</ul>
</nav>
<section id="2024-02-01">
<h2><a href="#2024-02-01">2024-02-01</a></h2>
<article id="mirror-codeberg">
<h3><a href="#mirror-codeberg">Source Code Mirror - Codeberg</a></h3>
<p><a href="https://src.inferencium.net/Inferencium">Inferencium source code repositories</a>
are now mirrored at
<a href="https://codeberg.org/Inferencium">Codeberg</a>.
In case of service disruption of the main Inferencium source code repositories, the mirrors
can be used to access the source code.</p>
<p>Due to terms of service restrictions, proprietary code and related repositories, such as
firmware, are unable to be mirrored to Codeberg.</p>
</article>
</section>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>

View File

@ -1,67 +1,67 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Sitemap (HTML) -->
<!-- Version: 1.0.0 -->
<!-- Version: 1.0.1-alpha.1 -->
<!-- Copyright 2024 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Sitemap</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="sitemap"><a href="#sitemap">Sitemap</a></h1>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Sitemap</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1 id="sitemap"><a href="#sitemap">Sitemap</a></h1>
<ul>
<li><a href="index.xhtml">Inferencium</a></li>
<ul>
<li><a href="index.xhtml">Inferencium</a></li>
<li><a href="about.xhtml">About</a></li>
<ul>
<li><a href="about.xhtml">About</a></li>
<ul>
<li><a href="music.xhtml">Music</a></li>
</ul>
<li><a href="news.xhtml">News</a></li>
<li><a href="documentation.xhtml">Documentation</a></li>
<ul>
<li><a href="documentation/hardened_malloc.xhtml">hardened_malloc</a></li>
<li><a href="documentation/openssl_selfsigned_certificate_chain.xhtml">OpenSSL Self-signed Certificate Chain</a></li>
</ul>
<li><a href="source.xhtml">Source</a></li>
<li><a href="changelog.xhtml">Changelog</a></li>
<ul>
<li><a href="changelog/firmware-aa000-0.xhtml">Firmware - aa000-0</a></li>
<li><a href="changelog/firmware-xa000-0.xhtml">Firmware - xa000-0</a></li>
<li><a href="changelog/firmware-xb000-0.xhtml">Firmware - xb000-0</a></li>
</ul>
<li><a href="blog.xhtml">Blog</a></li>
<ul>
<li><a href="blog/foss_is_working_against_itself.xhtml">#0 - FOSS is Working Against Itself</a></li>
<li><a href="blog/systemd_insecurity.xhtml">#1 - systemd Insecurity</a></li>
<li><a href="blog/untrusted_the_issue_with_decentralisation.xhtml">#2 - Untrusted: The Issue with Decentralisation</a></li>
<li><a href="blog/the_chromium_monopoly.xhtml">#3 - The Chromium Monopoly</a></li>
</ul>
<li><a href="contact.xhtml">Contact</a></li>
<li><a href="directory.xhtml">Directory</a></li>
<li><a href="key.xhtml">Key</a></li>
<li><a href="music.xhtml">Music</a></li>
</ul>
<li><a href="news.xhtml">News</a></li>
<li><a href="documentation.xhtml">Documentation</a></li>
<ul>
<li><a href="documentation/hardened_malloc.xhtml">hardened_malloc</a></li>
<li><a href="documentation/openssl_selfsigned_certificate_chain.xhtml">OpenSSL Self-signed Certificate Chain</a></li>
</ul>
<li><a href="source.xhtml">Source</a></li>
<li><a href="changelog.xhtml">Changelog</a></li>
<ul>
<li><a href="changelog/firmware-aa000-0.xhtml">Firmware - aa000-0</a></li>
<li><a href="changelog/firmware-xa000-0.xhtml">Firmware - xa000-0</a></li>
<li><a href="changelog/firmware-xb000-0.xhtml">Firmware - xb000-0</a></li>
</ul>
<li><a href="blog.xhtml">Blog</a></li>
<ul>
<li><a href="blog/foss_is_working_against_itself.xhtml">#0 - FOSS is Working Against Itself</a></li>
<li><a href="blog/systemd_insecurity.xhtml">#1 - systemd Insecurity</a></li>
<li><a href="blog/untrusted_the_issue_with_decentralisation.xhtml">#2 - Untrusted: The Issue with Decentralisation</a></li>
<li><a href="blog/the_chromium_monopoly.xhtml">#3 - The Chromium Monopoly</a></li>
</ul>
<li><a href="contact.xhtml">Contact</a></li>
<li><a href="directory.xhtml">Directory</a></li>
<li><a href="key.xhtml">Key</a></li>
</ul>
</body>
</ul>
</body>
</html>

View File

@ -1,93 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Inferencium - Website - Sitemap (XML) -->
<!-- Version: 1.0.0 -->
<!-- Version: 1.0.1-alpha.1 -->
<!-- Copyright 2024 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://inferencium.net/</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/about</loc>
<priority>1.0</priority>
</url>
<url>
<loc>https://inferencium.net/</loc>
<loc>https://inferencium.net/music</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/documentation</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/documentation/hardened_malloc</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/about</loc>
<priority>1.0</priority>
</url>
<url>
<loc>https://inferencium.net/music</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/documentation</loc>
<loc>https://inferencium.net/documentation/openssl_selfsigned_certificate_chain</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/documentation/hardened_malloc</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/documentation/openssl_selfsigned_certificate_chain</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/source</loc>
<priority>1.0</priority>
</url>
<url>
<loc>https://inferencium.net/changelog</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/source</loc>
<priority>1.0</priority>
</url>
<url>
<loc>https://inferencium.net/changelog</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/changelog/firmware-aa000-0</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/changelog/firmware-xa000-0</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/changelog/firmware-xb000-0</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/foss_is_working_against_itself</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/systemd_insecurity</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/untrusted_the_issue_with_decentralisation</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/the_chromium_monopoly</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/contact</loc>
<priority>1.0</priority>
</url>
<url>
<loc>https://inferencium.net/directory</loc>
<loc>https://inferencium.net/changelog/firmware-aa000-0</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/key</loc>
<loc>https://inferencium.net/changelog/firmware-xa000-0</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/humans.txt</loc>
<priority>0.0</priority>
<loc>https://inferencium.net/changelog/firmware-xb000-0</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/foss_is_working_against_itself</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/systemd_insecurity</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/untrusted_the_issue_with_decentralisation</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/blog/the_chromium_monopoly</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/contact</loc>
<priority>1.0</priority>
</url>
<url>
<loc>https://inferencium.net/directory</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/key</loc>
<priority>0.5</priority>
</url>
<url>
<loc>https://inferencium.net/humans.txt</loc>
<priority>0.0</priority>
</url>
</urlset>

View File

@ -1,51 +1,51 @@
<!DOCTYPE html>
<!-- Inferencium - Website - Source -->
<!-- Version: 8.0.0 -->
<!-- Version: 8.0.1-alpha.1 -->
<!-- Copyright 2022 Jake Winters -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Source</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Source</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/cfg/">cfg</a> - Configuration files</li>
<li><a href="https://src.inferencium.net/Inferencium/doc/">doc</a> - Documentation</li>
<li><a href="https://src.inferencium.net/Inferencium/graphenechan/">graphenechan</a> - Graphene-chan (GrapheneOS unofficial mascot)</li>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/">firmware-aa000-0</a> - System aa000-0 firmware</li>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/">firmware-xa000-0</a> - System xa000-0 firmware</li>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xb000-0/">firmware-xb000-0</a> - System xb000-0 firmware</li>
<li><a href="https://src.inferencium.net/Inferencium/mmd/">mmd</a> - Gentoo Multimedia ebuild repository</li>
<li><a href="https://src.inferencium.net/Inferencium/scr/">scr</a> - Script files</li>
<li><a href="https://src.inferencium.net/Inferencium/sys/">sys</a> - Gentoo System ebuild repository</li>
<li><a href="https://src.inferencium.net/Inferencium/website/">website</a> - Website</li>
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="main.css"/>
<link rel="icon shortcut" href="asset/img/logo/inferencium-notext.png"/>
<title>Inferencium - Source</title>
</head>
<body>
<nav class="navbar">
<div class="logo"><a href="index.xhtml"><img src="asset/img/logo/inferencium-notext.png" alt="Inferencium logo"/></a></div>
<div class="title"><a href="index.xhtml">Inferencium</a></div>
<div><a href="about.xhtml">About</a></div>
<div><a href="news.xhtml">News</a></div>
<div><a href="documentation.xhtml">Documentation</a></div>
<div><a href="source.xhtml">Source</a></div>
<div><a href="changelog.xhtml">Changelog</a></div>
<div><a href="blog.xhtml">Blog</a></div>
<div><a href="contact.xhtml">Contact</a></div>
<div><a href="directory.xhtml">Directory</a></div>
<div><a href="key.xhtml">Key</a></div>
<div class="sitemap"><a href="sitemap.xhtml">Sitemap</a></div>
</nav>
<h1>Source</h1>
<nav id="toc">
<h2><a href="#toc">Table of Contents</a></h2>
<ul>
<li><a href="https://src.inferencium.net/Inferencium/cfg/">cfg</a> - Configuration files</li>
<li><a href="https://src.inferencium.net/Inferencium/doc/">doc</a> - Documentation</li>
<li><a href="https://src.inferencium.net/Inferencium/graphenechan/">graphenechan</a> - Graphene-chan (GrapheneOS unofficial mascot)</li>
<li><a href="https://src.inferencium.net/Inferencium/firmware-aa000-0/">firmware-aa000-0</a> - System aa000-0 firmware</li>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xa000-0/">firmware-xa000-0</a> - System xa000-0 firmware</li>
<li><a href="https://src.inferencium.net/Inferencium/firmware-xb000-0/">firmware-xb000-0</a> - System xb000-0 firmware</li>
<li><a href="https://src.inferencium.net/Inferencium/mmd/">mmd</a> - Gentoo Multimedia ebuild repository</li>
<li><a href="https://src.inferencium.net/Inferencium/scr/">scr</a> - Script files</li>
<li><a href="https://src.inferencium.net/Inferencium/sys/">sys</a> - Gentoo System ebuild repository</li>
<li><a href="https://src.inferencium.net/Inferencium/website/">website</a> - Website</li>
</ul>
</nav>
<div class="sitemap-small"><a href="sitemap.xhtml">Sitemap</a></div>
</body>
</html>