22K/ not-so-smart wallets
Session Title: not-so-smart wallets
Thursday 22K
Convener: Kim Hamilton Duffy, Orie Steele, Darrell O’Donnell
Notes-taker(s): Kim Hamilton
Tags for the session - technology discussed/ideas considered:
wallets, agents, dids
Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:
Context (Kim’s presentation)
Goal: Tease apart wallet-related concepts
Based on CCG's survey of wallets
Highlights (see slides)
DIF Glossary report
the relationships are interesting
Darrell O'Donnell’s wallet report
tease apart wallets vs agents and also minimum viable wallet
his wallet definition matches DIF glossary definition
Stuff as a proper noun
Question: is a wallet hot, dumb, secure storage? What are we missing?
Reviewing Darrell O'Donnell's minimum viable wallet
Why do we care? universal wallet interop spec -- what goes in there?
Maybe there is some awareness of entities it's connected to when we talk about "wallet". Tease apart what these concepts are.
Discussion:
Sam: What’s missing from this presentation is that many wallet designs have crypto happening in the wallet.
Discourage devs from doing stupid things with keys
Wallet and public-facing abilities
Keith: Portfolio/credential management is a wallet feature in workday wallet
Orie: Conceptual mismatch about wallet exposing publicly shareable info. Are we exposing an interface that shouldn't be exposed?
Keith: wallet helps manage
Kim: The way we talk about wallets in LER space is different. More like portfolios.
Matthew: There may be a central location for storing / curating data, then I can publish/curate data, and authorize access through some agent protocol. Publish in some way that they can either access immediately or access via an endpoint. Managing access to data via some policy (wallet controls or public)
Discussion about trust model
Bart: things at edge need to be zero trust. What if you as an issuer have certain security requirements of a wallet? What if I spoof a capability I don't have?
Orie: Apple -- apis expose certificate chain to prove claim is signed from root. e.g. if I make a claim about a key being hardware protected
Darrell: accreditation and certification. Can I trust Bubba's wallet? Other concern is backup and recovery
Bart: Physical wallet -- different paradigm. Stuff inside wallet is secure, but not the wallet itself. Gap: digital wallet is supposed to "do" something -- sign presentation, do crypto. We should focus on that tiny gap, trust minimize the wallet. (rather than accreditation -- less scalable)
Tyler: placing trust on wallet misses the mark
Darrell: reality is putting things in/pulling things out. We have to figure out what I truly control. We need to tease apart what wallet actually does.
Corollaries to physical wallet:
Sam: worth teasing out some aspects. Curious about corollaries to physical wallet. Contents of physical wallet can be swiped.
Darrell:
Suppose I held a credential, but I lost the wallet. Important that there was a record that I got it. Backup and recovery is critical.
Name of digital wallet -- I wish we had a better name. I can't draw a crisp line
Issues like authorizing access (automatically) for health provider.
If it's my doctor, part of health system, and normal query
don't want doctor to have to ping me every time.
law enforcement: DL - sure
bar: DL - no, and maybe notify authorities
Some stuff is irrecoverable. Bearer asset that only exists in my wallet (e.g. cash) -- that scares the most.
tmarkovski: wallet importing/exporting goes along with. Interested in practical problems that can only exist in one instance and cannot be duplicated
Recovery as an attack vector
Darrell: recovery vector becomes the attack vector
Tyler:
Tying recovery to biometric provider. for providers that do biometrics right.
Wallet by itself is not enough
Sam:
I prefer social recovery, m of n recovery
I don't have a good handle on: if keys were in secure element and I lose that phone in the ocean, how do I get it on a new one. How do we mechanically do that?
Key management feasibility
Keith: a lot of individuals aren't prepared to do key mgmt. When they lost control, they became upset that they lost access to their credentials and had to be re-issued. Moved to custodial.
Darrell: there are ppl that won’t manage keys; e.g. if they are targets (known to carry a lot of crypto)
Different recovery modes
Orie:
data model - structured json: keys, entropy, metadata, credentials, author caps, etc
2 scenarios for recovery:
locking and printing it out (single wallet, lock, save it to dropbox, etc)
sync to external service, e.g. secure data storage
Rouven: separate recovery and backup
Sam:
Difference between data being stored and software libraries used to prevent bad behavior
Don't think it's important that there's standardization of the libraries. More useful to have standardization of core data. Ability to take core data and stick it somewhere else is valuable. Move to another wallet, import it in a future version of the same, More important than hiding behind API.
Separately, Promoting good architecture to avoid bad key use
One about interop, other about preventing bad developer behavior
Keith: mobile vs web -- accessibility
Separation of concerns
Darrell: didn't need credentials for many actions when we already had dids. sending messages "do you approve transfer?" crypto sign using did. Crypto lives in wallet
Rouven: split wallets conceptually
secure thing in OS, holds some keys
many different applications that access or wallet OS level??
Orie:
browsers have software isolated key caps
progressive web app with dongle
metamask (trezor, etc)
sometimes intfc isnt' handled by wallet itself. wallet is way to ask for a signature, or to trezor to have a signature.
Ask for signature for wallet and have it only mean there's plaintext keys in wallet. Against security practice of teasing apart.
What's in a wallet vs capabilities
Dumb wallets
Discussed Bart’s claim that wallet is dumbest, lowest security thing that's useful
Orie: from security perspective, prefer non-extractable private keys. want hardware/software isolation. but for variety of reasons we can't get it. plaintext private keys. if you can afford to have hw/sw isolated and store capabilities in wallet, good. But there are cases where you can't do it or locked out of modern crypto (don't have hardware support)
Central vs distributed management of keys/devices
Rouven: central dashboard to manage devices, keys, revocation, etc. Is that mobile wallet?
Sam: responsibility of devices. circle, quorum of devices. Can't be one thing. Dont' like centralized service
Orie: trust graph
Rouven: Centralize logic / rules, run smart contract
Darrell: 737 cockpit
Orie: contract locks away token
Brent: skynet no kill switch
Context-aware
Orie:
Wallets have to be flexible to support security context relevant to ppl and businesses
different security properties, but speak about in same ontology
a way of relating security props of 1 system with another