SlideShare a Scribd company logo
1 of 39
Download to read offline
PKCS#11 v2.20 :
Cryptographic Token Interface Standard
RSA Laboratories
28 June, 2004
Contents
Introduction
General Cryptoki Model
Object Hierarchy
Object Attribute Hierarchy
Session
Read-only session states
Read/write session states
Session Events
Example of use of sessions
Function List
Accredited Certificate Usage Specification for Hardware
Security Module - KISA
General Cryptoki Model
General Cryptoki Model
Object Hierarchy
Object Hierarchy of Token
Object Attribute Hierarchy
Object Attribute Hierarchy
Read-only session states
State Description
R/O Public Session The application has opened a read-only session. The application has read-only
access to public token objects and read/write access to public session objects.
R/O User Functions The normal user has been authenticated to the token. The application has
read-only access to all token objects (public or private) and read/write access
to all session objects (public or private).
Read-Only Session States
Read/Write Session States
Read/Write Session States
State Description
R/W Public Session The application has opened a read/write session. The application has read/write
access to all public objects.
R/W SO Functions The Security Officer has been authenticated to the token. The application has
read/write access only to public objects on the token, not to private objects.
The SO can set the normal user’s PIN.
R/W User Functions The normal user has been authenticated to the token. The application has
read/write access to all objects.
Read/Write Session States
Access to Different Types Objects by
Different Types of Sessions
Type of session
Type of object
R/O
Public
R/W
Public
R/O
User
R/W
User
R/W
SO
Public session object R/W R/W R/W R/W R/W
Private session object R/W R/W
Public token object R/O R/W R/O R/W R/W
Private token object R/O R/W
Access to Different Types Objects by Different Types of Sessions
Session Events
Session Events
Event Occurs when...
Log In SO the SO is authenticated to the token.
Log In User the normal user is authenticated to the token.
Log Out the application logs out the current user (SO or normal user).
Close Session the application closes the session or closes all sessions.
Device Removed the device underlying the token has been removed from its slot.
Cryptoki
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
C_Init
alize
C_Init
alize
1.call
1. call
Example of use of sessions
Cryptoki
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
R/W Public
session
Handle 7
2. Open R/W session
R/O Public
session
Handle 4
3. Open R/O session
Example of use of sessions
Cryptoki
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
R/W Public
session
Handle 7
4. Log in SO
R/O Public
session
Handle 4
failCKR_SESSION_READ_ONLY_EXISTS
Example of use of sessions
Cryptoki
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
R/W Public
session
Handle 7
R/O Public
session
Handle 4
5. Log in User
R/W User
Function
Handle 7
R/O User
Function
Handle 4
Example of use of sessions
Cryptoki
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
6. Open R/W
Session
R/W User
Function
Handle 9
7. Close session
Example of use of sessions
Cryptoki
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
8. Log out session 4
Fail
CKR_SESSION_HANDLE_INVALID
Example of use of sessions
Cryptoki
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
9. Close session 4
Fail
CKR_SESSION_HANDLE_INVALID
Example of use of sessions
Cryptoki
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
10. Open R/W session
R/W Public
Session
Handle 7
Example of use of sessions
Cryptoki
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
11. Login SO
R/W Public
Session
Handle 7
R/W SO
Function
Handle 7
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread12. Open R/O session
Fail (CKR_SESSION_READ_WRITE_SO_EXISTS)
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
13. Create session object
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
14 Create token object
Session O1
Handle 7
Token O2
Handle 7
! SO cannot create private
CKR_USER_NOT_LOGGED_IN or CKR_TEMPLATE_INCONSISTENT
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
15. Modifies O2
Session O1
Handle 7
Token O2
Handle 7
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
Token O2
Handle 7
16. Object search
Handle 1
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
Token O2
Handle 7
17. Modify O2
Fail
CKR_SESSION_READ_ONLY
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
Token O2
Handle 7
18. Modify O2
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
Token O2
Handle 7
19. Search O1
Not Succeed
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
Token O2
Handle 7
20. Modify O1
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
Token O2
Handle 7
21. Destory O2
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
22. Attempt - Object handle7
Fail (CKR_OBJECT_HANDLE_INVALID)
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
R/W User
Function
Handle 7
R/O User
Function
Handle 4
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
23. Log Out
R/W Public
session
Handle 7
R/O Public
session
Handle 4
Example of use of sessions
Cryptoki
R/O Public
session
Handle 4
R/W Public
session
Handle 7
R/W SO
Function
Handle 7
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
Session O1
Handle 7
24. Close session
Example of use of sessions
Cryptoki
R/O Public
session
Handle 4
R/W SO
Function
Handle 7
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
25. Attempt objet handle7 O1
FailCKR_OBJECT_HANDLE_INVALID
Example of use of sessions
Cryptoki
R/O Public
session
Handle 4
R/W SO
Function
Handle 7
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
C_Clo
seAll
Sessi
ons
26. call
Example of use of sessions
Cryptoki
R/W SO
Function
Handle 7
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
27. Close Session
Example of use of sessions
Cryptoki
Example of use of sessions
T
O
K
E
N
A1
A2
B1
B2
A
B
Thread
Thread
C_Fin
alize
C_Fin
alize
28.call
28. call
Function List
API 함수 정의 내용
기본목적(General Purpose)
C_Initialize Cryptoki를 초기화
C_Finalize Cryptoki와 연관된다양한자원을해제
C_GetInfo Cryptoki에 대한 일반적인정보를획득
C_GetFunctionList 지원하는Cryptoki 함수 집합을획득
슬롯 & 토큰 관리(Slot and Token Management)
C_GetSlotList 시스템에있는 슬롯 집합을획득
C_GetSlotInfo 특정 슬롯에관한 정보를획득
C_GetTokenInfo 특정 토큰에관한 정보를획득
C_GetMechanismList 토큰이지원하는메커니즘집합을획득
C_GetMechanismInfo 특정 메커니즘에관한 정보를획득
세션 관리(Session Management)
C_OpenSession 응용시스템과토큰간의연결을생성
C_CloseSession 세션을종료
C_CloseAllSessions 특정 토큰과연관된모든 세션을종료
C_GetSessionInfo 세션에대한 정보 획득
C_Login 토큰에로그인
C_Logout 토큰으로부터로그아웃
암호화(Encryption), 메시지 압축(Message Digesting), 전자서명및 MAC 검증, Dual-purpose cryptographic,
Random Number Generation, Parallel function management - OPTION
API 함수 정의 내용
객체 관리(Object management)
C_CreateObject 객체 생성
C_DestroyObject 객체 파기
C_GetAttributeValue 객체 속성 획득
C_SetAttributeValue 객체 속성 수정
C_FindObjectInit 객체 검색 초기화
C_FindObjects 객체 검색
C_FindObjectsFinal 객체 검색 종료
복호화(Encryption)
C_DecryptInit 복호화기능 초기화
C_Decrypt 단일 암호화부분에대한 복호화수행
전자서명및 MAC (Signing & MACing)
C_SignInit 서명 기능을초기화
C_Sign 단일 부분 서명을수행
키 관리(Key Management)
C_UnWrapKey 키 복호화
Accredited Certificate Usage Specification for
Hardware Security Module - KISA
http://rootca.kisa.or.kr/kcac/down/TechSpec/6.3-Accredited%20Certificate%20
Usage%20Specification%20for%20Hardware%20Security%20Module.pdf
KISA - 보안토큰 기반의 공인인증서 이용기술 규격
Q & A
END

More Related Content

What's hot (20)

llvm basic porting for risc v
llvm basic porting for risc vllvm basic porting for risc v
llvm basic porting for risc v
 
Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack
 
Selenium
SeleniumSelenium
Selenium
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
MCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
MCA Daemon: Hybrid Throughput Analysis Beyond Basic BlocksMCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
MCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Cours Android
Cours AndroidCours Android
Cours Android
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 
Tp4 - PHP
Tp4 - PHPTp4 - PHP
Tp4 - PHP
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 
Linux Porting
Linux PortingLinux Porting
Linux Porting
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driver
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
 
02.모의해킹전문가되기
02.모의해킹전문가되기02.모의해킹전문가되기
02.모의해킹전문가되기
 
NMAP - The Network Scanner
NMAP - The Network ScannerNMAP - The Network Scanner
NMAP - The Network Scanner
 

Similar to PKCS#11 Cryptographic Token Interface

JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]David Buck
 
DeadLock Preventer
DeadLock PreventerDeadLock Preventer
DeadLock PreventerTeodor Madan
 
Software Engineering - RS4
Software Engineering - RS4Software Engineering - RS4
Software Engineering - RS4AtakanAral
 
The Developer Conference - CloudKit, entendendo a Cloud da Apple
The Developer Conference - CloudKit, entendendo a Cloud da AppleThe Developer Conference - CloudKit, entendendo a Cloud da Apple
The Developer Conference - CloudKit, entendendo a Cloud da AppleRodrigo Leite
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18Xiaoli Liang
 
Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...
Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...
Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...Sigma Software
 
Deep Dive Into Repository - Android Architecture Components
Deep Dive Into Repository - Android Architecture ComponentsDeep Dive Into Repository - Android Architecture Components
Deep Dive Into Repository - Android Architecture ComponentsSomkiat Khitwongwattana
 
Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Pascal Rapicault
 
Open tok Android sdk - Droidcon
Open tok Android sdk - DroidconOpen tok Android sdk - Droidcon
Open tok Android sdk - DroidconDroidcon Spain
 
SCL
SCLSCL
SCLESUG
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Developmentriround
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Red Hat Developers
 
Code Documentation. That ugly thing...
Code Documentation. That ugly thing...Code Documentation. That ugly thing...
Code Documentation. That ugly thing...Christos Manios
 
GS1/Oliot ALE and Next
GS1/Oliot ALE and NextGS1/Oliot ALE and Next
GS1/Oliot ALE and NextDaeyoung Kim
 
Orion RESTful git API
Orion RESTful git APIOrion RESTful git API
Orion RESTful git APITomasz Zarna
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBAPeter R. Egli
 
Tech Days 2015: Certification and Qualification
Tech Days 2015: Certification and Qualification Tech Days 2015: Certification and Qualification
Tech Days 2015: Certification and Qualification AdaCore
 
.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2Shaun Wilde
 

Similar to PKCS#11 Cryptographic Token Interface (20)

JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]
 
DeadLock Preventer
DeadLock PreventerDeadLock Preventer
DeadLock Preventer
 
Discovering the p2 API
Discovering the p2 APIDiscovering the p2 API
Discovering the p2 API
 
Software Engineering - RS4
Software Engineering - RS4Software Engineering - RS4
Software Engineering - RS4
 
The Developer Conference - CloudKit, entendendo a Cloud da Apple
The Developer Conference - CloudKit, entendendo a Cloud da AppleThe Developer Conference - CloudKit, entendendo a Cloud da Apple
The Developer Conference - CloudKit, entendendo a Cloud da Apple
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 
Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...
Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...
Каково состояние реактивного доступа к базам данных? Олег Докука и Игорь Лози...
 
Deep Dive Into Repository - Android Architecture Components
Deep Dive Into Repository - Android Architecture ComponentsDeep Dive Into Repository - Android Architecture Components
Deep Dive Into Repository - Android Architecture Components
 
Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)
 
Open tok Android sdk - Droidcon
Open tok Android sdk - DroidconOpen tok Android sdk - Droidcon
Open tok Android sdk - Droidcon
 
SCL
SCLSCL
SCL
 
Java se7 features
Java se7 featuresJava se7 features
Java se7 features
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Development
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
 
Code Documentation. That ugly thing...
Code Documentation. That ugly thing...Code Documentation. That ugly thing...
Code Documentation. That ugly thing...
 
GS1/Oliot ALE and Next
GS1/Oliot ALE and NextGS1/Oliot ALE and Next
GS1/Oliot ALE and Next
 
Orion RESTful git API
Orion RESTful git APIOrion RESTful git API
Orion RESTful git API
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
Tech Days 2015: Certification and Qualification
Tech Days 2015: Certification and Qualification Tech Days 2015: Certification and Qualification
Tech Days 2015: Certification and Qualification
 
.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2.NET Profilers and IL Rewriting - DDD Melbourne 2
.NET Profilers and IL Rewriting - DDD Melbourne 2
 

More from Byeong Yeong Jeong

More from Byeong Yeong Jeong (7)

Image Retrieval
Image RetrievalImage Retrieval
Image Retrieval
 
PKCS8
PKCS8PKCS8
PKCS8
 
PKCS5
PKCS5PKCS5
PKCS5
 
File fuzz testing
File fuzz testingFile fuzz testing
File fuzz testing
 
동네예보정보조회 서비슷 API를 활용한 이커머스
동네예보정보조회 서비슷 API를 활용한 이커머스동네예보정보조회 서비슷 API를 활용한 이커머스
동네예보정보조회 서비슷 API를 활용한 이커머스
 
Proof of work
Proof of workProof of work
Proof of work
 
알아두면 유용한 데이터 암호화 이야기
알아두면 유용한 데이터 암호화 이야기알아두면 유용한 데이터 암호화 이야기
알아두면 유용한 데이터 암호화 이야기
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

PKCS#11 Cryptographic Token Interface

  • 1. PKCS#11 v2.20 : Cryptographic Token Interface Standard RSA Laboratories 28 June, 2004
  • 2. Contents Introduction General Cryptoki Model Object Hierarchy Object Attribute Hierarchy Session Read-only session states Read/write session states Session Events Example of use of sessions Function List Accredited Certificate Usage Specification for Hardware Security Module - KISA
  • 5. Object Attribute Hierarchy Object Attribute Hierarchy
  • 6. Read-only session states State Description R/O Public Session The application has opened a read-only session. The application has read-only access to public token objects and read/write access to public session objects. R/O User Functions The normal user has been authenticated to the token. The application has read-only access to all token objects (public or private) and read/write access to all session objects (public or private). Read-Only Session States
  • 8. Read/Write Session States State Description R/W Public Session The application has opened a read/write session. The application has read/write access to all public objects. R/W SO Functions The Security Officer has been authenticated to the token. The application has read/write access only to public objects on the token, not to private objects. The SO can set the normal user’s PIN. R/W User Functions The normal user has been authenticated to the token. The application has read/write access to all objects. Read/Write Session States
  • 9. Access to Different Types Objects by Different Types of Sessions Type of session Type of object R/O Public R/W Public R/O User R/W User R/W SO Public session object R/W R/W R/W R/W R/W Private session object R/W R/W Public token object R/O R/W R/O R/W R/W Private token object R/O R/W Access to Different Types Objects by Different Types of Sessions
  • 10. Session Events Session Events Event Occurs when... Log In SO the SO is authenticated to the token. Log In User the normal user is authenticated to the token. Log Out the application logs out the current user (SO or normal user). Close Session the application closes the session or closes all sessions. Device Removed the device underlying the token has been removed from its slot.
  • 12. Cryptoki T O K E N A1 A2 B1 B2 A B Thread Thread R/W Public session Handle 7 2. Open R/W session R/O Public session Handle 4 3. Open R/O session Example of use of sessions
  • 13. Cryptoki T O K E N A1 A2 B1 B2 A B Thread Thread R/W Public session Handle 7 4. Log in SO R/O Public session Handle 4 failCKR_SESSION_READ_ONLY_EXISTS Example of use of sessions
  • 14. Cryptoki T O K E N A1 A2 B1 B2 A B Thread Thread R/W Public session Handle 7 R/O Public session Handle 4 5. Log in User R/W User Function Handle 7 R/O User Function Handle 4 Example of use of sessions
  • 15. Cryptoki R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 6. Open R/W Session R/W User Function Handle 9 7. Close session Example of use of sessions
  • 16. Cryptoki R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 8. Log out session 4 Fail CKR_SESSION_HANDLE_INVALID Example of use of sessions
  • 17. Cryptoki R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 9. Close session 4 Fail CKR_SESSION_HANDLE_INVALID Example of use of sessions
  • 18. Cryptoki R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 10. Open R/W session R/W Public Session Handle 7 Example of use of sessions
  • 19. Cryptoki R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 11. Login SO R/W Public Session Handle 7 R/W SO Function Handle 7 Example of use of sessions
  • 20. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread12. Open R/O session Fail (CKR_SESSION_READ_WRITE_SO_EXISTS) Example of use of sessions
  • 21. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 13. Create session object Example of use of sessions
  • 22. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 14 Create token object Session O1 Handle 7 Token O2 Handle 7 ! SO cannot create private CKR_USER_NOT_LOGGED_IN or CKR_TEMPLATE_INCONSISTENT Example of use of sessions
  • 23. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread 15. Modifies O2 Session O1 Handle 7 Token O2 Handle 7 Example of use of sessions
  • 24. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 Token O2 Handle 7 16. Object search Handle 1 Example of use of sessions
  • 25. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 Token O2 Handle 7 17. Modify O2 Fail CKR_SESSION_READ_ONLY Example of use of sessions
  • 26. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 Token O2 Handle 7 18. Modify O2 Example of use of sessions
  • 27. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 Token O2 Handle 7 19. Search O1 Not Succeed Example of use of sessions
  • 28. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 Token O2 Handle 7 20. Modify O1 Example of use of sessions
  • 29. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 Token O2 Handle 7 21. Destory O2 Example of use of sessions
  • 30. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 22. Attempt - Object handle7 Fail (CKR_OBJECT_HANDLE_INVALID) Example of use of sessions
  • 31. Cryptoki R/W SO Function Handle 7 R/W User Function Handle 7 R/O User Function Handle 4 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 23. Log Out R/W Public session Handle 7 R/O Public session Handle 4 Example of use of sessions
  • 32. Cryptoki R/O Public session Handle 4 R/W Public session Handle 7 R/W SO Function Handle 7 T O K E N A1 A2 B1 B2 A B Thread Thread Session O1 Handle 7 24. Close session Example of use of sessions
  • 33. Cryptoki R/O Public session Handle 4 R/W SO Function Handle 7 T O K E N A1 A2 B1 B2 A B Thread Thread 25. Attempt objet handle7 O1 FailCKR_OBJECT_HANDLE_INVALID Example of use of sessions
  • 34. Cryptoki R/O Public session Handle 4 R/W SO Function Handle 7 T O K E N A1 A2 B1 B2 A B Thread Thread C_Clo seAll Sessi ons 26. call Example of use of sessions
  • 36. Cryptoki Example of use of sessions T O K E N A1 A2 B1 B2 A B Thread Thread C_Fin alize C_Fin alize 28.call 28. call
  • 37. Function List API 함수 정의 내용 기본목적(General Purpose) C_Initialize Cryptoki를 초기화 C_Finalize Cryptoki와 연관된다양한자원을해제 C_GetInfo Cryptoki에 대한 일반적인정보를획득 C_GetFunctionList 지원하는Cryptoki 함수 집합을획득 슬롯 & 토큰 관리(Slot and Token Management) C_GetSlotList 시스템에있는 슬롯 집합을획득 C_GetSlotInfo 특정 슬롯에관한 정보를획득 C_GetTokenInfo 특정 토큰에관한 정보를획득 C_GetMechanismList 토큰이지원하는메커니즘집합을획득 C_GetMechanismInfo 특정 메커니즘에관한 정보를획득 세션 관리(Session Management) C_OpenSession 응용시스템과토큰간의연결을생성 C_CloseSession 세션을종료 C_CloseAllSessions 특정 토큰과연관된모든 세션을종료 C_GetSessionInfo 세션에대한 정보 획득 C_Login 토큰에로그인 C_Logout 토큰으로부터로그아웃 암호화(Encryption), 메시지 압축(Message Digesting), 전자서명및 MAC 검증, Dual-purpose cryptographic, Random Number Generation, Parallel function management - OPTION API 함수 정의 내용 객체 관리(Object management) C_CreateObject 객체 생성 C_DestroyObject 객체 파기 C_GetAttributeValue 객체 속성 획득 C_SetAttributeValue 객체 속성 수정 C_FindObjectInit 객체 검색 초기화 C_FindObjects 객체 검색 C_FindObjectsFinal 객체 검색 종료 복호화(Encryption) C_DecryptInit 복호화기능 초기화 C_Decrypt 단일 암호화부분에대한 복호화수행 전자서명및 MAC (Signing & MACing) C_SignInit 서명 기능을초기화 C_Sign 단일 부분 서명을수행 키 관리(Key Management) C_UnWrapKey 키 복호화
  • 38. Accredited Certificate Usage Specification for Hardware Security Module - KISA http://rootca.kisa.or.kr/kcac/down/TechSpec/6.3-Accredited%20Certificate%20 Usage%20Specification%20for%20Hardware%20Security%20Module.pdf KISA - 보안토큰 기반의 공인인증서 이용기술 규격