Xilinx ZYNQ7000系列安全配置策略.docx
11页Xilinx ZYNQ7000 系列安全配置策略ZYNQ7000与传统FPGA有着巨大的差异,它将自己定位为一款All Programmable Soc (软硬件 可编程片上系统),视其为以FPGA作为外设的双核ARM A9处理器更加准切它的启动过程体现 了以处理器为核心这一特点,以往植入处理器硬核的FPGA的启动过程是先启动逻辑部分,再启 动处理器,ZYNQ7000相反,先启动处理器再启动逻辑部分ZYNQ7000 配置过程ZYNQ7000的配置按先后顺序分为3个阶段:stagestaged stage2 (可选) 表1:配置步骤阶段操作stageO(图1为BOOTROM 的配置 flow)在主CPU中运行BootRom中厂家定义的codes (不可修改):1、 根据表2中pin设置使能外部NVM驱动设备;2、 读取NVM的boot Image header,确定NVM位宽、是否采用 安全配置模式及key存储位置(efuse/bbram)等,表3为header 映射表;3、 根据2读取信息确定是否采用安全配置模式,安全配置模式 下则启动PL侧的AES/HMAC安全组件;4、 根据2读取信息确定是否对读入code做RSA用户认证;5、 继续读入flash中的数据:header和FSBL;6、 根据3/4的配置对读入数据做相关安全校验,通过后存入 OCM,非安全模式下直接导入OCM;7、 CPU执行导入OCM内的FSBL,转入下一 stage;PS:安全模式下无法读取内部ROM内容,连接jtag的DAP被禁止;stagel(图 2 为 First Stage BootLoader flow,图 3 为 安全 模式下 Boot image format)此时FSBL存储在OCM:1、 根据读入的header块数据(图3)初始化MIO/CLK/DDR等 PS系统设备;2、 根据分区信息继续读取flash中的数据:配置PL (如果有 bitstream);导入应用程序到DDR;3、 移交给stage2,执行DDR中的命令:stage2导入操作系统(可选): 略。
表2: boot模式引脚映射VMODE[1]VMODE[0]BOOT MODE [4]BOOT MODE[0]BOOT MODE[2]BOOT MODE(11BOOT MODE[引MIO[8]MIO[7]MIO[6]MIO[5]MIO[4]MIO[3]MIO[2]Cascaded JTAG0Independent JTAG1Boot DevicesJTAG0000NOR001NAND010Reserved011Quad-SPI100Reserved101SD Card110Reserved111PLL ModeVMODE[1]VMODE[0]BOOT MODE R]BOOT MODE[0]BOOT MODER1BOOT MODE[i]BOOT MODE[3]MIO[8]MIO[7]MIO[6]MIO[5]MIO[4]MIO[3]MIO[2]PLL Used0PLL Bypassed1MIO Bank 0 Voltage2.5 V, 3.3 V01.8 V1MIO Bank 1 Voltage2.5 V, 3.3 V01.8 V1表3Table 6-3: BootROM Header FormatFieldsHeader Byte Address OffsetReserved for Interrupts0x000 - OxOlFWidth Detect io n0x020Image Identification0x024Encryption Status0x028User Defined0x02CSource Offset0x030Length of Image0x034Reserved0x038St日rt of Execution0x03CTotal Image Length0x040Reserved0x044Header Checksum0x048UnusedOx04C - OxOSCRegister InitializationOxOAO - 0菠&9CUnused0x8A0-0x8BFFSBL ImageOx8COPLL_ BYPASS?Bisrciaar.ax»xrthq odelrom ROM.image EncrypwhnaltzelTB ixctdeMce pending cnti» BootOU7-O^SOFTW/*fi£-RESET-STAT£i:R«e< by WDT, SW, JTAG etc)1.AI DAPD&u? Wdee are dlsabM iSPIDEN, SPNIDEN.DBGEN. NIDENiCPUO & CPU1are in VVFE state.JTAG acessis enahMver taooneFuse ppk Hasn — SM2S& ppk‘「:F5BL s^gnaureverriceucfiRSAiSPK, FSBL signaiuei— PaRn? n9-W256 (Fsetcenricace mage>> ? 、Non Secure Setuprcw DHaut F^gisier inoanzauco KKiisirap DeiBRco Bv rcm ccob.Ncn Secure SetupCPUO & CPU1are In WFE state.JTAG acess.is enabled. /Start image出Eder SearchLoad Boot Image realH ircma elected tool davlceNcn seare Regisi曰Pair InUBlIzaUcciNon Secure SetupNon Seore SetupBranch to Ertemal Flash (QSPIor NORonl^Branch l»Us«rCode氏fault MGrr»:'iy Map ®ROM Code ExitExit fromthis state isFOR ONLY.Tnd-Yes A ■lom me image cn ocm ram.Do the RSA ^xrthHiUcatlon.Exit to Useri.iCM RAMExit to User Code inExit to UserCode in QSP .'Nt.JR F站hi ewe acc«s is asBtiai JTAG access Is dIsabel Branch to User CodaUG585 C6 01 051513Figure 6-1: BootROM Configuration Flow图1图2图 3 ( UG821)二、ZYNQ7000安全策略ZYNQ7000 提供诸多安全防范模块供客户调用,根据模块的特性可以分为被动和主动两类, 被动模块主要包括多种加密、认证策略,主动模块包括JTAG关闭、温度电压监测、代码一致性 检测、特异性检测(器件DNA)等,表4详细地列出这些部件,客户可根据设计需要调用。
表 4:主被动防护模块Virtex-6, 7 Series, and Zynq Devices Silicon AT FeaturesTypeCategoryVolatile AES-256 BBRAM Key StoragePassive^1^PreventionNon-volatile AES-256 eFUSE Key StoragePassive^1^Prevention256-bit AES Bitstream DecryptionPassive ⑵PreventionHMAC SHA-256 Bitstream AuthenticationPassive ⑵PreventionRSA Asymmetric Bitstream Authentication (Zynq devices only)P&ssivq ⑴⑵PreventionHardened Readback Disabling CircuitryPassive^3)PreventionRobust Key Load Finite State Machine (FSM) CircuitryPassive ⑶PreventionJTAG DisableActivePreventionJTAG MonitorActiveDetectionInternal Configuration Memory IntegrityActiveDetectionOn-chip Temperature and Voltage Monitor/Alarms (SYSMON/XADC)ActiveDetectionPROG Intercept (PREQ/FACK)ActiveDetectionUnique Identifiers (Device DNA and User eFUSE)ActiveDetectionInternal Configuration Memory Clear (IPROG)ActiveResponseInternal AES-256 BBRAM Key Erase (KEYCLEARB)ActiveResponseGlobal 3-State (GTS)ActiveResponseGlobal Set-Reset (GSR)ActiveResponseNotes:1. Pre-configuration.2. During configuration.3. Post-configuration.主被动模块相互配合完成工程的安全设计,以下对常用的部分安全策略进行简介。
1)、RSA 用户认证:在某些情况下,设备对程序来源的合法性有很高要求:必须由合法的组织提供的程序才能启 动设备,以确保设备工作在设定的情景中,任何非法程序或对合法程序的篡改将无法让设备工 作Xilinx Z7芯片提供的RSA用户认证功能即是为了满足对程序进行合法性认证而引入的。





