双证书体系高能2提纲为什么会有双证书体系双证书流程双证书的实现和使用密钥管理机构的系统功能双证书体系的讨论中国电子签名法以及相关规定3回顾从技术上而言,每个人有1个证书,PKI就可以很好支持如下服务机密性完整性非否认真实性-认证从法律法规、政府管理方面而言,对于以上安全服务,又是如何考虑?是否与PKI有冲突、或者特殊的要求?机密性4政府的需要政府希望有监听通信的能力机密性不能滥用不是对每个人、每次通信都监听重要的是:有监听的“能力”想要监听的时候,就能够监听监控犯罪分子、执法需要、取证例如(传言,未经证实)三去车仑工力使用PGP通信基地组织的网站使用SSL/TLS5机密性-对称加密对称密码体系下的机密性对称密码的大规模使用需要KeyDistributionCenter,KDC要参与密钥协商,只要控制了KDC,就能够解密通信通信双方如果要自主地、安全地协商密钥,代价也比较大双方要自主地建立安全信道,代价较大人工地交换密钥,也会被政府机构发现政府的控制比较容易-控制KDC进入公钥时代,机密性更容易获得同时,也因为计算技术的发展6PKI使得机密性更容易获得公钥密码大规模地使用公钥密码,需要PKI/CAPKI用户进行机密性通信时,并不需要CA的参与CA并不知道订户的私钥机密性是由通信双方控制的,权威第三方不知道同时,因为计算技术的发展加解密不再需要专门的加密机普通的PC+软件程序就能够有高速率的加密总之,机密性更加容易获得自然,政府的监控,也就更难7关于机密性的控制一直以来,政府都认为需要控制机密性的使用在对称加密时代著名美国国家标准DES算法,密钥长度56bit基于Lucifer算法改进,Lucifer的密钥长度是128bit美国国家安全局NSA(NationalSecurityAgency)的坚持,越改越短。甚至于有人认为,在DES设计之初,NSA就已经有足够的能力破解DES以及后来的KeyEscrow计划流产了8KeyEscrowKeyEscrow美国加密算法的Key,不是加密设备自己生成的,而是由托管机构代为生成的,生成后导入加密设备如果证据表明,是利用密码在进行危及国家安全和违反法律规定的事,经法院许可,政府可从托管机构取来密钥、监听通信托管机构是否可信?美国的KeyEscrow遭到很多人的反对9中国对于机密性的控制《商用密码管理条例》商用密码,是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。个人通信自然也在此列商用密码产品由国家密码管理机构指定的单位生产。任何单位或者个人只能使用经国家密码管理机构认可的商用密码产品,不得使用自行研制的或者境外生产的密码产品。下载并使用国外软件,是否有问题?商用密码产品的用户不得转让其使用的商用密码产品。10从对称加密时代进入PKI在对称加密时代,政府希望对机密性进行合理的监控进入PKI后,机密性更加容易获得,机密性应用更加广泛也是因为计算技术的发展因为人人都能得到机密性,合理的监控更迫切政府迫切需要一种控制方法11可能的控制方法阻止PKI的使用?NO潮流所趋木已成舟,PKI已经开始使用难以禁止其他方面的安全服务例如,电子签名/电子交易,也需要PKI的支持,不能禁止让PKI仅仅支持其他方面的安全服务,不支持机密性?NORSA算法,可同时用于加密和签名12类似于KeyEscrow的方法要求PKI支持类似KeyEscrow的功能政府部门可以在必要的时候,解密订户的秘密通信PKI的机密性服务的过程,如下:Alice通过证书拿到Bob的公钥生成随机的SessionKey,加密数据用Bob公钥加密SessionKey发给Bob只有Bob的私钥可以解密那么,掌握了Bob的私钥,就可以解密通信所以,政府必须控制私钥的生成/存储从什么地方控制?13控制订户私钥的生成在PKI大规模使用的情况下政府难以直接对每个订户进行控制要求订户生成密钥时,同时copy一份给政府规模太大、数量太大从CA方面入手一般认为CA是商业机构,直接掌握订户的机密,并不合适所以,仍然需要有类似的第三方密钥托管机构密钥管理机构要求PKI提供一种“可控的”机密性服务而不是单纯的机密性服务14密钥管理机构或者密钥管理中心KeyManagementCenter简称KMC负责管理用户的加密密钥,在必要的时候,提供监听能力一般称为KeyRecovery密钥恢复15KeyRecovery-密钥恢复政府机关监听需要其他需要为了机密性,将文件进行加密存储如果密钥丢失,文件就不能恢复订户自己也有KeyRecovery的需求16回顾-PKI系统结构图17更完整的PKI系统+密钥管理机构18密钥管理机构的定位并不是技术的需要而是管理、法律上的需求运行管理上密钥管理机构的管理应该是中立于CA公司因为它掌握了大量的订户机密可以解密用户通信的各种隐私不应该由商业公司掌握结论就是:用户的私钥必须由密钥管理机构来生产/存储19密钥管理机构的功能一般要包括如下功能(后面详细讲解)密钥生成密钥存储密钥分发密钥更新密钥撤销密钥归档密钥恢复20再次回顾PKI支持如下服务机密性政府希望密钥是托管的完整性非否认真实性-鉴别对于后面3种服务,都是可以使用数字签名来实现的在数字签名方面,法律又是如何?《中华人民共和国电子签名法》21电子签名法的适用范围中华人民共和国电子签名法民事活动中的合同或者其他文件、单证等文书,当事人可以约定使用或者不使用电子签名、数据电文。当事人约定使用电子签名、数据电文的文书,不得仅因为其采用电子签名、数据电文的形式而否定其法律效力。前款规定不适用下列文书:涉及婚姻、收养、继承等人身关系的;涉及土地、房屋等不动产权益转让的;涉及停止供水、供热、供气、供电等公用事业服务的;法律、行政法规规定的不适用电子文书的其他情形。22电子签名制作数据-私钥从《中华人民共和国电子签名法》可看出,电子签名涉及我们生活的许多方面注:中华人民共和国电子签名法中,其实就是PKI提供的数字签名我们下面会混用电子签名和数字签名2个名词电子签名关系到我们的切身利益民事活动中的合同或者其他文件、单证等文书都是可以使用的各种合同等等23法律对电子签名的技术要求《电子签名法》规定同时符合下列条件的,视为可靠的电子签名:电子签名制作数据用于电子签名时,属于电子签名人专有签署时电子签名制作数据仅由电子签名人控制签署后对电子签名的任何改动能够被发现签署后对数据电文内容和形式的任何改动能够被发现注:电子签名制作数据如果将非对称密码学用于电子签名,指的就是私钥244条技术要求的分析电子签名人专有私钥应该证书Subject单独拥有的私钥不能托管签署时私钥仅由电子签名人控制签名工具(PKI应用系统的一部分)本身足够安全签名工具的运行环境足够安全病毒、木马等等能够发现签名结果的改动,能够发现被签名数据的改动要使用足够的算法强度、密钥长度、Hash算法25除了算法强度上的技术要求有如下2条私钥不应该托管与机密性的要求正好相反签名工具(PKI应用系统)足够安全签名工具的不安全,相当于电子印章到处乱丢后面我们会看到,“好的”PKI应用系统是“实际地、而不是形式上地”实现双证书体系的必要条件26其他国家世界上第一部数字签名法UtahDigitalSignatureAct,美国犹他州,1995Aprivatekeyisthepersonalpropertyofthesubscriberwhorightfullyholdsit,按照法律的解释,指:能够使用不泄漏给其它任何人私钥不是以偷、抢、窃听等其他非法手段得到犹他州数字签名法规定,CA也可以托管订户的privatekey,但必须得到订户的明确书面授权27数字签名私钥的要求其他国家的数字签名法、电子签名法,也有类似的要求数字签名私钥必须是由订户自主控制的注:任何其他人使用其私钥,都要得到订户的明确授权28出现了矛盾的要求机密性私钥应该托管、应该备份数字签名私钥应该是用户自主控制的PKI怎么办?29双证书体系为了支持法律法规的要求,PKI区分了签名证书和加密证书从法律上而言,必须分开2种证书/密钥用于加解密/数字签名的密钥,法律上的要求不一致2种情况下,对于私钥的生成有完全不同的要求,订户必须同时具有2个证书密钥对根据电子签名法用于签名的私钥应该是由订户自己掌握的根据密码管理规定加密密钥则由KMC共同掌握30双密钥/双证书订户同时具有2个证书密钥对2个证书、2个密钥对一般,称为签名密钥/签名证书加密密钥/加密证书分别用于机密性和数字签名签名密钥由订户自己生成加密密钥由密钥管理机构生成31双证书的关系双证PKI体系中,同一用户的2个证书,一般除了以下,其他信息都是相同的仅有如下信息不同:证书序列号公钥信息KeyUsage扩展、ExtendedKeyUsage扩展PrivateKeyUsagePeriod扩展CA签名结果注:并不是强制要求相同32提纲为什么会有双证书体系双证书流程双证书的实现和使用密钥管理机构的系统功能双证书体系的讨论中国电子签名法以及相关规定33增加申请证书流程已有的流程(用于签名密钥)订户生成密钥对将身份信息和公钥交给RARA审核无误后,CA签发证书RA或者CA将证书交给订户密钥管理机构的流程(用于加密密钥)34申请证书的流程变化已有的流程(用于签名密钥)密钥管理机构的流程(用于加密密钥)订户将身份信息交给RA,申请证书RA审核无误,RA或者CA从KMC获得密钥对KMC事先生成了密钥对CA签发证书RA或者CA将证书和密钥对一并交给订户35实际上不可能要求同一个订户进行2次流程,应该使用1次流程,同时获得了加密证书和签名证书方便订户同时,也减少RA/CA系统的负担方便管理减少数据存储所以,双证书的证书申请流程如下36双证PKI体系的流程1订户从KMC获得加密密钥对、自己生成签名密钥对发送证书请求给RA/CA消息中有2个公钥RA/CA要确认加密密钥对来自于KMC以及身份信息等签发2张证书如下图37流程图1KMC加密密钥加密密钥签名密钥证书请求证书请求是不是你生成的?双证书双证书双证书38加密密钥的检查其中,对加密密钥的检查确认来自于KMC因为KMC不是直接和CA通信可能使用的方法查询响应式,要求KMC/CA同时在线一般不使用由KMC签名,订户将签名结果一并交给CA相当于数据源认证KMC进行签名的次数太多KMC将大批量的公钥以安全的方式事先交给CA,CA检查时,仅仅本地匹配查找39双证PKI体系的流程2订户生成签名密钥对发送证书请求给RA/CA消息中有1个公钥RA/CA再向KMC请求另一个公钥也可以事先批量请求,存储在CA数据库中签发2张证书,交给订户订户向KMC索取加密私钥40流程图2KMC签名密钥证书请求证书请求双证书双证书双证书双证书加密密钥加密密钥41对于加密密钥的检查因为公钥是CA以安全通道从KMC得到,不需要检查确定是来自于KMC以上2种流程,都需要订户与KMC进行通信,获取加密密钥对42双证PKI体系的流程3订户生成签名密钥对发送证书请求给RA/CA消息中有1个公钥RA/CA向KMC请求加密密钥对(包括私钥)也可以事先批量请求,存储在CA系统中签发2张证书,同加密密钥一起交给订户43流程图3KMC签名密钥证书请求证书请求加密密钥加密密钥加密密钥双证书双证书加密密钥双证书加密密钥双证书加密密钥44管理要求管理上KMC作为管理密钥的机密重地,不希望直接面对大规模的最终用户KM