精华内容
下载资源
问答
  • TimeZone可以用来获取或者规定时区,也可以用来计算时差,这里我们就来详解Java中的时区类TimeZone的用法,特别要注意下面所提到的TimeZone相关的时间校准问题.
  • 高通TrustZone4.0.5版本下的编译修改和开发入门的记录资料。讲的是TZ4.0.5的版本怎么能编译通过,并通过NON Secure App如何调用验证的文档
  • Zone.js 在 JavaScript 中实现了 Zones 的概念,其灵感来自于 Dart。 Zone 是执行过程的上下文,可以在异步任务之间进行持久性传递,你可以把它当成是类似 Java 的 TLS 线程本地存储技术,只不过是用在 JavaScript ...
  • 光纤交换机zone的划分(图文并茂).
  • 异常错误:java.sql.SQLException: The server time zone value ‘?й???’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTime...
  • 什么是zone?如何做zone?如何做好zone?运维之光纤交换机篇
  • TrustZone的白皮书以及API文档

    热门讨论 2016-03-11 10:07:38
    包含TrustZone_API_3.0_Specification.pdf、trustzone_security_whitepaper.pdf两个文件,希望研究TrustZone的朋友能更方便的找到这类资源
  • localhost.rev、localhost.zone、msvcr100d.dll、msvcr110d.dll、named.conf等在win7上利用ntbind架设Windows下的DNS服务器必要组件
  • ZONE介绍

    万次阅读 多人点赞 2020-11-19 01:44:31
    ZONE的系统介绍,附带可以开启/解除ZONE的人物一览。



    概要

    ZONE即场地效果,可由特定装备或拥有ZONE的人物通过VC或技能开启。开启后战斗画面上方会出现ZONE对应的图标。后开启的ZONE会覆盖之前的ZONE,即复数ZONE无法同时展开。除了闪击阵仅持续1回合,其他ZONE可以一直生效到被覆盖或被消除为止。
    ZONE分为属性ZONE(火水风地)、攻击类型ZONE(斩突打魔)、特殊ZONE3大类,都具有改变不同种类攻击的伤害、改变AF条增长方式这2种效果。特殊ZONE可以增加复数种量攻击的伤害,但具有特定的限制条件。

    分类ZONE名同ZONE逆ZONE其他

    烈火阵(火ZONE)水、地、雷、阴、晶、无
    水天阵(水ZONE)风、地、雷、阴、晶、无
    风王阵(风ZONE)火、水、雷、阴、晶、无
    地裂阵(地ZONE)火、风、雷、阴、晶、无



    煌斩阵(斩ZONE)突、打、魔法
    瞬突阵(突ZONE)斩、打、魔法
    轰打阵(打ZONE)斩、突、魔法
    幻魔阵(魔法ZONE)魔法斩、突、打

    闪击阵物理、魔法
    星海阵物理、魔法
    混沌阵火、水、风、地雷、阴、晶、无

    Another ZONE(ZONE觉醒)

    特定人物可以通过技能技能展开Another ZONE,对普通ZONE进行觉醒,每人每场战斗中只能觉醒1次。

    Another ZONE只能在属性/攻击类型ZONE里展开,即只有属性/攻击类型ZONE可以觉醒。觉醒后的ZONE特征如下:

    • ZONE的加伤效果2倍
    • ZONE的名称变为“極・○○陣”,且ZONE的图标增加了向上蓝箭头
    • 无法被其他ZONE、Another ZONE覆盖,但使用消ZONE技能可以连同原来的ZONE一起解除
    • 展开Another ZONE的人物阵亡后也持续
    • 觉醒2回合后连同原来的ZONE一起解除
    • 可以与“唱歌”共存

    可以觉醒ZONE的人物同时拥有ZONE的附加效果“Another Sense”,ZONE觉醒时恒常生效,但该人物阵亡时无法生效

    改变不同种类攻击的伤害

    伤害变化对敌我双方都生效。
    比例攻击(自残)及固定攻击无论有无ZONE,伤害均没有变化。

    属性ZONE

    同属性攻击伤害增至1.5倍(觉醒时2倍),逆属性伤害降至0.5倍,其他属性不变。

    攻击类型ZONE

    同类型攻击伤害增至1.3倍(觉醒时1.6倍),逆类型伤害降至0.7倍。HP回复(知性依存)技能属于魔法,也受攻击类型ZONE影响

    特殊ZONE

    闪击阵:所有物理魔法伤害&HP回复(知性依存)量增至1.3倍。
    星海阵:满AF条&非AF时,所有我方物理魔法伤害&HP回复(知性依存)量增至2倍;无论AF条长度,敌人的物理魔法伤害&HP回复(知性依存)量均降至0.8倍。
    混沌阵:火、水、风、地属性伤害剧情里增至1.75倍,通关后再战时增至2倍,其他属性不变。

    改变AF条增长方式

    ZONE时AF条增长量由ZONE种类决定,基本与攻击弱耐判定无关,并且无论是否多连都只增长1次。
    复合属性/攻击类型的技能以第1击为准,比如水锤专武的水打+水魔技能按水打算,克雷斯的无斩+火斩按无斩算。随机对象的攻击也以第1击为准,虽说此类攻击不存在复合类型所以基本没有区别,唯一有影响的是第1击若为吸收,则整个技能都增长0。
    随机对象的攻击的第1击若为吸收,则整个技能都增长0。全体攻击时当初始敌人为吸收时,无论其他判定为何,都增长0。

    各ZONE时的具体增长量如下:

    通常/弱点/耐性/无效吸収迎击带电
    同ZONE逆ZONE其他
    属性ZONE150300每连追加攻击均能使AF条增长1
    唯有吸收时为0
    攻击类型ZONE1503
    闪击阵203
    星海阵151
    混沌阵剧情里为3,通关后再战时为1不明

    “其他”包括自残/固定攻击。
    回合末追加攻击/VC攻击同上。

    特殊类ZONE的限制条件

    闪击阵:仅限开局第1回合使用。
    星海阵:对我方的伤害提升仅限满AF条&非AF时,且只有满AF条时才可以使用AF(正常情况下50%即可使用)。



    开ZONE人物

    开ZONE人物不仅可以开ZONE,还拥有特殊的被动效果,在对应ZONE里,当他们处于前排并可以正常行动(非石化混乱睡眠状态)时每回合末发动。被动效果里攻击数的计数标准如下:

    • 仅限当前回合队友的攻击
    • 无论是否多连,1回行动算1次
    • 知性依存HP回复也算魔法攻击
    • 复合属性/攻击类型的技能,只要包含符合当前ZONE的攻击便可计入
    • 复写技能算2次
    • P5联动人物的1 more及老师的专武技能「レイジングパイソン」发动2次时也只算1次
    • 迎击/回合末的追加攻击不计入
    • 于被动效果发动前死亡的队友的攻击不计入

    属性ZONE

    人物ZONE
    (开ZONE方式)
    被动效果
    火法AS火ZONE
    (VC)
    给予自身火属性攻击20%UP(1回合)×火攻击数,最大80%UP
    哈迪火ZONE
    (VC)
    给予全体队友物理暴击率15%UP(1回行动)×火攻击数,最大60%UP
    给予全体队友物理暴击伤害20%UP(1回合)×火攻击数,最大80%UP
    占卜AS火ZONE
    (VC)
    回复全体队友HP最大值的10%&10MP×火攻击数,最大40%HP&40MP
    异时层水拳火ZONE
    (VC)
    回复全体队友HP最大值的10%×火&晶攻击数,最大40%
    赋予全体队友7.5%减伤盾(1次)×火&晶攻击数,最大30%
    (任意ZONE均可发动)
    巫女AS水ZONE
    (VC)
    回复全体队友HP最大值的15%×水攻击数,最大60%
    圣骑AS水ZONE
    (技能)
    给予全体队友全属性耐性10%UP(1回合)×水攻击数,最大40%UP
    时雨AS水ZONE
    (VC)
    根据攻击数给予全体队友全属性伤害UP(1回行动),最大70%UP
    (无论有无ZONE均可发动,计数标准也与其他人不同,详见时雨个人页面)
    水镰AS水ZONE
    (VC)
    无被动效果
    风弓AS风ZONE
    (VC)
    给予全体队友腕力10%UP(1回合)×风攻击数,最大40%UP
    风法AS风ZONE
    (VC)
    给予全体队友知性10%UP(1回合)×风攻击数,最大40%UP
    异时层中二风ZONE
    (VC/技能)
    给予全体队友风属性伤害15%UP(1回合)×风攻击数,最大60%UP
    (任意ZONE均可发动)
    茶壶地ZONE
    (VC)
    给予全体队友HP最大值250UP(1回合)×地攻击数,最大1000HP
    回复全体队友HP最大值(增加后)的10%×地攻击数,最大40%
    龙枪AS地ZONE
    (VC)
    给予全体队友腕力&速度7.5%UP(1回合)×地攻击数,最大30%UP
    千代AS地ZONE
    (VC)
    给予全体队友杖装备者伤害15%UP(1回合)×魔法攻击数,最大60%UP
    给予全体队友腕力&知性7.5%UP(1回合)×地攻击数,最大30%UP
    (任意ZONE均可发动)

    攻击类型ZONE

    人物ZONE被动效果
    火剑斩ZONE
    (VC)
    给予全体队友刀、剑、斧装备者伤害15%UP(1回合)×斩攻击数,最大60%UP
    伊露露AS斩ZONE
    (VC)
    给予全体队友刀、剑、斧装备者伤害15%UP(1回合)×斩攻击数,最大60%UP
    克雷斯斩ZONE
    (VC)
    无被动效果
    会长ES斩ZONE
    (VC)
    回复全体队友5MP×斩攻击数,最大20MP
    给予全体队友刀、剑、斧装备者伤害10%UP(1回合)×斩攻击数,最大40%UP
    (任意ZONE均可发动)
    异时层会长斩ZONE
    (VC)
    给予全体队友消耗MP10%DOWN(1回合)×斩攻击数,最大40%DOWN
    给予全体队友刀、剑、斧装备者伤害10%UP(1回合)×斩攻击数,最大40%UP
    (任意ZONE均可发动)
    JK枪AS突ZONE
    (VC)
    给予全体队友弓、枪装备者伤害15%UP(1回合)×突攻击数,最大60%UP
    妖刀ES突ZONE
    (VC)
    给予全体队友弓、枪装备者伤害15%UP(1回合)×突攻击数,最大60%UP
    希拉AS突ZONE
    (VC)
    给予全体队友HP最大值250UP(1回合)×突攻击数,最大1000HP
    回复全体队友HP最大值(增加后)的10%×突攻击数,最大40%
    (任意ZONE均可发动)
    伊法打ZONE
    (VC)
    给予全体队友拳、锤装备者伤害15%UP(1回合)×打攻击数,最大60%UP
    茶壶AS打ZONE
    (VC)
    回复全体队友HP最大值的10%×打攻击数,最大40%
    赋予全体队友7.5%减伤盾(1次)×打攻击数,最大30%
    火奶AS魔法ZONE
    (VC)
    给予全体队友杖装备者伤害20%UP(1回合)×魔法攻击数,最大80%UP
    千代AS魔法ZONE
    (VC)
    给予全体队友杖装备者伤害15%UP(1回合)×魔法攻击数,最大60%UP
    给予全体队友腕力&知性7.5%UP(1回合)×地攻击数,最大30%UP
    (任意ZONE均可发动)

    特殊类ZONE

    人物ZONE
    (开ZONE方式)
    被动效果
    梅莉莎闪击阵
    (被动)
    无被动效果
    哈迪AS闪击阵
    (被动)
    无被动效果
    章鱼ES星海阵
    (VC)
    AF条100%时回复全体队友50MP


    开ZONE装备

    • 符文「陣の呪<烈火陣>」
      装备后可获得技能「展技・烈火陣(MP100)」,展开火ZONE
      入手方法:BOSS连战「時の闇を照らせし者の試練-extreme-」Stage7报酬
    • 符文「陣の呪<煌斬陣>」
      装备后可获得技能「展技・煌斬陣(MP100)」,展开斩ZONE
      入手方法:BOSS连战「時の歪を糺せし者の試練-extreme-」Stage4报酬


    觉醒ZONE人物

    可以觉醒ZONE的人物本身也可以展开ZONE,且拥有觉醒ZONE的附加效果“Another Sense”,ZONE觉醒时恒常生效,但该人物阵亡时无法生效。

    人物ZONE
    (开ZONE方式)
    Another Sense
    异时层会长斩ZONE
    (VC)
    全体队友物理&魔法暴击率100%UP
    异时层水拳火ZONE
    (VC)
    Another ZONE持续回合数+2
    异时层中二风ZONE
    (VC/技能)
    自身腕力50UP


    消ZONE人物

    以下人物可通过技能消ZONE。

    哈迪哈迪AS圣骑AS
    展开全文
  • 该库提供Time.Zone中所有命名区域的Time.Zone值,涵盖1970年至2037年之间的变化。 安装 elm install justinmimbs/timezone-data 例子 获取当地时区 TimeZone.getZone任务获取客户端的本地Time.Zone及其区域名称。 ...
  • TimeZone.getTimeZone 时区参数说明

    千次阅读 2021-04-19 20:33:42
    使用TimeZone.getTimeZone方法来获取time zone值,该方法传入一个ID参数,参数说明如下: the ID for a <code>TimeZone</code>, either an abbreviation such as "PST", a full name such as ...

    使用TimeZone.getTimeZone方法来获取time zone值,该方法传入一个ID参数,参数说明如下:

     

    the ID for a <code>TimeZone</code>, either an abbreviation
    such as "PST", a full name such as "America/Los_Angeles", or a custom
    ID such as "GMT-8:00". Note that the support of abbreviations is
    for JDK 1.1.x compatibility only and full names should be used.

     

    但ID参数值只记得寥寥几个,比如UTC、Asia/Shanghai等,为了方便以后参考,将比较全的ID值查找了一下,因此记录在这里,以备参考:

    国际时区 TimeZone ID列表

    时区显示名称,时差,时区ID

     

    1、格林威治时间,时差:0,timezone ID:Africa/Abidjan
    2、加纳时间,时差:0,timezone ID:Africa/Accra
    3、东非时间,时差:3小时,timezone ID:Africa/Addis_Ababa
    4、中欧时间,时差:1小时,timezone ID:Africa/Algiers
    5、东非时间,时差:3小时,timezone ID:Africa/Asmara
    6、东非时间,时差:3小时,timezone ID:Africa/Asmera
    7、格林威治时间,时差:0,timezone ID:Africa/Bamako
    8、西非时间,时差:1小时,timezone ID:Africa/Bangui
    9、格林威治时间,时差:0,timezone ID:Africa/Banjul
    10、格林威治时间,时差:0,timezone ID:Africa/Bissau
    11、中非时间,时差:2小时,timezone ID:Africa/Blantyre
    12、西非时间,时差:1小时,timezone ID:Africa/Brazzaville
    13、中非时间,时差:2小时,timezone ID:Africa/Bujumbura
    14、东欧时间,时差:2小时,timezone ID:Africa/Cairo
    15、西欧时间,时差:0,timezone ID:Africa/Casablanca
    16、中欧时间,时差:1小时,timezone ID:Africa/Ceuta
    17、格林威治时间,时差:0,timezone ID:Africa/Conakry
    18、格林威治时间,时差:0,timezone ID:Africa/Dakar
    19、东非时间,时差:3小时,timezone ID:Africa/Dar_es_Salaam
    20、东非时间,时差:3小时,timezone ID:Africa/Djibouti
    21、西非时间,时差:1小时,timezone ID:Africa/Douala
    22、西欧时间,时差:0,timezone ID:Africa/El_Aaiun
    23、格林威治时间,时差:0,timezone ID:Africa/Freetown
    24、中非时间,时差:2小时,timezone ID:Africa/Gaborone
    25、中非时间,时差:2小时,timezone ID:Africa/Harare
    26、南非标准时间,时差:2小时,timezone ID:Africa/Johannesburg
    27、东非时间,时差:3小时,timezone ID:Africa/Juba
    28、东非时间,时差:3小时,timezone ID:Africa/Kampala
    29、中非时间,时差:2小时,timezone ID:Africa/Khartoum
    30、中非时间,时差:2小时,timezone ID:Africa/Kigali
    31、西非时间,时差:1小时,timezone ID:Africa/Kinshasa
    32、西非时间,时差:1小时,timezone ID:Africa/Lagos
    33、西非时间,时差:1小时,timezone ID:Africa/Libreville
    34、格林威治时间,时差:0,timezone ID:Africa/Lome
    35、西非时间,时差:1小时,timezone ID:Africa/Luanda
    36、中非时间,时差:2小时,timezone ID:Africa/Lubumbashi
    37、中非时间,时差:2小时,timezone ID:Africa/Lusaka
    38、西非时间,时差:1小时,timezone ID:Africa/Malabo
    39、中非时间,时差:2小时,timezone ID:Africa/Maputo
    40、南非标准时间,时差:2小时,timezone ID:Africa/Maseru
    41、南非标准时间,时差:2小时,timezone ID:Africa/Mbabane
    42、东非时间,时差:3小时,timezone ID:Africa/Mogadishu
    43、格林威治时间,时差:0,timezone ID:Africa/Monrovia
    44、东非时间,时差:3小时,timezone ID:Africa/Nairobi
    45、西非时间,时差:1小时,timezone ID:Africa/Ndjamena
    46、西非时间,时差:1小时,timezone ID:Africa/Niamey
    47、格林威治时间,时差:0,timezone ID:Africa/Nouakchott
    48、格林威治时间,时差:0,timezone ID:Africa/Ouagadougou
    49、西非时间,时差:1小时,timezone ID:Africa/Porto-Novo
    50、西非时间,时差:1小时,timezone ID:Africa/Sao_Tome
    51、格林威治时间,时差:0,timezone ID:Africa/Timbuktu
    52、东欧时间,时差:2小时,timezone ID:Africa/Tripoli
    53、中欧时间,时差:1小时,timezone ID:Africa/Tunis
    54、中非时间,时差:2小时,timezone ID:Africa/Windhoek
    55、夏威夷标准时间,时差:-10小时,timezone ID:America/Adak
    56、阿拉斯加标准时间,时差:-9小时,timezone ID:America/Anchorage
    57、大西洋标准时间,时差:-4小时,timezone ID:America/Anguilla
    58、大西洋标准时间,时差:-4小时,timezone ID:America/Antigua
    59、巴西利亚时间,时差:-3小时,timezone ID:America/Araguaina
    60、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Buenos_Aires
    61、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Catamarca
    62、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/ComodRivadavia
    63、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Cordoba
    64、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Jujuy
    65、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/La_Rioja
    66、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Mendoza
    67、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Rio_Gallegos
    68、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Salta
    69、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/San_Juan
    70、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/San_Luis
    71、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Tucuman
    72、阿根廷时间,时差:-3小时,timezone ID:America/Argentina/Ushuaia
    73、大西洋标准时间,时差:-4小时,timezone ID:America/Aruba
    74、巴拉圭时间,时差:-4小时,timezone ID:America/Asuncion
    75、东部标准时间,时差:-5小时,timezone ID:America/Atikokan
    76、夏威夷标准时间,时差:-10小时,timezone ID:America/Atka
    77、巴西利亚时间,时差:-3小时,timezone ID:America/Bahia
    78、中央标准时间,时差:-6小时,timezone ID:America/Bahia_Banderas
    79、大西洋标准时间,时差:-4小时,timezone ID:America/Barbados
    80、巴西利亚时间,时差:-3小时,timezone ID:America/Belem
    81、中央标准时间,时差:-6小时,timezone ID:America/Belize
    82、大西洋标准时间,时差:-4小时,timezone ID:America/Blanc-Sablon
    83、亚马逊时间,时差:-4小时,timezone ID:America/Boa_Vista
    84、哥伦比亚时间,时差:-5小时,timezone ID:America/Bogota
    85、Mountain 标准时间,时差:-7小时,timezone ID:America/Boise
    86、阿根廷时间,时差:-3小时,timezone ID:America/Buenos_Aires
    87、Mountain 标准时间,时差:-7小时,timezone ID:America/Cambridge_Bay
    88、亚马逊时间,时差:-4小时,timezone ID:America/Campo_Grande
    89、东部标准时间,时差:-5小时,timezone ID:America/Cancun
    90、委内瑞拉时间,时差:-4小时,timezone ID:America/Caracas
    91、阿根廷时间,时差:-3小时,timezone ID:America/Catamarca
    92、法属圭亚那时间,时差:-3小时,timezone ID:America/Cayenne
    93、东部标准时间,时差:-5小时,timezone ID:America/Cayman
    94、中央标准时间,时差:-6小时,timezone ID:America/Chicago
    95、Mountain 标准时间,时差:-7小时,timezone ID:America/Chihuahua
    96、东部标准时间,时差:-5小时,timezone ID:America/Coral_Harbour
    97、阿根廷时间,时差:-3小时,timezone ID:America/Cordoba
    98、中央标准时间,时差:-6小时,timezone ID:America/Costa_Rica
    99、Mountain 标准时间,时差:-7小时,timezone ID:America/Creston
    100、亚马逊时间,时差:-4小时,timezone ID:America/Cuiaba
    101、大西洋标准时间,时差:-4小时,timezone ID:America/Curacao
    102、格林威治时间,时差:0,timezone ID:America/Danmarkshavn
    103、太平洋标准时间,时差:-8小时,timezone ID:America/Dawson
    104、Mountain 标准时间,时差:-7小时,timezone ID:America/Dawson_Creek
    105、Mountain 标准时间,时差:-7小时,timezone ID:America/Denver
    106、东部标准时间,时差:-5小时,timezone ID:America/Detroit
    107、大西洋标准时间,时差:-4小时,timezone ID:America/Dominica
    108、Mountain 标准时间,时差:-7小时,timezone ID:America/Edmonton
    109、Acre 时间,时差:-5小时,timezone ID:America/Eirunepe
    110、中央标准时间,时差:-6小时,timezone ID:America/El_Salvador
    111、太平洋标准时间,时差:-8小时,timezone ID:America/Ensenada
    112、Mountain 标准时间,时差:-7小时,timezone ID:America/Fort_Nelson
    113、东部标准时间,时差:-5小时,timezone ID:America/Fort_Wayne
    114、巴西利亚时间,时差:-3小时,timezone ID:America/Fortaleza
    115、大西洋标准时间,时差:-4小时,timezone ID:America/Glace_Bay
    116、西格林兰岛时间,时差:-3小时,timezone ID:America/Godthab
    117、大西洋标准时间,时差:-4小时,timezone ID:America/Goose_Bay
    118、大西洋标准时间,时差:-5小时,timezone ID:America/Grand_Turk
    119、大西洋标准时间,时差:-4小时,timezone ID:America/Grenada
    120、大西洋标准时间,时差:-4小时,timezone ID:America/Guadeloupe
    121、中央标准时间,时差:-6小时,timezone ID:America/Guatemala
    122、厄瓜多尔时间,时差:-5小时,timezone ID:America/Guayaquil
    123、圭亚那时间,时差:-4小时,timezone ID:America/Guyana
    124、大西洋标准时间,时差:-4小时,timezone ID:America/Halifax
    125、古巴标准时间,时差:-5小时,timezone ID:America/Havana
    126、Mountain 标准时间,时差:-7小时,timezone ID:America/Hermosillo
    127、东部标准时间,时差:-5小时,timezone ID:America/Indiana/Indianapolis
    128、中央标准时间,时差:-6小时,timezone ID:America/Indiana/Knox
    129、东部标准时间,时差:-5小时,timezone ID:America/Indiana/Marengo
    130、东部标准时间,时差:-5小时,timezone ID:America/Indiana/Petersburg
    131、中央标准时间,时差:-6小时,timezone ID:America/Indiana/Tell_City
    132、东部标准时间,时差:-5小时,timezone ID:America/Indiana/Vevay
    133、东部标准时间,时差:-5小时,timezone ID:America/Indiana/Vincennes
    134、东部标准时间,时差:-5小时,timezone ID:America/Indiana/Winamac
    135、东部标准时间,时差:-5小时,timezone ID:America/Indianapolis
    136、Mountain 标准时间,时差:-7小时,timezone ID:America/Inuvik
    137、东部标准时间,时差:-5小时,timezone ID:America/Iqaluit
    138、东部标准时间,时差:-5小时,timezone ID:America/Jamaica
    139、阿根廷时间,时差:-3小时,timezone ID:America/Jujuy
    140、阿拉斯加标准时间,时差:-9小时,timezone ID:America/Juneau
    141、东部标准时间,时差:-5小时,timezone ID:America/Kentucky/Louisville
    142、东部标准时间,时差:-5小时,timezone ID:America/Kentucky/Monticello
    143、中央标准时间,时差:-6小时,timezone ID:America/Knox_IN
    144、大西洋标准时间,时差:-4小时,timezone ID:America/Kralendijk
    145、玻利维亚时间,时差:-4小时,timezone ID:America/La_Paz
    146、秘鲁时间,时差:-5小时,timezone ID:America/Lima
    147、太平洋标准时间,时差:-8小时,timezone ID:America/Los_Angeles
    148、东部标准时间,时差:-5小时,timezone ID:America/Louisville
    149、大西洋标准时间,时差:-4小时,timezone ID:America/Lower_Princes
    150、巴西利亚时间,时差:-3小时,timezone ID:America/Maceio
    151、中央标准时间,时差:-6小时,timezone ID:America/Managua
    152、亚马逊时间,时差:-4小时,timezone ID:America/Manaus
    153、大西洋标准时间,时差:-4小时,timezone ID:America/Marigot
    154、大西洋标准时间,时差:-4小时,timezone ID:America/Martinique
    155、中央标准时间,时差:-6小时,timezone ID:America/Matamoros
    156、Mountain 标准时间,时差:-7小时,timezone ID:America/Mazatlan
    157、阿根廷时间,时差:-3小时,timezone ID:America/Mendoza
    158、中央标准时间,时差:-6小时,timezone ID:America/Menominee
    159、中央标准时间,时差:-6小时,timezone ID:America/Merida
    160、阿拉斯加标准时间,时差:-9小时,timezone ID:America/Metlakatla
    161、中央标准时间,时差:-6小时,timezone ID:America/Mexico_City
    162、皮埃尔岛及密克隆岛标准时间,时差:-3小时,timezone ID:America/Miquelon
    163、大西洋标准时间,时差:-4小时,timezone ID:America/Moncton
    164、中央标准时间,时差:-6小时,timezone ID:America/Monterrey
    165、乌拉圭时间,时差:-3小时,timezone ID:America/Montevideo
    166、东部标准时间,时差:-5小时,timezone ID:America/Montreal
    167、大西洋标准时间,时差:-4小时,timezone ID:America/Montserrat
    168、东部标准时间,时差:-5小时,timezone ID:America/Nassau
    169、东部标准时间,时差:-5小时,timezone ID:America/New_York
    170、东部标准时间,时差:-5小时,timezone ID:America/Nipigon
    171、阿拉斯加标准时间,时差:-9小时,timezone ID:America/Nome
    172、费尔南多德诺罗尼亚时间,时差:-2小时,timezone ID:America/Noronha
    173、中央标准时间,时差:-6小时,timezone ID:America/North_Dakota/Beulah
    174、中央标准时间,时差:-6小时,timezone ID:America/North_Dakota/Center
    175、中央标准时间,时差:-6小时,timezone ID:America/North_Dakota/New_Salem
    176、Mountain 标准时间,时差:-7小时,timezone ID:America/Ojinaga
    177、东部标准时间,时差:-5小时,timezone ID:America/Panama
    178、东部标准时间,时差:-5小时,timezone ID:America/Pangnirtung
    179、苏利南时间,时差:-3小时,timezone ID:America/Paramaribo
    180、Mountain 标准时间,时差:-7小时,timezone ID:America/Phoenix
    181、东部标准时间,时差:-5小时,timezone ID:America/Port-au-Prince
    182、大西洋标准时间,时差:-4小时,timezone ID:America/Port_of_Spain
    183、Acre 时间,时差:-5小时,timezone ID:America/Porto_Acre
    184、亚马逊时间,时差:-4小时,timezone ID:America/Porto_Velho
    185、大西洋标准时间,时差:-4小时,timezone ID:America/Puerto_Rico
    186、GMT-03:00,时差:-3小时,timezone ID:America/Punta_Arenas
    187、中央标准时间,时差:-6小时,timezone ID:America/Rainy_River
    188、中央标准时间,时差:-6小时,timezone ID:America/Rankin_Inlet
    189、巴西利亚时间,时差:-3小时,timezone ID:America/Recife
    190、中央标准时间,时差:-6小时,timezone ID:America/Regina
    191、中央标准时间,时差:-6小时,timezone ID:America/Resolute
    192、Acre 时间,时差:-5小时,timezone ID:America/Rio_Branco
    193、阿根廷时间,时差:-3小时,timezone ID:America/Rosario
    194、太平洋标准时间,时差:-8小时,timezone ID:America/Santa_Isabel
    195、巴西利亚时间,时差:-3小时,timezone ID:America/Santarem
    196、智利时间,时差:-4小时,timezone ID:America/Santiago
    197、大西洋标准时间,时差:-4小时,timezone ID:America/Santo_Domingo
    198、巴西利亚时间,时差:-3小时,timezone ID:America/Sao_Paulo
    199、东格林岛时间,时差:-1小时,timezone ID:America/Scoresbysund
    200、Mountain 标准时间,时差:-7小时,timezone ID:America/Shiprock
    201、阿拉斯加标准时间,时差:-9小时,timezone ID:America/Sitka
    202、大西洋标准时间,时差:-4小时,timezone ID:America/St_Barthelemy
    203、纽芬兰标准时间,时差:-3小时,timezone ID:America/St_Johns
    204、大西洋标准时间,时差:-4小时,timezone ID:America/St_Kitts
    205、大西洋标准时间,时差:-4小时,timezone ID:America/St_Lucia
    206、大西洋标准时间,时差:-4小时,timezone ID:America/St_Thomas
    207、大西洋标准时间,时差:-4小时,timezone ID:America/St_Vincent
    208、中央标准时间,时差:-6小时,timezone ID:America/Swift_Current
    209、中央标准时间,时差:-6小时,timezone ID:America/Tegucigalpa
    210、大西洋标准时间,时差:-4小时,timezone ID:America/Thule
    211、东部标准时间,时差:-5小时,timezone ID:America/Thunder_Bay
    212、太平洋标准时间,时差:-8小时,timezone ID:America/Tijuana
    213、东部标准时间,时差:-5小时,timezone ID:America/Toronto
    214、大西洋标准时间,时差:-4小时,timezone ID:America/Tortola
    215、太平洋标准时间,时差:-8小时,timezone ID:America/Vancouver
    216、大西洋标准时间,时差:-4小时,timezone ID:America/Virgin
    217、太平洋标准时间,时差:-8小时,timezone ID:America/Whitehorse
    218、中央标准时间,时差:-6小时,timezone ID:America/Winnipeg
    219、阿拉斯加标准时间,时差:-9小时,timezone ID:America/Yakutat
    220、Mountain 标准时间,时差:-7小时,timezone ID:America/Yellowknife
    221、西部标准时间 (澳大利亚),时差:11小时,timezone ID:Antarctica/Casey
    222、戴维斯时间,时差:7小时,timezone ID:Antarctica/Davis
    223、Dumont-d'Urville 时间,时差:10小时,timezone ID:Antarctica/DumontDUrville
    224、麦夸里岛时间,时差:11小时,timezone ID:Antarctica/Macquarie
    225、莫森时间,时差:5小时,timezone ID:Antarctica/Mawson
    226、新西兰标准时间,时差:12小时,timezone ID:Antarctica/McMurdo
    227、智利时间,时差:-3小时,timezone ID:Antarctica/Palmer
    228、罗瑟拉时间,时差:-3小时,timezone ID:Antarctica/Rothera
    229、新西兰标准时间,时差:12小时,timezone ID:Antarctica/South_Pole
    230、Syowa 时间,时差:3小时,timezone ID:Antarctica/Syowa
    231、协调世界时间,时差:0,timezone ID:Antarctica/Troll
    232、莫斯托克时间,时差:6小时,timezone ID:Antarctica/Vostok
    233、中欧时间,时差:1小时,timezone ID:Arctic/Longyearbyen
    234、阿拉伯标准时间,时差:3小时,timezone ID:Asia/Aden
    235、Alma-Ata 时间,时差:6小时,timezone ID:Asia/Almaty
    236、东欧时间,时差:2小时,timezone ID:Asia/Amman
    237、阿那底河时间,时差:12小时,timezone ID:Asia/Anadyr
    238、Aqtau 时间,时差:5小时,timezone ID:Asia/Aqtau
    239、Aqtobe 时间,时差:5小时,timezone ID:Asia/Aqtobe
    240、土库曼时间,时差:5小时,timezone ID:Asia/Ashgabat
    241、土库曼时间,时差:5小时,timezone ID:Asia/Ashkhabad
    242、GMT+05:00,时差:5小时,timezone ID:Asia/Atyrau
    243、阿拉伯标准时间,时差:3小时,timezone ID:Asia/Baghdad
    244、阿拉伯标准时间,时差:3小时,timezone ID:Asia/Bahrain
    245、亚塞拜然时间,时差:4小时,timezone ID:Asia/Baku
    246、印度支那时间,时差:7小时,timezone ID:Asia/Bangkok
    247、GMT+07:00,时差:7小时,timezone ID:Asia/Barnaul
    248、东欧时间,时差:2小时,timezone ID:Asia/Beirut
    249、吉尔吉斯斯坦时间,时差:6小时,timezone ID:Asia/Bishkek
    250、文莱时间,时差:8小时,timezone ID:Asia/Brunei
    251、印度标准时间,时差:5小时,timezone ID:Asia/Calcutta
    252、亚库次克时间,时差:9小时,timezone ID:Asia/Chita
    253、Choibalsan 时间,时差:8小时,timezone ID:Asia/Choibalsan
    254、中国标准时间,时差:8小时,timezone ID:Asia/Chongqing
    255、中国标准时间,时差:8小时,timezone ID:Asia/Chungking
    256、印度标准时间,时差:5小时,timezone ID:Asia/Colombo
    257、孟加拉时间,时差:6小时,timezone ID:Asia/Dacca
    258、东欧时间,时差:2小时,timezone ID:Asia/Damascus
    259、孟加拉时间,时差:6小时,timezone ID:Asia/Dhaka
    260、东帝汶时间,时差:9小时,timezone ID:Asia/Dili
    261、波斯湾标准时间,时差:4小时,timezone ID:Asia/Dubai
    262、塔吉克斯坦时间,时差:5小时,timezone ID:Asia/Dushanbe
    263、GMT+02:00,时差:2小时,timezone ID:Asia/Famagusta
    264、东欧时间,时差:2小时,timezone ID:Asia/Gaza
    265、中国标准时间,时差:8小时,timezone ID:Asia/Harbin
    266、东欧时间,时差:2小时,timezone ID:Asia/Hebron
    267、印度支那时间,时差:7小时,timezone ID:Asia/Ho_Chi_Minh
    268、香港时间,时差:8小时,timezone ID:Asia/Hong_Kong
    269、科布多时间,时差:7小时,timezone ID:Asia/Hovd
    270、伊尔库次克时间,时差:8小时,timezone ID:Asia/Irkutsk
    271、东欧时间,时差:3小时,timezone ID:Asia/Istanbul
    272、西印度尼西亚时间,时差:7小时,timezone ID:Asia/Jakarta
    273、东印度尼西亚时间,时差:9小时,timezone ID:Asia/Jayapura
    274、以色列标准时间,时差:2小时,timezone ID:Asia/Jerusalem
    275、阿富汗时间,时差:4小时,timezone ID:Asia/Kabul
    276、彼得罗巴甫洛夫斯克时间,时差:12小时,timezone ID:Asia/Kamchatka
    277、巴基斯坦时间,时差:5小时,timezone ID:Asia/Karachi
    278、中国标准时间,时差:6小时,timezone ID:Asia/Kashgar
    279、尼泊尔时间,时差:5小时,timezone ID:Asia/Kathmandu
    280、尼泊尔时间,时差:5小时,timezone ID:Asia/Katmandu
    281、亚库次克时间,时差:9小时,timezone ID:Asia/Khandyga
    282、印度标准时间,时差:5小时,timezone ID:Asia/Kolkata
    283、克拉斯诺亚尔斯克时间,时差:7小时,timezone ID:Asia/Krasnoyarsk
    284、马来西亚时间,时差:8小时,timezone ID:Asia/Kuala_Lumpur
    285、马来西亚时间,时差:8小时,timezone ID:Asia/Kuching
    286、阿拉伯标准时间,时差:3小时,timezone ID:Asia/Kuwait
    287、中国标准时间,时差:8小时,timezone ID:Asia/Macao
    288、中国标准时间,时差:8小时,timezone ID:Asia/Macau
    289、Magadan 时间,时差:11小时,timezone ID:Asia/Magadan
    290、中部印度尼西亚时间,时差:8小时,timezone ID:Asia/Makassar
    291、菲律宾时间,时差:8小时,timezone ID:Asia/Manila
    292、波斯湾标准时间,时差:4小时,timezone ID:Asia/Muscat
    293、东欧时间,时差:2小时,timezone ID:Asia/Nicosia
    294、克拉斯诺亚尔斯克时间,时差:7小时,timezone ID:Asia/Novokuznetsk
    295、Novosibirsk 时间,时差:7小时,timezone ID:Asia/Novosibirsk
    296、鄂木斯克时间,时差:6小时,timezone ID:Asia/Omsk
    297、Oral 时间,时差:5小时,timezone ID:Asia/Oral
    298、印度支那时间,时差:7小时,timezone ID:Asia/Phnom_Penh
    299、西印度尼西亚时间,时差:7小时,timezone ID:Asia/Pontianak
    300、韩国标准时间,时差:8小时,timezone ID:Asia/Pyongyang
    301、阿拉伯标准时间,时差:3小时,timezone ID:Asia/Qatar
    302、Qyzylorda 时间,时差:6小时,timezone ID:Asia/Qyzylorda
    303、缅甸时间,时差:6小时,timezone ID:Asia/Rangoon
    304、阿拉伯标准时间,时差:3小时,timezone ID:Asia/Riyadh
    305、印度支那时间,时差:7小时,timezone ID:Asia/Saigon
    306、库页岛时间,时差:11小时,timezone ID:Asia/Sakhalin
    307、乌兹别克斯坦时间,时差:5小时,timezone ID:Asia/Samarkand
    308、韩国标准时间,时差:9小时,timezone ID:Asia/Seoul
    309、中国标准时间,时差:8小时,timezone ID:Asia/Shanghai
    310、新加坡时间,时差:8小时,timezone ID:Asia/Singapore
    311、Srednekolymsk Time,时差:11小时,timezone ID:Asia/Srednekolymsk
    312、中国标准时间,时差:8小时,timezone ID:Asia/Taipei
    313、乌兹别克斯坦时间,时差:5小时,timezone ID:Asia/Tashkent
    314、乔治亚时间,时差:4小时,timezone ID:Asia/Tbilisi
    315、伊朗标准时间,时差:3小时,timezone ID:Asia/Tehran
    316、以色列标准时间,时差:2小时,timezone ID:Asia/Tel_Aviv
    317、不丹时间,时差:6小时,timezone ID:Asia/Thimbu
    318、不丹时间,时差:6小时,timezone ID:Asia/Thimphu
    319、日本标准时间,时差:9小时,timezone ID:Asia/Tokyo
    320、GMT+07:00,时差:7小时,timezone ID:Asia/Tomsk
    321、中部印度尼西亚时间,时差:8小时,timezone ID:Asia/Ujung_Pandang
    322、库伦时间,时差:8小时,timezone ID:Asia/Ulaanbaatar
    323、库伦时间,时差:8小时,timezone ID:Asia/Ulan_Bator
    324、中国标准时间,时差:6小时,timezone ID:Asia/Urumqi
    325、乌斯季涅拉时间,时差:10小时,timezone ID:Asia/Ust-Nera
    326、印度支那时间,时差:7小时,timezone ID:Asia/Vientiane
    327、海参崴时间,时差:10小时,timezone ID:Asia/Vladivostok
    328、亚库次克时间,时差:9小时,timezone ID:Asia/Yakutsk
    329、缅甸时间,时差:6小时,timezone ID:Asia/Yangon
    330、Yekaterinburg 时间,时差:5小时,timezone ID:Asia/Yekaterinburg
    331、亚美尼亚时间,时差:4小时,timezone ID:Asia/Yerevan
    332、亚速尔群岛时间,时差:-1小时,timezone ID:Atlantic/Azores
    333、大西洋标准时间,时差:-4小时,timezone ID:Atlantic/Bermuda
    334、西欧时间,时差:0,timezone ID:Atlantic/Canary
    335、佛德角时间,时差:-1小时,timezone ID:Atlantic/Cape_Verde
    336、西欧时间,时差:0,timezone ID:Atlantic/Faeroe
    337、西欧时间,时差:0,timezone ID:Atlantic/Faroe
    338、中欧时间,时差:1小时,timezone ID:Atlantic/Jan_Mayen
    339、西欧时间,时差:0,timezone ID:Atlantic/Madeira
    340、格林威治时间,时差:0,timezone ID:Atlantic/Reykjavik
    341、南乔治亚标准时间,时差:-2小时,timezone ID:Atlantic/South_Georgia
    342、格林威治时间,时差:0,timezone ID:Atlantic/St_Helena
    343、福克兰群岛时间,时差:-3小时,timezone ID:Atlantic/Stanley
    344、东部标准时间 (新南威尔斯),时差:10小时,timezone ID:Australia/ACT
    345、中央标准时间 (南澳大利亚),时差:9小时,timezone ID:Australia/Adelaide
    346、东部标准时间 (昆士兰),时差:10小时,timezone ID:Australia/Brisbane
    347、中央标准时间 (南澳大利亚/新南威尔斯),时差:9小时,timezone ID:Australia/Broken_Hill
    348、东部标准时间 (新南威尔斯),时差:10小时,timezone ID:Australia/Canberra
    349、东部标准时间 (新南威尔斯),时差:10小时,timezone ID:Australia/Currie
    350、中央标准时间 (北领地),时差:9小时,timezone ID:Australia/Darwin
    351、中西部标准时间 (澳大利亚),时差:8小时,timezone ID:Australia/Eucla
    352、东部标准时间 (塔斯马尼亚),时差:10小时,timezone ID:Australia/Hobart
    353、豪公标准时间,时差:10小时,timezone ID:Australia/LHI
    354、东部标准时间 (昆士兰),时差:10小时,timezone ID:Australia/Lindeman
    355、豪公标准时间,时差:10小时,timezone ID:Australia/Lord_Howe
    356、东部标准时间 (维多利亚),时差:10小时,timezone ID:Australia/Melbourne
    357、东部标准时间 (新南威尔斯),时差:10小时,timezone ID:Australia/NSW
    358、中央标准时间 (北领地),时差:9小时,timezone ID:Australia/North
    359、西部标准时间 (澳大利亚),时差:8小时,timezone ID:Australia/Perth
    360、东部标准时间 (昆士兰),时差:10小时,timezone ID:Australia/Queensland
    361、中央标准时间 (南澳大利亚),时差:9小时,timezone ID:Australia/South
    362、东部标准时间 (新南威尔斯),时差:10小时,timezone ID:Australia/Sydney
    363、东部标准时间 (塔斯马尼亚),时差:10小时,timezone ID:Australia/Tasmania
    364、东部标准时间 (维多利亚),时差:10小时,timezone ID:Australia/Victoria
    365、西部标准时间 (澳大利亚),时差:8小时,timezone ID:Australia/West
    366、中央标准时间 (南澳大利亚/新南威尔斯),时差:9小时,timezone ID:Australia/Yancowinna
    367、Acre 时间,时差:-5小时,timezone ID:Brazil/Acre
    368、费尔南多德诺罗尼亚时间,时差:-2小时,timezone ID:Brazil/DeNoronha
    369、巴西利亚时间,时差:-3小时,timezone ID:Brazil/East
    370、亚马逊时间,时差:-4小时,timezone ID:Brazil/West
    371、中欧时间,时差:1小时,timezone ID:CET
    372、中央标准时间,时差:-6小时,timezone ID:CST6CDT
    373、大西洋标准时间,时差:-4小时,timezone ID:Canada/Atlantic
    374、中央标准时间,时差:-6小时,timezone ID:Canada/Central
    375、东部标准时间,时差:-5小时,timezone ID:Canada/Eastern
    376、Mountain 标准时间,时差:-7小时,timezone ID:Canada/Mountain
    377、纽芬兰标准时间,时差:-3小时,timezone ID:Canada/Newfoundland
    378、太平洋标准时间,时差:-8小时,timezone ID:Canada/Pacific
    379、中央标准时间,时差:-6小时,timezone ID:Canada/Saskatchewan
    380、太平洋标准时间,时差:-8小时,timezone ID:Canada/Yukon
    381、智利时间,时差:-4小时,timezone ID:Chile/Continental
    382、复活岛时间,时差:-6小时,timezone ID:Chile/EasterIsland
    383、古巴标准时间,时差:-5小时,timezone ID:Cuba
    384、东欧时间,时差:2小时,timezone ID:EET
    385、东部标准时间,时差:-5小时,timezone ID:EST5EDT
    386、东欧时间,时差:2小时,timezone ID:Egypt
    387、格林威治时间,时差:0,timezone ID:Eire
    388、格林威治时间,时差:0,timezone ID:Etc/GMT
    389、格林威治时间,时差:0,timezone ID:Etc/GMT+0
    390、GMT-01:00,时差:-1小时,timezone ID:Etc/GMT+1
    391、GMT-10:00,时差:-10小时,timezone ID:Etc/GMT+10
    392、GMT-11:00,时差:-11小时,timezone ID:Etc/GMT+11
    393、GMT-12:00,时差:-12小时,timezone ID:Etc/GMT+12
    394、GMT-02:00,时差:-2小时,timezone ID:Etc/GMT+2
    395、GMT-03:00,时差:-3小时,timezone ID:Etc/GMT+3
    396、GMT-04:00,时差:-4小时,timezone ID:Etc/GMT+4
    397、GMT-05:00,时差:-5小时,timezone ID:Etc/GMT+5
    398、GMT-06:00,时差:-6小时,timezone ID:Etc/GMT+6
    399、GMT-07:00,时差:-7小时,timezone ID:Etc/GMT+7
    400、GMT-08:00,时差:-8小时,timezone ID:Etc/GMT+8
    401、GMT-09:00,时差:-9小时,timezone ID:Etc/GMT+9
    402、格林威治时间,时差:0,timezone ID:Etc/GMT-0
    403、GMT+01:00,时差:1小时,timezone ID:Etc/GMT-1
    404、GMT+10:00,时差:10小时,timezone ID:Etc/GMT-10
    405、GMT+11:00,时差:11小时,timezone ID:Etc/GMT-11
    406、GMT+12:00,时差:12小时,timezone ID:Etc/GMT-12
    407、GMT+13:00,时差:13小时,timezone ID:Etc/GMT-13
    408、GMT+14:00,时差:14小时,timezone ID:Etc/GMT-14
    409、GMT+02:00,时差:2小时,timezone ID:Etc/GMT-2
    410、GMT+03:00,时差:3小时,timezone ID:Etc/GMT-3
    411、GMT+04:00,时差:4小时,timezone ID:Etc/GMT-4
    412、GMT+05:00,时差:5小时,timezone ID:Etc/GMT-5
    413、GMT+06:00,时差:6小时,timezone ID:Etc/GMT-6
    414、GMT+07:00,时差:7小时,timezone ID:Etc/GMT-7
    415、GMT+08:00,时差:8小时,timezone ID:Etc/GMT-8
    416、GMT+09:00,时差:9小时,timezone ID:Etc/GMT-9
    417、格林威治时间,时差:0,timezone ID:Etc/GMT0
    418、格林威治时间,时差:0,timezone ID:Etc/Greenwich
    419、协调世界时间,时差:0,timezone ID:Etc/UCT
    420、协调世界时间,时差:0,timezone ID:Etc/UTC
    421、协调世界时间,时差:0,timezone ID:Etc/Universal
    422、协调世界时间,时差:0,timezone ID:Etc/Zulu
    423、中欧时间,时差:1小时,timezone ID:Europe/Amsterdam
    424、中欧时间,时差:1小时,timezone ID:Europe/Andorra
    425、GMT+04:00,时差:4小时,timezone ID:Europe/Astrakhan
    426、东欧时间,时差:2小时,timezone ID:Europe/Athens
    427、格林威治时间,时差:0,timezone ID:Europe/Belfast
    428、中欧时间,时差:1小时,timezone ID:Europe/Belgrade
    429、中欧时间,时差:1小时,timezone ID:Europe/Berlin
    430、中欧时间,时差:1小时,timezone ID:Europe/Bratislava
    431、中欧时间,时差:1小时,timezone ID:Europe/Brussels
    432、东欧时间,时差:2小时,timezone ID:Europe/Bucharest
    433、中欧时间,时差:1小时,timezone ID:Europe/Budapest
    434、中欧时间,时差:1小时,timezone ID:Europe/Busingen
    435、东欧时间,时差:2小时,timezone ID:Europe/Chisinau
    436、中欧时间,时差:1小时,timezone ID:Europe/Copenhagen
    437、格林威治时间,时差:0,timezone ID:Europe/Dublin
    438、中欧时间,时差:1小时,timezone ID:Europe/Gibraltar
    439、格林威治时间,时差:0,timezone ID:Europe/Guernsey
    440、东欧时间,时差:2小时,timezone ID:Europe/Helsinki
    441、格林威治时间,时差:0,timezone ID:Europe/Isle_of_Man
    442、东欧时间,时差:3小时,timezone ID:Europe/Istanbul
    443、格林威治时间,时差:0,timezone ID:Europe/Jersey
    444、东欧时间,时差:2小时,timezone ID:Europe/Kaliningrad
    445、东欧时间,时差:2小时,timezone ID:Europe/Kiev
    446、GMT+03:00,时差:3小时,timezone ID:Europe/Kirov
    447、西欧时间,时差:0,timezone ID:Europe/Lisbon
    448、中欧时间,时差:1小时,timezone ID:Europe/Ljubljana
    449、格林威治时间,时差:0,timezone ID:Europe/London
    450、中欧时间,时差:1小时,timezone ID:Europe/Luxembourg
    451、中欧时间,时差:1小时,timezone ID:Europe/Madrid
    452、中欧时间,时差:1小时,timezone ID:Europe/Malta
    453、东欧时间,时差:2小时,timezone ID:Europe/Mariehamn
    454、莫斯科标准时间,时差:3小时,timezone ID:Europe/Minsk
    455、中欧时间,时差:1小时,timezone ID:Europe/Monaco
    456、莫斯科标准时间,时差:3小时,timezone ID:Europe/Moscow
    457、东欧时间,时差:2小时,timezone ID:Europe/Nicosia
    458、中欧时间,时差:1小时,timezone ID:Europe/Oslo
    459、中欧时间,时差:1小时,timezone ID:Europe/Paris
    460、中欧时间,时差:1小时,timezone ID:Europe/Podgorica
    461、中欧时间,时差:1小时,timezone ID:Europe/Prague
    462、东欧时间,时差:2小时,timezone ID:Europe/Riga
    463、中欧时间,时差:1小时,timezone ID:Europe/Rome
    464、沙马拉时间,时差:4小时,timezone ID:Europe/Samara
    465、中欧时间,时差:1小时,timezone ID:Europe/San_Marino
    466、中欧时间,时差:1小时,timezone ID:Europe/Sarajevo
    467、GMT+04:00,时差:4小时,timezone ID:Europe/Saratov
    468、莫斯科标准时间,时差:3小时,timezone ID:Europe/Simferopol
    469、中欧时间,时差:1小时,timezone ID:Europe/Skopje
    470、东欧时间,时差:2小时,timezone ID:Europe/Sofia
    471、中欧时间,时差:1小时,timezone ID:Europe/Stockholm
    472、东欧时间,时差:2小时,timezone ID:Europe/Tallinn
    473、中欧时间,时差:1小时,timezone ID:Europe/Tirane
    474、东欧时间,时差:2小时,timezone ID:Europe/Tiraspol
    475、GMT+04:00,时差:4小时,timezone ID:Europe/Ulyanovsk
    476、东欧时间,时差:2小时,timezone ID:Europe/Uzhgorod
    477、中欧时间,时差:1小时,timezone ID:Europe/Vaduz
    478、中欧时间,时差:1小时,timezone ID:Europe/Vatican
    479、中欧时间,时差:1小时,timezone ID:Europe/Vienna
    480、东欧时间,时差:2小时,timezone ID:Europe/Vilnius
    481、莫斯科标准时间,时差:3小时,timezone ID:Europe/Volgograd
    482、中欧时间,时差:1小时,timezone ID:Europe/Warsaw
    483、中欧时间,时差:1小时,timezone ID:Europe/Zagreb
    484、东欧时间,时差:2小时,timezone ID:Europe/Zaporozhye
    485、中欧时间,时差:1小时,timezone ID:Europe/Zurich
    486、格林威治时间,时差:0,timezone ID:GB
    487、格林威治时间,时差:0,timezone ID:GB-Eire
    488、格林威治时间,时差:0,timezone ID:GMT
    489、格林威治时间,时差:0,timezone ID:GMT0
    490、格林威治时间,时差:0,timezone ID:Greenwich
    491、香港时间,时差:8小时,timezone ID:Hongkong
    492、格林威治时间,时差:0,timezone ID:Iceland
    493、东非时间,时差:3小时,timezone ID:Indian/Antananarivo
    494、印度洋地带时间,时差:6小时,timezone ID:Indian/Chagos
    495、圣诞岛时间,时差:7小时,timezone ID:Indian/Christmas
    496、可可斯群岛时间,时差:6小时,timezone ID:Indian/Cocos
    497、东非时间,时差:3小时,timezone ID:Indian/Comoro
    498、法属南极时间,时差:5小时,timezone ID:Indian/Kerguelen
    499、塞席尔群岛时间,时差:4小时,timezone ID:Indian/Mahe
    500、马尔代夫时间,时差:5小时,timezone ID:Indian/Maldives
    501、摩里西斯时间,时差:4小时,timezone ID:Indian/Mauritius
    502、东非时间,时差:3小时,timezone ID:Indian/Mayotte
    503、留尼旺岛时间,时差:4小时,timezone ID:Indian/Reunion
    504、伊朗标准时间,时差:3小时,timezone ID:Iran
    505、以色列标准时间,时差:2小时,timezone ID:Israel
    506、东部标准时间,时差:-5小时,timezone ID:Jamaica
    507、日本标准时间,时差:9小时,timezone ID:Japan
    508、马绍尔群岛时间,时差:12小时,timezone ID:Kwajalein
    509、东欧时间,时差:2小时,timezone ID:Libya
    510、中欧时间,时差:1小时,timezone ID:MET
    511、Mountain 标准时间,时差:-7小时,timezone ID:MST7MDT
    512、太平洋标准时间,时差:-8小时,timezone ID:Mexico/BajaNorte
    513、Mountain 标准时间,时差:-7小时,timezone ID:Mexico/BajaSur
    514、中央标准时间,时差:-6小时,timezone ID:Mexico/General
    515、新西兰标准时间,时差:12小时,timezone ID:NZ
    516、查萨姆标准时间,时差:12小时,timezone ID:NZ-CHAT
    517、Mountain 标准时间,时差:-7小时,timezone ID:Navajo
    518、中国标准时间,时差:8小时,timezone ID:PRC
    519、太平洋标准时间,时差:-8小时,timezone ID:PST8PDT
    520、西萨摩亚时间,时差:13小时,timezone ID:Pacific/Apia
    521、新西兰标准时间,时差:12小时,timezone ID:Pacific/Auckland
    522、Bougainville Standard Time,时差:11小时,timezone ID:Pacific/Bougainville
    523、查萨姆标准时间,时差:12小时,timezone ID:Pacific/Chatham
    524、丘克时间,时差:10小时,timezone ID:Pacific/Chuuk
    525、复活岛时间,时差:-6小时,timezone ID:Pacific/Easter
    526、瓦奴阿图时间,时差:11小时,timezone ID:Pacific/Efate
    527、菲尼克斯群岛时间,时差:13小时,timezone ID:Pacific/Enderbury
    528、托克劳群岛时间,时差:13小时,timezone ID:Pacific/Fakaofo
    529、斐济时间,时差:12小时,timezone ID:Pacific/Fiji
    530、吐鲁瓦时间,时差:12小时,timezone ID:Pacific/Funafuti
    531、加拉巴哥时间,时差:-6小时,timezone ID:Pacific/Galapagos
    532、冈比亚时间,时差:-9小时,timezone ID:Pacific/Gambier
    533、所罗门群岛时间,时差:11小时,timezone ID:Pacific/Guadalcanal
    534、Chamorro 标准时间,时差:10小时,timezone ID:Pacific/Guam
    535、夏威夷标准时间,时差:-10小时,timezone ID:Pacific/Honolulu
    536、夏威夷标准时间,时差:-10小时,timezone ID:Pacific/Johnston
    537、Line 岛时间,时差:14小时,timezone ID:Pacific/Kiritimati
    538、Kosrae 时间,时差:11小时,timezone ID:Pacific/Kosrae
    539、马绍尔群岛时间,时差:12小时,timezone ID:Pacific/Kwajalein
    540、马绍尔群岛时间,时差:12小时,timezone ID:Pacific/Majuro
    541、马克萨斯时间,时差:-9小时,timezone ID:Pacific/Marquesas
    542、萨摩亚群岛标准时间,时差:-11小时,timezone ID:Pacific/Midway
    543、诺鲁时间,时差:12小时,timezone ID:Pacific/Nauru
    544、纽威岛时间,时差:-11小时,timezone ID:Pacific/Niue
    545、诺福克时间,时差:11小时,timezone ID:Pacific/Norfolk
    546、新加勒多尼亚时间,时差:11小时,timezone ID:Pacific/Noumea
    547、萨摩亚群岛标准时间,时差:-11小时,timezone ID:Pacific/Pago_Pago
    548、帛琉时间,时差:9小时,timezone ID:Pacific/Palau
    549、皮特康岛标准时间,时差:-8小时,timezone ID:Pacific/Pitcairn
    550、波纳佩时间,时差:11小时,timezone ID:Pacific/Pohnpei
    551、波纳佩时间,时差:11小时,timezone ID:Pacific/Ponape
    552、巴布亚新几内亚时间,时差:10小时,timezone ID:Pacific/Port_Moresby
    553、库克群岛时间,时差:-10小时,timezone ID:Pacific/Rarotonga
    554、Chamorro 标准时间,时差:10小时,timezone ID:Pacific/Saipan
    555、萨摩亚群岛标准时间,时差:-11小时,timezone ID:Pacific/Samoa
    556、大溪地岛时间,时差:-10小时,timezone ID:Pacific/Tahiti
    557、吉伯特群岛时间,时差:12小时,timezone ID:Pacific/Tarawa
    558、东加时间,时差:13小时,timezone ID:Pacific/Tongatapu
    559、丘克时间,时差:10小时,timezone ID:Pacific/Truk
    560、威克时间,时差:12小时,timezone ID:Pacific/Wake
    561、瓦利斯及福杜纳群岛时间,时差:12小时,timezone ID:Pacific/Wallis
    562、丘克时间,时差:10小时,timezone ID:Pacific/Yap
    563、中欧时间,时差:1小时,timezone ID:Poland
    564、西欧时间,时差:0,timezone ID:Portugal
    565、韩国标准时间,时差:9小时,timezone ID:ROK
    566、新加坡时间,时差:8小时,timezone ID:Singapore
    567、大西洋标准时间,时差:-4小时,timezone ID:SystemV/AST4
    568、大西洋标准时间,时差:-4小时,timezone ID:SystemV/AST4ADT
    569、中央标准时间,时差:-6小时,timezone ID:SystemV/CST6
    570、中央标准时间,时差:-6小时,timezone ID:SystemV/CST6CDT
    571、东部标准时间,时差:-5小时,timezone ID:SystemV/EST5
    572、东部标准时间,时差:-5小时,timezone ID:SystemV/EST5EDT
    573、夏威夷标准时间,时差:-10小时,timezone ID:SystemV/HST10
    574、Mountain 标准时间,时差:-7小时,timezone ID:SystemV/MST7
    575、Mountain 标准时间,时差:-7小时,timezone ID:SystemV/MST7MDT
    576、太平洋标准时间,时差:-8小时,timezone ID:SystemV/PST8
    577、太平洋标准时间,时差:-8小时,timezone ID:SystemV/PST8PDT
    578、阿拉斯加标准时间,时差:-9小时,timezone ID:SystemV/YST9
    579、阿拉斯加标准时间,时差:-9小时,timezone ID:SystemV/YST9YDT
    580、东欧时间,时差:3小时,timezone ID:Turkey
    581、协调世界时间,时差:0,timezone ID:UCT
    582、阿拉斯加标准时间,时差:-9小时,timezone ID:US/Alaska
    583、夏威夷标准时间,时差:-10小时,timezone ID:US/Aleutian
    584、Mountain 标准时间,时差:-7小时,timezone ID:US/Arizona
    585、中央标准时间,时差:-6小时,timezone ID:US/Central
    586、东部标准时间,时差:-5小时,timezone ID:US/East-Indiana
    587、东部标准时间,时差:-5小时,timezone ID:US/Eastern
    588、夏威夷标准时间,时差:-10小时,timezone ID:US/Hawaii
    589、中央标准时间,时差:-6小时,timezone ID:US/Indiana-Starke
    590、东部标准时间,时差:-5小时,timezone ID:US/Michigan
    591、Mountain 标准时间,时差:-7小时,timezone ID:US/Mountain
    592、太平洋标准时间,时差:-8小时,timezone ID:US/Pacific
    593、太平洋标准时间,时差:-8小时,timezone ID:US/Pacific-New
    594、萨摩亚群岛标准时间,时差:-11小时,timezone ID:US/Samoa
    595、协调世界时间,时差:0,timezone ID:UTC
    596、协调世界时间,时差:0,timezone ID:Universal
    597、莫斯科标准时间,时差:3小时,timezone ID:W-SU
    598、西欧时间,时差:0,timezone ID:WET
    599、协调世界时间,时差:0,timezone ID:Zulu
    600、东部标准时间,时差:-5小时,timezone ID:EST
    601、夏威夷标准时间,时差:-10小时,timezone ID:HST
    602、Mountain 标准时间,时差:-7小时,timezone ID:MST
    603、中央标准时间 (北领地),时差:9小时,timezone ID:ACT
    604、东部标准时间 (新南威尔斯),时差:10小时,timezone ID:AET
    605、阿根廷时间,时差:-3小时,timezone ID:AGT
    606、东欧时间,时差:2小时,timezone ID:ART
    607、阿拉斯加标准时间,时差:-9小时,timezone ID:AST
    608、巴西利亚时间,时差:-3小时,timezone ID:BET
    609、孟加拉时间,时差:6小时,timezone ID:BST
    610、中非时间,时差:2小时,timezone ID:CAT
    611、纽芬兰标准时间,时差:-3小时,timezone ID:CNT
    612、中央标准时间,时差:-6小时,timezone ID:CST
    613、中国标准时间,时差:8小时,timezone ID:CTT
    614、东非时间,时差:3小时,timezone ID:EAT
    615、中欧时间,时差:1小时,timezone ID:ECT
    616、东部标准时间,时差:-5小时,timezone ID:IET
    617、印度标准时间,时差:5小时,timezone ID:IST
    618、日本标准时间,时差:9小时,timezone ID:JST
    619、西萨摩亚时间,时差:13小时,timezone ID:MIT
    620、亚美尼亚时间,时差:4小时,timezone ID:NET
    621、新西兰标准时间,时差:12小时,timezone ID:NST
    622、巴基斯坦时间,时差:5小时,timezone ID:PLT
    623、Mountain 标准时间,时差:-7小时,timezone ID:PNT
    624、大西洋标准时间,时差:-4小时,timezone ID:PRT
    625、太平洋标准时间,时差:-8小时,timezone ID:PST
    626、所罗门群岛时间,时差:11小时,timezone ID:SST
    627、印度支那时间,时差:7小时,timezone ID:VST

    以上是所有的时区名称、时差、时区ID。

    展开全文
  • TEE系列之ARM Trustzone 技术浅析(一) 背景TEETEE的必要性TEE术语和操作实现TEE的硬件支持TEE产业格局ARM TrustZone 2017年换手机之后,中途尝试登录结果被告知需要验证手机号,但是没有验证码,之后就再也没有...

    2017年换手机之后,中途尝试登录结果被告知需要验证手机号,但是没有验证码,之后就再也没有登录过CSDN了。近期通过邮件方式,终于找回CSDN的账号密码,感谢CSDN,丢而复得感觉真棒。

    2021年,立个Flag,“每个月更新一篇博文”,希望自己能够坚持。嘿嘿嘿~

    本文主要介绍TEE、ARM TrustZone由来、以及实现ARM TrustZone技术硬件基础。

    背景

    参加工作后就一直从事硬件安全工作,第一系列博文就从可信执行环境(TEE)内容开始总结。
    首先,我们先理解一下业界具有统一认识的一些概念:

    安全启动 :启动过程中,前一个部件验证后一个部件的数字签名,验证通过后,运行后一个部件,否则就中止或复位系统。因此它是一个防恶意篡改的手段。

    可信启动 :启动过程中,前一个部件度量(计算HASH值)后一个部件(通常在后一个部件被签名校验过之后),然后把度量安全的保存下来,比如扩展到TPM的PCR中。后续接入平台后,部件的度量会上报到认证平台,认证平台会有配置一个可信白名单,如果某个部件的版本信息不在白名单里,则认为此设备是不受信任的,因为它可能使用了一个虽然有签名,但可能BUG的版本。因此它是一个可信版本的管理手段。

    安全启动/可信启动 是确保系统级别的安全手段,适用于有可信诉求的整机系统,终端设备如手机、STB、路由器等,当然也适用于通用服务器设备。

    以上安全启动和可信启动的概念,然而,如果仅从字面要求试图实施时,我们又会发现许多新的问题,举个例子:安全启动时,确实每一级都被签名校验了,但确定安全吗? 某一级如操作系统1分钟前刚刚被校验过,1分钟后还是可信的吗?不见得,这个过程中,操作系统完全有可能已经被非法修改过了。
    要做到相对更安全,要么能够做到Runtime的实时校验,即每次使用那一刻都要校验。如果做不到Runtime校验,那就想办法将校验过的数据安全保存起来。

    这个前提是指系统需要是不开放的嵌入式系统,因为不开放,可定制,提供特定的功能/服务,因此整机系统的保护是可行的,并且方案都是很成熟的。

    那对于通用计算设备比如服务器产品是个什么样的情况呢? 基本上就是这么个事实:

    1. 系统“全局保护”越来越难以实现,且不切实际
    原因是当前开源共享,并且是自由的大环境。操作系统开源,应用开源,用户自由地选择不同版本的操作系统和应用,一切都不在设备厂商的控制中。

    2. “全局保护”不可行,那就将保护范围缩小到应用的部分片段
    这就是Intel SGX或ARM TrustZone的由来。因此,Intel SGX或ARM TrustZone是传统的系统保护手段不可行,通用系统设备的保护方案无法借鉴嵌入式系统的方案后,安全技术工作者转变思路后的产物。
    Intel SGX基础概念后续有计划再更新。

    ARM公司(嵌入式处理器的全球最大方案供应商,它们架构的处理器约占手机市场95%以上的份额)于2006年提出了一种硬件虚拟化技术TrustZone及其相关硬件实现方案。TrustZone即是支持TEE技术的产品,TrustZone 是所有Cortex-A 类处理器的基本功能,是通过 ARM 架构安全扩展引入的,而ARM也成为了TEE技术的主导者之一。那什么是TEE技术呢?

    TEE

    可信执行环境(TEE)是一种环境,其中执行的代码和访问的数据在机密性(没有人可以访问数据)和完整性(没有人可以更改代码及其行为)方面被隔离和保护。

    TEE的必要性

    软件越来越复杂,像Linux内核和Android开源项目(AOSP)这样的大型项目有数百万行代码,这意味着会有很多bugs。在修复某个漏洞时,有时还会造成新的bug,虽然我们可以防止某些类型的错误,但软件中总是会有错误。其中一些漏洞可能会暴露安全漏洞,更糟糕的是,如果bug在内核中,整个系统就会受到损害。

    那么如何解决这个问题呢?如果软件遭到破坏,如何保护您在系统中的资产?

    解决这个问题的一种方法是创建一个隔离的环境,在这个环境中,即使操作系统受到破坏,您的数据也会受到保护。这就是我们所说的可信执行环境或TEE。

    1. TEE是存储和管理设备加密密钥的一个很好的解决方案,可以用来验证操作系统的完整性。
    2. TEE非常适合实现生物特征认证方法(面部识别、指纹传感器和语音授权),隔离设备内的资源以存储生物特征算法、用户凭证和相关数据。
    3. TEE可用于移动电子商务应用,如移动钱包、点对点支付或非接触式支付,以存储和管理凭证和敏感数据。
    4. TEE也是保护智能手机、平板电脑和智能电视等连接设备上的数字版权信息(书籍、电影、音频等)的合适环境。虽然数字内容在传输或流式传输过程中使用加密进行保护,但一旦内容在设备上被解密,TEE将通过确保解密的内容不会暴露于操作系统环境来保护内容。

    TEE术语和操作

    在具有TEE的系统中,我们有运行在富执行环境(REE)上的不可信应用程序或者叫客户端和运行在可信执行环境(TEE)上的可信应用程序(TAs)。

    只有运行在TEE(安全世界)上的受信任应用程序才能完全访问主处理器、外围设备和内存,而硬件隔离保护这些应用程序不受主操作系统(非安全世界)上运行的不可信应用程序的影响。

    在TEE中,所有受信任的应用程序(TAs)和相关数据都与正常(不可信)操作系统及其应用程序完全隔离。另外,受信任的应用程序必须与其他受信任的应用程序以及TEE本身隔离运行。

    另外,TEE只接受经过适当授权并由其他授权代码检查的代码来执行。因此,在TEE中,我们需要一个安全引导特性来检查所有操作系统组件(引导加载程序、内核、文件系统、可信应用程序等)的完整性和真实性。这样可以确保在设备关机时没有人篡改操作系统的代码。另外TEE也需要做到以下内容相互隔离,才能保证可信执行环境本身隔离的可信。
    在这里插入图片描述

    如何实现TEE?

    我们可以在“沙箱”中隔离应用程序,例如使用容器。这将阻止应用程序查看和访问来自其他应用程序的数据。

    但是内核呢?如何防止在内核空间中运行的代码被利用来访问受信任应用程序使用的某个外围设备或内存区域?

    软件不能保护软件!!!

    所以我们需要硬件上的支持来实现TEE。我们需要一种方法来划分和隔离硬件(总线、外围设备、内存区域、中断等),以便运行的代码不能访问受保护的资源。

    这就是ARM的TrustZone、RISC-V的多区域和许多其他解决方案的用武之地。

    实现TEE的硬件支持

    在现代处理器中有许多技术可用于实现TEE:

    1. Arm的TrustZone技术提供了一种高效的、系统范围的安全方法,它将硬件强制隔离内置于CPU中。
    2. 多区域安全是Hex-Five安全创建的第一个RISC-V可信执行环境。
    3. AMD平台安全处理器(PSP)的正式名称是AMD安全技术,是一个集成在AMD微处理器中的可信执行环境子系统。
    4. Intel Software Guard Extensions(SGX)是一组与安全相关的指令代码,内置于一些现代Intel
      CPU中,可用于实现TEE。
    5. 苹果使用了一种专用处理器SEP(Secure Enclave
      processor)来实现数据保护、触摸ID和人脸识别等功能。SEP负责处理密钥和其他信息,如生物特征识别,这些信息非常敏感,不会被应用处理器处理。
    6. 谷歌也有一个类似的解决方案称为Titan M,这是一些Android
      Pixel设备上可用的外部芯片,可以实现TEE和处理安全引导、锁屏保护、磁盘加密等功能。

    TEE产业格局

    基于TEE环境的操作系统由不同的企业在推行,例如华为海思有自己的Trustzone的操作系统,高通的QSEE、ARM的Trustonic、还有Linaro开源的OPTEE等。下图为几家主要的TEE解决方案提供商以及相关方案。
    在这里插入图片描述

    ARM TrustZone

    可参考帅风云老师的博客
    trustzone的硬件框架和安全扩展](https://blog.csdn.net/shuaifengyun/article/details/72854501)

    从 2008 年 12月 ARM 公司第一次 release Trustzone 技术白皮书,已经过去了十年。2013 年 Apple 推出了第一款搭载指纹解锁的 iPhone:iPhone 5s,用以保证指纹信息安全的 Secure Enclave 技术据分析深度定制了 ARM trustzone 架构,印象中这大概是 Trustzone 技术第一次走进大众视线。到如今 Trustzone 技术已经成为移动安全领域的重要基础技术,你也许不了解它的技术原理,但它一直默默为你守护你的指纹信息,账户密码等各种敏感数据。

    Trustzone 是 ARM 公司为了解决可能遇到的软硬件安全问题提出的一种硬件解决方案。基于 Trustzone 这种硬件架构设计的软硬件,能在很大程度和范围内保证系统的安全性,使软硬件破解都变得相对很困难。

    我认为这套硬件架构的核心设计思想,关键词在于“隔离”。简单描述就是人为将系统运行环境划分为 TEE (Trusted Execution Environment) 和 REE ( Rich Execution Environment),所有的安全资源只能由 TEE 访问,而 REE 根本touch 不到。TEE 中运行的通常被认为是 trusted OS,一般为独立的 binary。REE 中运行的 rich OS 大多是指常用的 Linux 和 Android 操作系统。直观的例子就是 Android 系统下的各个应用是无法直接访问指纹信息的,只有切换到 Trusted OS 下才可以访问。当然这个过程:

    1. Android 应用如何完成指纹验证可以拿出来单独做一个大 topic;
    2. Trusted OS 通常由设备厂商提供,跟硬件设计强相关,无法由第三方更新 binary; 要做到第二条,secure
    3. boot 功能就必不可少。(所以说安全功能都是环环相扣缺一不可)

    要实现这样一套硬件架构,首先需要SoC中的各个硬件模块都实现对 Trustzone 的支持,才能称之为完整的 security system。常见大致上需要以下几个模块:

    1. Bus

    这里涉及的总线分为两种,一种是 AMBA3 AXI system bus(系统总线),一种是 AMBA3 APB peripheral bus(外围总线)。
    前面说到 trustzone 技术会将系统划分为两种模式:secure 和 Non-secure。而划分的基础就是 AXI 系统总线一条控制线的电平高低。简单来说,就是 ARM 为 AXI 总线每个信道的读写操作都新增了一个标记位:NS bit。主设备为Non-secure 状态时,发起读写请求,NS bit 必须置为高电平;主设备为 Secure 状态时,发起读写请求,NS bit 必须置为低电平。
    APB 外围总线通过 AXI-to-APB bridge 连接到系统总线,可以实现对外设的安全访问管控,这里的外设可以包括 interrupt controller,timer 等。

    2. Processor

    在 ARM core 的 technical reference manual 中,对 Trustzone 技术的支持一般被描述为 security extension。目前主流使用的 ARM core architecture 主要是 ARMv7 和 ARMv8。两种架构下的 CPU security extension 差异巨大,但总的来说,都是将 CPU 的每个 core 都虚拟出 secure 和 Non-secure 两种模式,当 core 为 Non-secure 时,Secure Configuration Register 的 NS bit 置为 1,为 secure 模式时,NS bit 置为 0。NS bit 默认为 0,也就是说,CPU 上电后每个 core 都默认为 secure mode。
    除此之外,两种模式下 CPU core 对中断的处理,MMU / Cache访问,Timer,Debug 等等都做了相应的安全扩展,每个 model 都值得详细研究。

    3. Interrupt controller

    常见支持 Trustzone 的 interrupt controller IP 有 PL390,GIC-400,GIC-500,简单说就是能够区分 secure interrupt 和 Non-secure interrupt,实现对中断处理的隔离。同样 GIC 的不同版本对 security extension 的设计也不尽相同,常见的 GICv2 和 GICv3 就有着较大差异,同样值得详细说明。

    4. Trustzone Address Space Controller

    CPU core MMU 的 security extension 主要是针对 CPU 内存空间的安全访问控制,而 TZASC 主要是针对 DRAM。TZASC通常布置在 CPU 和 DRAM controller 之间,通过新增一条地址线表示 NS bit,可以将 DRAM 划分为 secure CPU core 可访问区域和 Non-secure CPU core 可访问区域,实现 DRAM 的隔离。常见的 TZASC IP 有 PL-380 和 TZC-400。针对 on-SoC 的静态内存(ROM 和 SRAM)的区域划分,则需要通过使用 Trustzone Memory Adapter (TZMA)来完成。

    5. Trustzone Protection Controller

    挂在 AXI-to-APB bridge 上,用以区分外设是 secure 还是 Non-secure。

    这样介绍可能有些抽象,用白皮书里示例图做个简单说明:
    在这里插入图片描述
    上图中,支持 Trustzone 的 ARM core 通过 AXI 总线和 TZMA,SRAM,AXI-to-APB bridge 相连,其中 AXI-to-APB bridge 上挂了四个外设,TZPC 永远配置为 secure peripheral,timer 和 RTC 是 Non-secure peripheral,而 KMI (Keyboard and Mouse Interface)为 secure peripheral 还是 Non-secure peripheral 是 software programmable。KMI secure 和 Non-secure 的切换,由软件配置 TZPC 来完成,而由于 TZPC always 是 secure 外设,所以 TZPC 的配置只能在 CPU 是 secure mode 下才能实现。从软件层面来看,就是只有 Trusted OS 才能配置 TZPC。那么将 Keyboard 设置为 secure 的一个作用就是可以在安全环境下让用户输入密码。
    同样,当有外设需要访问 DRAM 或者 SRAM 的 secure region 时,也需要通过 TZPC 实现对外设的控制。

    所以说 Trustzone 技术的实现,并非某个单一模块的功能可以完成,需要参与到整个系统中的所有硬件模块共同协作才能实现一个安全的硬件系统。而 Trustzone 技术面世以来,也并非牢不可破,一方面 IC design 的方案各大厂商都不相同,另一方面 Trusted OS 由各家 OEM 或者第三方 Trustzone vendor 提供,软硬件的漏洞也不断被发现。因此独立的硬件安全单元近年渐成趋势,尤其是 Android 9.0 Keymaster 从对 Trustzone 的支持提升到对独立 Security Elements 的支持,让人感慨技术更新的迅速。然而回顾 Trustzone 技术的发展,还是觉得 ARM 公司的前瞻性和技术实力实在让人很是佩服。

    ARM Trustzone思维导图

    在这里插入图片描述

    展开全文
  • 一篇了解TrustZone

    千次阅读 2019-02-12 16:45:22
    版权声明:本文为guyongqiangx原创,欢迎评论、转载和收藏。微信公众号:洛奇看世界。 ... 这篇文章源于老板想了解TrustZone,要求我写一篇文章简单介绍TrustZone的原理。既然...

    版权声明:本文为guyongqiangx原创,欢迎评论、转载和收藏。微信公众号:洛奇看世界。 https://blog.csdn.net/guyongqiangx/article/details/78020257

    这篇文章源于老板想了解TrustZone,要求我写一篇文章简单介绍TrustZone的原理。既然是给领导看的,只介绍原理哪里够,因此也添加了公司自己现有TEE环境的设计、实现和发展,也顺带加入了一些题外话。也是因为要给领导看,所以文章也不能涉及太多技术细节,包括TrustZone模块的详细设计以及示例代码等,所以只从总体上讲解了什么是TrustZone,TrustZone是如何实现安全隔离的、TrustZone相关的一些资源等。

    如果你之前对TrustZone亦无所知,好吧,本文或许值得你一看;如果你已经了解了TrustZone,想知道更多的实现细节,抱歉,本文并不适合你,或许阅读ARM官方网站和文档以及各开源项目源码是更好的选择。

    本文先交代TrustZone的安全背景,然后从较高层次展开介绍TrustZone的工作机制和原理(包括AXI总线架构、CPU、内存和中断模型,以及安全隔离机制),列举了几个常见ARM平台上的实现以及当前博通ARM平台上的状况,最后附带一些TrustZone相关的开源项目以及其他资源链接,全文约7500字。(由于涉及安全的原因,本文已经删掉介绍公司自己平台相关的部分)。

    本文内容主要来源于网络,综合了网上的多篇文章,也加入了一些自己的理解,重新组织了文章结构使其便于理解。

    主要参考的文章包括: 
    TrustZone领域先行者 
    TrustZone技术简介 
    trust zone之我见 
    简谈高通Trustzone的实现

    本文还参考了贴吧、知乎等部分文章,由于涉及较多,无法一一列举,再次对原作者的付出一并表示感谢!

    除上面列举的资源外,本文主要资料参考了ARM官方对TrustZone的介绍,主要有: 
    - 网站 https://developer.arm.com/technologies/trustzone 
    - 文档 Building a Secure System using TrustZone Technology

    事实上,前面多篇文章的细节也来源于官方文档。 
    本人不保留本文的所有权,欢迎转载本文,让更多的人来了解TrustZone。由于不想再次以类似 《TrustZone原理介绍》 一类作为标题,但又不知道以什么作为标题贴切,所以随手用了现在标题党的套路,抱歉。

    1. TrustZone介绍

    1.1 安全背景

    在介绍TrustZone前有必要简单回顾下目前的一些安全手段。

    CPU通过内存映射手段给每个进程营造一个单独的地址空间来隔离多个进程的代码和数据,通过内核空间和用户空间不同的特权级来隔离操作系统和用户进程的代码和数据。但由于内存中的代码和数据都是明文,容易被同处于内存中的其它应用偷窥,因此出现了扩展的安全模块,应用将加密数据送往安全模块,由安全模块处理完后再返回结果给相应的应用。

    很多消费电子设备都使用扩展的安全模块来确保数据安全,目前常见的方式有:

    1. 外部挂接硬件安全模块

      <p>数据的处理交由外部的安全模块实现,这些模块能够保护自己的资源和密钥等数据的安全,如SIM卡、各种智能卡或连接到外部的硬件加解密模块等,但其同主芯片的通信线路暴露在外部,容易被监听破解。另外,通信的速率比较低。</p>
      </li>
      <li>
      <p>内部集成硬件安全模块</p>
      
      <p>将外部安全模块的功能集成到芯片内,因此一个芯片上至少有两个核:一个普通核和一个安全核。优点是核与核之间的通信在芯片内部实现,不再暴露在外面。缺点是核之间的通信速度仍然较低,而且单独的安全核性能有限,还会会占用SoC面积,成本较高。</p>
      </li>
      

    1.2 TrustZone是个什么鬼?

    TrustZone是ARM针对消费电子设备设计的一种硬件架构,其目的是为消费电子产品构建一个安全框架来抵御各种可能的攻击。

    TrustZone在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世界通过一个名为Monitor Mode的模式进行转换,如图1:

    ARM的安全世界和非安全世界

    图1. ARM的安全世界和非安全世界

    处理器架构上,TrustZone将每个物理核虚拟为两个核,一个非安全核(Non-secure Core, NS Core),运行非安全世界的代码;和另一个安全核(Secure Core),运行安全世界的代码。

    两个虚拟的核以基于时间片的方式运行,根据需要实时占用物理核,并通过Monitor Mode在安全世界和非安全世界之间切换,类似同一CPU下的多应用程序环境,不同的是多应用程序环境下操作系统实现的是进程间切换,而Trustzone下的Monitor Mode实现了同一CPU上两个操作系统间的切换。

    AMBA3 AXI(AMBA3 
    Advanced eXtensble Interface)系统总线作为TrustZone的基础架构设施,提供了安全世界和非安全世界的隔离机制,确保非安全核只能访问非安全世界的系统资源,而安全核能访问所有资源,因此安全世界的资源不会被非安全世界(或普通世界)所访问。

    设计上,TrustZone并不是采用一刀切的方式让每个芯片厂家都使用同样的实现。总体上以AMBA3 AXI总线为基础,针对不同的应用场景设计了各种安全组件,芯片厂商根据具体的安全需求,选择不同的安全组件来构建他们的TrustZone实现。

    其中主要的组件有:

    • 必选组件

      <ul><li>AMBA3 AXI总线,安全机制的基础设施</li>
      	<li>虚拟化的ARM Core,虚拟安全和非安全核</li>
      	<li>TZPC (TrustZone Protection Controller),根据需要控制外设的安全特性</li>
      	<li>TZASC (TrustZone Address Space Controller),对内存进行安全和非安全区域划分和保护</li>
      </ul></li>
      <li>
      <p>可选组件</p>
      
      <ul><li>TZMA (TrustZone Memory Adapter),片上ROM或RAM安全区域和非安全区域的划分和保护</li>
      	<li>AXI-to-APB bridge,桥接APB总线,配合TZPC使APB总线外设支持TrustZone安全特性</li>
      </ul></li>
      

    除了以上列出的组件外,还有诸如 Level 2 Cache Controller, DMA Controller, Generic Interrupt Controller等。

    逻辑上,安全世界中,安全系统的OS提供统一的服务,针对不同的安全需求加载不同的安全应用TA(Trusted Application)。 例如:针对某具体DRM的TA,针对DTCP-IP的TA,针对HDCP 2.0验证的TA等。

    图2是一个ARM官网对TrustZone介绍的应用示意图:

    基于TrustZone的应用示意图

    图2. 基于TrustZone的应用示意图

    图中左边蓝色部分Rich OS Application Environment(REE)表示用户操作环境,可以运行各种应用,例如电视或手机的用户操作系统,图中右边绿色部分Trusted Execution Envrionment(TEE)表示系统的安全环境,运行Trusted OS,在此基础上执行可信任应用,包括身份验证、授权管理、DRM认证等,这部分隐藏在用户界面背后,独立于用户操作环境,为用户操作环境提供安全服务。

    可信执行环境(TEE, Trusted Execution Environment)是Global Platform(GP)提出的概念。对应于TEE还有一个REE(Rich Execution Environment)概念,分别对应于安全世界(Secure World)和非安全世界(Non-secure World, Normal World)。

    GlobalPlatform(GP)是跨行业的国际标准组织,致力于开发、制定并发布安全芯片的技术标准,以促进多应用产业环境的管理 及其安全、可互操作的业务部署。目标是创建一个标准化的基础架构, 加快安全应用程序及其关联资源的部署,如数据和密钥,同时保护安全应用程序及其关联资源免受软件方面的攻击。

    2. TrustZone原理和设计

    以下主要从TrustZone的总线设计,CPU设计(包括处理器模型、内存模型和中断模型)和安全隔离机制来介绍TrustZone的设计和工作原理。

    2.1 总线设计

    • 总线

    设计上,TrustZone 在系统总线上针对每一个信道的读写增加了一个额外的控制信号位,这个控制位叫做Non-Secure或者NS位,是AMBA3 AXI总线针对TrustZone作出的最重要、最核心的扩展设计。

    这个控制信号针对读和写分别叫做ARPORT[1]和AWPORT[1]:

    • ARPROT[1]: 用于读操作(Read transaction), 低表示Secure, 高表示Non-Secure
    • AWPROT[1]: 用于写操作(Write transaction), 低表示Secure,高表示Non-Secure

    总线上的所有主设备(master)在发起新的操作(transaction)时会设置这些信号,总线或从设备(slave)上解析模块会对主设备发起的信号进行辨识,来确保主设备发起的操作在安全上没有违规。

    例如:硬件设计上,所有非安全世界的主设备(Non-Secure masters)在操作时必须将信号的NS位置高,而NS位置高又使得其无法访问总线上安全世界的从设备(Secure Slaves),简单来说就是对非安全世界主设备发出的地址信号进行解码时在安全世界中找不到对应的从设备,从而导致操作失败。

    NS控制信号在AMBA3 AXI总线规范中定义。可以将其看作为原有地址的扩展位,如果原有32为寻址,增加NS可以看成是33位寻址,其中一半的32位物理寻址位于安全世界,另一半32位物理寻址位于非安全世界。

    当然,非安全世界的主设备尝试访问安全世界的从设备会引发访问错误,可能是SLVERR(slave error)或者DECERR(decode error),具体的错误依赖于其访问外设的设计或系统总线的配置。

    • 外设

    在TrustZone出现前,ARM的外设基于AMBA2 APB (Advanced Peripheral Bus)总线协议,但是APB总线上不存在类似AXI总线上的NS控制位。为了兼容已经存在的APB总线设计,AMBA3规范中包含了AXI-to-APB bridge组件,这样就确保基于AMBA2 APB的外设同AMBA3 AXI的系统兼容。AXI-to-APB bridge负责管理APB总线设备的安全事宜,其会拒绝不合理的安全请求,保证这些请求不会被转发到相应的外设。

    例如:新一代的芯片可以通过增加AXI-to-APB bridge组件来沿用上一代芯片的设计来使其外围设备可以支持TrustZone。

    2.2 处理器设计

    2.2.1 处理器模型

    TrustZone中,每个物理处理器核被虚拟为一个安全核(Secure)和一个非安全核(Non-Secure),安全核运行安全世界的代码,非安全核运行除安全世界外的其它代码。由于安全世界和非安全世界的代码采用时间片机制轮流运行在同一个物理核上,相应的节省了一个物理处理器核。

    多核处理器上,也有建议说让将某一个或几个核指定为安全专用核,只运行安全系统代码来构建安全世界,其余核运行非安全代码,暂不清楚目前有哪些平台采用这个实现。

    图3中,系统有4个物理核,每个又分为两个虚拟核(安全核和非安全核)的情况:

    多核处理器上的安全核和非安全核

    图3. 多核处理器上的安全核和非安全核

    2.2.2 L1内存模型

    • MMU

    MMU是一种硬件电路,它包含两类部件,一类是分段部件,一类是分页部件,对应于内存管理的分段机制和分页机制。分段机制把一个逻辑地址转换为线性地址;接着,分页机制把一个线性地址转换为物理地址。

    当CPU访问一个虚拟地址时,这个虚地址被送到MMU翻译,硬件首先把它和TLB中的所有条目同时(并行地)进行比较,如果它的虚页号在TLB中,并且访问没有违反保护位,它的页面会直接从TLB中取出而不去访问页表,从而提高地址转换的效率。

    安全世界和非安全世界都有自己的虚拟MMU,各自管理物理地址的映射。实际上只是两个世界都有一份TTBR0、TTBR1、TTBCR寄存器,因此就会对应两个MMU表。

    尽管MMU有两套,但TBL缓存硬件上只有一套,因此TBL对于两个世界来说是共享的,其通过NS位来标志其每一项具体属于哪一个世界。这样在两个世界间进行切换时不再需要重新刷新TLB,提高执行效率。

    对于TLB共享并不是硬性规定的,部分芯片在两个世界间切换时可能通过硬件部分或全部刷新TLB。

    • Cache

    同TLB类似,硬件上两个世界共享一套Cache,具体的Cache数据属于哪一个世界也由其NS位指定,在世界间切换也不需要刷新Cache。

    2.2.3 中断模型

    基于TrustZone的处理器有三套异常向量表:

    • 一套用于非安全世界,
    • 一套用于安全世界,
    • 还有一套用于Monitor模式。

    与之前非TrustZone的处理器不同的是,这三套中断向量表的基地址在运行时可以通过CP15的寄存器VBAR(Vector Base Address Register)进行修改。

    复位时,安全世界的中断向量表由处理器的输入信号VINITHI决定,没有设置时为0x00000000,有设置时为0xFFFF0000;非安全世界和Monitor模式的中断向量表默认没有设置,需要通过软件设置后才能使用。

    默认情况下,IRQ和FIQ异常发生后系统直接进入Monitor模式,由于IRQ是绝大多数环境下最常见的中断源,因此ARM建议配置IRQ作为非安全世界的中断源,FIQ作为安全世界的中断源。这样配置有两个优点:

    • 当处理器运行在非安全世界时,IRQ直接进入非安全世界的处理函数;如果处理器运行在安全世界,当IRQ发生时,会先进入到Monitor模式,然后跳到非安全世界的IRQ处理函数执行
    • 仅将FIQ配置为安全世界的中断源,而IRQ保持不变,现有代码仅需做少量修改就可以满足

    将IRQ设置为非安全世界的中断源时系统IRQ的切换见图4:

    IRQ作为非安全世界的中断源

    图4. IRQ作为非安全世界的中断源

    2.2.4 系统模式切换

    基于TrustZone的系统有三种状态,安全世界、非安全世界和用于二者切换的Monitor Mode。

    协处理器CP15的寄存器SCR(Secure Configuration Register)有一个NS位用于指示当前处理器位于哪一个世界,该寄存器在非安全世界是不能访问的。当CPU处于Monitor Mode时,无论NS位是0还是1,处理器都是在安全世界运行代码。因此Monitor Mode下总是安全世界,但如果此时NS为1,访问CP15的其它寄存器获取到的是其在非安全世界的值。

    非安全世界到Monitor模式的切换

    处理器从非安全世界进入Monitor Mode的操作由系统严格控制,而且所有这些操作在Monitor Mode看来都属于异常。 
    从非安全世界到Monitor Mode的操作可通过以下方式触发:

    • 软件执行SMC (Secure Monitor Call)指令
    • 硬件异常机制的一个子集(换而言之,并非所有硬件异常都可以触发进入Monitor Mode),包括: 
      • IRQ
      • FIQ
      • external Data Abort
      • external Prefetch Abort

    Monitor Mode

    Monitor Mode内执行的代码依赖于具体的实现,其功能类似于进程切换,不同的是这里是不同模式间CPU状态切换。

    软件在Monitor Mode下先保存当前世界的状态,然后恢复下一个世界的状态。操作完成后以从异常返回的方式开始运行下一个世界的代码。

    为什么安全模式和非安全模式不能直接切换?

    非安全世界无权访问CP15的SCR寄存器,所以无法通过设置NS来直接切换到安全世界,只能先转换到Monitor Mode,再到安全世界。

    如果软件运行在安全世界(非Monitor Mode)下,通过将CP15的NS位置1,安全世界可以直接跳转到非安全世界,由于此时CPU的流水线和寄存器还遗留了安全世界的数据和设置,非安全模式下的应用可以获取到这些数据,会有极大的安全风险。因此,只建议在Monitor Mode下通过设置NS位来切换到非安全模式。

    综上,安全世界和非安全世界不存在直接的切换,所有切换操作都通过Monitor Mode来执行。

    图5展现了安全世界和非安全世界之间的切换方式:

    安全世界和非安全世界之间的切换

    图5. 安全世界和非安全世界之间的切换

    2.3 隔离机制

    除了CPU执行时实行安全世界和非安全世界的隔离外,AMBA3 AXI总线提供了外设隔离的基础。

    2.3.1 内存隔离机制

    这里的内存指外部的DDR和片上的ROM以及SRAM,其隔离和保护通过总线组件TZASC和TZMA的设置来实现。

    • TZASC (TrustZone Address Space Controller) 
      • TZASC可以把外部DDR分成多个区域,每个区域可以单独配置为安全或非安全区域,非安全世界的代码和应用只能访问非安全区域。TZASC只能用于内存设备,不适合用于配置块设备,如Nand Flash。
    • TZMA (TrustZone Memory Adapter) 
      • TZMA可以把片上ROM和SRAM隔离出安全和非安全区域。TZMA最大可以将片上存储的低2MB配置为安全区域,其余部分配置为非安全区域。大小划分上,片上安全区域可以在芯片出厂前设置为固定大小,或运行时通过TZPC动态配置。TZMA使用上有些限制,其不适用于外部内存划分,而且也只能配置一个安全区域。

    2.3.2 外设隔离机制

    外设上,基于APB总线的设备不支持AXI总线的NS控制信号,所以AXI到APB总线需要AXI-to-APB bridge设备连接,除此之外,还需要TZPC (TrustZone Protection Controller) 来向APB总线上的设备提供类似AXI上的NS控制信号。

    由于TZPC可以在运行时动态设置,这就决定了外设的安全特性是动态变化的,例如键盘平时可以作为非安全的输入设备,在输入密码时可以配置为安全设备,只允许安全世界访问。

    2.3.3 隔离机制示意图

    整个系统内存和外设隔离机制示意图见图6.

    系统内存和外设隔离机制示意图

    图6. 系统内存和外设隔离机制示意图

    此图来源于网上,实际上TZPC还连接到片内的ROM/RAM设备上,用于配置片上存储的安全区域。

    2.4 安全启动

    AMBA3 AXI总线机制隔离出安全世界和非安全世界,但这是系统启动之后的事情。如何确保系统本身是安全的呢?这就涉及到系统启动的过程。

    系统上电复位后,先从安全世界开始执行。安全世界会对非安全世界的bootloader进行验证,确保非安全世界执行的代码经过授权而没有被篡改过。然后非安全世界的bootloader会加载非安全世界的OS,完成整个系统的启动。

    在非安全系统的bootloader加载OS时,仍然需要安全世界对OS的代码进行验证,确保没有被篡改。

    图7是典型的TrustZone芯片的启动流程:

    典型的TruestZone芯片启动流程

    图7. 典型的TruestZone芯片启动流程

    整个启动流程跟目前博通平台的安全启动原理基本一致,上电后安全芯片先启动,然后校验主芯片的bootloader,接下来bootloader提交系统的OS和文件系统给BSP进行校验,通过后加载主系统,确保主系统是安全的。

    从上电复位开始的整个启动过程中,下一级的安全基于上一级的验证,最终依赖于芯片内置的OTP和安全硬件,逐级的验证构成了整个系统的信任链。信任链中的某一个环节被破坏,都会导致整个系统不安全。

    3. 各家TrustZone实现

    基于安全考虑,各家TrustZone都实行闭源,关于其实现细节的介绍都较少。

    网上能找到少许关于高通方案上TrustZone的介绍:

    • 安全世界 QSEE (Qualcomm Secure Execution Environment)
    • 非安全世界 HLOS (High Level OS)

    整个系统的架构如图8:

    image

    图8. 高通QSEE系统架构图

    4. 其它

    • ARMv8-A架构定义了四个异常等级,分别为EL0到EL3,其中数字越大代表特权(privilege)越大:

      <ul><li>EL0: 无特权模式(unprivileged)</li>
      	<li>EL1: 操作系统内核模式(OS kernel mode)</li>
      	<li>EL2: 虚拟机监视器模式(Hypervisor mode)</li>
      	<li>EL3: TrustZone monitor mode&nbsp;<br><img alt="ARMv8-A Security Level" class="has" src="https://github.com/guyongqiangx/blog/blob/dev/trustzone/images/armv8-a-security-level.png?raw=true"></li>
      </ul></li>
      <li>
      <p>TrustZone设计的相关方</p>
      
      <ul><li>ARM公司,定义TrustZone并实现硬件设计,TEE,TZAPI等</li>
      	<li>芯片厂家,在具体芯片上实现TrustZone设计,包括三星、高通、MTK、TI、ST、华为等</li>
      	<li>应用提供方,如DRM厂家和安全应用开发商,实现DRM、Playready、DTCP-IP和一些其它安全应用开发和认证</li>
      </ul></li>
      <li>
      <p>Trust OS</p>
      
      <p>TEE环境下也要有一个操作系统,各家都有自己的Trustzone的操作系统,如Trustonic、高通的QSEE、国内的豆荚,还有开源的OPTEE等。在操作系统之上自然要有应用程序,在Trustzone里面我们一般叫TrustApp,当然TEE里面每个TrustApp都在一个沙盒里,互相之间是隔离的。比如说支付,就可以做成一个App(需要注意的是,和Normal World里面的App是两个概念),这个App简单来说就负责用私钥把网上发来的Challenge签个名,而这个签名的动作是需要在Secure World里面做的,避免恶意程序窃取到私钥来伪造签名。</p>
      
      <p>例如支付宝,其实支付宝也是只支持几个Trust OS的。同时,支付宝还定义了一系列标准,用来完成他的行为。</p>
      
      <p>现在的Trust OS大都会遵循GlobalPlatform的规范,这个组织致力于制定统一的Trust OS的API的接口规范,这样一个TrustApp只要用GP API,就可以方便移植到各个不同的TEE操作系统上了。</p>
      </li>
      <li>
      <p>Intel 平台的 SGX</p>
      
      <p>针对可信计算,类似ARM的TrustZone,Intel也针对x86平台提出了自己的安全架构SGX:</p>
      
      <p>Intel® Software Guard Extensions (Intel® SGX)</p>
      
      <p><a href="https://software.intel.com/zh-cn/sgx-sdk" rel="nofollow" target="_blank">https://software.intel.com/zh-cn/sgx-sdk</a></p>
      
      <p>SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)的一个扩展,用于增强软件的安全性。这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统或者和VMM(Hypervisor)也无法影响enclave里面的代码和数据。Enclave的安全边界只包含CPU和它自身。SGX创建的enclave也可以理解为一个可信执行环境TEE(Trusted Execution Environment)。不过其与ARM TrustZone(TZ)还是有一点小区别的,TZ中通过CPU划分为两个隔离环境(安全世界和正常世界),两者之间通过SMC指令通信;而SGX中一个CPU可以运行多个安全enclaves,并发执行亦可。</p>
      
      <p>简单来讲, Intel SGX最关键的优势在于将程序以外的software stack如OS和BIOS都排除在了TCB(Trusted Computing Base)以外。换句话说,就是在容器enclave里的code只信任自己和intel的CPU。</p>
      
      <blockquote>
      <p>网上有人是这样对比TrustZone和SGX的:</p>
      
      <p>Trustzone默认相信SecureOS,安全世界。SGX仅相信CPU core,通过SGX指令构建enclave容器。简单比喻,TEE是个公用大保险柜,什么东西都装进去,有漏洞的app可能也进去了,而且保险柜钥匙在管理员手上,必须相信管理员。SGX每个app有自己的保险柜,钥匙在自己手上</p>
      
      <p>SGX要进入工业界应用尚需时间,一个重要的问题是现在在intel发行的服务器芯片上还没有SGX,而SGX的重要应用就是在数据中心和云端的应用。</p>
      </blockquote>
      </li>
      

    5. TrustZone开源项目

    除了各家私有实现外,ARM也有不少开源项目,知名度较高的有:

    • Arm Trusted Firmware

      <ul><li>基于ARMv8-A应用处理器,ARM官方提供了一个开源参考实现BL31。</li>
      	<li><a href="https://github.com/ARM-software/arm-trusted-firmware" rel="nofollow" target="_blank">https://github.com/ARM-software/arm-trusted-firmware</a></li>
      </ul></li>
      <li>
      <p>Openvirtualization</p>
      
      <ul><li>带有一些商业属性的开源项目,部分TEE实现只有商业版支持</li>
      	<li><a href="http://www.openvirtualization.org/" rel="nofollow" target="_blank">http://www.openvirtualization.org/</a></li>
      </ul></li>
      <li>
      <p>Op-Tee</p>
      
      <ul><li>Linaro 推出的开源TEE</li>
      	<li><a href="https://github.com/OP-TEE" rel="nofollow" target="_blank">https://github.com/OP-TEE</a></li>
      </ul></li>
      

    6. 参考

    题外话

    本文最初叫做《了解TrustZone,读了这篇就够了》,发完一看文后的推荐,我去,叫做《xxx,看这篇就够了》的标题的文章多了去了,几十篇吧~~好吧,我决定改了,换一个标题党……请留意,文末送Android福利!

    联系和福利

    • 本文原创发布于微信公众号“洛奇看世界”,一个大龄2b码农的世界。
    展开全文
  • Clean Zone Admin Template By Bootstrap3

    热门讨论 2014-04-23 15:40:38
    使用Bootstrap3 的後台 線上體驗: http://themeforest.net/item/clean-zone-responsive-admin-template/full_screen_preview/6387889
  • PWM死区(Dead Zone)的作用和意义
  • 一、zone的定义 Zone是Brocade交换机上的标准功能,FC SWITCH上的Zone功能类似于以太网交换机上的VLAN功能,它是将连接在SAN网络中的设备(主机和存储),逻辑上划到为不同的区域内,使得不同区域中的设备相互间不能...
  • 物理内存管理之zone详解

    千次阅读 2020-04-11 13:45:14
    上一次说过了物理内存由node,zone,page三级结构来描述。而node是根据当前的系统是NUMA还是UMA系统。假设我们当前是UMA系统架构,则只有一个node。 我们本节则重点学习下ZONE,重点是ZONE的数据结构,其中就可以...
  • zone_reclaim_mode的解释

    千次阅读 2020-04-06 22:42:00
    /proc/sys/vm/zone_reclaim_mode. A value of 0 means that no local reclaim should take place. A value of 1 tells the kernel that a reclaim pass should be run in order to avoid allocations from ...
  • 了解TrustZone,读了这篇就够了

    千次阅读 2018-11-01 16:13:35
    了解TrustZone,读了这篇就够了 这篇文章源于老板想了解TrustZone,要求我写一篇文章简单介绍TrustZone的原理。既然是给领导看的,只介绍原理哪里够,因此也添加了公司自己现有TEE环境的设计、实现和发展,也顺带...
  • 光纤交换机划分zone方法 ,很详细,其中还有如何用命令行的方法。
  • mysql时区time_zone和sytem_time_zone

    千次阅读 2020-09-03 16:35:45
    show global variables like '%zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | CST | | time_zone | +08:00 | +------------------+------...
  • 而节点又被分为多个管理区(zone),zone用于表示内存中的某个范围。管理区被分为多个类型。  ZONE_DMA:内存首部16MB,即低端范围的物理内存,某些工业标准体系结构(ISA)设备需要用到ZONE_DMA;  ZONE_DMA32...
  • firewalld学习-zone的使用和配置

    千次阅读 2019-08-05 14:03:00
    zone文件标签名词解释 target:目标,这个前面学生也已经给大家介绍过了,可以理解为默认行为,有四个可选值:default、ACCEPT、%%REJECT%%、DROP,如果不设置默认为default service:这个在前面学生已经...
  • Spring cloud实现FeignClient指定Zone调用

    万次阅读 2019-06-13 15:52:05
    通过设置eureka.instance.metadata-map.zone设置不同实例所属的zonezone之间不互相调用,只有zone内部调用(其实这里用zone做了集群隔离,实际上集群肯定是跨可用区的,这里的eureka中的zone在我们项目里面并不是...
  • 博科Brocade 300光纤交换机配置zone教程 光纤交换机作为SAN网络的重要组成部分,在日常应用中非常普遍,本次将以常用的博科交换机介绍基本的配置方法。 博科300实物图: 环境描述: 如上图,四台服务器...
  • 博科光纤交换机Zone配置手册,安装手册和WEB工具说明,型号5050,简易版,
  • 不能识别其他小数秒分隔符 2、TIMESTAMP 与TimeZone的关系 MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval....
  • java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTime...
  • 前面章节的了解,zone 结构是物理内存管理中 node 管理的物理内存区域,也就是 struct zone 结构体,这里来分析这个结构体: 内存节点又被划分为内存管理区域, 一个管理区域通过 struct zone 描述, 用以表示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 447,203
精华内容 178,881
关键字:

zone