What Is Tokenization?
basistheory.com
basistheory.com
How on earth would this stop security being expensive and difficult, as the intro seems to promise?
This is useful for systems which rebill the customer. They don't have to store the CVV, for which there are high security requirements. If an unauthorized party gets the token, they can cause rebilling, but not buy from others or, hopefully, change the shipping address. Also, in case of trouble, it's easy to invalidate tokens. People have to re-auth, but not get new credit cards.
It's a similar concept to OpenID, in some ways.
I'm not connected with this company at all, just ran across it and thought it was an interesting concept.
Sure, it's content marketing (they have a product to sell). But I found it educational.
Say you have wrapped a credit card number in a token. When a user buys something, you call the API to charge the CC token instead of a CC number. But if an attacker steals a token, they can make that same API call and charge a card to pay themselves.
I guess the mitigations tokens give you over bare CC numbers in that scenario are:
* The attacker probably needs your API key or similar to use along with the token, instead of having a bare CC they can easily use anywhere
* Better auditing of token use
* Tokens are revocable in case you discover a breach
Still, due to that risk I don't see how this "eliminates" compliance risk.
Instead the best practice would be to tokenize the data, accept it through one channel (an AttachCard api or whatever) and then return to your api consumer another opaque token to use for actions like authorization or clearing. From here there you can ensure that tokens are never reused etc.
This way if tokens leak they should be “inert” and no actions should be able to be taken with them.
I think the article muddies the waters on this point because the the sentence defining tokens in the intro says they "are safe to expose".
In other contexts maybe you’re more accepting of public exposure. For example tokenization can be an effective GDPR mitigation, but i don’t think folks are particularly worried about reuse attacks when the information contains a name or email (I’m sure there are instances where they are concerned as well)
But at least when talking about tokenizing actionable information (credit card, bank account, whatever) implementors should be careful to keep them out of their public apis.
I can't speak for every payments product but in the one I work with tokenized cards are tied to one merchant. A compromised token can only be used to process payments to that merchant.
In this case, the tokenization is the measure itself.
This looks like something useful.
I think the so called "Web3" movement would be more Interesting if it was focused of building such infrastructure.
So it's a token and an interface, where the minimum interface is "give me the plaintext back", but richer interfaces are possible and more useful.
So e.g. once you tokenize a card, you can perform billing operations on the token. The original CHD is "too liquid" and can be used anywhere in the financial system. If the token platform ensures only you can get paid with the token that can the limit the scope of badness.
You can also apply auditing and enforce extra access control / policy around operations or exchange of tokens for plaintext. In a complex system this can be better than letting sensitive information propagate to different data stores or business units. It also means you can build out the auditing & controls just once instead of needing controls in N systems.
It's also a decent tactic for "compliance engineering" in terms of being able to draw a box around which parts of the system you expect your auditor(s) to want to look at really closely. Things can rapidly get expensive when too much stuff comes into audit scope.
but anyway, it's just passing references around, so i think the main reason it gets confusing is because it's discussed as an alternative to encryption, despite being kind of the opposite of encryption (passing around a token and protecting the vault, vs passing around ciphertext and protecting the key)
I can't tell you how many times over the years I've seen tens of millions of rows of sensitive data(e.g. ssn) sitting in databases unencrypted. Software devs as an industry really needs to take this more seriously, but often businesses simply will not allocate the funds to do this right because of minimal risks to the corporation. At least with PCI the companies are forced to take card data security seriously.. but for instance nacha data, not nearly as much.
Absolutely the way to handle sensitive data in every app, so much so that I'm working on an open source version.
How are you ultimately using them internally? What’s the ultimate business value you’re seeing?
You’re open source project sounds really awesome as well, I’d love to jam on it with you sometime!
Before we send them from their system to ours, we pass all PII facts through a salted SHA256 wherein the salt is unique per trace session. This allows us to correlate sensitive PII across areas of our product without actually unmasking the private knowledge. John Doe will hash the same within the same error tracing session, but across tracing sessions they might as well be 2 entirely different people.