资源预览内容
第1页 / 共92页
第2页 / 共92页
第3页 / 共92页
第4页 / 共92页
第5页 / 共92页
第6页 / 共92页
第7页 / 共92页
第8页 / 共92页
第9页 / 共92页
第10页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
安全协议与标准, 2009, 10,PKCS#11 and more,Overview API Usage: Session Functions Summary Functions Detail/Example Mechanisms: Algorithm, Protocol Comparison Implementation GSS-API GCS-API CDSA MS-CAPI DEP,Overview,In cryptography, PKCS#11 is one of the family of standards called Public-Key Cryptography Standards (PKCS), published by RSA Laboratories. It defines a platform-independent API to cryptographic tokens, such as Hardware Security Modules and smart cards. (The PKCS#11 standard names the API Cryptoki, but is often used to refer to the API as well as the standard that defines it.) Since there isnt a real standard for cryptographic tokens, this API has been developed to be an abstraction layer for the generic cryptographic token. The PKCS#11 API defines most commonly used cryptographic object types (RSA keys, X.509 Certificates, DES/Triple DES keys, etc.) and all the functions needed to use, create/generate, modify and delete those objects.,-,PKCS#11 is largely adopted to access smart cards and HSMs. Most commercial Certification Authority software uses PKCS#11 to access the CA signing key or to enroll user certificates. Cross-platform software that needs to use smart cards uses PKCS#11, such as Mozilla Firefox and OpenSSL (using an extension). NSS(in Firefox) “pkcs-11v2-20.doc”,Background,Portable computing devices such as smart cards, PCMCIA cards, and smart diskettes are ideal tools for implementing public-key cryptography, as they provide a way to store the private-key component of a public-key/private-key pair securely, under the control of a single user. With such a device, a cryptographic application, rather than performing cryptographic operations itself, utilizes the device to perform the operations, with sensitive information such as private keys never being revealed. As more applications are developed for public-key cryptography, a standard programming interface for these devices becomes increasingly valuable. This standard addresses this need.,ka,Memory card Smart card PCMCIA/CardBus USB flash drive USB Key ExpressCard PCI Express,口令之外,口令登录 指纹登录 智能卡登录 登录次数的限制 PIN和lock功能 SSO,其他生物识别认证技术,抽象:Token,The primary goal of Cryptoki was a lower-level programming interface that abstracts the details of the devices, and presents to the application a common model of the cryptographic device, called a “cryptographic token” (or simply “token”). A token is a device that stores objects and can perform cryptographic functions. (cryptoki是token的接口),General Cryptoki Model,Object Hierarchy,Cryptoki defines three classes of object,Users,This version of Cryptoki recognizes two token user types. One type is a Security Officer (SO). The other type is the normal user. The role of the SO is to initialize a token and to set the normal users PIN, and possibly to manipulate some public objects. Only the normal user is allowed access to private objects on the token, and that access is granted only after the normal user has been authenticated.,Session,Cryptoki requires that an application open one or more sessions with a token to gain access to the tokens objects and functions. A session provides a logical connection between the application and the token. Cryptoki supports multiple sessions on multiple tokens. A session can be a read/write (R/W) session or a read-only (R/O) session.,Session events,Session events cause the session state to change. The following table describes the events:,Read-Only Session States,Read/Write Session States,Access to Different Types Objects by Different Types of Sessions,with fork(),Consider a UNIX process P which becomes a Cryptoki application by calling C_Initialize, and then uses the fork() system call to create a child process C. if C needs to use Cryptoki, it needs to perform its own C_Initialize call. (and then C_Finalize after some other operations) if it has no need to use Cryptoki, it should immediately call C_Initialize and then call C_Finalize.,with multi-thread,Cryptoki enables applications to provide information to libraries so that they can give appropriate support for multi-threading. In particular, when an application initializes a Cryptoki library with a call to C_Initialize, it can specify one of four possible multi-threading behaviors for the library:,Summary of Cryptoki Functions,Slot and token anagement functions,Session Management Functions,Object management functions,Encryption/Decryption functions,Message digesting functions,Signing and MACing functions,Functions for verifying signatures and MACs,Dual-purpose cryptographic functions,Key management functions,Random number generation functions,Parallel function management Functions,Callback function,Functions detail,CK_DEFINE_FUNCTION(CK_RV, C_Initialize)( CK_VOID_PTR pInitArgs); CK_DEFINE_FUNCTION(CK_RV, C_Finalize)( CK_VOID_PTR pReserved); ,Example,CK_INFO info; CK_RV rv; CK_C_INITIALIZE_ARGS InitArgs; InitArgs.CreateMutex = ,Mechanisms: Algorithm,RSA / DSA / EC / D-H KEA / Key derivation HMAC RC2 / RC4 / RC5 / AES / 2/3
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号