Revolut silently rolls out passkeys. Learn about the impact on banking security, user experience, and areas for improvement in our comprehensive analysis.
Vincent
Created: February 7, 2024
Updated: August 12, 2024
We believe that passkeys will make the Internet a safer place. Thats why we aim to provide a systematic analysis of the passkey processes of different companies as they move towards a password-free world.
2. The Essence of Passkeys and Their Significance
3. Revolut's Passkey Rollout: A Mixed Bag of Innovation and Challenges
3.1 Upside of Revolut's Passkey Integration
4. Revolut Business Passkeys Analysis
4.1 Revolut Business Web Application
4.2 Revolut Business Native Application
5. Revolut Personal Passkeys Analysis
5.1 Revolut Personal Web Application
5.2 Revolut Personal Native Application
6.1 Different Login Options in Revolut SSO for Account Types
6.2 Analysis of PublicKeyCredentialRequestOptions
6.3 Analysis of Association Files
In digital banking, the need for strong security without sacrificing user experience has led to innovative solutions. Among these, passkeys as the new standard for user authentication stands out. Revolut, a leading neo-bank based in London, has recently and silently started to roll out passkeys for both Personal and Business accounts. This strategic move not only aligns with the growing demand for more secure and convenient digital experiences but also positions Revolut as a pioneer in the banking sector's adoption of passkeys.
With the rollout of passkeys, Revolut follows the trend among tech giants, with Coinbase, WhatsApp, Nintendo and Uber leading the passkeys wave. In the financial sector, Revolut is one of the first banks, if not the biggest bank so far, to roll out passkeys.
Disclaimer: We expect that in the upcoming weeks, passkeys will gradually rolled out on a wider scale and bugs will be improved. We will update the post accordingly. The current version is of February 7, 2024.
Passkeys represent the next stage in passwordless authentication, offering users a seamless yet secure way to access their accounts. Unlike traditional passwords, passkeys eliminate the need to remember complex passwords, relying instead on asymmetric cryptography with keys unique to each user and device. This method not only enhances security by reducing the risk of phishing attacks and data breaches but also simplifies the login process, as the users only need to use Face ID, Touch ID or Windows Hello, thereby improving the overall user experience.
Revolut follows a phased introduction of passkeys and also rolls out features not simultaneously for Business and Personal accounts. The major differences we spotted during our research are outlined in the following table:
Feature | Revolut Personal | Revolut Business |
---|---|---|
Passkey login button displayed on login page | No | Yes |
Promotional passkey popup after successful login on new device | Yes, but unsuccessful on all devices | Yes, on all devices but passkey creation only successful on Windows 11 |
Passkey settings in account security settings available | Yes, however, theres no button to create a passkey | No |
Native iOS / Android app support for passkeys | No | No |
The following aspects need to be positively mentioned in Revoluts passkey integration:
While Revolut's bold step towards passkey integration is commendable, the rollout has not been without its flaws.
Revolut has introduced passkeys
Join themIn the following, we go into more depth about Revolut Personal and Business accounts and how passkeys are rolled out on selected devices and platforms.
We start the Revolut Business passkeys analysis by taking a closer look at the web application before analyzing the native apps.
To keep things concise in the following, we only highlight certain platform, device and browser combinations.
Note that, you receive the passkey popup from Revolut only once, after successfully logging in with the existing authentication methods. To trigger the popup again, you need to either delete the Revolut cookies or access the site in Incognito / Private Browser mode.
When you access the login page for Revolut Business, you'll immediately notice a prominent new login option situated below the email inputfield and above the Google / Apple social logins, labeled: Continue with passkey.
The passkeys promotional popup looks as follows:
Interestingly, for Revolut Business, even though the primary user identifier is the email address, the passkeys are tied to the phone number, probably because Revolut Personal accounts are created with a phone number first.
Now that you've successfully created a passkey on Windows 11 and Chrome, you can log out and click on Continue with passkey on the login page. Subsequently, the browser UI for handling passkey authentication will appear:
In contrast to the current login procedure for Revolut Business, where you need to provide a password and confirm your identity via a push notification in the native app or an email magic link as a second factor, no additional authentication method is needed for passkey logins, as passkeys inherently serve as 2FA. This represents a significant improvement in user experience, especially on desktop devices, as it eliminates the need to switch contexts or use a second device.
On Android 14 and in Chrome 121, the Continue with passkey login button is very prominent.
On iOS 17.3 and in Safari, the Continue with passkey login button is very prominent as well.
The native iOS and Android apps for Revolut Business do not support passkeys yet. Thus, there is no Passkey option the Security & privacy section of the iOS (see screenshot) or Android app:
One of the initial differences to note is that Revolut Personal employs the phone number as the primary user identifier. Instead of a password, authentication is managed through a 6- to 12-digit passcode, while Revolut Business utilizes a 4-digit passcode and makes use of the password in the default login process.
To keep things concise in the following, we only highlight certain platform, device and browser combinations.
Subscribe to our Passkeys Substack for the latest news, insights and strategies.
SubscribeThe following promotional passkey popup is displayed the first time you login (or after deleting your cookies / being in Private Browser mode):
For some reason, after clicking on Add passkey in the previous screen, we were directly forwarded to the logged-in page, without having the opportunity to initiate the passkey ceremony with Touch ID. Upon investigating the issue, we found the corresponding API call (https://sso.revolut.com/api/challenges /webauthn) in the network tab of Safaris developer tools. However, this API call returned an HTTP 403 status code, indicating that the feature has not been fully rolled out yet apparently.
Contrary to the Revolut Business account, the account settings in Revolut Personal hold a section for passkeys:
The following promotional passkey popup is displayed the first time you login (or after deleting your cookies / being in Private Browser mode):
The native iOS and Android apps for Revolut Personal do not support passkeys yet. However, the iOS app as well as the Android app (see the screenshots below) hold a security setting section for passkeys:
Below, we delve into more depth on some technical aspects.
Become part of our Passkeys Community for updates and support.
JoinWe examined the technical implementation specifics. Primarily, each time the login page is loaded, a client_id is sent to the backend, which then returns different authentication options based on the account type:
Interestingly, the passkey option for Revolut Personal accounts has been prepared but is not yet activated (see screenshot below), indicating that a rollout could be imminent and implemented swiftly, enabling a "Continue with passkey" button for Personal accounts as well.
The decision to display login options is based on the client_id. For example: https://sso.revolut.com/signin?client_id=o3r08ao16zvdlf2y5fde For experimental purposes, we altered the client_id to a random value, which revealed all login options (incl. the possibility to switch between phone number and email as login identifier) on Windows 11 with Chrome.
During the login ceremony, we analyzed the PublicKeyCredentialRequestOptions. Notably, allowCredentials were not set, while the relying party ID was established as "sso.revolut.com." Setting userVerification to preferred is a prudent choice from a security standpoint.
We also analyzed how a rollout to the native iOS and Android apps could look like and thus used the relying party ID of sso.revolut.com and appended the paths to the assetlinks.json (Android) and apple-app-site-association (iOS) file to see what information these files maybe already hold regarding passkey rollout.
Attempting to access https://sso.revolut.com/.well-known/assetlinks.json results in a 404 error from nginx, suggesting the use of a reverse proxy for file management. By using the domain https://app.revolut.com, we located the assetlinks.json at https://app.revolut.com/.well- known/assetlinks.json, which provided insightful information for Revolut Personal:
Via https://well-known.dev, we also discovered the association file for Revolut Business at https://business.revolut.com/.well-known/assetlinks.json:
Since neither the assetlinks.json file for Revolut Personal nor the one for Revolut Business is located on the path designated by the relying party ID for associating the native Android app with the web app, its intriguing to consider what changes are necessary to enable passkeys to work across both web and native Android apps.
The apple-app-site-association file for Revolut Personal is accessible at https://revolut.com/.well-known/apple-app-site-association, with no details yet added regarding web credentials:
In contrast, the Revolut Business apple-app-site-association file contains more comprehensive information, notably concerning web credentials. This indicates that the iOS app QUZEZSEARC.com.revolut.business is configured to share credentials with the Revolut Business web application. It is accessible at https://business.revolut.com/.well-known/apple-app-site-association.
Just like with Android, it remains intriguing how cross-platform sharing of passkeys between the native and web apps can be implemented, given that the relying party ID for the web app (sso.revolut.com) does not have the association files in the expected locations.
In conclusion, Revolut's passkey rollout is a significant step towards revolutionizing user authentication in the banking sector. By adopting passkeys, Revolut not only improves security by moving away from traditional passwords but also significantly enhances the UX through a simpler login process. Despite facing challenges in the initial rollout, including inconsistencies across devices and the absence of native app support, Revolut's efforts underscore a commitment to digital innovation and user-centric design.
The technical analysis reveals that while the groundwork for a seamless passkey integration is laid, there are areas ripe for improvement. Enhancing communication, ensuring consistency across platforms, and expanding support to include native mobile applications are critical next steps. Addressing these areas will not only refine Revolut's implementation but also set a benchmark for the industry, encouraging other financial institutions to adopt passkeys soon (see also our blog post on PSD2 compliance of passkeys).
Table of Contents
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
We provide UI components, SDKs and guides to help you add passkeys to your app in <1 hour
Start for free
Recent Articles