New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 842124 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Android apps on Chromebook do not honour ChromeOS Trusted Certificate Store

Reported by steve.ma...@appliansys.com, May 11 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
Platform: 10452.74.0 (Official Build) stable-channel-auron-yuna

Example URL:
Open any android app, including Play Store

Steps to reproduce the problem:
1. Install a SSL Proxy server into the network
2. Install Proxy server's SSL certificate to ChromeOS Certificate Store
3. Confirm you can browse https websites using Chrome browser, without issue
4. Attempt to open an Android App, and note how it reports there is no network connection

What is the expected behavior?
Android apps should be able to reference ChromeOS certificate store to trust SSL proxy server, or other devices performing SSL interception/inspection.
Trusted certificates can be distributed and managed well via the Admin Console.

What went wrong?
Android apps on Chromebook register an invalid certificate has been returned and (rightly?) drop the connection.
It is not possible to install an SSL certificate into whatever environment the Android Apps are running in, to have them trust a device to perform SSL inspection, proxy, filtering, caching, etc.

Did this work before? No 

Chrome version: 66.0.3359.137  Channel: stable
OS Version: 66
Flash Version: 29.0.0.140

I work for a company that develops a HTTP/HTTPs Caching Proxy Server.

We are able to successfully proxy http and https traffic from most devices, including Chromebooks, Android, Windows, etc.
This is achieved by distributing the proxy's SSL certificate into the devices Trusted Certificate Store.  On Chromebook this is imported through Chrome's browser settings, and presumably stored in ChromeOS's certificate store.

However, when using Android apps (available on most newer models of Chromebook), none of the Android Apps use the same certificate store as ChromeOS.
This leads to the apps using HTTPs having their traffic proxied and the apps rejecting the proxy server certificate.

The upshot of this is as soon as Android Apps are used on a Chromebook, all https interception (and caching) must be disabled for that device.  This has a large impact on caching Chromebook updates.

I'm hoping you can suggest a way, or release an update, that allows either : -
- installation of SSL certificates into the Android App "sandbox" on Chromebooks
- Adjust Android environment settings to refer to the ChromeOS Trusted Certificate Store.

Chromebook used for testing is an "Acer Chromebook 15 CB5-571".
 
Components: -Internals>Network Platform>ARC Internals>Network>SSL
Adding ARC tag as this is mostly an ARC issue.  Leaving SSL tag in case they have policy advice.
Components: -Internals>Network>SSL Internals>Network>Certificate
*bump*
Are there any expectations of timescales when this might be looked at ?  It's the first time I've posted here so not sure what to expect.

Some context here - many US schools are taking up Chromebooks and using Google Classroom to delivery educational content.  (One school district I'm in contact with has "thousands of Chromebooks").
Chromebook updates are crippling (saturating) internet connection and so intercepting and caching these is critical to delivering high quality learning experience for many thousands of pupils.

Hope you can see why I want to help! ;)
Cc: dskaram@chromium.org
Steve,

Your more recent update leaves me a bit confused to the issue. I understood this was primarily with respect to Android apps. I missed the subtlety in your original message, and thus want to confirm: You're concerned that the ChromeOS updater presently respects your locally-installed certificates, but to support Android apps, you need to disable the inspection, which also means that the updater no longer goes through your caching appliance?

I ask, because by design, ChromeOS updates should not be respecting MITM certificates, so I'm somewhat surprised to hear that you've come to rely on that feature. I may be misunderstanding, though, so I wanted to make sure I understood both the current flow (without Android apps), the current flow (with Android apps), and the desired flow that this feature request is tracking.
Thanks for your response... I believe I can clarify based on further testing.

The ChromeOS updates are delivered over HTTP and are cachable - which is great.
The "problem" I'm attempting to convey here, is that once our device's SSL certificate has been installed to the Chromebook, we can succesfully intercept all https traffic - typically generated from the Chrome Browser by browsing https websites.

However, even with the above in place, as soon as Android Apps are loaded, they flatly refuse to connect to the network due to the certificate error - even though Chrome browsing is still working fine on https.

The only way to allow the Android applications access to the internet, is to disable https interception on our caching proxy server.
Suggested fix is to allow Android apps on ChromeOS to reference the ChromeOS trusted certificate store, such that the same certificate trust relationship can be established between the Andoid apps and the proxy as that which already exists between ChromeOS and the proxy.

I also raised this issue with Google directly, who redirected me to Acer (our Chromebook manufacturer).  Acer's support escalated it to their contact at Google, who has told me to raise it directly with Google lol.

Hoping you can assist with getting this looked at by the appropriate people / team :)
*bump again*
I hope the latest explanation of the issue clarifies the matter I'm trying to get looked at.

Put simply, it looks like ARC (sandbox for running android apps on chromebooks ?) has its own trusted CA certificate store.

I'm suggesting having a shared certificate store with the host OS (ChromeOS in this case), or have a method of installing certificates into the ARC trusted CA certificate store.
Cc: bartfab@chromium.org
Status: Untriaged (was: Unconfirmed)
Correct. ARC contains the Android trust store, ChromeOS contains the ChromeOS trust store. Marking this as Untriaged to better reflect that we are aware that the trust does not flow either way, and they are intentionally separate at this time.

Note that, regardless, Android Applications would still have difficulty connecting to the network. This is because Android N+ applications do not observe administrative additions to the Android trust store unless they explicitly indicate they are willing to ( https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html ). As such, solutions based on SSL interception will continue to result in a sub-par experience for users.
Owner: ed...@chromium.org
Status: Assigned (was: Untriaged)
Assigning to Edman, who is working on eventually bridging the gap between the Android and Chrome OS trust stores.

Sign in to add a comment