PARROTS Position Altered Random Repetition of Transportation Signature George Corser Oakland University May 23, 2013 1. Introduction: VANET Privacy 3 VANET Privacy: Scope Virtue we wish to promote Scope Privacy Activity we wish to control Vehicle Surveillance System possible to implement Mobile Wireless Network VANET: Technical Standards • Two stacks ▫ WSMP (Safety) ▫ TCP/IP (Other) • IEEE 1609.2 ▫ Security Services • J2735 ▫ DSRC Message Set • J2945.1 ▫ Comm. Performance (Graphic source: Kenney, 2010) First non-draft version released April 2013 IEEE 1609.2 – Security Services • Certificates and Certificate Authority Hierarchy • Formats for Public Key, Signature, Certificate, and CRL • Message Formats and Processing for Generating Encrypted Messages • Sending Messages Jared: Trust George: Privacy • Request Certificates from the CA • Request and Processing CRL Source: IEEE 1609.2 – Security Services SAE J2735 – DSRC Message Set • Basic Safety Message (BSM) • Probe Vehicle Data Message (PVDM) • Traveler Information (TIM) Image source: http://www.sae.org/exempt/misc/dsrc/docs.htm#complexType_TravelerInformation_Link0780A7A0 Crypto validates identities and keeps messages confidential Basic Crypto: Vi queries LBS • i = identity (pseudo identity, actually) • Vi = vehicle with identity, i • Cert(i) = CA-(i, Vi+, validity, authority, …) ▫ the digital certificate for Vi is the identity, the public key and the key’s valid date/time range • • • • q = query (could have used: m = message) SigVi(q) = V-[H(q),q] Query Vi →LBS (q) = LBS+[ SigVi(q) , Cert(i) ] Reply LBS→Vi (r) = Vi+[r] VANET Privacy: Properties, Techniques, Problems • Unlinkability, pseudo IDs, key management • Untrackability, synchronized pseudo ID change, sparsity/density of vehicle traffic • Scalability, no solution, sparsity/density (unpublished: FLARES addresses this issue) • Efficiency, minimize privacy message requests, efficient protocols not usually as effective • Conditionality, distributed PKI, tends to work against unlinkability VANET Privacy: PARROTS Properties, Techniques, Problems • User choice, PARROTS, driver-controlled privacy may circumvent conditionality (note: other models could offer a software switch, but none in the literature have so suggested) • Defense against collaboration, PARROTS, requires different BSM, PVM, GSM pseudo IDs PARROTS: Contribution of Paper • Model for defending against collaborative location privacy attacks in VANETs 2. PARROTS Threat Model: Collaborative Attack Attacker has access to both LBS and RSU Many models use this technique Privacy Technique: Pseudo-ID • Real identity never broadcast ▫ Ensures unlinkability • Pseudo ID changes every 5 minutes • Key distribution and certificate revocation also open research issues Certificate Authority Many models use this technique Privacy Technique: Group Leader • Vehicles travel in groups ▫ Ensures untrackability • Groups serve as mix zones • Followers synchronize pseudo ID changes (may also use silent period) • Group leader does not have privacy Original work PARROTS: Before Group Change Vi Vi and Vj drive within communication range, Vj agrees to PARROT Vj Original work PARROTS: After Group Change Vi Vj Vi Vj changes group and begins parroting Vi PARROTS: Defeats Attack Both Vi and Vj send LBS requests signed by Vi, and both locations confirmed by RSUs Vj Vj Vi Vi Problems with PARROTS Model • Vehicles would need separate sets of pseudo IDs for safety applications. The pseudo ID for the BSM cannot be the same as the pseudo ID for the TIM (or whatever message type is used for the LBS) otherwise attacker could check for BSM • Parrotee would need to construct maybe 5 mins worth of messages to send to LBS • Location cannot be part of signed request • Malicious parroter could flood LBS Crypto validates identities and keeps messages confidential Basic Crypto: Vi queries LBS • i = identity (pseudo identity, actually) • Vi = vehicle with identity, i • Cert(i) = CA-(i, Vi+, validity, authority, …) ▫ the digital certificate for Vi is the identity, the public key and the key’s valid date/time range • • • • q = query (could have used: m = message) SigVi(q) = V-[H(q),q] Query Vi →LBS (q) = LBS+[ SigVi(q) , Cert(i) ] Reply LBS→Vi (r) = Vi+[r] Conditionality Problem • PARROTS increases the complexity of conditional privacy. If LBS kept records of all requests from Vi, and RSUs kept records of all pseudo IDs of BSMs in range of RSU, then the CA could correlate pseudo IDs to identify which was the “real” request (assuming no spoofing). 3. Simulation Image source: http://vc.inf.h-bonn-rhein-sieg.de/?page_id=1025 Mobility Model: Manhattan • • • • 3000 m by 3000 m Roads every 100 m All vehicles are on roads Vehicle communication range 300 m • Cars travel average 30 m/sec Privacy Metrics • Anonymity set size: ▫ |ASi| • Entropy of anonymity set size: ▫ H(|ASi|) = Σ p(i,j) log2p(i,j) • Tracking probability: ▫ Prob(|ASi| = 1) Simulation: Python 2.7 Code # # # # # # # # # ---------------------------------------------------------------------parrots.py George Corser, January 28, 2013 Simulation of PARROTS, a VANET privacy model, wirtten in Python 2.7 PARROTS: Position Altered Random Repetition of Transporation Signature See the "Main" section at the bottom of this file to change parameters. This simulation assumes a grid of roads 100m apart on a 3000mx3000m area ---------------------------------------------------------------------- def PARROTS(t, v, parrotee_percent, parroter_percent, seednum): # Function arguments ---------------------------------------------# t is number of time slices. Each time slice is: comfreq = 300 ms # v is number of vehicles in simulation # parrotee_percent is the ratio of vehicles that wish to request parroting # parroter_percent is the ratio of vehicles that volunteer to be parrots # seednum is seed in random.seed(seednum) for random.randint() continued… continued Simulation: Python 2.7 Code # ------------------------------------------------------------------------ # # Step 1.a. Initialize vehicle locations # ------------------------------------------------------------------------ # for ti in range(1): # initialize vehicles at random coordinates on road grid for vi in range(v): # ----- Vehicles, Groups and Leaders ----------------------------- # if vi % 2 == 0: # if vi is even, let x be an even 100 and y be random x.append(100*random.randint(0,xmax/100)) y.append(random.randint(0,ymax)) else: x.append(random.randint(0,xmax)) y.append(100*random.randint(0,ymax/100)) xprior.append(0) yprior.append(0) xdir.append((-1)**random.randint(1,2)) # randomly select -1 or 1 ydir.append((-1)**random.randint(1,2)) continued… PARROT-ing almost doubles AS size Simulation: Output ti 600 600 600 600 600 600 600 600 vi 100 100 100 100 200 200 200 200 Sum Sum Sum Sum Count (as) pep prp (pe) (pr) (pas) (pas) 132 0 0 0 0 0 0 132 0 100 0 98 0 0 132 100 0 99 0 0 0 132 100 100 99 98 103 73 398 0 0 0 0 0 0 398 0 100 0 195 0 0 398 100 0 197 0 0 0 398 100 100 197 195 364 170 Average Parrotee Anonymity Set Sizes Based on Parroter Percentage after 5 mins Simulation: Graphed Output Problems with simulation • In simulation, all cars are on road. In real life cars would be in parking lots, driveways, alleys, and other places that are not roads. • In simulation, when cars reach edge of grid they turn around and go back into the grid. In real life they would leave the grid area and perhaps new cars would enter. • In simulation, cars are uniformly distributed. In real life they are concentrated in certain spots. 4. Conclusion 1. VANET Privacy 2. PARROTS Model 3. Simulation