yubioath-android icon indicating copy to clipboard operation
yubioath-android copied to clipboard

Add Chromebook support

Open johnspurlock opened this issue 8 years ago • 30 comments

I have a Chromebook Plus with Android app support. The authenticator app (version 1.2.1) installs and launches on the device, but does not respond to taps on the yubikey neo button.

The yubikey is connected via usb-a to usb-c, and I've validated that Android apps can see the "ccccc..." input when tapping the button. The Chromebook itself does not have NFC at all, so will need to use the recently added usb support instead, and it only has usb-c ports.

Any tips / patches to get this working would be much appreciated!

johnspurlock avatar Jun 20 '17 16:06 johnspurlock

I don't have any experience in running Android apps on ChromeOS, but some quick Googling led me to this: https://developer.android.com/topic/arc/manifest.html It looks like a lot of features are unavailable when running on ChromeOS. Specifically the android.hardware.usb.host hardware feature is listed as unsupported, which is required for this app. Closing the issue for now. Feel free to re-open if USB support for Android apps on ChromeOS changes!

dainnilsson avatar Jul 18 '17 19:07 dainnilsson

What are your thoughts on the feasibility of a web app version, using WebUSB? Which the latest ChromeOS supports.

johnspurlock avatar Sep 23 '17 00:09 johnspurlock

I don't have any experience with the WebUSB APIs either, but it might be feasible. Clearly it would require a lot of effort to do.

dainnilsson avatar Sep 25 '17 09:09 dainnilsson

Might it be easier to use the Chrome USB API than WebUSB? https://developer.chrome.com/apps/app_usb

smiller171 avatar Apr 30 '18 19:04 smiller171

It looks like Chrome OS has added USB Host support, but via a flag: https://chromium-review.googlesource.com/c/chromium/src/+/854990

I have confirmed this is in the Chrome OS Stable channel (71) currently and can be enabled.

Sklls-Z avatar Jan 06 '19 05:01 Sklls-Z

It looks like Chrome OS has added USB Host support, but via a flag: https://chromium-review.googlesource.com/c/chromium/src/+/854990

I have confirmed this is in the Chrome OS Stable channel (71) currently and can be enabled.

Have you checked if this works for the Yubico Authenticator app?

smiller171 avatar Jan 07 '19 15:01 smiller171

It looks like Chrome OS has added USB Host support, but via a flag: https://chromium-review.googlesource.com/c/chromium/src/+/854990 I have confirmed this is in the Chrome OS Stable channel (71) currently and can be enabled.

Have you checked if this works for the Yubico Authenticator app?

Unfortunately, I cannot test this. I do not have my Pixelbook in Developer Mode to sideload APKs and the Yubico Authenticator app is marked as "Not compatible" in the Play Store for the Pixelbook so I cannot install it from there.

Sklls-Z avatar Jan 07 '19 16:01 Sklls-Z

That's an interesting update. What are the steps to enable this flag?

I checked the store listing, and the reason the app won't install on a Pixelbook at the moment is due to the android.hardware.camera requirement, which also doesn't seem to be supported on ChromeOS. Technically the app could function without it, by using manual credential entry, so we might be able to mark that dependency as optional. I currently don't have a Pixelbook (or other ChromeOS device) to test with myself, unfortunately.

dainnilsson avatar Jan 07 '19 16:01 dainnilsson

That's an interesting update. What are the steps to enable this flag?

I checked the store listing, and the reason the app won't install on a Pixelbook at the moment is due to the android.hardware.camera requirement, which also doesn't seem to be supported on ChromeOS. Technically the app could function without it, by using manual credential entry, so we might be able to mark that dependency as optional. I currently don't have a Pixelbook (or other ChromeOS device) to test with myself, unfortunately.

You could also let devices without the camera be read-only. I'd definitely make that optional.

If you were to release a beta version to the Play store with that marked as optional it could be tested without having to enable dev mode. I have a Pixelbook that I'd be happy to test on (currently beta channel) though I'd prefer not needing to enable dev mode because of the annoyances that comes with.

smiller171 avatar Jan 09 '19 15:01 smiller171

~~Oh...dev mode may not be needed though because of the Android Studio integration they rolled out?~~

Nevermind, you still need dev mode to test apps that way.

smiller171 avatar Jan 09 '19 15:01 smiller171

I've published a beta that doesn't require the camera, and the play store listing indicates that it should be compatible with the Pixelbook. Unfortunately I have no way myself of testing this at the moment.

dainnilsson avatar Jan 10 '19 11:01 dainnilsson

That's an interesting update. What are the steps to enable this flag?

I checked the store listing, and the reason the app won't install on a Pixelbook at the moment is due to the android.hardware.camera requirement, which also doesn't seem to be supported on ChromeOS. Technically the app could function without it, by using manual credential entry, so we might be able to mark that dependency as optional. I currently don't have a Pixelbook (or other ChromeOS device) to test with myself, unfortunately.

  1. Open Chrome and go to chrome://flags/#arc-usb-host
  2. Click the dropdown and select "Enabled."
  3. Restart Chrome OS

I also have a Pixelbook that I am happy to test on. I am on the Stable channel. Unfortunately, I do not see the beta on the Play Store. Can you please provide a link?

Sklls-Z avatar Jan 10 '19 13:01 Sklls-Z

I'm not sure of how it works on ChromeOS, but for Android in the Play store listing there's a button to opt in to the beta channel for each specific app (if the app offers it). You scroll down a bit and there's a "Become a beta tester" section.

dainnilsson avatar Jan 10 '19 13:01 dainnilsson

I'm not sure of how it works on ChromeOS, but for Android in the Play store listing there's a button to opt in to the beta channel for each specific app (if the app offers it). You scroll down a bit and there's a "Become a beta tester" section.

Thanks, Dain. I Have added myself to the beta program and installed it. Unfortunately, the Authenticator still shows "Tap or insert your YubiKey" when I start the app. Could some other permission be required that Chrome OS lacks? I did see a notice of "This device does not support NFC" when I opened it.

My YubiKey is plugged in and works if I tap it / use it for U2F but still does not show codes in the app.

Sklls-Z avatar Jan 10 '19 13:01 Sklls-Z

Well, at least the app starts, I guess that's something. To dig into this further I think it will be required to run in developer mode and run the app with debug output. I'll see about getting a hold of a Pixelbook to do some in-house experimentation with. Thanks for trying it out!

dainnilsson avatar Jan 10 '19 13:01 dainnilsson

@dainnilsson You should be able to use any Chromebook with Android App support if you have something other than a Pixelbook around.

smiller171 avatar Jan 10 '19 15:01 smiller171

USB support is here. @dainnilsson can we consider re-opening this issue?

https://www.aboutchromebooks.com/news/chrome-os-72-dev-channel-usb-sd-card-support-project-crostini-chromebooks-android-9-pie/

It's appears to still be in dev but at least we could try and see if it works now.

scarolan avatar Apr 06 '19 16:04 scarolan

@scarolan ~Unfortunately that only brings support for USB mass storage by mounting the volume in the container. here is the issue for tracking full USB support in Linux containers, which would likely also bring the feature to Android apps.~

Actually as mentioned above, USB support should have been added for Android apps a while ago.

smiller171 avatar Apr 08 '19 13:04 smiller171

I tried running this on a Pixelbook a while back (with chrome://flags/#arc-usb-host enabled). The app runs fine, but there is absolutely no reaction when a YubiKey is plugged in. Nothing in the ADB logs or anything. If anyone has anything more insightful, or suggestions on what to try to get it to do, well anything, please let me know.

dainnilsson avatar Apr 08 '19 13:04 dainnilsson

@dainnilsson Yeah now that I look I think that's a legacy flag since Android apps on ChromeOS no longer use ARC. I think we'll still need to wait for full USB support, or work on a Chrome app.

How simple is the USB interface with the Yubikey? It may be worth hacking around with the ChromeOS USB API

smiller171 avatar Apr 08 '19 14:04 smiller171

Hello all, has anyone had a chance to test the Yubico Authenticator with Chromebook?

scarolan avatar Jul 28 '19 19:07 scarolan

Erm WEBUSB support plz. Crostini and android don't work for some enterprise scenarios.

xmycroftx avatar Aug 27 '19 23:08 xmycroftx

It sounds like WebUSB may be a no-go due to security concerns of sites directly accessing the hardware and bypassing the U2F/HID interface to snoop things. https://github.com/Yubico/yubioath-desktop/issues/333#issuecomment-547003991

dragon788 avatar Feb 28 '20 02:02 dragon788

I find it extremely annoying that despite the fact that Android apps running on Chromebook are capable of accessing the USB and have been since 2018 - which I have personally used - the developers of Yubico don't know this and just close issues relating to use on a Chromebook without even looking at it.

#arc-usb-host

You shouldn't advertise Android support if you are going to choose not to support an entire class of Android devices. and if you find the limitations of Android difficult to get around on Chromebook you should implement native support.

Your competition - Google's Titan Security Key - is fully supported on Chromebooks now. So why can't you support it?

Elliander avatar Apr 06 '21 13:04 Elliander

This issue is closed as we (both Yubico developers and others in this thread), have not been able to make use of any relevant USB or NFC support on Chrome OS, despite claims that this "should work". As can be seen in this thread, we have explored the available APIs, and we have yet to see any evidence that they do actually work for the purpose we need them to. This is very different from accessing a USB thumbdrive for storage.

Please don't see the fact that this issue is closed to mean that this will never work, or that we will never implement it. See it more as this isn't something we know how to make work, as of now. If anything new comes to light that unblocks this we'll be happy to re-open.

Regarding the Titan Security key, this is a FIDO-only device. YubiKeys also work just as well on ChromeOS for the FIDO protocols. Yubico Authenticator uses an entirely different protocol and USB interface.

dainnilsson avatar Apr 06 '21 13:04 dainnilsson

@dainnilsson might it make sense to have an ongoing issue left open for researching options for Chromebook support, so there can be a single place for these discussions to move forward rather than more issues opening all the time?

smiller171 avatar Apr 06 '21 14:04 smiller171

@dainnilsson might it make sense to have an ongoing issue left open for researching options for Chromebook support, so there can be a single place for these discussions to move forward rather than more issues opening all the time?

Not a bad idea. We haven't been very diligent about using labels for issues, but having one for issues that are blocked seems to make sense to me, and keep them open for discoverability. I'll make the change!

dainnilsson avatar Apr 06 '21 14:04 dainnilsson

I find it extremely annoying that despite the fact that Android apps running on Chromebook are capable of accessing the USB and have been since 2018 - which I have personally used - the developers of Yubico don't know this and just close issues relating to use on a Chromebook without even looking at it.

#arc-usb-host

You shouldn't advertise Android support if you are going to choose not to support an entire class of Android devices. and if you find the limitations of Android difficult to get around on Chromebook you should implement native support.

Your competition - Google's Titan Security Key - is fully supported on Chromebooks now. So why can't you support it?

Yes. This is lame, and requests addressed to support only produce lame replies.

Wilford888 avatar Aug 14 '21 19:08 Wilford888

I have a Chromebook Plus with Android app support. The authenticator app (version 1.2.1) installs and launches on the device, but does not respond to taps on the yubikey neo button.

The yubikey is connected via usb-a to usb-c, and I've validated that Android apps can see the "ccccc..." input when tapping the button. The Chromebook itself does not have NFC at all, so will need to use the recently added usb support instead, and it only has usb-c ports.

Any tips / patches to get this working would be much appreciated!

Helmparkway60 avatar Oct 27 '21 22:10 Helmparkway60

The titan security key is only a U2F key. U2F functionality isn't the problem. The problem is interacting more directly with the USB device to interact with the custom TOTP api Yubico implemented.

smiller171 avatar Nov 19 '21 18:11 smiller171