Dynamic CVVs: 2FA 2FuriousNovember 12, 2019
The security community is quick to highlight the benefits of two-factor authentication (2FA) when it comes to something like account security, preventing takeovers, and data or monetary theft. Bank of America recently started a pilot program designed to combat credit card fraud in a unique way that I had never seen before; combining a 2FA smart card with the traditional credit or debit card that most of us carry around in our pockets every day.
One of the barriers to implementing this on a wide scale is getting that second factor into the hands of the users intended to use them. As Photon highlighted in our research paper Two Factor In Review, there are several technologies which act as a second factor that can be used with popular services like bank logins or social media accounts; things like smart cards, SMS tokens, or U2F hardware tokens. Typically, when implementing 2FA on the consumer side (outside of an enterprise setting), the onus is on the individual to set up the 2FA method of their choosing. This could involve downloading an authenticator app, connecting your mobile number to your account, or buying another piece of hardware. Small barriers, but barriers, nonetheless.
I enrolled in the program because it sounded interesting and I wanted to see what the card was like, how exactly it worked, and answer the question: If an attacker had all my credit card information, would this 2FA solution prevent it from being used illegitimately?
Dynamic CVV – What it Looks Like
The diagram below shows what a typical credit or debit card looks like; depending on the issuing bank, things may be structured a bit differently or in different locations, but the information on the card is all there. I know, most of you reading know what a credit or debit card looks like but just stick with me: It’s got the cardholder name, credit or debit card number, the issuing bank, and a security code.
Figure 1: Basic structure of a credit or debit card
As a side note, CVV is a general term used to describe CVV1, CVV2 (Visa and Mastercard) and CID (Discover and American Express) codes. CVV1 data is included within the magnetic stripe of a credit or debit card, and CVV2 or CID codes are what is included on a physical card.
We’re going to focus on the CVV security code on the back of my Visa card – the famous 3- or 4-digits. Traditionally, the CVV code only changed whenever a new card was issued, which would typically come with a new card number as well. With this new card from Bank of America, the CVV code changes every four hours, thanks to a small battery-operated token embedded within the card itself.
Figure 2: On the left, taken at 7:10 AM. On the right, taken at 12:30 PM.
The goal behind this is to prevent card-not-present (CNP) fraud, which accounted for $4.57 billion worth of fraud in 2017. CNP fraud occurs when a criminal uses stolen credit or debit card information for their own illicit purposes, taking advantage of merchants which don’t require a physical card to initiate a transaction (i.e. you don’t have to swipe your card). With static CVV codes, criminal can steal the card’s information, either through card skimming or online data theft, and use it as long as the card remains active. Fraudsters can monetize stolen credit or debit card information by using the cards themselves for fraudulent purposes or reselling them to other fraudsters on criminal platforms like Joker’s Stash or Brians Club. An ever-changing CVV code (i.e. dynamic CVV), similar to an ever-changing two-factor authentication key, has the potential to stop this kind of fraud in its tracks.
Dynamic CVV Security: Does it work?
The keyword there is potential. Banks handing out what essentially boils down to free smart cards with security tokens embedded within them is a great move in the right direction. However, from the onset I identified a few potential issues with this dynamic CVV approach. You may be thinking, “Harrison, you literally just said it’s a move in the right direction.” I promise, I’m not lying. But…
Potential Issues with Dynamic CVV
- Requires physical access to card: Western society is beginning to move away from physical cards altogether. People use password managers to store their credit cards for convenient online shopping which don’t incorporate the constantly changing CVV code, Apple’s new credit card is mainly digitally focused (the physical card has no card number, expiry date, or CVV on it whatsoever), and online purchases are at an all-time high. Which brings me to my next point…
- Not all online merchants require CVV codes: Amazon, one of the largest e-commerce retailers, does not require a CVV code when adding a credit or debit card to your account. Unfortunately, unless all online merchants are required to ask for CVV codes, CNP fraud will continue to persist.
- Criminals are targeting accounts, rather than cards: Highlighted in our Account Takeover Kill Chain blog, criminals are shifting their focus to account takeovers for the obvious reason: More potential gains. In a recent Javelin Strategy and Research study, overall fraud rates declined largely due to the decrease in card fraud. Impersonating someone online opens up several more fraud doors, like opening mortgages or additional lines of credit.
Despite being a great step in the right direction, it just might be too late for dynamic CVV. If dynamic CVV technology was implemented 10 or so years ago, along with the rise in EMV chip technology being embedded within credit and debit cards, it’s possible that banks may have been able to protect billions of dollars. However, in 2019, a few key things would need to change (like online merchants requiring CVVs) for the full potential to be realized.