UIA: A Global Connectivity Architecture for Personal Mobile Devices Bryan Ford Massachusetts Institute of Technology in collaboration with Jacob Strauss, Chris Lesniewski-Laas, Sean Rhea, Frans Kaashoek, Robert Morris h t t p : / / p d o s. c s a i l . m i t . e d u / u i a
Personal devices everywhere • Internally they are like real computers • They will be part of the Internet • They will store data that people want to share
Global connectivity enables information sharing Bluetooth ● Alice and Bob meet Alice Bob • Alice & Bob later share stuf remotely Alice Bob
Other examples ● Upload picture from camera to mom’s iPhone ● Stream video from ambulance to doctor’s PDA ● Car-to-car local trafc information
The Internet's Evolution Internet designed for ...but now supports: – wired networks – wireless nets – fxed computers – mobile devices – expert operators – unskilled users
The Problem old design assumptions + Internet evolution = connectivity challenges for personal devices
The Project Unmanaged Internet Architecture (UIA) Goal: Make personal device connectivity “ just work ” by rethinking basic networking concepts
Architecture Overview UIA Enhancements Traditional Layers Transport: [SIGCOMM '07] Transport: TCP structured streams serialized streams Naming: [OSDI '06] Naming: DNS personal groups/names global names Routing: [OSDI '06] Routing: IP un managed overlay managed infrastructure
Naming Scenario Bob & Alice: 1. Meet at conference 2. Re-connect remotely over Internet 3. Meet again of-Internet
Naming Scenario (1) Local Area Network Alice's PDA Bob's Laptop Bob & Alice meet, connect [Bonjour] – l o c a l n a m e s (e.g., “Alice-P using D A”)
Naming Scenario (2) Internet Alice's PDA Bob's Laptop Wish to re-connect remotely – d i f f e r e n t , g l o b a l n a m e s & more setup need (e.g., “pda.alice1234.herisp.com”)
Naming Scenario (3) Partitioned Ad Hoc Network Alice's PDA Bob's Laptop Meet again off-Internet – global names stop working! diffe re nt, local nam e s (again) Require
Key Naming Challenges Personal device names should be: 1.Convenient – short, personally meaningful 2.Consistent – usable on any device I own/manage 3.Available – works even under disconnect/partition #3 precludes central name service!
Key Naming Contribution Personal Group: distributed federation of personal devices Internet Camera Laptop Bob's Personal Group Home PC Work PC
What is a Personal Group? Combination of: ● A distributed namespace of devices, users, ... ● An ad hoc virtual private network (VPN) ● A user identity for social networking ...with fully decentralized, user-friendly management & operation
Outline ✔ Introduction ● Personal Group Naming Model – from user's perspective ⟹ convenient ● Implementing Personal Groups – decentralized ⟹ consistent, available ● Evaluation ● Other thesis components ● Related work, conclusion
Personal Names Each personal group includes a distributed personal namespace Internet “Camera” “Laptop” Bob's Personal Group “Laptop” “Camera” “Home-PC” “Home-PC” “Work-PC” “Work-PC”
Personal Names ...are short , local to personal group “ lapt op ”, not “ laptop.bob345.his-isp.com” Internet “Camera” “Laptop” Bob's Personal Group “Laptop” “Camera” “Home-PC” “Home-PC” “Work-PC” “Work-PC”
Why Local? Global names: – Perfect when global usability is the point – Expensive, cumbersome in personal context amazon.com bob.com? Personal names: – Not globally unique, thus short, convenient – ...but still usable for global connectivity!
Personal Names ... persistently represent the same target regardless of location Internet Bob's Personal Group “Laptop” (personal “Camera” device names) “Home-PC” “Work-PC”
How to Build Personal Groups? Convenience goal precludes: – assigning or entering IP addresses, MAC addresses, ... – generating or distributing crypto keys, certifcates Name Bootstrap Problem: – How to securely indicate device to be named, without referring to low-level identifers?
Building Groups via Introduction Common case: local , on home/ofce LAN Also supported: remote , via global names Internet “bobs-pc.workplace.com”
Building Groups via Introduction use Device Mobility to build a Global Naming Federation from Local Pairwise Introductions Internet “bobs-pc.workplace.com”
UIA Introduction Procedure 2-step process: 1.Identify other device locally [Bonjour] 2.Avoid MITM attacks [Dohrmann/Ellison] (screen shots from working UIA prototype)
UIA Introduction Security Refnes prior introduction protocols – Online protocol: resist attacks with fewer bits – Multiple-choice: ensures user participation But many other schemes possible! [MyNet]
Remote Access Names usable from any device in group for local or remote access “Camera” Internet “Laptop” “Home-PC” “Work-PC”
Remote Access Names usable from any device in group for local or remote access “Camera” Internet “Laptop” “Home-PC” “Work-PC”
Security All communication privacy-protected as in virtual private network (VPN) (crypto) “Camera” Internet “Laptop” (crypto) “Home-PC” “Work-PC”
Social Networking Personal group provides user identity Internet Bob's Personal Group Alice's Personal Group
Social Networking Personal group provides user identity “Hi Bob, I'm Alice!” “Hi Alice, I'm Bob!” Internet Bob's Personal Group Alice's Personal Group “Alice” (personal user names) “Bob”
Social Networking Personal user names also persist Internet Bob's Personal Group Alice's Personal Group “Alice” (personal user names) “Bob”
Social Networking all devices in group represent same user “Alice, look at this photo!” “OK, it's from Bob” Internet Bob's Personal Group Alice's Personal Group “Alice” (personal user names) “Bob”
Using Personal Groups/Names Browse groups, Enter user-relative control access domain names
Implementing Personal Groups ...while maintaining consistency and availability in a fully decentralized design
Key T echnical Challenges ● Device Location Independence ● Network Partition T olerance ● State Synchronization, Consistency ● Distributed Ownership, Revocation
Challenge: Location Independence How to identify personal devices as they move, change IP addresses?
Solution: Endpoint Identifers Each device has endpoint identifer (EID) – Hash of device's public key [SFS] – Self-confgured, stable, location- independent [HIP] Laptop Camera Public Key: 56b19c28f35... Public Key: 8b934a68cd5f... Secure Secure Hash Hash EID: 123 EID: 456
Challenge: Partition T olerance Names must keep working of-Internet Bob's Personal Group Alice's Personal Group “Alice” “Bob” Internet
Solution: State Replication ● Each device keeps Camera change log Camera's log ● Grouped devices Laptop's log replicate “ B o b P i x ” “ T h i n k p a d ” each others' state ● Log entries are Laptop self-certifying , Laptop's log Camera's log fork-consistent “ B o b P i x ” “ T h i n k p a d ”
Implementing Names and Groups Device keeps a series Camera: EID 123 of change records Series 123 ● Start with default name “Coolpix” → EID 123 Laptop: EID 456 Series 456 “Thinkpad” → EID 456
Implementing Names and Groups Device keeps a series Camera: EID 123 of change records Series 123 ● Start with default name cancel ● T o rename: cancel old, “BobPi x” → EID 123 write new name record Laptop: EID 456 Series 456 “Thinkpad” → EID 456
Implementing Names and Groups Device keeps a series Camera: EID 123 of change records Series 123 ● Start with default name ● T o rename: cancel old, Merge with Series 456 write new name record ● T o merge: Laptop: EID 456 – Write merge records Series 456 Merge with Series 123
Implementing Names and Groups Device keeps a series Camera: EID 123 of change records Series 123 ● Start with default name Series 456 copy ● T o rename: cancel old, “ B o b P i x ” → EID 123 write new name record “ T h i n k p a d ” → EID 456 ● T o merge: Laptop: EID 456 – Write merge records Series 456 Series 123 copy – Gossip series contents “ B o b P i x ” → EID 123 “ T h i n k p a d ” → EID 456
Serverless Name Resolution ● Use replicated state – no communication ● Resolution starts in device's own group ● Resolve components right-to-left Phone.Charlie.Bob Bob's Group ➌ ➋ ➊ Laptop” Charlie's Alice's Group “Camera” Group “Home-PC” “Work-PC” “iPod” “PC” “PowerBook” ➊ ➋ “Phone” “Alice” ➌ “Charlie” “Bob” “Bob”
Challenge: Consistency All devices in group must automatically learn name & membership changes Internet Bob's Personal Group Alice's Personal Group “Alice” “Bob”
Recommend
More recommend