540 likes | 692 Views
1609.1 Security. Overview. Devices need to be managed A standard for management messages reduces development and procurement costs SNMPv3 is the natural mechanism but: May be unsuited to constrained devices Does not natively support management of groups
E N D
Overview • Devices need to be managed • A standard for management messages reduces development and procurement costs • SNMPv3 is the natural mechanism but: • May be unsuited to constrained devices • Does not natively support management of groups • Does not “natively” support Quiet/Trigger commands for whole device • 1609.1 provides compact management messages, plus group addressing, plus Quiet/Trigger commands • 1609.1 has hooks for security but no explicit security mechanisms • This presentation provides analysis and architecture for security for 1609.1 • Specification of solutions at the next 1609 meeting.
Structure • *** Standard structure slide – check this at the end • Overview of management • Specific security issues • Requirements • Architecture
1609.1 Devices • Examples: • Bridge sensors • Traffic cones • Workmen’s vests • Offline • When in the field, cannot be assumed to have a connection other than via 5.9 GHz • Constrained • May need to be managed from a moving vehicle • May have constrained processors • May not be able to do public-key crypto operations quickly enough to be managed in real time • Battery lifetime • May want to deactivate or sleep remotely
Use case: faulty sensor • Sensor meant to detect icing on bridge is giving incorrect data • Bad messages being sent to traffic from device • It’s winter so it’s not a good time to physically remove the sensor • Might want to do any or all of the following: • Tell warning application to ignore messages from sensor • … if the application is using other sensors • Tell warning application to stop transmitting • … if the device has multiple applications • Tell device to stop sending messages from application • … same as previous but implemented differently • Tell device to stop sending any messages • … if it only has one application but we want to continue getting diagnostics • Tell device to sleep till March • … to save battery
Use case: traffic cones • Initialize in truck on way to site • Bulk initialization: time, ownership, warning message … • Individual initialization: exact location, crypto keying material & certs, …
Use case: daylight savings / speed limit change • Daylight savings: • Congress changes when daylight savings starts / ends, AGAIN • Want to modify any units that display or transmit local time • Speed limit: • Road is improved, speed limit rises • New laws brought in, speed limit goes down • Want to update a series of automatic speed limit notification devices /apps with the new speed limit.
Device Lifecycle Set Long-lived Parameters (e.g. owner, security) Manufacture Acquisition Configuration Deployment Operation Core Ops Maintenance Set Short-lived Parameters Administration Redeployment Reconfiguration Resale Decommissioning
Patterns of use Managed Dev • How is management initiated? • Broadcast, groupcast, unicast from field device • Advertisement (initiate session), command (will require ACK), combination? • Assume single NOC. Are there multiple field devices? • Where do management decisions get made? • Live at field device? • If field device is online to NOC, live at NOC? • Pre-recorded at NOC and distributed via field devices? • Combination of the above NOC Field Device Managed Dev Managed Dev
Skilled Field Engineer Managed Dev • Individual sessions with individual devices, or group SET/GET to devices in groups • No need for online connection with NOC. • Initial message may be advertisement or command NOC Field Device Managed Dev Managed Dev
Proxy Managed Dev • Field device proxies communications to NOC • Online connection with NOC. • Sessions initiated at field device, carried on at NOC • Initial advertisement may include an authenticated command NOC Field Device Managed Dev Managed Dev
Preload NOC Field Device Managed Dev • Field device is not online to NOC • NOC preloads commands on to field device • Field device plays commands and records responses • On return to base, field device provides report to NOC Field Device Managed Dev NOC Field Device Managed Dev
Combination Managed Dev • Some commands originate at FD, some at NOC NOC Field Device Managed Dev Managed Dev
Operational Requirements • Identify recipient of command and of response • Commands may be sent to group or to individual managed unit • Combine commands from different originators • Command messages may be proxied • Initiate management to group and continue to manage individual device
Management Protocols • SNMP v3 • Transported over IP (but may be transported over other mechanisms) • Generic access to MIBs • No specific activity commands other than GET/SET variants • Does not specifically address device identification/addressing • No “native” support for locking resources • Supports multiple security models • 1609.1 • Transported over WAVE Management (but could be defined to use other mechanisms) • Access to specific data • Capability GET, Status GET, Configuration GET and SET for 1609 stack related configuration • Additional activity commands: Quiet / Trigger • Defines identity (group and individual) for use in addressing • Locking supported via Change / Detach Manager • Security models TBD
1609.1 v WSMP • 1609.1 can be thought of as • Management language • Compressed SNMP MIB access commands for specific MIBs • Other activities (quiet/trigger) • Transport protocol specification (identifiers, locking) • Management language is extensible • Any specification that specifies a MIB may also specify a 1609.1-consistent way of accessing that MIB • Specifications may also define values for additional activities • Details of how this would be done are out of scope for this presentation • Session protocol • Implicitly uses concept of sessions (because it restricts to one manager at a time) • Allows session initialization by advertisement / response (via IDs) • Provides anonymizable address (via IDs) • Not designed to support proxying or combining commands
1609.1 session, no security Manager 1 Remote Session setup (Change Manager Request) (Response) Session Identity Command Operations Request Response Request Response Session teardown (Detach manager approve / deny)
1609.1 abstract PDU structure Transport – WAVE Management Session – Change / Detach Manager, Session ID Operations – GET/SET, Quiet / Trigger
Threat Model • Want to protect: correct operation of remote devices, information within system, privacy of employees • Airlinkis untrusted • Eavesdroppers, spoofers, replayers • NOC is secure • Remote devices and Manager devices will occasionally be compromised • Trust but verify • Need to be able to identify and remove compromised devices • Eavesdroppers may want to track field engineers or workers with HIA devices on their vests • Privacy
High level security requirements • No spoofing • Commands and responses must be authenticated • No eavesdropping • All messages except first one must be encrypted • … therefore, must be integrity-checked • … and prevent other types of attacks based on e.g. length • Auditability • Commands and responses may be signed • Only signing prevents forgery (non-repudiation) • Parties may specify which commands are signed: SET commands (including Quiet/Trigger) most important, GET responses next most, SET responses and GET commands lowest importance. • Replay protection • Messages must include timestamp, sequence number, or output of sequential function • Privacy • Public identifiers for both parties must be changeable from time to time
Authentication / Authorization • Multiple management roles / privileges • Need granularity in permissions • Privileges = permissions to affect the state of resources • Proof of permissions: • Implicit: manager ID maps to (per-property) ACL • Explicit: manager credential includes statement of permissions, explicitly encoded. • Management devices or users may be temporarily in roles / may be compromised • Management security info itself must be managed • Can introduce new IDs into the system by distributing ACL map with first use of ID
Authentication / authorization, ID + ACL model • Information flow: • Requester presents • Request + • Claimed ID + • Proof of knowledge of a secret linked to that ID • Responder: • Checks proof of knowledge. If it passes… • Uses ACL to confirm that ID has correct permissions for request. If so… • Sends response • Examples of “proof of knowledge”: • ID is in certificate, request is signed by public key in certificate • 1609.2 model • ID is used to reference symmetric key, request is MACed with that symmetric key • 1609.11 model • Authenticated ID + ACL model enables a wide range of permission granting models • From coarse (exclusive device manager access in 1609.1) • To arbitrarily fine (VACM in SNMPv3, see next slide)
Authorization based on SNMPv3 View-based Access Control Model (VACM) (from http://www.tml.tkk.fi/Opinnot/Tik-110.501/1999/papers/management/netsec.html)
Abstract protocol with security Manager 1 Remote Session / security setup Secured on a per-message basis Identify / Authenticate Manager Identify / Authenticate Remote (Request Lock) Session ID (Establish session key for encryption / integrity) Determine which messages shall be signed Operations Request Secured (confidenti-ality and integrity) by the protocol Response Request Response Session teardown Secured by protocol Change Remote ID Release Lock
1609.1 abstract PDU structure with secure session Transport – WAVE Management Addressing – Session ID Security – Integrity, Confidentiality, Replay, (Authorization, Authentication implicit) Session Management – Manage Locks Signed individual messages (optional) Operations – GET/SET, Quiet / Trigger
Handshake PDUs Manager 1 Remote Auth_M ID_M, *Lock.rq, Signing policy.rq, crypto material, freshness data *session id material, * {Requests} Auth_R, Int_{shared|R} crypto material, (freshness data) Enc_{M|shared| ID_R, *Lock.rsp, *session id material, Signing policy,.rsp, (freshness data,) *{Responses}
Protocol PDUs Manager 1 Remote Int_{M|shared}, Enc_{shared|R} * Signature_M * {Requests} Freshness data Int_{R|shared}, Enc_{shared|M} * Signature_R * {Requests} Freshness data
Protocol PDUs with proxying NOC Manager 1 Remote (some secured session) ID_R (some secured session) Auth_N_R {Requests_N}, Freshness_N Int_{M|shared}, Enc_{shared|R} * Signature_M * {Requests_M}, Freshness_M Auth_N_R {Requests_N}, Freshness_N
End of session • Explicit release or time out on symmetric keys • Explicit release or time out on resource locks • Releasing a key implies releasing the locks that were locked with that key • Symmetric keys can be maintained to reduce overhead in setting up session with known manager • Saves on public key calculations and packet size • Analogous to TLS session resumption • Note that this amounts to using a symmetric key management architecture
Overview • Initial authentication methods • Symmetric key based • Public key based • Existing candidates for secure session • Everything but “transport” and “addressing” in secured PDU picture • Want to reuse existing technology if possible rather than reinvent the wheel
Symmetric key based authentication • Symmetric key operations are very fast and low bandwidth • Support lots of models – hierarchical keys etc • Performance is a strong motivator to see if symmetric key only systems can be used
Symmetric key based authentication – principles • Managers and remote devices can’t masquerade as NOC • Compromising one manager doesn’t let an attacker masquerade as another • Compromising one remote device doesn’t let an attacker masquerade as another, or as a manager (except to the compromised device) • Compromised manager units must be withdrawn • Ie there must be some mechanism for their keys to expire, be revoked, or be superseded
Symmetric key based authentication – drawbacks • Key distribution and revocation are more complex than for public key if there are offline devices • Managing with expiry appears to require large numbers of keys on managed devices • Managing with revocation is no simpler than PKI version, possibly more complex • Because all secrets in the system are shared, any device that knows a key can masquerade as a different device that knows the same key • (To a first approximation)
Symmetric authentication, one layer of management NOC Remote K_M Initialization: {R_i, K_i = Enc_K_M(R_i) } Operations Request R_i R_i Derive K_i = Enc_K_M(R_i) Operations protected by K_i
Symmetric authentication, trusted management devices NOC Remote Manager K_M Initialization: {R_i, K_i = Enc_K_M(R_i) } Initialization: K_M Operations Request R_i R_i Derive K_i = Enc_K_M(R_i) Operations protected by K_i
Symmetric authentication, compromisable management devices NOC Remote Manager K_M K_U Initialization: {R_i, K_i = Enc_K_M(R_i), K_iU= Enc_K_U(R_i) } Initialization: K_M U for Update Operations Request R_i R_i Derive K_i = Enc_K_M(R_i) Operations protected by K_i Compromise: K_M’ {{K’_i= Enc_K_M’(R_i)} Auth with K_iU} K_M’ Resolve compromise by rekeying all devices: new key to remotes, new master to all trusted managers. Update key stays on NOC
Symmetric authentication, different classes of compromisableMgDevs NOC Remote Manager {K_M}_j K_U Initialization: {R_i, K_i_j= Enc_K_M_j(R_i), K_iU= Enc_K_U(R_i) } Initialization: K_M_c U for Update Operations Request R_i R_i Derive K_i_c= Enc_K_M_c(R_i) Operations protected by K_i_c Compromise: K_M_c’ {{K’_i_d= Enc_K_M_c’(R_i)} Auth with K_iU} K_M_c’ Different classes of manager share the same key Resolve compromise by rekeying all devices: new key to remotes, new master to all trusted managers. Update key stays on NOC.
Scalability / flexibility for symmetric key based authentication • Previous slide assumes “classes” of management devices sharing a key rather than individual keys per management device • Save space on the remote devices • Make it easier to add managers • But difficult to identify misbehaving manager from messages alone • Previous slide assumes a single remote device key for each class of management device • Save space on the remote devices • But means that misbehavior has to be addressed by revocation • Could have a set of device keys, one per time period t, derived from master key K_c_t • Management devices get only the K_c_t for their class and the time period they are expected to be in the field • Don’t need to revoke management devices, just don’t renew a compromised device’s key when it expires don’t need to reach all potential victims of the compromised device, which could be an expensive process • But this requires an additional factor of #t keys on each managed device – total keys = #c * #t • If we only have a subset of keys on each managed device we’re trading memory cost for update process cost • Symmetric key authentication summary: • Fast operations, low bandwidth • Harder to manage, harder to scale
Symmetric key based authentication • Fast operations and relatively low on bandwidth • Scalability / flexibility issues • Auditability/ non-forgeability issues • Symmetric systems are forgeable – either of the two parties to a communication can claim a message came from the other, even if the first party originated it. • No alternative solution • Privacy can be handled by having handshake contain reference to management class key that evolves over time
Public key based authentication NOC Remote Manager Pub_NOC Initialization: R_i, Pub_NOC Initialization: Cert_M (signed by NOC) Operations Cert_M Check Cert_Misn’t expired or revoked Establish symmetric key K using Cert_M Operations protected by K Compromise: CRL (signed by NOC) … or, just let Cert_M expire
Public key based authentication • Relatively slow operations, relatively high on bandwidth • Better scalability / flexibility issues • Each remote device needs a single root cert belonging to the NOC • The NOC issues Manager devices with certs whose lifetime = expected time on the road of the manager device • May be issues with getting time to managed devices, but relatively inaccurate time is still a big help. • We can handle revocation by expiry without needing large db of keys on the device • Auditability / non-forgeability issues • Asymmetric systems provide non-forgeability – if a message was signed by party X’s key, either X signed it or X has been compromised • Privacy easy to address with short-lived manager certificates • Public key summary: • Slow operations, large bandwidth • But kinder on memory, used correctly, than symmetric key, and easier management.
Authentication mechanisms: recommendation • Support both symmetric and public-key based authentication mechanisms • Continue to research symmetric mechanisms suitable for compromizable management devices • Continue to investigate SNMP security models for a suitable public key based mechanism
Candidate protocols • Existing candidates for secure session • Everything but “transport” and “addressing” in secured PDU picture • Want to reuse existing technology if possible rather than reinvent the wheel • We will focus on SNMP security mechanisms as they are specifically designed for 1609.2 use cases
SNMPv3 Packet format SNMPv3 Packet Format ------------------------- /|\ | msgVersion | | |-----------------------| | | msgID | | |-----------------------| | | msgMaxSize | | |-----------------------| | | msgFlags | scope of |-----------------------| authentication | msgSecurityModel | | |-----------------------| | | | | | msgSecurityParameters | | | | | |-----------------------| | /|\ | | | | | | | | | | | scope of | scopedPDU | | encryption | | | | | | | | | | | | | | \|/ \|/ | | ------------------------- Thanks to http://www.insanum.com/docs/usm.html
SNMPv3 User Security Model • Basic security model to be applied to SNMPv3 packet format
SNMPv3 Packet format – User Security Model (USM) SNMPv3 Packet Format ------------------------- /|\ | msgVersion | | |-----------------------| | | msgID | | |-----------------------| USM Security Parameters | | msgMaxSize | | |-----------------------| /------------------------------- | | msgFlags | / | msgAuthoritativeEngineID | scope of |-----------------------| / |-----------------------------| authentication | msgSecurityModel | / | msgAuthoritativeEngineBoots | | |-----------------------|/ |-----------------------------| | | | | msgAuthoritativeEngineTime | | | msgSecurityParameters | |-----------------------------| | | | | msgUserName | | |-----------------------|\ |-----------------------------| | /|\ | | \ | msgAuthenticationParameters | | | | | \ |-----------------------------| | | | | \ | msgPrivacyParameters | | scope of | scopedPDU | \------------------------------- | encryption | | | | | | | | | | | | | | \|/ \|/ | | ------------------------- Thanks to http://www.insanum.com/docs/usm.html