您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > PKCS#11规范培训
Page1PKCS#11标准介绍软件开发中心安全软件部Page2写在前面的PKCS11是什么为什么会有PKCS11PKCS11能干什么PKCS11的特点Page3PKCS11是什么PKCS系列规范的第11部分CryptographicTokenInterfaceSTD68个函数接口应用程序与加密Token之间的接口Page4为什么会有PKCS11为使用加密Token的应用程序提供统一的编程接口为应用程序提供独立于设备的编程接口屏蔽加密设备的复杂性应用程序可以方便的更换设备既生瑜何生亮PKCS11vsCSPPage5PKCS11能干什么完成所有(据我所知)的密码操作加密解密签名验证摘要密钥生成/派生对象的创建,存储,查找,修改,使用,删除应用程序会话管理Page6PKCS11的特点跨平台可扩展支持多设备,多线程更专注于加密Token简化的应用模式(一个User,一个SO)Page7内容I.关于PKCS#11II.概述III.基本概念IV.典型对象属性分析V.API分析与应用实例Page8I.关于PKCS#11是一套针对加密Token的应用编程接口屏蔽了硬件细节针对ANSIC编写的接口也称作Cryptoki广泛应用于Token相关的产品中(例如Netscape,Mozilla,Firefox,Thunderbird)简化的应用模式(一个User,一个SO)Page97816-1/2/3/4/5/6/8ASN.1PKCS-1/13/14/15,7816-15,DES,AES,SHA,MD2,MD5,…PKCS-11,CSPX509,PKCS-3/5/7/8/9/10/12SSL,S/MIMEIE,Outlook,Foxmail,Word,Netscape,Mozilla,Firefox,ThunderbirdI.关于PKCS#11Page10内容I.关于PKCS#11II.概述III.基本概念IV.典型对象属性分析V.API分析与应用实例Page11II.概述总体模型OtherSecurityLayersApplication1CryptokiOtherSecurityLayersApplicationkCryptokiDeviceContention/SynchronizationSlot1Token1(Device1)SlotnTokenn(Devicen)Page12II.概述Token逻辑视图ObjectCertificateKeyDataSecretKeyPrivateKeyPublicKey令牌逻辑视图是一个能存储对象和能执行密码函数的设备Page13II.概述函数接口概述——通用目的函数Page14II.概述函数接口概述——槽和令牌管理函数Page15II.概述函数接口概述——会话管理函数Page16II.概述函数接口概述——对象管理函数Page17II.概述函数接口概述——加密和解密函数Page18II.概述函数接口概述——摘要计算函数Page19II.概述函数接口概述——签名和MAC计算函数Page20II.概述函数接口概述——签名和MAC验证函数Page21II.概述函数接口概述——双功能密码函数Page22II.概述函数接口概述——密钥管理函数Page23II.概述函数接口概述——其他函数Page24内容I.关于PKCS#11II.概述III.基本概念IV.典型对象属性分析V.API分析与应用实例Page25III.基本概念Slot&TokenObjectAttributeUsersSessions状态转换(与Session有关)Mechnism应用程序与多线程Page263.1Slot&TokenIII.基本概念Page27III.基本概念3.2Object对象证书密钥数据保密密钥私有密钥公共密钥对象的层次结构Page28III.基本概念3.2ObjectToken对象Sesssion对象Public对象Private对象Page29III.基本概念3.3Attribute对象包括一套属性,每个对象都具有一个给定值。一个对象处理的每个属性都有一个唯一确定的值。Page30Cryptokiprovidesfunctionsforcreating,destroying,andcopyingobjectsingeneral,andforobtainingandmodifyingthevaluesoftheirattributes.Someofthecryptographicfunctions(e.g.,C_GenerateKey)alsocreatekeyobjectstoholdtheirresults.Objectsarealways“well-formed”inCryptoki—thatis,anobjectalwayscontainsallrequiredattributes,andtheattributesarealwaysconsistentwithoneanotherfromthetimetheobjectiscreated.Thiscontrastswithsomeobject-basedparadigmswhereanobjecthasnoattributesotherthanperhapsaclasswhenitiscreated,andisuninitializedforsometime.InCryptoki,objectsarealwaysinitialized.III.基本概念—AttributePage31Atokencanholdseveralidenticalobjects,i.e.,itispermissiblefortwoormoreobjectstohaveexactlythesamevaluesforalltheirattributes.InmostcaseseachtypeofobjectintheCryptokispecificationpossessesacompletelywell-definedsetofCryptokiattributes.Someoftheseattributespossessdefaultvalues,andneednotbespecifiedwhencreatinganobject;someofthesedefaultvaluesmayevenbetheemptystring(“”).Nonetheless,theobjectpossessestheseattributes.Agivenobjecthasasinglevalueforeachattributeitpossesses,eveniftheattributeisavendorspecificattributewhosemeaningisoutsidethescopeofCryptoki.InadditiontopossessingCryptokiattributes,objectsmaypossessadditionalvendorspecificattributeswhosemeaningsandvaluesarenotspecifiedbyCryptoki.III.基本概念—AttributePage32III.基本概念3.4UsersPKCS11识别两种令牌用户类型。一个类型就是安全官员(SO)。另一个类型就是普通用户。只有普通用户才能访问令牌上的私有对象,而且只有普通用户在得到授权后才能进行这种访问。一些令牌可能需要用户在执行令牌上的任意密码功能之前得到授权,不管令牌是否涉及私有对象。SO的作用是初始化一个令牌,设置普通用户的PIN(或由Cryptoki版本以外的方式确定普通用户怎样得到授权),或许还要操作某些公共对象。普通用户只有在SO设置普通用户的PIN以后才能注册。Page333.5SessionsIII.基本概念会话在应用程序和令牌之间提供一个逻辑连接。Cryptoki需要用令牌打开一个以上的会话以便使用令牌的对象和函数。会话可以是读/写(R/W)会话,也可以是只读(R/O)会话。读/写和只读指的是通向令牌对象的入口,而不是会话对象。在这两种会话类型下,应用程序能够创建、读、写和破坏会话对象。但是,只有在读/写会话中,应用程序能够创建、修改和破坏令牌对象。Page343.6状态转换(与Session有关)一个打开的会话可以在几种状态之一。会话状态决定通向对象和在会话上执行的函数允许的通道。III.基本概念打开一个会话后,应用程序便可访问令牌的公共对象。所给应用程序的所有线程可访问相同会话和相同会话对象。为了访问令牌私有对象,不同用户必须先登录并得到授权。当关闭一个会话后,在该会话过程中创建的任何会话对象都会被破坏。这甚至适用于其它会话正在使用的会话对象。如果单个应用程序打开同一令牌的多个会话,并使用其中一个创建会话对象,那么这些会话对象就可以被该应用程序的所有会话看到。但是,当创建对象的会话关闭时,对象也被破坏了。Cryptoki支持在多令牌上的多个会话。应用程序可以和一个以上的令牌进行一个以上的会话。一个令牌可以和一个以上的应用程序进行多个会话。但是,一个特定的令牌可能要求应用程序只能有限定数量的会话,或只能有限定数量的读/写会话。Page35R/OPublicSessionR/OUserFunctionsLoginUserLogoutOpenSessionOpenSessionCloseSession/DeviceRemovedCloseSession/DeviceRemoved状态转换–只读会话III.基本概念—状态转换Page36StateDescriptionR/OPublicSessionTheapplicationhasopenedaread-onlysession.Theapplicationhasread-onlyaccesstopublictokenobjectsandread/writeaccesstopublicsessionobjects.R/OUserFunctionsThenormaluserhasbeenauthenticatedtothetoken.Theapplicationhasread-onlyaccesstoalltokenobjects(publicorprivate)andread/writeaccesstoallsessionobjects(publicorprivate).ROsessionIII.基本概念—状态转换Note:Read-OnlySOSessiondonotexists.Page37R/WSOFunctionsR/WPublicSessionLoginSOLogoutOpenSessionOpenSessionCloseSession/DeviceRemovedCloseSession/DeviceRemovedR/WUserFunctionsLoginUserLogoutOpenSessionCloseSession/DeviceRemoved状态转换–读写会话III.基本概念—状态转换Page38RWsessionStateDescriptionR/WPublicSessionTheapplicationhasopenedaread/writesession.Theapplicationhasread/writeaccesstoallpublicobjects.R/WSOFunctionsTheSecurityOfficerhasbeenauthenticatedtothetoken.Theapplicationhasread/writeaccessonlytopublicobjectsonthetoken,nottoprivateobjects.TheSOca
本文标题:PKCS#11规范培训
链接地址:https://www.777doc.com/doc-5833815 .html