-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy patharticle-edb-encryption-at-rest.html
More file actions
131 lines (130 loc) · 23.8 KB
/
Copy patharticle-edb-encryption-at-rest.html
File metadata and controls
131 lines (130 loc) · 23.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<html lang="en"><head>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<meta content="EmbeddedOS Foundation — eDB AES-XTS At-Rest Encryption | EmbeddedOS. Open-source embedded OS, neural interfaces, and AI-powered edge computing." name="description"/>
<meta charset="utf-8"/><meta content="width=device-width, initial-scale=1.0" name="viewport"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600;700&display=swap" rel="stylesheet"/><link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600;700&display=swap" rel="stylesheet"/><meta content="eDB's new storage layer adds page-level AES-XTS encryption with hardware-key offload on supported MCUs. The catch: it had to fit in 6 KB of code on the…" name="description"/><meta content="#0066cc" name="theme-color"/><meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="robots"/><meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="googlebot"/><meta content="index,follow" name="bingbot"><meta content="general" name="rating"><meta content="telephone=no" name="format-detection"/><meta content="en_US" property="og:locale"/><meta content="EmbeddedOS Research Foundation — open-source embedded AI systems stack" property="og:image:alt"/><meta content="@EmbeddedOS_ORG" name="twitter:site"/><meta content="@EmbeddedOS_ORG" name="twitter:creator"/><link href="rss.xml" rel="alternate" title="EmbeddedOS Newsroom" type="application/rss+xml"/><link href="manifest.json" rel="manifest"><meta content="EoS Editorial" name="author"/><meta content="eDB ships AES-XTS at-rest encryption — even on 64 KB devices — EmbeddedOS" property="og:title"/><meta content="eDB's new storage layer adds page-level AES-XTS encryption with hardware-key offload on supported MCUs. The catch: it had to fit in 6 KB of code on the smallest target. Here's how." property="og:description"/><meta content="article" property="og:type"/><meta content="2026-05-02T08:00:00Z" property="article:published_time"/><meta content="2026-05-02T08:00:00Z" property="article:modified_time"/><meta content="EoS Editorial" property="article:author"/><meta content="Security & Boot" property="article:section"/><meta content="Security & Boot" property="article:tag"/><meta content="EmbeddedOS" property="article:tag"/><meta content="Open Source" property="article:tag"/><meta content="https://www.embeddedos.org/article-edb-encryption-at-rest" property="og:url"/><meta content="https://www.embeddedos.org/img/og-cover.svg" property="og:image"/><meta content="1200" property="og:image:width"/><meta content="630" property="og:image:height"/><meta content="EmbeddedOS" property="og:site_name"/><meta content="summary_large_image" name="twitter:card"/><meta content="eDB ships AES-XTS at-rest encryption — even on 64 KB devices — EmbeddedOS" name="twitter:title"/><meta content="eDB's new storage layer adds page-level AES-XTS encryption with hardware-key offload on supported MCUs. The catch: it had to fit in 6 KB of code on the smallest target. Here's how." name="twitter:description"/><meta content="https://www.embeddedos.org/img/og-cover.svg" name="twitter:image"/><link href="https://www.embeddedos.org/article-edb-encryption-at-rest" rel="canonical"/><link href="img/logo.svg" rel="apple-touch-icon"/><link href="favicon.svg" rel="icon" type="image/svg+xml"/><title>eDB AES-XTS At-Rest Encryption | EmbeddedOS</title>
<link href="css/style.v7.css" rel="stylesheet"/> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"headline": "eDB ships AES-XTS at-rest encryption \u2014 even on 64 KB devices",
"description": "eDB's new storage layer adds page-level AES-XTS encryption with hardware-key offload on supported MCUs. The catch: it had to fit in 6 KB of code on the smallest target. Here's how.",
"datePublished": "2026-05-02",
"dateModified": "2026-05-02",
"author": {
"@type": "Organization",
"name": "EoS Editorial"
},
"publisher": {
"@type": "Organization",
"name": "EmbeddedOS Research Foundation",
"logo": {
"@type": "ImageObject",
"url": "https://www.embeddedos.org/img/logo.svg"
}
},
"mainEntityOfPage": "https://www.embeddedos.org/article-edb-encryption-at-rest",
"image": "https://www.embeddedos.org/img/og-cover.svg",
"articleSection": "Security & Boot",
"url": "https://www.embeddedos.org/article-edb-encryption-at-rest"
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.embeddedos.org/"
},
{
"@type": "ListItem",
"position": 2,
"name": "News",
"item": "https://www.embeddedos.org/news"
},
{
"@type": "ListItem",
"position": 3,
"name": "eDB ships AES-XTS at-rest encryption \u2014 even on 64 KB devices",
"item": "https://www.embeddedos.org/article-edb-encryption-at-rest"
}
]
}
]
}
</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","@id":"https://www.embeddedos.org/article-edb-encryption-at-rest#webpage","url":"https://www.embeddedos.org/article-edb-encryption-at-rest","speakable":{"@type":"SpeakableSpecification","cssSelector":[".article-hero__title",".article-hero__dek",".prose p:first-of-type"]},"isPartOf":{"@id":"https://www.embeddedos.org/#website"}}</script> <link href="https://www.embeddedos.org/article-edb-encryption-at-rest.html" rel="canonical"/>
</link></meta></meta> <link rel="stylesheet" href="/css/theme-light.css"/>
<script defer src="/js/site-chrome.js"></script>
</head><body class="page-article-edb-encryption-at-rest"><a class="skip-link" href="#main-content">Skip to main content</a><header class="navbar">
<div class="brand-bar">
<div class="nav-container">
<a aria-label="EmbeddedOS Home" class="logo" href="/">
<div class="logo-icon">EoS</div>
<span class="logo-text">Embedded<span>OS</span></span>
</a>
<nav aria-label="Main navigation">
<ul class="nav-links" id="nav-links" role="menubar">
<li role="none"><a href="news.html" role="menuitem">News</a></li>
<li class="has-dropdown" role="none">
<a aria-expanded="false" aria-haspopup="true" href="research.html" role="menuitem">Research <span aria-hidden="true" class="nav-caret">▾</span></a>
<ul class="dropdown-menu" role="menu">
<li role="none"><a href="research.html" role="menuitem">Neural Link Architecture</a></li>
<li role="none"><a href="roadmap.html" role="menuitem">Roadmap</a></li>
<li role="none"><a href="changelog.html" role="menuitem">Changelog</a></li>
<li role="none"><a href="neural-link-ai.html" role="menuitem">Neural Link & AI Integration</a></li>
<li role="none"><a href="ai-os.html" role="menuitem">AI Operating Systems</a></li>
<li role="none"><a href="building-os.html" role="menuitem">Building OS with Linux/RTOS</a></li>
<li role="none"><a href="future-research.html" role="menuitem">Future Research</a></li>
</ul>
</li>
<li class="has-dropdown" role="none">
<a aria-expanded="false" aria-haspopup="true" href="membership.html" role="menuitem">Programs <span aria-hidden="true" class="nav-caret">▾</span></a>
<ul class="dropdown-menu" role="menu">
<li role="none"><a href="membership.html" role="menuitem">Membership</a></li>
<li role="none"><a href="certification.html" role="menuitem">Certification</a></li>
<li role="none"><a href="internship.html" role="menuitem">Internship</a></li>
<li role="none"><a href="careers.html" role="menuitem">Careers</a></li>
</ul>
</li>
<li class="has-dropdown" role="none">
<a aria-expanded="false" aria-haspopup="true" href="products.html" role="menuitem">Products <span aria-hidden="true" class="nav-caret">▾</span></a>
<ul class="dropdown-menu" role="menu">
<li role="none"><a href="product-eos.html" role="menuitem">EoS (RTOS)</a></li>
<li role="none"><a href="product-eos-platform.html" role="menuitem">eos-platform</a></li>
<li role="none"><a href="product-eboot.html" role="menuitem">eBootloader</a></li>
<li role="none"><a href="product-ebuild.html" role="menuitem">eBuild</a></li>
<li role="none"><a href="product-eai.html" role="menuitem">EAI</a></li>
<li role="none"><a href="product-eni.html" role="menuitem">ENI</a></li>
<li role="none"><a href="product-eipc.html" role="menuitem">EIPC</a></li>
<li role="none"><a href="product-eapps.html" role="menuitem">eApps</a></li>
<li role="none"><a href="product-eosim.html" role="menuitem">EoSim</a></li>
<li role="none"><a href="product-eostudio.html" role="menuitem">EoStudio</a></li>
<li role="none"><a href="product-edb.html" role="menuitem">eDB</a></li>
<li role="none"><a href="product-ebowser.html" role="menuitem">eBowser</a></li>
<li role="none"><a href="product-eoffice.html" role="menuitem">eOffice</a></li>
<li role="none"><a href="product-eserviceapps.html" role="menuitem">eServiceApps</a></li>
</ul>
</li>
<li role="none"><a href="ecosystem.html" role="menuitem">Ecosystem</a></li>
<li role="none"><a href="about.html" role="menuitem">About</a></li>
<li role="none"><a href="security.html" role="menuitem">Security</a></li>
<li role="none"><a href="contact.html" role="menuitem">Contact</a></li>
<li role="none"><a class="nav-cta nav-cta--donate" href="donate.html#donate-now" role="menuitem" style="background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 16px rgba(16,185,129,.35);margin-right:.4rem;">♥ Donate</a></li><li role="none"><a class="nav-cta" href="membership.html" role="menuitem">Join Now</a></li>
</ul>
</nav>
<button aria-controls="nav-links" aria-expanded="false" aria-label="Toggle navigation menu" class="mobile-menu-btn" type="button"><span class="hamburger-line"></span><span class="hamburger-line"></span><span class="hamburger-line"></span></button>
</div>
</div>
</header><main data-topic="security-boot" id="main-content"><header class="article-hero"><nav aria-label="Breadcrumb" class="article-hero__crumbs"><a href="index.html">Home</a> · <a href="news.html">News</a> · <a href="news.html#topic-security-boot">Security & Boot</a></nav><span class="kicker kicker--blue"><a class="kicker" href="news.html#topic-security-boot">Security & Boot</a></span><h1 class="article-hero__title">eDB ships AES-XTS at-rest encryption — even on 64 KB devices</h1><p class="article-hero__dek">eDB's new storage layer adds page-level AES-XTS encryption with hardware-key offload on supported MCUs. The catch: it had to fit in 6 KB of code on the smallest target. Here's how.</p><div class="byline"><span class="byline__avatar">EE</span><span>EoS Editorial</span><span class="byline__sep">·</span><time datetime="2026-05-02">2026-05-02</time><span class="byline__sep">·</span><span>7 min read</span></div><div aria-label="Decorative cover for Security & Boot" class="article-hero__media" role="img"><img alt="Storage chip macro — eDB AES-XTS encryption" decoding="async" height="520" loading="lazy" src="img/photos/encryption-storage.svg" width="1200"/></div></header><div class="layout-article"><article class="layout-article__main prose"><h2>The constraint</h2><p>eDB targets every EoS device, and the smallest one in scope ships with 64 KB of flash and 16 KB of RAM. There was room for exactly 6 KB of code for the encryption layer — including the AES core, key schedule, page format, and the integration shim with the existing storage manager.</p><h2>Why AES-XTS</h2><p>AES-XTS is the modern standard for storage encryption: deterministic per-block, no IV management, no nonce reuse risk, and well-suited to fixed-size pages. The downside — two AES keys per tweak — is irrelevant on devices where the hardware accelerator handles round operations in parallel.</p><h2>Hardware key offload</h2><p>On supported MCUs (STM32 with PKA, NXP CAAM, RP2040 PIO+PIO-AES), the page key never enters CPU-accessible memory. It's loaded into a key slot at boot and referenced by handle thereafter. The fallback software path (constant-time AES-NI-style on Cortex-M) costs roughly 8 cycles/byte on M7.</p> <pre><code>// eDB page write (simplified)
status = aes_xts_encrypt(
page_key_handle, // hardware key slot
page->lba, // tweak = logical block address
plaintext, page_size,
ciphertext);
flash_write(page->phys_addr, ciphertext, page_size);</code></pre> <h2>What we cut</h2><p>Authenticated encryption (XTS is not). The threat model assumes the storage medium is honest-but-curious: an attacker can read pages but cannot inject. Devices needing AEAD should use the larger eDB-S build, which adds GCM at the cost of an additional 11 KB of code.</p><div aria-label="Topic" class="article-tags"><span class="byline" style="margin:0">Filed under:</span><a class="topic-chip" href="news.html#topic-security-boot">Security & Boot</a></div><section class="article-readnext"><h2>Read next</h2><div class="article-readnext__grid"><a class="article-card" data-topic="security-boot" href="article-eboot-secure-boot-deepdive.html"><div class="article-card__media"><img alt="Cryptographic chip — secure boot" height="340" loading="lazy" src="img/photos/alt-secure.svg" width="600"/></div><div class="article-card__body"><span class="kicker kicker--green">Security & Boot</span><h3 class="article-card__title">eBootloader secure boot: a measured-launch walkthrough</h3><p class="article-card__dek">An end-to-end tour of eBoot's chain of trust — root-of-trust keys, immutable stage 0, signed manifests, anti-rollback counters, and the runtime attestation hooks EAI consumes during model load.</p><p class="article-card__byline">EoS Editorial · 2026-05-06 · 11 min read</p></div></a><a class="article-card" data-topic="apps-platforms" href="article-eos-platform-launch.html"><div class="article-card__media"><img alt="Embedded systems engineering — platform" height="340" loading="lazy" src="img/photos/alt-platform.svg" width="600"/></div><div class="article-card__body"><span class="kicker">Apps & Platforms</span><h3 class="article-card__title">eos-platform 1.0 lands: one toolchain, every EoS profile</h3><p class="article-card__dek">After eighteen months of incremental releases, the eos-platform meta-distribution reaches 1.0 with stable APIs, a unified package manifest, and reproducible builds across all 14 EoS components.</p><p class="article-card__byline">EoS Editorial · 2026-05-12 · 7 min read</p></div></a><a class="article-card" data-topic="embedded-ai" href="article-eai-llm-bench.html"><div class="article-card__media"><img alt="AI / LLM data visualisation" height="340" loading="lazy" src="img/photos/alt-llm.svg" width="600"/></div><div class="article-card__body"><span class="kicker kicker--purple">Embedded AI</span><h3 class="article-card__title">EAI 0.9 ships INT4 LLM runtime — 11 tok/s on a Cortex-M85</h3><p class="article-card__dek">EAI's new quantized inference path squeezes a 1.3B-parameter model into 312 MB of flash and runs at interactive speed on a 480 MHz microcontroller. We dig into the kernel scheduler that made it possible.</p><p class="article-card__byline">EoS Editorial · 2026-05-10 · 9 min read</p></div></a></div></section></article><aside aria-label="Sidebar" class="layout-article__sidebar"><section class="widget widget--newsletter"><h3 class="widget__title">Newsletter</h3><p>Weekly publication, no spam.</p><form action="#" class="newsletter-form" id="newsletterForm-0" method="post"><input aria-label="Email" placeholder="you@domain.com" type="email"/><button type="submit">Subscribe</button></form></section><section class="widget widget--latest"><h3 class="widget__title">Latest</h3><ul class="widget__list"><li><a href="article-eos-platform-launch.html">eos-platform 1.0 lands: one toolchain, every EoS profile</a></li><li><a href="article-eai-llm-bench.html">EAI 0.9 ships INT4 LLM runtime — 11 tok/s on a Cortex-M85</a></li><li><a href="article-eni-1024-channel-pipeline.html">ENI's 1,024-channel pipeline: deterministic spike sorting in 800 µs</a></li><li><a href="article-eboot-secure-boot-deepdive.html">eBootloader secure boot: a measured-launch walkthrough</a></li><li><a href="article-eosim-hil-bridge.html">EoSim 2.4 HIL bridge: virtual peripherals talking to real silicon</a></li></ul></section><section class="widget widget--topics"><h3 class="widget__title">Topics</h3><div class="topic-chips"><a class="topic-chip" href="news.html#topic-rtos-kernel">RTOS & Kernel</a><a class="topic-chip" href="news.html#topic-embedded-ai">Embedded AI</a><a class="topic-chip" href="news.html#topic-neural-interface">Neural Interface</a><a class="topic-chip" href="news.html#topic-security-boot">Security & Boot</a><a class="topic-chip" href="news.html#topic-tools-sim">Tools & Sim</a><a class="topic-chip" href="news.html#topic-apps-platforms">Apps & Platforms</a><a class="topic-chip" href="news.html#topic-community">Community</a></div></section><section class="widget widget--podcast"><h3 class="widget__title">Listen</h3><ul class="widget__list"><li><a href="contact.html">EoS Podcast — latest episode</a></li><li><a href="contact.html">Subscribe (RSS / Apple / Spotify)</a></li></ul></section></aside></div></main><footer class="footer" role="contentinfo"><div class="footer-mega"><div class="footer-column"><h4>Components</h4><ul><li><a href="ecosystem.html">All 14 components</a></li><li><a href="product-eos.html">EoS (RTOS)</a></li><li><a href="product-eos-platform.html">eos-platform</a></li><li><a href="product-eai.html">EAI</a></li><li><a href="product-eni.html">ENI</a></li><li><a href="product-eipc.html">EIPC</a></li><li><a href="product-eboot.html">eBootloader</a></li><li><a href="product-ebuild.html">eBuild</a></li></ul></div><div class="footer-column"><h4>Newsroom</h4><ul><li><a href="news.html">All News</a></li><li><a href="news.html#topic-rtos-kernel">RTOS & Kernel</a></li><li><a href="news.html#topic-embedded-ai">Embedded AI</a></li><li><a href="news.html#topic-neural-interface">Neural Interface</a></li><li><a href="news.html#topic-security-boot">Security & Boot</a></li><li><a href="news.html#topic-tools-sim">Tools & Sim</a></li><li><a href="news.html#topic-community">Community</a></li></ul></div><div class="footer-column"><h4>Research</h4><ul><li><a href="research.html">Neural Link Architecture</a></li><li><a href="neural-link-ai.html">Neural Link & AI</a></li><li><a href="ai-os.html">AI Operating Systems</a></li><li><a href="building-os.html">Building OS</a></li><li><a href="future-research.html">Future Research</a></li><li><a href="resources.html">Theses & Papers</a></li><li><a href="documentation.html">Documentation</a></li></ul></div><div class="footer-column"><h4>Programs</h4><ul><li><a href="membership.html">Membership</a></li><li><a href="certification.html">Certification</a></li><li><a href="internship.html">Internships</a></li><li><a href="careers.html">Careers</a></li><li><a href="donate.html">Donate</a></li><li><a href="resources.html">Resources</a></li></ul></div><div class="footer-column"><h4>Industry & Community</h4><ul><li><a href="https://www.embedded.com/" rel="noopener noreferrer" target="_blank" title="News & analysis for embedded developers">Embedded.com <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://embeddedsummit.com/" rel="noopener noreferrer" target="_blank" title="Annual community summit">Embedded Summit <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://www.embedded-india.com/" rel="noopener noreferrer" target="_blank" title="Asia-Pacific embedded community">Embedded India <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://www.toradex.com/" rel="noopener noreferrer" target="_blank" title="Embedded computing solutions">Toradex <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://generisgp.com/" rel="noopener noreferrer" target="_blank" title="Strategic embedded events">Generis Group <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://esweek.org/" rel="noopener noreferrer" target="_blank" title="Embedded Systems Week (academia)">ESWEEK <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://embeddedonlineconference.com/" rel="noopener noreferrer" target="_blank" title="Online conference series">Embedded Online Conf. <span aria-hidden="true" class="ext-arrow">↗</span></a></li><li><a href="https://embedded-world-na.com/" rel="noopener noreferrer" target="_blank" title="North America trade show">Embedded World NA <span aria-hidden="true" class="ext-arrow">↗</span></a></li></ul></div><div class="footer-column"><h4>Foundation</h4><ul><li><a href="about.html">About Us</a></li><li><a href="contact.html">Contact</a></li><li><a href="donate.html">Support Our Mission</a></li><li><a href="membership.html">Partners</a></li><li><a href="privacy.html">Privacy Policy</a></li><li><a href="terms.html">Terms of Service</a></li><li><a href="code-of-conduct.html">Code of Conduct</a></li><li><a href="licenses.html">Open Source Licenses</a></li><li><a href="mailto:help@embeddedos.org">help@embeddedos.org</a></li><li><a href="mailto:security@embeddedos.org">security@embeddedos.org</a></li></ul></div></div><div class="footer-newsletter"><h4>📬 Stay in the Loop</h4><p>Get research updates, release notes, and community news — no spam, ever.</p><form action="#" class="newsletter-form" id="newsletterForm" method="post"><input aria-label="Email for newsletter" placeholder="your@email.com" required="" type="email"/><button type="submit">Subscribe</button></form><div class="newsletter-msg" id="newsletterMsg">✓ Thanks for subscribing!</div></div><div class="footer-divider"></div><div class="footer-bottom"><div class="footer-brand"><span class="logo-text">Embedded<span>OS</span></span><div class="footer-social"><a aria-label="EmbeddedOS on GitHub" href="https://github.com/embeddedos-org" rel="noopener noreferrer" target="_blank">GitHub</a><a aria-label="EmbeddedOS on X (Twitter)" href="https://x.com/EmbeddedOS_ORG" rel="noopener noreferrer" target="_blank">X</a><a aria-label="EmbeddedOS on LinkedIn" href="https://www.linkedin.com/company/embedded-operating-systems-research-foundation" rel="noopener noreferrer" target="_blank">LinkedIn</a><a aria-label="EmbeddedOS on YouTube" href="https://www.youtube.com/@EmbeddedOS_ORG" rel="noopener noreferrer" target="_blank">YouTube</a><a aria-label="EmbeddedOS on Facebook" href="https://www.facebook.com/people/Embedded-Operating-Systems-Research-Foundation/61588978691494/" rel="noopener noreferrer" target="_blank">Facebook</a><a aria-label="Contact us" href="contact.html">Contact</a><a aria-label="Newsroom" href="news.html">Newsroom</a></div></div><div class="footer-copyright"> © 2026 EmbeddedOS (EoS) Research Foundation. A 501(c)(3) nonprofit. All rights reserved. </div><div class="footer-legal"><a href="privacy.html">Privacy</a><a href="terms.html">Terms</a><a href="privacy.html#cookies">Cookies</a></div></div> <div style="text-align:center;padding:.6rem 0 0;border-top:1px solid rgba(255,255,255,.08);margin-top:.75rem;font-size:.75rem">Powered by <a href="https://www.interserver.net" rel="noopener noreferrer" style="font-weight:600;text-decoration:none" target="_blank">InterServer</a></div>
</footer><button aria-label="Scroll to top" class="scroll-top" type="button">↑</button> <script defer="" src="js/monitor.js"></script> <script defer="" src="js/main.js"></script>
</body></html>