<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Almost Brilliant Ideas</title>
    <description>The latest articles on DEV Community by Almost Brilliant Ideas (@almostbrilliantideas).</description>
    <link>https://dev.to/almostbrilliantideas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3776605%2Fb3419008-ee78-490a-8b02-eab2e6fca0c1.png</url>
      <title>DEV Community: Almost Brilliant Ideas</title>
      <link>https://dev.to/almostbrilliantideas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/almostbrilliantideas"/>
    <language>en</language>
    <item>
      <title>Windows 11 in Virt-Manager on Ubuntu, Why I Switched from UEFI to BIOS</title>
      <dc:creator>Almost Brilliant Ideas</dc:creator>
      <pubDate>Sat, 04 Apr 2026 01:15:14 +0000</pubDate>
      <link>https://dev.to/almostbrilliantideas/windows-11-in-virt-manager-on-ubuntu-why-i-switched-from-uefi-to-bios-3hpc</link>
      <guid>https://dev.to/almostbrilliantideas/windows-11-in-virt-manager-on-ubuntu-why-i-switched-from-uefi-to-bios-3hpc</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4324ikmiiy3zthp5k83.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4324ikmiiy3zthp5k83.png" alt="Illustrated tech workspace showing Ubuntu’s Virt-Manager running a Windows 11 virtual machine, with large text reading “Windows 11 in Virt-Manager on Ubuntu” and “UEFI broke it. BIOS fixed it.” A side panel compares UEFI, marked with failed clipboard and shared-folder icons, against BIOS, marked as working. A checklist below highlights SPICE guest tools, virtiofs plus WinFSP, memoryBacking, and VirtioFsSvc set to Automatic." width="800" height="533"&gt;&lt;/a&gt;Setting up a Windows 11 VM in Virt-Manager on Ubuntu sounds easy enough until you discover:&lt;/p&gt;

&lt;p&gt;·  clipboard sharing does not work&lt;br&gt;
·  shared folders do not mount&lt;br&gt;
·  the SPICE guest agent crashes over and over&lt;/p&gt;

&lt;p&gt;I burned a lot more time on this than I should have, and the problem turned out not to be one more missing guest tool.&lt;/p&gt;

&lt;p&gt;It was the firmware choice.&lt;/p&gt;
&lt;h2&gt;
  
  
  The gotcha
&lt;/h2&gt;

&lt;p&gt;Virt-Manager wants to use UEFI for Windows 11 by default, which makes sense on paper because Windows 11 expects TPM and Secure Boot. In practice, for this setup, UEFI was the thing that broke integration for me.&lt;/p&gt;

&lt;p&gt;The fix was to rebuild the VM as a BIOS-based VM, then bypass the Windows 11 TPM and Secure Boot checks during setup. Once I did that, clipboard sharing and shared folders started behaving normally after the rest of the pieces were installed in the right order.&lt;/p&gt;
&lt;h2&gt;
  
  
  What finally worked
&lt;/h2&gt;

&lt;p&gt;Here is the working order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Create the VM in Virt-Manager&lt;/li&gt;
&lt;li&gt; Before installation, switch firmware from UEFI to BIOS&lt;/li&gt;
&lt;li&gt; Install Windows 11 using the usual LabConfig registry bypass&lt;/li&gt;
&lt;li&gt; Install SPICE guest tools&lt;/li&gt;
&lt;li&gt; Confirm vdservice is running&lt;/li&gt;
&lt;li&gt; Add the memoryBacking block to the VM XML&lt;/li&gt;
&lt;li&gt; Add a shared filesystem using virtiofs&lt;/li&gt;
&lt;li&gt; Install VirtIO guest tools in the Windows VM&lt;/li&gt;
&lt;li&gt; Install WinFSP&lt;/li&gt;
&lt;li&gt;Set VirtioFsSvc to Automatic&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That order mattered a lot more than I expected.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Windows 11 bypass
&lt;/h2&gt;

&lt;p&gt;If you install on a BIOS VM, Windows 11 will complain about unsupported hardware.&lt;/p&gt;

&lt;p&gt;At the first setup screen:&lt;/p&gt;

&lt;p&gt;·  Press Shift + F10&lt;br&gt;
·  Run regedit&lt;br&gt;
·  Go to HKEY_LOCAL_MACHINE\SYSTEM\Setup&lt;br&gt;
·  Create a key named LabConfig&lt;br&gt;
·  Inside it, create these DWORD values and set each to 1:&lt;br&gt;
BypassTPMCheck&lt;br&gt;
BypassSecureBootCheck&lt;br&gt;
BypassRAMCheck&lt;/p&gt;

&lt;p&gt;After that, installation continues normally.&lt;/p&gt;
&lt;h2&gt;
  
  
  SPICE clipboard sharing
&lt;/h2&gt;

&lt;p&gt;Once Windows 11 is installed, install the SPICE guest tools and reboot. Then check whether vdservice is running in an elevated PowerShell window:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Get-Service | Where-Object {$_.DisplayName -match "spice|vdagent"}&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If needed:&lt;br&gt;
Start-Service -Name "vdservice"&lt;br&gt;
Set-Service -Name "vdservice" -StartupType Automatic&lt;/p&gt;

&lt;p&gt;If your clipboard still does not work and vdservice keeps crashing in a loop, check the firmware choice first. In my case, UEFI was the real issue.&lt;/p&gt;
&lt;h2&gt;
  
  
  Shared folders with virtiofs
&lt;/h2&gt;

&lt;p&gt;Shared folders took a few moving parts:&lt;/p&gt;

&lt;p&gt;·  host-side shared memory config&lt;br&gt;
·  virtiofs hardware added to the VM&lt;br&gt;
·  VirtIO guest tools in Windows&lt;br&gt;
·  WinFSP installed in Windows&lt;br&gt;
·  VirtioFsSvc switched to Automatic&lt;/p&gt;

&lt;p&gt;On the host, I also had to add this block to the VM XML after the &lt;/p&gt;

&lt;p&gt; section:&lt;br&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Then I added a Filesystem device in Virt-Manager using:&lt;/p&gt;

&lt;p&gt;·  Driver:virtiofs&lt;br&gt;
·  Source path: your shared folder&lt;br&gt;
·  Target path: a mount tag like vmshare&lt;/p&gt;

&lt;p&gt;Inside the Windows VM, after installing VirtIO guest tools and WinFSP, I checked services again:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Get-Service | Where-Object {$_.DisplayName -match "virtio|winfsp|virtiofs"}&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then forced the VirtIO FS service to persist across reboots:&lt;/p&gt;

&lt;p&gt;Start-Service -Name "VirtioFsSvc"&lt;br&gt;
Set-Service -Name "VirtioFsSvc" -StartupType Automatic&lt;/p&gt;

&lt;p&gt;That last step matters. If you skip it, the share may disappear again after reboot.&lt;/p&gt;

&lt;h2&gt;
  
  
  The main lesson
&lt;/h2&gt;

&lt;p&gt;The biggest trap here was assuming the default UEFI path was the correct path just because Windows 11 prefers it.&lt;br&gt;
For me, that was exactly what caused the clipboard and shared-folder headaches.&lt;/p&gt;

&lt;p&gt;Once I rebuilt the VM using BIOS, then installed everything in the right order, the setup became stable.&lt;/p&gt;

&lt;p&gt;I put the full write-up here, including the exact XML edit, the install order, and the troubleshooting notes:&lt;br&gt;
&lt;a href="https://itfixtools.com/how-to-set-up-a-windows-11-vm-in-virt-manager-on-ubuntu/" rel="noopener noreferrer"&gt;How to Set Up a Windows 11 VM in Virt-Manager on Ubuntu&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>virtualization</category>
      <category>windows</category>
      <category>linux</category>
    </item>
    <item>
      <title>Why I Chose Not to Add Password Reset to an Offline Vault App</title>
      <dc:creator>Almost Brilliant Ideas</dc:creator>
      <pubDate>Sat, 28 Mar 2026 19:36:31 +0000</pubDate>
      <link>https://dev.to/almostbrilliantideas/why-i-chose-not-to-add-password-reset-to-an-offline-vault-app-2kl6</link>
      <guid>https://dev.to/almostbrilliantideas/why-i-chose-not-to-add-password-reset-to-an-offline-vault-app-2kl6</guid>
      <description>&lt;p&gt;I saw somebody on Reddit this morning basically arguing that a vault app without password recovery is not very useful.&lt;/p&gt;

&lt;p&gt;I understand why people feel that way. We have all been trained by modern software to expect a reset link, an email, a backup code, some kind of escape hatch. If you forget a password, the system is supposed to help you. That is just normal now.&lt;/p&gt;

&lt;p&gt;But that expectation starts to break down when the whole point of the app is that it is not built around accounts, cloud services, or somebody else holding onto part of the trust model for you.&lt;/p&gt;

&lt;p&gt;That was one of the design choices behind Vaelri Vault™. No account. No cloud dependency. No server somewhere keeping tabs on you. And once you make those choices, password reset stops being some harmless convenience feature and starts becoming a contradiction you have to explain away.&lt;/p&gt;

&lt;p&gt;Because what exactly is doing the resetting? That is the part people tend to skip over.&lt;/p&gt;

&lt;p&gt;In a normal app, password recovery works because the company knows who you are, or at least knows enough to offer another route back in. Maybe that means email. Maybe it means text message. Maybe it means some recovery workflow tied to an account. Whatever the mechanism is, there is another path.&lt;/p&gt;

&lt;p&gt;That is fine for a lot of software. It makes perfect sense for banking, shopping, social media, cloud storage, and all the other systems people use every day.&lt;/p&gt;

&lt;p&gt;But if I am building an offline vault app, I do not really want there to be "another path."&lt;/p&gt;

&lt;p&gt;I do not want a side door. I do not want a hidden little asterisk where the marketing says your files are under your control, but in practice there is still some recovery mechanism floating around in the background that has to be trusted too.&lt;/p&gt;

&lt;p&gt;To me, that changes the product.&lt;/p&gt;

&lt;p&gt;It might make it friendlier. It might make it easier to live with. It might even make it a better fit for a lot of people. But it is not the same trust model anymore.&lt;/p&gt;

&lt;p&gt;And that is really what this comes down to.&lt;/p&gt;

&lt;p&gt;People hear "no password reset" and think missing feature. I hear "password reset" and think, okay, what extra system are we adding, and who is responsible for securing it?&lt;/p&gt;

&lt;p&gt;Because recovery is not magic. Recovery is access. It is just access through a second route. Maybe that route is well designed. Maybe it is encrypted. Maybe it is only there for emergencies. But it is still another route, and if your whole pitch is local-only control, that matters.&lt;/p&gt;

&lt;p&gt;Now, none of this means people who want password recovery are wrong.&lt;/p&gt;

&lt;p&gt;Honestly, for a lot of users, they are making the practical choice. Plenty of people would rather accept a little more dependency in exchange for a safety net. I get that. Most people are not trying to make some philosophical point about trust boundaries. They just do not want to lose their files because they had a bad week and forgot a password.&lt;/p&gt;

&lt;p&gt;That is reasonable.&lt;/p&gt;

&lt;p&gt;But I do think there is a difference between saying "this tradeoff is not for me" and saying "this kind of app is not useful."&lt;/p&gt;

&lt;p&gt;For some users, the lack of password reset is exactly the point.&lt;/p&gt;

&lt;p&gt;They do not want their encrypted files tied to an email address. They do not want account recovery. They do not want to depend on a server being there later. They do not want the company behind the app to have any role at all in whether access can be restored.&lt;/p&gt;

&lt;p&gt;They want the responsibility, even though responsibility is annoying.&lt;/p&gt;

&lt;p&gt;And that is the part modern software has trained people to dislike. Responsibility is not a fun feature. There is no warm fuzzy UX around it. There is just the reality that if you are serious about local-only encryption, some conveniences go away.&lt;/p&gt;

&lt;p&gt;That does not make the app broken. It just means the design is honest about what it is.&lt;/p&gt;

&lt;p&gt;I would rather be upfront and say, if you forget the password, there may be no way back in, than pretend there is some perfectly safe recovery flow that does not change the basic trust model.&lt;/p&gt;

&lt;p&gt;There probably are ways to build softer edges around this. Backup keys, recovery files, other systems. But every one of those comes with its own tradeoffs, and I did not want to quietly smuggle those tradeoffs into a product whose whole point was keeping things on-device and under the user's control.&lt;/p&gt;

&lt;p&gt;So no, I do not think a vault app without password recovery is useless.&lt;/p&gt;

&lt;p&gt;I think it is a specific kind of tool, built for people who care more about control than convenience, and who understand that those two things do not always get along.&lt;/p&gt;

&lt;p&gt;I wrote a more plain-English version of that tradeoff here: &lt;a href="https://vaelri.com/blog/when-there-is-no-password-reset.html" rel="noopener noreferrer"&gt;When There Is No Password Reset&lt;/a&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>android</category>
      <category>encryption</category>
      <category>security</category>
    </item>
    <item>
      <title>How Android Actually Protects Data Stored on Your Device</title>
      <dc:creator>Almost Brilliant Ideas</dc:creator>
      <pubDate>Wed, 11 Mar 2026 23:32:01 +0000</pubDate>
      <link>https://dev.to/almostbrilliantideas/how-android-actually-protects-data-stored-on-your-device-2ml3</link>
      <guid>https://dev.to/almostbrilliantideas/how-android-actually-protects-data-stored-on-your-device-2ml3</guid>
      <description>&lt;p&gt;When people talk about mobile security, the conversation usually jumps straight to encryption algorithms.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES&lt;/li&gt;
&lt;li&gt;Key lengths&lt;/li&gt;
&lt;li&gt;Military-grade encryption&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But on modern Android devices, the real story is less about algorithms and more about architecture.&lt;/p&gt;

&lt;p&gt;Android has quietly evolved into a platform with several layers of protection designed specifically to secure data stored locally on the device.&lt;/p&gt;

&lt;p&gt;If you're building privacy-focused applications, understanding these layers is important.&lt;/p&gt;

&lt;p&gt;Let’s look at what’s actually happening under the hood.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Android File-Based Encryption
&lt;/h2&gt;

&lt;p&gt;Modern Android versions use file-based encryption (FBE).&lt;/p&gt;

&lt;p&gt;Instead of encrypting the entire disk with a single key, Android encrypts individual files using keys tied to the user profile.&lt;/p&gt;

&lt;p&gt;This allows Android to do things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boot the device before the user unlocks it&lt;/li&gt;
&lt;li&gt;Allow limited services to run before login&lt;/li&gt;
&lt;li&gt;Keep user data encrypted until authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practical terms, it means the operating system can start normally while sensitive files remain inaccessible.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The Android Keystore
&lt;/h2&gt;

&lt;p&gt;One of the most important security components for developers is the Android Keystore system.&lt;/p&gt;

&lt;p&gt;The Keystore allows apps to generate and store cryptographic keys in a way that prevents those keys from ever being extracted.&lt;/p&gt;

&lt;p&gt;Instead of retrieving the key directly, an app asks the Keystore to perform operations like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;encryption&lt;/li&gt;
&lt;li&gt;decryption&lt;/li&gt;
&lt;li&gt;signing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key never leaves the secure environment.&lt;/p&gt;

&lt;p&gt;This dramatically reduces the risk of key theft, even if malware gains some level of system access.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Hardware Security Modules
&lt;/h2&gt;

&lt;p&gt;On many modern phones, the Keystore is backed by dedicated hardware.&lt;/p&gt;

&lt;p&gt;These may be implemented as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trusted Execution Environments (TEE)&lt;/li&gt;
&lt;li&gt;Secure Enclaves&lt;/li&gt;
&lt;li&gt;Hardware Security Modules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These components run separate from the main operating system and are designed to isolate sensitive cryptographic operations.&lt;/p&gt;

&lt;p&gt;Even if Android itself were compromised, extracting keys from this hardware is extremely difficult.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. App Sandboxing
&lt;/h2&gt;

&lt;p&gt;Android isolates every application using a sandbox model.&lt;/p&gt;

&lt;p&gt;Each app runs under its own Linux user ID, meaning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apps cannot access other apps' files&lt;/li&gt;
&lt;li&gt;Memory spaces are separated&lt;/li&gt;
&lt;li&gt;Permissions must be explicitly granted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For security apps and encrypted vaults, this isolation is essential.&lt;/p&gt;

&lt;p&gt;It ensures that even if another app becomes compromised, it cannot automatically read protected data from your app’s storage.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Biometric Gatekeeping
&lt;/h2&gt;

&lt;p&gt;Android also allows apps to integrate biometric authentication such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fingerprint&lt;/li&gt;
&lt;li&gt;face unlock&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importantly, biometric data itself is not exposed to apps.&lt;/p&gt;

&lt;p&gt;Instead, the operating system simply returns a yes/no result confirming that the user authenticated successfully.&lt;/p&gt;

&lt;p&gt;This allows apps to protect sensitive data without ever handling biometric information directly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters for Privacy-Focused Apps
&lt;/h2&gt;

&lt;p&gt;Taken together, these systems create a strong foundation for local-first security applications.&lt;/p&gt;

&lt;p&gt;Apps can encrypt sensitive data using keys protected by the Android Keystore while relying on hardware-backed protections and sandboxing.&lt;/p&gt;

&lt;p&gt;This is one reason some developers are exploring privacy tools that store encrypted data entirely on the device rather than syncing it to cloud services.&lt;/p&gt;

&lt;p&gt;If you're curious what that architecture looks like in practice, this article explains how an &lt;strong&gt;offline encrypted vault for Android&lt;/strong&gt; can keep sensitive data fully local:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vaelri.com/offline-encrypted-vault-android.html" rel="noopener noreferrer"&gt;Offline Encrypted Vault for Android&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea is simple: treat the phone like a secure container rather than a cloud client.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Security isn’t just about choosing a strong cipher.&lt;/p&gt;

&lt;p&gt;It’s about designing systems that reduce the number of places sensitive data can exist.&lt;/p&gt;

&lt;p&gt;Android’s modern security architecture makes it possible to build applications where encrypted data never leaves the device at all.&lt;/p&gt;

&lt;p&gt;For many privacy-focused use cases, that’s a powerful design choice.&lt;/p&gt;

</description>
      <category>android</category>
      <category>architecture</category>
      <category>mobile</category>
      <category>security</category>
    </item>
    <item>
      <title>Why Offline Encryption Still Matters on Android</title>
      <dc:creator>Almost Brilliant Ideas</dc:creator>
      <pubDate>Tue, 10 Mar 2026 23:10:36 +0000</pubDate>
      <link>https://dev.to/almostbrilliantideas/why-offline-encryption-still-matters-on-android-505n</link>
      <guid>https://dev.to/almostbrilliantideas/why-offline-encryption-still-matters-on-android-505n</guid>
      <description>&lt;p&gt;For the last decade, most consumer security products have moved toward the cloud.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud password managers.
&lt;/li&gt;
&lt;li&gt;Cloud backups.
&lt;/li&gt;
&lt;li&gt;Cloud-synced secure notes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Convenience is great, but it also introduces a fundamental trade-off: &lt;strong&gt;data that leaves your device can be copied, logged, or breached somewhere else.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s why a growing number of privacy-focused developers and security professionals are revisiting an older concept that never actually went away:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline encryption.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of assuming the network is safe, offline encryption assumes the opposite.&lt;/p&gt;

&lt;p&gt;Your data stays on your device. The encryption happens locally. And nothing is transmitted unless &lt;em&gt;you&lt;/em&gt; explicitly export it.&lt;/p&gt;

&lt;p&gt;Let’s talk about why that approach still matters in 2026.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Cloud Convenience Problem
&lt;/h2&gt;

&lt;p&gt;Cloud storage solves a real problem: synchronization.&lt;/p&gt;

&lt;p&gt;But it also creates new risks.&lt;/p&gt;

&lt;p&gt;When sensitive information is stored in a cloud-linked vault, several things happen behind the scenes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Encrypted blobs are uploaded to remote servers&lt;/li&gt;
&lt;li&gt;Metadata about accounts and devices may be logged&lt;/li&gt;
&lt;li&gt;Authentication infrastructure becomes part of the security model&lt;/li&gt;
&lt;li&gt;Recovery mechanisms introduce additional attack surfaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even if encryption is strong, the overall system becomes larger and more complex.&lt;/p&gt;

&lt;p&gt;And &lt;strong&gt;complex systems fail in complex ways.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many large security incidents over the past few years didn’t break encryption at all.&lt;/p&gt;

&lt;p&gt;They exploited:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Account recovery systems
&lt;/li&gt;
&lt;li&gt;API misconfigurations
&lt;/li&gt;
&lt;li&gt;Token leaks
&lt;/li&gt;
&lt;li&gt;Server-side logging
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of those require breaking AES.&lt;/p&gt;

&lt;p&gt;They just require data to exist somewhere other than your device.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Offline Encryption Does Differently
&lt;/h2&gt;

&lt;p&gt;Offline encryption flips the model.&lt;/p&gt;

&lt;p&gt;Instead of assuming remote infrastructure is trustworthy, it assumes the &lt;strong&gt;device is the only trusted environment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Encryption happens locally&lt;/li&gt;
&lt;li&gt;Data never leaves the device unless exported&lt;/li&gt;
&lt;li&gt;No accounts are required&lt;/li&gt;
&lt;li&gt;No remote servers store encrypted copies&lt;/li&gt;
&lt;li&gt;No subscription infrastructure exists&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The security model becomes dramatically simpler.&lt;/p&gt;

&lt;p&gt;And simplicity is often the most underrated security feature.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Android Is an Interesting Platform for This
&lt;/h2&gt;

&lt;p&gt;Android has quietly become a very strong platform for local encryption.&lt;/p&gt;

&lt;p&gt;Modern Android devices include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hardware-backed keystores&lt;/li&gt;
&lt;li&gt;Secure enclaves&lt;/li&gt;
&lt;li&gt;File-based encryption&lt;/li&gt;
&lt;li&gt;Biometric authentication APIs&lt;/li&gt;
&lt;li&gt;Strong sandboxing between apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Developers can build vault systems that &lt;strong&gt;never require internet access&lt;/strong&gt; at all.&lt;/p&gt;

&lt;p&gt;That creates an interesting design space for privacy-first apps that behave more like &lt;strong&gt;digital safes&lt;/strong&gt; than cloud services.&lt;/p&gt;




&lt;h2&gt;
  
  
  When Offline Storage Makes Sense
&lt;/h2&gt;

&lt;p&gt;Offline encryption isn’t for everything.&lt;/p&gt;

&lt;p&gt;If you need real-time synchronization across devices, cloud infrastructure is unavoidable.&lt;/p&gt;

&lt;p&gt;But there are plenty of cases where local storage is actually the better model:&lt;/p&gt;

&lt;p&gt;Sensitive documents&lt;br&gt;&lt;br&gt;
Private notes&lt;br&gt;&lt;br&gt;
Emergency contact information&lt;br&gt;&lt;br&gt;
Backup passwords&lt;br&gt;&lt;br&gt;
Financial details&lt;br&gt;&lt;br&gt;
Personal records&lt;/p&gt;

&lt;p&gt;In those cases, the goal isn’t collaboration.&lt;/p&gt;

&lt;p&gt;The goal is &lt;strong&gt;control&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And the easiest way to control data is to keep it in one place.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Real Example: Offline Vault Apps
&lt;/h2&gt;

&lt;p&gt;Some newer Android security tools are exploring this approach again.&lt;/p&gt;

&lt;p&gt;For example, &lt;strong&gt;offline encrypted vault apps&lt;/strong&gt; store everything locally and never connect to external servers.&lt;/p&gt;

&lt;p&gt;If you're curious what that architecture looks like in practice, this breakdown of an &lt;strong&gt;offline encrypted vault for Android&lt;/strong&gt; explains the design choices behind keeping sensitive data fully on-device:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vaelri.com/offline-encrypted-vault-android.html" rel="noopener noreferrer"&gt;Offline encrypted vault for Android&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
It walks through the core idea: treating a phone like a &lt;strong&gt;secure container&lt;/strong&gt;, not a cloud client.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Return of Local-First Security
&lt;/h2&gt;

&lt;p&gt;Over the last few years, we’ve seen a broader movement toward &lt;strong&gt;local-first software&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Applications where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data lives on the device&lt;/li&gt;
&lt;li&gt;Encryption happens locally&lt;/li&gt;
&lt;li&gt;Servers are optional rather than required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Offline encryption fits naturally into that philosophy.&lt;/p&gt;

&lt;p&gt;Instead of trusting infrastructure you don’t control, you rely on hardware that’s already in your pocket.&lt;/p&gt;

&lt;p&gt;For many privacy-minded users, that trade-off is worth it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Security isn’t just about algorithms.&lt;/p&gt;

&lt;p&gt;It’s about &lt;strong&gt;architecture&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A system that never sends data anywhere has an advantage that no encryption algorithm can replicate.&lt;/p&gt;

&lt;p&gt;Sometimes the safest data is simply the data that &lt;strong&gt;never leaves your device.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>cybersecurity</category>
      <category>privacy</category>
      <category>security</category>
    </item>
    <item>
      <title>Walking Into an Unknown Network: The First Thing I Check</title>
      <dc:creator>Almost Brilliant Ideas</dc:creator>
      <pubDate>Sat, 07 Mar 2026 23:35:12 +0000</pubDate>
      <link>https://dev.to/almostbrilliantideas/walking-into-an-unknown-network-the-first-thing-i-check-1kck</link>
      <guid>https://dev.to/almostbrilliantideas/walking-into-an-unknown-network-the-first-thing-i-check-1kck</guid>
      <description>&lt;p&gt;When I walk into a client network for the first time, I usually don’t know much about it.&lt;/p&gt;

&lt;p&gt;Sometimes the client thinks they know what’s on the network. Sometimes they don’t. Either way, the first problem isn’t troubleshooting.&lt;/p&gt;

&lt;p&gt;The first problem is &lt;em&gt;situational awareness&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Before I can diagnose anything, I need to understand what’s actually there.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What devices exist on the network?&lt;/li&gt;
&lt;li&gt;What IP addresses are active?&lt;/li&gt;
&lt;li&gt;Is anything new?&lt;/li&gt;
&lt;li&gt;Did something disappear since the last scan?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that context, you’re basically working blind.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reality of Most Network Scanners
&lt;/h2&gt;

&lt;p&gt;Most mobile network scanners work the same way.&lt;/p&gt;

&lt;p&gt;You run a scan and you get a list like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.10  DESKTOP-9F2A
192.168.1.12  ESP-4D21
192.168.1.15  android-71bf
192.168.1.18  UNKNOWN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Technically that’s useful. It tells you which IPs respond.&lt;/p&gt;

&lt;p&gt;But when you're standing in an office trying to figure out what changed after you just rebooted a device or unplugged something, it doesn’t really answer the question you care about.&lt;/p&gt;

&lt;p&gt;The real question is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What changed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Did a new device appear?&lt;/p&gt;

&lt;p&gt;Did a device disappear?&lt;/p&gt;

&lt;p&gt;Did something that was offline come back?&lt;/p&gt;

&lt;p&gt;That kind of information is much more useful when you're troubleshooting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Single Snapshots
&lt;/h2&gt;

&lt;p&gt;Most scanners give you a &lt;strong&gt;snapshot of the network at that moment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s useful, but in the field you usually need something slightly different.&lt;/p&gt;

&lt;p&gt;A typical workflow looks more like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Walk into the environment and run a scan
&lt;/li&gt;
&lt;li&gt;Look at what devices are present
&lt;/li&gt;
&lt;li&gt;Make a change (restart something, unplug something, fix something)
&lt;/li&gt;
&lt;li&gt;Scan the network again
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now you want to &lt;strong&gt;see what changed between those two scans&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Maybe a device disappeared.&lt;br&gt;&lt;br&gt;
Maybe something came back online.&lt;br&gt;&lt;br&gt;
Maybe a new device showed up after a reboot.&lt;/p&gt;

&lt;p&gt;For example, the first scan might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Router
Printer
Lucy's Workstation
Conference Tablet
Security Camera
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then after you restart a device or reconnect hardware, the second scan might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Router
Printer
Lucy's Workstation
Conference Tablet
Security Camera
Unknown Device
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That difference is often the clue you need.&lt;/p&gt;

&lt;p&gt;In many troubleshooting situations, the two scans are only minutes apart. The goal is simply to make changes visible so you don’t have to manually compare two long device lists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Situational Awareness
&lt;/h2&gt;

&lt;p&gt;In the field, situational awareness is everything.&lt;/p&gt;

&lt;p&gt;If something strange is happening on a network, it’s often because something changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a new device appeared
&lt;/li&gt;
&lt;li&gt;a device dropped off the network
&lt;/li&gt;
&lt;li&gt;an IoT device reconnected
&lt;/li&gt;
&lt;li&gt;someone plugged in a random piece of hardware
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Being able to quickly see those changes makes troubleshooting much easier.&lt;/p&gt;

&lt;p&gt;Instead of guessing, you start with a clear map of the environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Actually Check First
&lt;/h2&gt;

&lt;p&gt;When I connect to a network, the first thing I want is a quick scan of the subnet.&lt;/p&gt;

&lt;p&gt;From that scan I’m looking for three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New devices&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Missing devices&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Devices that came back online&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I’ve just made a change to the network, those differences usually jump out immediately.&lt;/p&gt;

&lt;p&gt;That gives me context for whatever problem I was called to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making Scan Results Readable
&lt;/h2&gt;

&lt;p&gt;Another small but important thing is naming devices.&lt;/p&gt;

&lt;p&gt;Hostnames on real networks are often useless:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DESKTOP-4F12
ESP-71B3
UNKNOWN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you rename devices, the scan becomes much more readable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Front Desk Printer
Lucy's Workstation
Security Camera
Conference Tablet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the scan becomes something closer to documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tool I Ended Up Building
&lt;/h2&gt;

&lt;p&gt;After doing this kind of work for years, I eventually built a small Android tool that focuses on &lt;strong&gt;situational awareness instead of just listing IP addresses&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One of the most useful features turned out to be very simple: highlighting what changed between scans.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blue&lt;/strong&gt; shows a device that just appeared on the network
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Red&lt;/strong&gt; shows a device that disappeared
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Green&lt;/strong&gt; shows a device that came back online
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;White/gray&lt;/strong&gt; shows devices that are still present
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh67upu1udcmdcjsbekcr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh67upu1udcmdcjsbekcr.png" alt="EasyIP Scan Android network scanner interface showing a subnet scan with device list and color-coded status indicators for new, missing, returning, and active devices." width="800" height="1733"&gt;&lt;/a&gt;&lt;br&gt;
Instead of manually comparing two device lists, the differences jump out immediately.&lt;/p&gt;

&lt;p&gt;The tool also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automatically detects the subnet
&lt;/li&gt;
&lt;li&gt;scans the network quickly
&lt;/li&gt;
&lt;li&gt;allows devices to be renamed so results make sense
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It supports scanning larger networks (up to &lt;code&gt;/22&lt;/code&gt;) and includes a few optional port scan modes when you want a little more detail.&lt;/p&gt;

&lt;p&gt;The goal wasn’t to replace full network analysis tools.&lt;/p&gt;

&lt;p&gt;It was to make the &lt;strong&gt;first step of troubleshooting fast and clear&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you're curious, the tool is called &lt;strong&gt;EasyIP Scan™&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://easyipscan.app" rel="noopener noreferrer"&gt;https://easyipscan.app&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>networking</category>
      <category>security</category>
    </item>
    <item>
      <title>Simple Android Encryption With No Accounts or Subscriptions</title>
      <dc:creator>Almost Brilliant Ideas</dc:creator>
      <pubDate>Tue, 03 Mar 2026 18:47:14 +0000</pubDate>
      <link>https://dev.to/almostbrilliantideas/simple-android-encryption-with-no-accounts-or-subscriptions-5dp3</link>
      <guid>https://dev.to/almostbrilliantideas/simple-android-encryption-with-no-accounts-or-subscriptions-5dp3</guid>
      <description>&lt;p&gt;Most people building an Android encryption app start with a familiar checklist: strong crypto, easy UX, maybe a cloud backup, password reset, and an account system to support recovery.&lt;/p&gt;

&lt;p&gt;But if your goal is &lt;strong&gt;true offline encryption&lt;/strong&gt;, that checklist breaks. You &lt;em&gt;cannot&lt;/em&gt; have password reset or account login without a cloud backend. And that’s the point.&lt;/p&gt;

&lt;p&gt;In this post I’ll explain why eliminating accounts and server-side recovery isn’t a missing feature, it’s a deliberate security design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Most Apps Include Accounts and Recovery
&lt;/h2&gt;

&lt;p&gt;In traditional apps, a “password reset” exists because the system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knows who you are (you have an account),&lt;/li&gt;
&lt;li&gt;Has a trusted channel to verify you (email, SMS),&lt;/li&gt;
&lt;li&gt;And stores enough state to allow resets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This model works because the company controls infrastructure.&lt;br&gt;
Your encrypted data is either stored on their servers or synced through them.&lt;/p&gt;

&lt;p&gt;If you forget your password, a reset is possible only because a &lt;strong&gt;second party holds the keys&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For many products that’s fine. Convenience matters. Support kits exist to fix forgotten passwords.&lt;/p&gt;

&lt;p&gt;But this convenience has a trade-off: &lt;strong&gt;someone else has control.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What True Offline Encryption Actually Means
&lt;/h2&gt;

&lt;p&gt;An offline encryption app operates fully locally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No accounts,&lt;/li&gt;
&lt;li&gt;No servers,&lt;/li&gt;
&lt;li&gt;No cloud backup,&lt;/li&gt;
&lt;li&gt;No central authority that can intervene.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Encryption keys are derived locally, on the device, from your password. There’s no account database. No master reset.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you forget your password, there’s no reset&lt;/li&gt;
&lt;li&gt;If you want cloud recovery, you’re giving someone else control&lt;/li&gt;
&lt;li&gt;If you want strong protection without server trust, you accept responsibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn’t a flaw or missing feature. It’s a consequence of the security model.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trade-Off
&lt;/h2&gt;

&lt;p&gt;There are two basic architectural choices:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With accounts and cloud servers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You get password reset and convenience&lt;/li&gt;
&lt;li&gt;You give up independence and absolute control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;With fully offline encryption:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You get independence and control&lt;/li&gt;
&lt;li&gt;You give up password reset and server-side recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither is inherently better. They are different trade-offs. But when the goal is local encryption that does not rely on third parties, you must choose independence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why No Reset Is a Security Feature
&lt;/h2&gt;

&lt;p&gt;If password resets are possible, they introduce another attack surface.&lt;/p&gt;

&lt;p&gt;Consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If an attacker controls your email, they can trigger resets&lt;/li&gt;
&lt;li&gt;If a company stores escrowed keys, they can be coerced&lt;/li&gt;
&lt;li&gt;If servers are breached, recovery mechanisms can be abused&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there is no server to reset your password, there’s &lt;em&gt;no recovery channel&lt;/em&gt; to exploit.&lt;/p&gt;

&lt;p&gt;This is the structural reality of local encryption:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Only the correct password unlocks the data.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Implications
&lt;/h2&gt;

&lt;p&gt;Before building offline encryption, understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You must choose a strong password&lt;/li&gt;
&lt;li&gt;Forgetting it means losing access&lt;/li&gt;
&lt;li&gt;That responsibility shifts from cloud to user&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This sounds harsh, but it’s honest. True cryptography doesn’t negotiate with identity documents, support tickets, or reset links. It responds only to the correct key.&lt;/p&gt;

&lt;h2&gt;
  
  
  Calm Trade-Offs
&lt;/h2&gt;

&lt;p&gt;There’s no need for dramatic language. The trade-off is straightforward:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With accounts&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You gain recovery. You lose control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline encryption&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You gain control. You lose recovery.&lt;/p&gt;

&lt;p&gt;Both are legitimate choices. For Vaelri Vault, the choice was independence and local control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designing for the Long Term
&lt;/h2&gt;

&lt;p&gt;Offline encryption also decouples your data from external business lifecycles.&lt;/p&gt;

&lt;p&gt;Cloud services can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change policies&lt;/li&gt;
&lt;li&gt;Be acquired&lt;/li&gt;
&lt;li&gt;Shut down&lt;/li&gt;
&lt;li&gt;Change APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Offline encryption stored locally isn’t dependent on any of that. As long as the app runs and you have the password, the data is accessible.&lt;/p&gt;

&lt;p&gt;Independence costs recovery.&lt;br&gt;
That is not a flaw. It’s the point.&lt;/p&gt;

</description>
      <category>android</category>
      <category>security</category>
      <category>encryption</category>
      <category>infosec</category>
    </item>
  </channel>
</rss>
