<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>ChromeOS on PrivSec - A practical approach to Privacy and Security</title>
  <link rel="alternate" href="https://deploy-preview-444--privsec-dev.netlify.app/tags/chromeos/" />
  <link rel="self" href="https://deploy-preview-444--privsec-dev.netlify.app/tags/chromeos/index.xml" />
  <subtitle>Recent content in ChromeOS on PrivSec - A practical approach to Privacy and Security</subtitle>
  <id>https://deploy-preview-444--privsec-dev.netlify.app/tags/chromeos/</id>
  <generator uri="http://gohugo.io" version="0.119.0">Hugo</generator>
  <language>en</language>
  <updated>2024-04-25T00:00:00Z</updated>
  <author>
    <name>PrivSec.dev Team</name>
    
  </author>
  <rights>[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)</rights>
      <entry>
        <title>ChromeOS&#39;s Questionable Encryption</title>
        <link rel="alternate" href="https://deploy-preview-444--privsec-dev.netlify.app/posts/knowledge/chromeos-questionable-encryption/" />
        <id>https://deploy-preview-444--privsec-dev.netlify.app/posts/knowledge/chromeos-questionable-encryption/</id>
        <published>2024-04-25T00:00:00Z</published>
        <updated>2025-01-09T23:44:03-07:00</updated>
        <summary type="html">Premise ChromeOS encrypts user data on the disk by default. The implementation details are documented upstream but not relevant within the scope of this post.
It is well-known that ChromeOS uses Google account passwords as the primary login credentials. This necessarily means that anyone with knowledge of the Google account password is able to unlock and therefore decrypt a ChromeOS user profile.
Recent versions of ChromeOS allows users to use a separare login password instead of the Google account password.</summary>
          <content type="html"><![CDATA[<h2 id="premise">Premise</h2>
<p>ChromeOS encrypts user data on the disk by default. The implementation details are <a href="https://www.chromium.org/developers/design-documents/tpm-usage/#TOC-Protecting-User-Data-Encryption-Keys" title="TPM Usage — The Chromium Projects">documented upstream</a> but not relevant within the scope of this post.</p>
<p>It is well-known that ChromeOS uses Google account passwords as the primary login credentials. This necessarily means that anyone with knowledge of the Google account password is able to unlock and therefore decrypt a ChromeOS user profile.</p>
<p>Recent versions of ChromeOS allows users to use a separare login password instead of the Google account password.</p>
<p><img loading="lazy" src="local-password.png" alt="Local Password"  />
</p>
<h2 id="practical-implications">Practical Implications</h2>
<p>The very same Google account passwords used for ChromeOS authentication are also used for logging in to various Google services in web browsers and other apps. After a quick investigation with browser dev tools:</p>
<p><img loading="lazy" src="google-login.jpg" alt="Google Login"  />
</p>
<p>…It turns out that passwords are submitted to Google servers in plaintext (see &ldquo;mygloriouspassword&rdquo; in the Form Data).</p>
<p>As a result, someone with sufficient access to Google&rsquo;s servers would theoretically be able to obtain the actual, unhashed password for a given Google account. An adversary with physical access would be able to unlock and decrypt ChromeOS user data with cooperation from Google, if the Google password is used for encryption.</p>
<p>This differs from how encryption passwords are handled by other services like cloud‑based password managers — they use <em>client‑side hashing</em> to deliberately blind the server from the actual password. As the name suggests, the browser locally executes a cryptographic hash function on the actual password and only transmits the <em>resultant hash</em> to the server for authentication.</p>
<p>On newer ChromeOS versions, users should be able to avoid this issue with the local password. While we have not done in-depth analysis to confirm that Google never has access to the local encryption password, this is likely the case since an account recovery using the Google password will require a Powerwash:</p>
<p><img loading="lazy" src="account-recovery.png" alt="Account Recovery"  />
</p>
<h2 id="takeaways">Takeaways</h2>
<p>If Google is malicious, coerced by the government, or hacked, their servers can record the user password prior to it being hashed server‑side. That password can then be used by an adversary with physical access to unlock ChromeOS and gain access to the data stored therein, if the Google account password is used for encryption.</p>
<p>As a result, when setting up your Chromebook, it is highly recommended that you use a local password instead.</p>
]]></content>
      </entry>

</feed>


