Trusted ¡System ¡Elements ¡and ¡ Examples ¡ CS461/ECE422 ¡ Spring ¡2012 ¡
Reading ¡Material ¡ • Chapter ¡10 ¡in ¡the ¡text. ¡ ¡Sec@ons ¡3, ¡4, ¡and ¡5 ¡ • Intel ¡Architectures ¡SoGware ¡Developer ¡Manuals ¡ – hKp://www.intel.com/content/www/us/en/ processors/architectures-‑soGware-‑developer-‑ manuals.html ¡ • TCG ¡Specifica@on ¡Architecture ¡Overview ¡ Specifica@on ¡ – hKp://www.trustedcompu@nggroup.org/resources/ tcg_architecture_overview_version_14 ¡ – More ¡details ¡on ¡TPM ¡
What ¡is ¡a ¡Trusted ¡Computer ¡System? ¡ • A ¡system ¡that ¡employs ¡sufficient ¡hardware ¡ and ¡soGware ¡assurance ¡mechanisms ¡to ¡allow ¡ its ¡use ¡for ¡simultaneous ¡processing ¡of ¡a ¡range ¡ of ¡sensi@ve ¡or ¡classified ¡informa@on. ¡ • Implements ¡strong ¡security ¡mechanisms ¡ – Effec@ve ¡ – Expressible ¡ • High ¡assurance ¡implementa@on ¡ – Proof ¡that ¡the ¡system ¡works ¡as ¡adver@sed. ¡
Reference ¡Monitor ¡ • Regulates ¡access ¡of ¡subjects ¡to ¡objects ¡ – Access ¡policy ¡in ¡Security ¡Kernel ¡Database ¡ • Must ¡provide: ¡ – Complete ¡media@on ¡ – Isola@on ¡– ¡no ¡unauthorized ¡modifica@on ¡ – Verifiability ¡– ¡prove ¡correctness ¡of ¡ implementa@on ¡
Reference ¡Monitor ¡ Audit ¡ File ¡ Subject ¡ Subject ¡ Reference ¡ Subject ¡ Object ¡ Monitor ¡ Object ¡ Object ¡ Security ¡kernel ¡db ¡ Subject: ¡security ¡ clearance ¡ Object: ¡security ¡ classifica@on ¡
Trusted ¡Compu@ng ¡Base ¡(TCB) ¡ • TCB ¡contains ¡elements ¡of ¡hardware ¡and ¡ soGware ¡that ¡enforce ¡security ¡ – Reference ¡Monitor ¡ – SoGware/hardware ¡primi@ves ¡that ¡reference ¡ monitor ¡relies ¡on ¡ • TCB ¡must ¡be ¡tamperproof ¡ • TCB ¡cannot ¡be ¡circumvented ¡
Trojan ¡Horse ¡example ¡ • Thompson ¡Turing ¡award ¡lecture ¡ compile(source) ¡{ ¡ ¡if ¡(match(source, ¡“check_password”)) ¡{ ¡ ¡ ¡ ¡insert(source, ¡A) ¡ ¡ ¡ ¡} ¡ ¡if ¡(match(source, ¡“compile”)) ¡{ ¡ ¡ ¡ ¡insert(source, ¡B); ¡ ¡} ¡ ¡ ¡ ¡... ¡ } ¡
Memory ¡Protec@on ¡Rings ¡ • Originally ¡in ¡ Mul@cs ¡ • In ¡Intel ¡arch ¡ since ¡x386 ¡
Privilege ¡Levels ¡ • CPU ¡enforces ¡constraints ¡on ¡memory ¡access ¡and ¡ changes ¡of ¡control ¡between ¡different ¡privilege ¡levels ¡ • Similar ¡in ¡spirit ¡to ¡Bell-‑LaPadula ¡access ¡control ¡ restric@ons ¡ • Hardware ¡enforcement ¡of ¡division ¡between ¡user ¡ mode ¡and ¡kernel ¡mode ¡in ¡opera@ng ¡systems ¡ – Simple ¡malicious ¡code ¡cannot ¡jump ¡into ¡kernel ¡space ¡
Data ¡Access ¡Rules ¡ • Access ¡allowed ¡if ¡ – CPL ¡<= ¡DPL ¡and ¡RPL ¡<= ¡DPL ¡
Data ¡Access ¡Rules ¡ • Three ¡players ¡ – Code ¡segment ¡has ¡a ¡current ¡privilege ¡level ¡CPL ¡ – Operand ¡segment ¡selector ¡has ¡a ¡requested ¡privilege ¡level ¡ RPL ¡ – Data ¡Segment ¡Descriptor ¡for ¡each ¡memory ¡includes ¡a ¡data ¡ privilege ¡level ¡DPL ¡ • Segment ¡is ¡loaded ¡if ¡CPL ¡<= ¡DPL ¡and ¡RPL ¡<= ¡DPL ¡ ¡ – i.e. ¡both ¡CPL ¡and ¡RPL ¡are ¡from ¡more ¡privileged ¡rings ¡
Data ¡Access ¡Examples ¡
Calling ¡Through ¡Gates ¡ DLP
Call ¡Gate ¡Access ¡Rules ¡ • For ¡Call ¡ – CPL ¡<= ¡CG ¡DPL ¡ – RPL ¡<= ¡CG ¡DPL ¡ – Dst ¡CS ¡DPL ¡<= ¡CPL ¡ • Same ¡for ¡JMP ¡but ¡ – Dst ¡CS ¡DPL ¡== ¡CPL ¡
Call ¡Gate ¡Examples ¡
Stack ¡Switching ¡ • Automa@cally ¡performed ¡when ¡calling ¡more ¡ privileged ¡code ¡ – Prevents ¡less ¡privileged ¡code ¡from ¡passing ¡in ¡short ¡ stack ¡and ¡crashing ¡more ¡privileged ¡code ¡ – Each ¡task ¡has ¡a ¡stack ¡defined ¡for ¡each ¡privilege ¡ level ¡
Hardware ¡Rings ¡ • Only ¡most ¡basic ¡features ¡generally ¡used ¡ – 2 ¡rings ¡ – Installed ¡base ¡ • Time ¡to ¡adop@on ¡ – Must ¡wait ¡for ¡widespread ¡system ¡code, ¡e.g. ¡ Windows ¡NT ¡
Limi@ng ¡Memory ¡Access ¡Type ¡ • The ¡Pen@um ¡architecture ¡supports ¡making ¡pages ¡ read/only ¡versus ¡read/write ¡ • A ¡more ¡recent ¡development ¡is ¡the ¡Execute ¡Disable ¡ Bit ¡(XD-‑bit) ¡ – Added ¡in ¡2001 ¡ – Supported ¡by ¡Windows ¡XP ¡SP2 ¡ • Similar ¡func@onality ¡in ¡AMD ¡Altheon ¡64 ¡ – Called ¡No ¡Execute ¡bit ¡(NX-‑bit) ¡
Trusted ¡Compu@ng ¡Group ¡ • Consor@um ¡developing ¡standards ¡for ¡computer ¡ architectures ¡using ¡secure ¡co-‑processors ¡ – Called ¡the ¡Trusted ¡Plarorm ¡Module ¡(TPM) ¡ – hKp://trustedcompu@nggroup.org ¡ • Numerous ¡computers ¡(par@cularly ¡laptops) ¡already ¡ ship ¡with ¡TPM’s ¡ – Windows ¡7 ¡uses ¡TPM ¡for ¡bitlocker. ¡ ¡Secure ¡boo@ng? ¡ – Many ¡vendors ¡targe@ng ¡specific ¡enterprises ¡like ¡Health ¡ Care ¡that ¡are ¡par@cularly ¡concerned ¡with ¡privacy ¡(due ¡to ¡ HIPAA) ¡
TPM ¡Basics ¡ • TPM ¡stores ¡a ¡number ¡of ¡key ¡pairs ¡ – Private ¡Endorsement ¡Key ¡(EK) ¡encoded ¡at ¡@me ¡of ¡ manufacturing ¡ – Manufacturer ¡signs ¡Endorsement ¡cer@ficate. ¡ • TPM ¡has ¡some ¡protected ¡storage ¡ – Plarorm ¡Configura@on ¡Registers ¡(PCRs) ¡ • TPM ¡can ¡be ¡used ¡to ¡boot ¡strap ¡security ¡locally ¡ • TPM ¡can ¡respond ¡to ¡remote ¡requests ¡for ¡system ¡ data ¡ – E.g. ¡what ¡version ¡of ¡libraries ¡is ¡the ¡system ¡running ¡
TPM ¡Layout ¡
Root ¡of ¡Trust ¡for ¡Storage ¡(RTS) ¡
TPM ¡Protected ¡Message ¡Exchanges ¡ • Binding ¡– ¡Encryp@ng ¡using ¡public ¡key ¡ – If ¡using ¡non-‑migratable ¡key ¡value ¡is ¡bound ¡to ¡TPM ¡ • Signing ¡– ¡Using ¡the ¡private ¡key ¡ – Some ¡keys ¡are ¡indicated ¡as ¡signing ¡only ¡keys ¡ • Sealing ¡– ¡Binding ¡a ¡message ¡with ¡set ¡of ¡plarorm ¡ metrics ¡(expressed ¡in ¡PCRs) ¡ – So ¡can ¡only ¡unseal ¡values ¡when ¡the ¡plarorm ¡metrics ¡ match ¡ • Sealed-‑signing ¡– ¡Have ¡a ¡signature ¡also ¡be ¡con@ngent ¡ on ¡PCR ¡values ¡ ¡
TPM ¡Supported ¡Disk ¡Encryp@on ¡ • Used ¡by ¡Bitlocker ¡in ¡Windows ¡7 ¡ – hKp://windows.microsoG.com/en-‑US/windows-‑vista/ BitLocker-‑Drive-‑Encryp@on-‑Overview ¡ • TPM ¡creates ¡a ¡symmetric ¡key ¡ – Seals ¡key ¡ – Will ¡only ¡unseal ¡key ¡if ¡the ¡specified ¡system ¡ components ¡match ¡the ¡values ¡sealed ¡with ¡the ¡key ¡ • Moving ¡disk ¡to ¡another ¡system ¡will ¡fail ¡ – Key ¡can ¡only ¡be ¡decrypted ¡by ¡TPM ¡on ¡original ¡system ¡
TPM ¡Architecture ¡Overview ¡
AKesta@on ¡in ¡Boo@ng ¡ • TPM ¡leverages ¡trusted ¡building ¡blocks ¡(as ¡ shown ¡in ¡bold ¡in ¡previous ¡diagram) ¡ – CRTM ¡== ¡Core ¡root ¡of ¡trust ¡for ¡measurement ¡ • TPM ¡signs ¡system ¡state ¡using ¡an ¡AKesta@on ¡ Iden@ty ¡Key ¡(AIK) ¡ • CRTM ¡verifies ¡integrity ¡of ¡next ¡level ¡boot ¡code ¡ before ¡proceeding ¡ – Induc@vely ¡each ¡level ¡verifies ¡the ¡next ¡higher ¡level ¡
Transi@ve ¡Trust ¡
Cer@fica@on ¡Services ¡ • Measurement ¡values ¡ – Representa@on ¡of ¡data ¡or ¡program ¡code ¡ – Can ¡be ¡stored ¡anywhere ¡ • Measurement ¡digests ¡ – Hash ¡of ¡the ¡measurement ¡values ¡ – Stored ¡in ¡the ¡TPM ¡ – Fixed ¡number ¡of ¡Plarorm ¡Configura@on ¡Registers ¡(PCRs) ¡
Recommend
More recommend