packet validation in the network environments
play

Packet Validation in the Network Environments Yingdi Yu UCLA 1 - PowerPoint PPT Presentation

Packet Validation in the Network Environments Yingdi Yu UCLA 1 Packet Authentication How to authenticate a data packet containing the electricity usage of a room at certain time? Data is signed, but how to verify the signature?


  1. Packet Validation in the Network Environments Yingdi Yu UCLA 1

  2. Packet Authentication • How to authenticate a data packet containing the electricity usage of a room at certain time? • Data is signed, but how to verify the signature? – How to get the signer’s public key? – How to authenticate the signer? – Why the signer should be trusted? – Should the signer be trusted at this moment? 2

  3. Data & Certificate Name : Certificate name Retrieved as data packets MetaInfo : • Content : (DER encoded) – public keys are just another type of content ValidityPeriod: NotBefore NotAfter Data packets are similar to certificates • PublicKeyInfo: Extensions: – data is signed SignatureInfo : Data packets are incomplete certificates • SignatureType: – no signature validity period KeyLocator: – no signature revocation information SignatureValue : Name : Certificate name Current solution: • MetaInfo : – put validity period & other extensions in Content : content PublicKeyInfo: (Still X509 format) Ideal solution: • SignatureInfo : SignatureType: – extend SignatureInfo KeyLocator: ValidityPeriod: CriticalExtension? NonCriticalExtension? SignatureValue : 3

  4. Naming Every data is named, what is the name of certificate? • A certificate binds a key to a namespace (identity) • – e.g., /<namespace>/[KeyId] • absolute KeyId: globally unqiue, e.g., key hash • relative KeyId: uniquely identify a key under the namespace, e.g, SeqNo Application interprets the namespace as some real world • identity – in BMS, “/bms/boelter/4805/electrical” is interpreted as a sensor in the Room 4805 of Boelter Hall at UCLA – in openHealth, “/ucla/haitao/ndnex/dvu” is interpreted as a health data publisher of a user “/ucla/haitao” Certificate name may include version number • – different signature versions (Key rollover) 4

  5. Public Key Fetching/Provisioning • Express an interest using the cert name in KeyLocator – certificate name of signer’s public key (w/o version) • Certificate is published somewhere – current solution: • published as NDN DNS record – /ndn/ucla/ KEY /yingdi/ksk-123/ ID-CERT /%01 • published through repo – issue: prefix aggregation • demux interest for certificate introduces extra name components in cert name – /ndn/ KEY /ucla/yingdi/ksk-123/ ID-CERT /%01 – /ndn/ucla/yingdi/ KEY /ksk-123/ ID-CERT /%01 • General certificate infrastructure? or app-specific certificate infrastructure? 5

  6. Signer Authentication • Construct a chain of trust Trust anchor /bms/KEY/dsk-376 The origin of trust /bms/boelter/KEY/dsk-821 Policy Intermediate Keys The rule to regulate the chain of trust /bms/boelter/4805/KEY/dsk-433 The tool to verify signature /bms/boelter/4805/electrical/ 20150101 6

  7. Validation Framework Origin Validation Request Info Manager Key Retrival Unverified Info Info Fetcher Policy Checker Failure Auth Info Internal Data Buffer Validation Request Trusted Info Check Trust Anchors Signature Authenticator Failure Certificate Cache Cache certificate Failure Success 7

  8. Validation Framework Origin Validation Request Info Manager Key Retrival Unverified Info Info Fetcher Policy Checker Failure Auth Info Internal Data Buffer Validation Request Trusted Info Check Trust Anchors Signature Authenticator Failure Certificate Cache Cache certificate Failure Success 8

  9. Policy • Conditions on the SignatureInfo • SignatureType – some data may require certain type of signature • algorithm • key size • KeyLocator – some data must be signed by certain parties • ValidityPeriod – signature must be valid at certain timestamp 9

  10. Policy Rules A rule consists of • a filter – a set of checkers – P Checker Filter • F Rule 1 Filter which packet should be – P Checker checked by the rule F Checker • the conditions that the packet’s P – Rule 2 Filter Checker SigInfo must meet F could be more than one sets of – valid conditions P Rule 3 Filter Checker pass one checker, pass the rule F – fail all checkers, fail the policy – P checking Checker F Order of rules matters • Rule 4 Filter P packet will be checked by the – Checker first matched rule F rules with more specific filter – should go first F 10

  11. Policy Language Configurable • rule { allow apps/users to specify its – filter { own trust models packet-type data packet-name <bms><>* } Interpretable • checker { signature-type ecdsa-sha256 library can build the validator – min-key-size 256 according to configuration key-locator { k-pattern (<>*)<KEY>(<>*)<><ID-CERT> \1\2 entities with the same – h-relation is-prefix-of configuration file share the same p-pattern (<>*) \1 trust model } if router can fetch the policy, • } router knows how to validate checker { data signature-type ecdsa-sha256 min-key-size 256 key-locator { Easy to distribute • k-pattern (<>*)<KEY>(<>*)<><ID-CERT> \1\2 h-relation is-prefix-of can be published as data packet – p-pattern <bms>(<>*) \1 data name can be fixed with – } implicit digest } } 11

  12. Multiple signature The same content object may be signed by different keys • – certificates: the same <name, key> pair may be certified by different parties • in openHealth, a doctor’s key may be signed by both patient & medical board of California in order to access the patient’s data – signature agility: different signing algorithms & key size Introduce a signature extension: OtherSignatureLocator • /.../V1/S0 /.../V1/Sn SignatureInfo: SigInfo 1 SigInfo 7 ... SigValue 1 SigValue 7 NonCriticalExtension: ... OtherSignatureLocator SigInfo 2 SigInfo 8 SigValue 2 SigValue 8 12

  13. Validation Framework Origin Validation Request Info Manager Key Retrival Unverified Info Info Fetcher Policy Checker Failure Auth Info Internal Data Buffer Validation Request Trusted Info Check Trust Anchors Signature Authenticator Failure Certificate Cache Cache certificate Failure Success 13

  14. Public key retrieval issues • Slow start – retrieve keys one-by-one, multiple RTTs – may involve more data • multiple signatures • Single point failure – validation fail if one key is missing • limited internet access • key provision failure • Key Bundle : why not ask data provider to collect keys and publish them along with the data? – fate sharing • if data can be fetched, so do the keys – efficiency • if producer collect the keys once, it can benefit many verifiers 14

  15. Key Bundle Requirements • Publisher & consumer agree on the trust policy and trust anchor /bms/KEY/dsk-376 • In BMS – single trust anchor – hierarchical policy /bms/boelter/KEY/dsk-821 • While expressing interest for data, also expressing interests for proofs /bms/boelter/4805/KEY/dsk-433 For data /bms/boelter/4805/eletrical/20150201 /bms/boelter/4805/electrical/ 20150101 For proof /bms/boelter/4805/eletrical/20150201/AUTH_INFO/ hierarchy/3d4c89ef.. /bms/boelter/KEY/dsk-821 /bms/boelter/4805/KEY/dsk-433 15

  16. Validation Framework Origin Validation Request Info Manager Key Retrival Unverified Info Info Fetcher Policy Checker Failure Auth Info Internal Data Buffer Validation Request Trusted Info Check Trust Anchors Signature Authenticator Failure Certificate Cache Cache certificate Failure Success 16

  17. Signature Verification • Start when reaching an pre-authenticated key • Check signature status – should be done after the D 0 : Original Data Success Failure signature is verified Propagate validation result – ensure the signature has Build validation path K 1 : Signing Key of D 0 Success Failure not been revoked yet K 2 : Signing Key of K 1 Success Failure • Once an intermediate K 3 : Signing Key of K 2 Success Failure signing key is validated – verify the signature of Pre-authenticate key depending packets – recursively go back to the original data packet 17

  18. Signature status checking Check if the signature has been revoked before expiration • Verifier may retrieve signature status data • SignatureInfo: – /<DataName>/[DataDigest]/[Timestamp] ... – content: (Non)CriticalExtension: StatusChecking: • signature status: good, revoked • reasons (optional): revocation reasons ForwardingHint AuthorizedSigner Introduce a signature extension StatusChecking • – ForwardingHint: where to forward the signature status interest – AuthorizedSigner: who can be trusted for signing signature status data 18

  19. Thanks! 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend