Title: Dynamic Virtual Credit Card Numbers
1Dynamic Virtual Credit Card Numbers
- Ian Molloy, Jiangtao Li, and Ninghui Li
Financial Cryptography and Data Security Feb. 2007
2Credit Card Numbers Get Stolen
3(No Transcript)
4(No Transcript)
5(No Transcript)
6(No Transcript)
7Mitigating Stolen Credit Card Numbers
8Card Verification Code
- Not mandatory
- Trust the Merchant
- Trust the Code
- Flaws in Systems
- Cartes Bancaires?
9- Not used everywhere
- Online transactions only
- Not mandatory
- Requires Merchant changes
10(No Transcript)
11(No Transcript)
12Transactional Proxy Numbers
13Log into Server
14Generate Number
5705 9585 3675 2745
15Generate Number
5705 9585 3675 2745
16Generate Number
5705 9585 3675 2745
17Generate Number
5705 9585 3675 2745
18Generate Number
5705 9585 3675 2745
19Generate Number
5705 9585 3675 2745
5705 9573 6485 7658
20- Requires Internet connection
- Must originate from Card issuer
- Per transaction communication
21Offline
22Without changing existing protocols
23Lets Get Started
24Credit CardNumber Format
25(No Transcript)
26First Digit
27Major Industry Identifier
1 Airlines 3 Travel and Entertainment 4/5
Banking and Financial 6 Merchandizing
28Digits One Through Six
29Issuer Identifier
30Digits Seven Through n
31Account Number
This is the part you dont want getting out
32Last Digit
33Luhn Check Digit
Easily Calculated from the Previous Digits
34(No Transcript)
35Card Verification Code
Cryptographic Checksum of the face of the
card. Not on the magnetic strip
36How does a transaction work?
37Billing and Shipping Information
38Billing and Shipping Information
Name, Address, Credit Card Number, etc.
39Billing and Shipping Information
Merchant, Billing, and Transaction Information
40Billing and Shipping Information
Merchant, Billing, and Transaction Information
Billing address can be verified at many levels of
granularity with the Address Verification Service
(AVS)
41Billing and Shipping Information
Merchant, Billing, and Transaction Information
Accept/Reject, CVV AVS Response
42Billing and Shipping Information
Merchant, Billing, and Transaction Information
Accept/Reject, CVV AVS Response
AVS Full match, partial match (5-digit zip vs
9-digit)
43Billing and Shipping Information
Merchant, Billing, and Transaction Information
Accept/Reject, CVV AVS Response
Confirmation or Rejection
44About Nine to Twelve Decimal Digits(29-39 bits)
45Security Properties
- Complete
- We can always generate a VCC
- Sound
- We can always identify the original account
- Account Hiding
- Adversaries cannot find the credit card number
- Account Forgery
- Adversaries cannot create new valid VCC numbers
46Possible Solutions
47Use Credit Card Number as a Key
48Brute-Force Attack Feasible
49Add Additional Secrets
50Social Security NumberorMothers Maiden Name
51Smith? Johnson? Williams? Jones? Li?
Extremely Structured(Area - Group - ID)
52Leaks Far More Sensitive Information
53Public-Key Cryptography
54Anyone Can EncryptLarge Ciphertext Space
Semantically Secure?
55Need Additional Secret
56Our Scheme
57Dynamic Virtual Credit Card Numbers
- B - Billing Information
- C - Account Information
- T - Transaction Information
- P - Shared Secret
- H - Function from Secrets to Keys
- F - Function to calculate Keyed MAC
58Generate
- Choose Expiration Date E
- Set s E B M T
- K H( C P )
- V FK(s) mod 10n
- Add Card Issuer and Luhn Code
59Verification
- Identify C using the Address Verification
Service (AVS) - Find Secret P associated with C
- K H( C P )
- s From Merchant Submitted Values
- V FK(s) mod 10n
- Accept in V V
60Real World Considerations
61Multi-Use Numbers
- Bind to a Max amount, not a single value
- 0 Actual, 1 50, 2 100, ... , 9
1000 - Choose single digit to encode the type
- Digits from FK(s) not used in V define
permutation p - Replace digit in V with p( )
62Collisions Between Virtual and Actual Numbers
- We rely on the Address Verification Service
- If AVS is not provided, we must assume it is a
standard account number - If AVS is included
- Account number and CVV match, and its real (or C
V) - They do not, and it is virtual
63Non-UniqueName-Address Pairs
- Probability two separate account match is
- Reject when there are collisions
- Use real CVV (or separate function on it)
- Add additional input, such as sequence number
64Implementation
- Java 2 MicroEdition
- MIDlet 2.0 Profile
- Runs on Cell Phones
- SHA1 and HMAC
65Security Analysis
- Need to show
- F is secure against forgery
- F is secure against account recovery
- We show
- If F is the trunc. of a PRF then F is a PRF
- Any PRF satisfies our security properties
66Truncation
- If
is a PRF, then is a PRF - Build a distinguisher A for F that uses the
distinguisher B for F
67Truncation
A
x
x
B
y
trunc(y)
b
b
68Secure Against Forgery
- If F is a PRF, then F is secure against forgery
- Build a distinguisher for F using a forgery for
F -
69Forgery
x
A
x
B
y
trunc(y)
y,x
x
z
y trunc(z)
70Secure AgainstAccount Recovery
- If F is a PRF, then F is secure against account
recovery - Requires preimage of H, or random guessing on C
-
71Conclusion
- Secure Virtual Credit Card Scheme
- Difficult to Forge
- Difficult to gain original credit card number
- Generated offline
- Flexible to real-world constraints
72Questions?