Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BEEEP] Implement rust fido2 for desktop mac and linux (v3) #12186

Closed
wants to merge 15 commits into from

Conversation

quexten
Copy link
Contributor

@quexten quexten commented Nov 29, 2024

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-15462

📔 Objective

Third version of cross-platform ctap-fido2-hid in the desktop. This time, not encumbered by any openssl dependencies, or "dangerous" apis.

Note: We don't implement a PIN gui because bitwarden does not require a PIN (UV) for 2FA.

📸 Screenshots

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

@quexten quexten changed the title [BEEEP] Implement rust fido2 for desktop mac and linux (v2) [BEEEP] Implement rust fido2 for desktop mac and linux (v3) Nov 29, 2024
Copy link
Contributor

github-actions bot commented Nov 29, 2024

Logo
Checkmarx One – Scan Summary & Details3e43cf90-9c0b-44b1-b7b0-afb9db4ee3d8

New Issues

Severity Issue Source File / Package Checkmarx Insight
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1013 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 358 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1102 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1457 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 666 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1357 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1506 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 192 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 343 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 854 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...

Fixed Issues

Severity Issue Source File / Package
MEDIUM Client_Privacy_Violation /bitwarden_license/bit-web/src/app/auth/sso/sso.component.ts: 169
LOW Client_DOM_Open_Redirect /apps/browser/src/auth/popup/login-via-auth-request-v1.component.ts: 53
LOW Client_DOM_Open_Redirect /apps/desktop/src/auth/login/login-via-auth-request-v1.component.ts: 63
LOW Client_DOM_Open_Redirect /apps/browser/src/auth/popup/login-via-auth-request-v1.component.ts: 53
LOW Client_DOM_Open_Redirect /apps/desktop/src/auth/login/login-via-auth-request-v1.component.ts: 63
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 853
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1505
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1012
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 357
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1456
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1356
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 191
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 342
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 665
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1101

@quexten
Copy link
Contributor Author

quexten commented Nov 29, 2024

Note: Linux builds are not working atm because the workflow is missing 2 dependencies. I'll make a separate PR with only the dependencies to merge first.

@quexten quexten marked this pull request as ready for review November 29, 2024 16:16
@quexten quexten requested review from a team as code owners November 29, 2024 16:16
Copy link

codecov bot commented Nov 29, 2024

Codecov Report

Attention: Patch coverage is 0% with 28 lines in your changes missing coverage. Please review.

Project coverage is 33.36%. Comparing base (46e2e02) to head (91e8fcd).
Report is 390 commits behind head on main.

✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...-factor-auth/two-factor-auth-webauthn.component.ts 0.00% 9 Missing ⚠️
...pps/desktop/src/platform/main/webauthn-listener.ts 0.00% 5 Missing ⚠️
apps/desktop/src/main.ts 0.00% 3 Missing ⚠️
...atform/services/electron-platform-utils.service.ts 0.00% 3 Missing ⚠️
...s/platform-utils/browser-platform-utils.service.ts 0.00% 2 Missing ⚠️
...rc/platform/services/cli-platform-utils.service.ts 0.00% 2 Missing ⚠️
apps/desktop/src/platform/preload.ts 0.00% 2 Missing ⚠️
...pps/web/src/app/core/web-platform-utils.service.ts 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #12186      +/-   ##
==========================================
- Coverage   33.36%   33.36%   -0.01%     
==========================================
  Files        2908     2909       +1     
  Lines       90978    91005      +27     
  Branches    17325    17326       +1     
==========================================
+ Hits        30356    30363       +7     
- Misses      58219    58239      +20     
  Partials     2403     2403              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@quexten
Copy link
Contributor Author

quexten commented Nov 29, 2024

@JaredSnider-Bitwarden note: this is only implemented for the refactored 2fa components. It seems we still only have them on on usdev. Does this require backporting to the shared 2fa component?

@LinuxMason
Copy link

Very much looking forward to the Linux FIDO2 support. Thank you for working on this.

Copy link
Contributor

@coroiu coroiu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build issue :)

@quexten
Copy link
Contributor Author

quexten commented Dec 11, 2024

build issue :)

Should be fixed after #12207 is merged I think, since the workflow seems to be using the build step from main instead of from the pr.

@quexten quexten marked this pull request as draft December 18, 2024 17:26
@quexten quexten closed this Jan 22, 2025
@LinuxMason
Copy link

Why closed?

Does this mean no FIDO2 for Bitwarden on Linux?

@quexten
Copy link
Contributor Author

quexten commented Jan 23, 2025

Sorry, I should have put a comment. I'll revisit this as a later time, but do not have the capacity right now to bring this over the finish line :| . I do still plan to revisit it though.

@LinuxMason
Copy link

I appreciate the efforts you've made so far and this is not directed at you personally, but I have to say it’s disappointing that a security-focused company like Bitwarden hasn’t prioritized this feature and resolved it already. It’s not a great look when an open-source security project provides support for a privacy-compromising platform like Microsoft Windows while continuing to neglect Linux, a platform that supposedly aligns with the principles Bitwarden promotes. Frankly, that inconsistency rubs a lot of users the wrong way.

FIDO2 is clearly the gold standard for security keys, yet Linux users have been waiting for years while this feature has remained “on the road map.” It’s frustrating to see no implementation after such a long time, especially when competitors like Proton Pass launch in beta with this functionality right from the start.

I’ve been stuck using only the browser extension because I refuse to resort to other options. It’s disappointing for those of us who value security and privacy to be left waiting this long with no certainty that it will ever be implemented at all.

I'm sure I speak for many when I say this.

@quexten
Copy link
Contributor Author

quexten commented Jan 23, 2025

Yeah, I agree, and no worries. I'll actually re-open and put this to draft again to make sure this does not slip off my radar completely, but don't expect an update from my end soon on this.

@quexten quexten reopened this Jan 23, 2025
@quexten
Copy link
Contributor Author

quexten commented Jan 23, 2025

Closing again in favor of #13038 ;)

@quexten quexten closed this Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants