1. Trang chủ
  2. » Tất cả

93111226-PKCS-11

14 10 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 723,86 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vì vậy, khi một tài liệu PKCS được chấp nhận như một tài liệu cơ sở cho một tiêu chuẩn chính thức, RSA Laboratories tuyên bố từ bỏ "quyền sở hữu" của nó.. Object Một mục được lưu trữ trê

Trang 1

LỜI NÓI ĐẦU

Khi mật mã khóa công khai bắt đầu ứng dụng rộng rãi và được chấp nhận là ngày càng rõ ràng Nếu nó có được hiệu quả như các công nghệ cơ bản cho phép nó có thể, phải có tiêu chuẩn tương thích Mặc dù các nhà cung cấp có thể thoả thuận về kỹ thuật cơ bản khóa công khai, tính tương thích giữa hiện thực là do không có phương tiện bảo đảm Khả năng cộng tác đòi hỏi phải tuân thủ nghiêm ngặt theo thỏa thuậntiêu chuẩn định dạng cho dữ liệu chuyển giao

Hướng tới mục tiêu đó, RSA Laboratories đã phát triển, hợp tác với các đại diện ngành công nghiệp và các học viện, chính phủ, một họ các tiêu chuẩn được gọi là Public-Key Cryptography Standards, hoặc PKCS cho ngắn

PKCS được cung cấp bởi RSA Laboratoriescho các nhà phát triển của các hệ thống máy tính sử dụng công nghệ public-key RSA Laboratories có ý định cải thiện và tinh chỉnh các tiêu chuẩn kết hợp với các nhà phát triển hệ thống máy tính, với mục tiêu sản xuất tiêu chuẩn mà hầu hết nếu không phải tất cả các nhà phát triển thông qua

Vai trò của RSA Laboratoriestrong quá trình tiêu chuẩn làm là gấp bốn lần:

1 Xuất bản một cách cẩn thận các tài liệu bằng văn bản mô tả tiêu chuẩn

2 Cố gắng lấy được ý kiến và lời khuyên từ các nhà phát triển và người sử dụng thay đổi hữu ích hoặc cần thiết và phần mở rộng

3 Công bố tiêu chuẩn sửa đổi khi thích hợp

4 Cung cấp hướng dẫn thực hiện và / hoặc triển khai thực hiện tham chiếu

Trong quá trình phát triển của PKCS, RSA Laboratoriesvẫn giữ được quyền tối cao cuối cùng trên mỗi tài liệu, mặc dù đầu vào từ nhận xét rõ ràng là có ảnh hưởng Tuy nhiên, RSA Laboratories, mục tiêu là đẩy mạnh phát triển các tiêu chuẩn chính thức, không phải

để cạnh tranh với các công việc như vậy Vì vậy, khi một tài liệu PKCS được chấp nhận như một tài liệu cơ sở cho một tiêu chuẩn chính thức, RSA Laboratories tuyên bố từ bỏ

"quyền sở hữu" của nó

Tài liệu, mở đường cho quá trình phát triển các tiêu chuẩn mở RSA Laboratoriescó thể tiếp tục phát triển các tài liệu liên quan, tất nhiên, theo các điều khoản được mô tả ở trên

Họ PKCS hiện tại bao gồm các tài liệu sau đây:

PKCS #1: RSA Encryption Standard Version 1.5, November 1993

PKCS #3: Diffie-Hellman Key-Agreement Standard Version 1.4, November 1993

PKCS #5: Password-Based Encryption Standard Version 1.5, November 1993

PKCS #6: Extended-Certificate Syntax Standard Version 1.5, November 1993

PKCS #7: Cryptographic Message Syntax Standard Version 1.5, November 1993

PKCS #8: Private-Key Information Syntax Standard Version 1.2, November 1993

PKCS #9: Selected Attribute Types Version 1.1, November 1993

PKCS #10: Certification Request Syntax Standard Version 1.0, November 1993

PKCS #11: Cryptographic Token Interface Standard Version 1.0, April 1995

Trang 2

GHI CHÚ API Giao diện lập trình ứng dụng

Application Bất kỳ chương trình máy tính mà các lời gọi giao diện Cryptoki

ASN.1 Tóm tắt Ký hiệu cú pháp, như định nghĩa trong X.208

Attribute Một đặc tính của một đối tượng

BER Thuật toán mã hóa khối Chaining chế độ, như được định nghĩa trong FIPS PUB 81 CBC Encoding Rules cơ bản, như được định nghĩa trong X.209

Certificate Một tin nhắn đã ký kết ràng buộc một tên chủ đề và một khóa công khai Cryptographic Device Một thiết bị lưu trữ thông tinmật mãvàcóthểthựchiệnchức năng

mã hóa.Có thể được thực hiện nhưmột thẻ thông minh, đĩathông minh, thẻPCMCIA, hoặc với một sốcôngnghệkhác, bao gồm cảphầnmềmhoặcmột quá trình trênmột máy chủ

Cryptoki Cryptographic mã thông báo giao diện được quy định trong tiêu chuẩn này Cryptoki library Một thư viện mà thực hiện các chức năng quy định trong tiêu chuẩn

này

DES Chuẩn mã hóa dữ liệu, như được định nghĩa trong FIPS PUB 46-2

DSA Chữ ký số thuật toán, như được định nghĩa trong FIPS PUB 186

ECB Codebook chế độ điện tử, như được định nghĩa trong FIPS PUB 81

MAC Mã xác thực tin nhắn, như được định nghĩa trong ANSI X9.9

MD2 RSA Data Security, Inc MD2 nhắn tiêu hóa thuật toán, như được định nghĩa

RFC 1319

MD5 RSA Data Security, Inc Thông điệp MD5 tiêu hóa thuật toán, như được định nghĩa

RFC 1321

Mechanism Một quá trình để thực hiện một hoạt động mật mã

Object Một mục được lưu trữ trên một thẻ, có thể là dữ liệu, chứng chỉ, hoặc một chìa

khóa

PIN Mã số cá nhân

RSA Các RSA hệ thống mật mã khóa công khai, theo quy định trong PKCS # 1

RC2 Thuộc quyền sở hữu khối thuật toán mã hóa RSA RC2 bảo mật dữ liệu đối xứng RC4 Độc quyền dòng thuật toán mã hóa RSA RC4 bảo mật dữ liệu đối xứng

Reader Các phương tiện thông tin được trao đổi với một thiết bị

Session Một kết nối hợp lý giữa một ứng dụng và một mã thông báo

SHA Thuật toán băm an toàn, như được định nghĩa trong FIPS PUB 180

Slot Một độc giả hợp lý có khả năng chứa một mã thông báo

Subject Name X.500 tên phân biệt của thực thể mà quan trọng là được giao

SO Cán bộ an ninh người sử dụng

Token quan điểmluận lýcủa một thiết bịmã hóađược xác định bởiCryptoki

User Người sử dụng một ứng dụng giao diện với Cryptoki

CÁI NHÌN TỔNG QUAN PKCS #11

Trang 3

 THIẾT KẾ MỤC TIÊU

- Mục tiêu chính của Cryptokilàgiao diện lập trình ở cấp độ thấptóm tắtcácchitiếtcủa các thiết bị, và trình bàycácứngdụngmột mô hìnhphổbiếncủa các thiết bịmã hóa, đượcgọilàmột " cryptographic token" (hoặcchỉ đơn giản là"token")

- Mục tiêu thứ hai là chia sẻ tài nguyên

 MÔ HÌNH

- Mô hình chung của Cryptoki được minh họa trong hình dưới đây :

 XEM LUẬN LÝ CỦA MỘT TOKEN

- Xem của logic Cryptoki của một mã thông báo là một thiết bị lưu trữ đối tượng và có thể thực hiện chức năng mã hóa Cryptoki định nghĩa ba lớp học của đối tượng dữ liệu, chứng nhận, và Keys Một đối tượng dữ liệu được định nghĩa bởi một ứng dụng Một đối tượng chứng chỉ lưu trữ một giấy chứng nhận khóa công khai Một đối tượng quan trọng lưu giữ một chìa khóa mã hóa Các mã hóa khóa được một khóa công khai (RSA, DSA hoặc Diffie-Hellman), một khóa riêng (RSA, DSA hoặc Diffie- Hellman) hoặc một chìa khóa bí mật (RC2, RC4, DES, vv) Quan điểm này được minh họa

trong hình dưới đây:

Trang 4

 NGƯỜI SỬ DỤNG

- Phiên bản này của Cryptoki công nhận hai loại người sử dụng mã thông báo Một loại

là bảo mật cấp cao (SO) Loại khác là người sử dụng bình thường

 SESSIONS

- Cryptoki đòi hỏimột ứng dụng "mở một phiên họp" vớimột mã thông báotrước khi ứng dụngcó quyền truy cậpcho các đối tượngvàchứcnăngcủathẻ Sessioncung cấp cáckết nối hợp lýgiữa các ứng dụngvà mã thông báo Mộtsession có thểlàread/write(R

/W) phiên hoặcmột phiênread-only(R /O)

 Read-only session states

 Read/write session states

Trang 5

 Session events

Các sự kiện phiên gây ra trạng thái phiên thay đổi Bảng dưới đây mô tả các sự kiện :

 CHỨC NĂNG TỔNG QUAN

- API Cryptoki bao gồm một số chức năng, bao gồmquản lýslot và token thông qua đối

tượng quản lý, cũng như các chức năng mã hóa Các chức năng này được trình bày

trong bảng dưới đây :

Mục đích chung

C_Initialize khởi tạo Cryptoki C_GetInfo có được thông tin tổng quát

về Cryptoki

Trang 6

Quản lý slot và token

C_GetSlotList có đượcđượcmộtdanh sách

cáckhecắmtrong hệ thố C_GetSlotInfo có được thông tinvềmột khe

cắmđặcbiệt C_GetTokenInfo có được thông tinvềmột mã

thông báocụthể C_GetMechansimList một danh sách các cơ chếhỗ

trợ bởimột mã thông báo C_GetMechanismInfo nhận đượcthông tinvềmột cơ chếcụthể C_InitToken khởi tạo một mã thông báo C_InitPIN khởi tạo số PINcủangười sử

dụng bình thường C_InitPIN thay đổi mã PIN của người

sử dụng hiện tại

Quản lý session

C_OpenSession

mở một kết nối"sesion" giữa một ứng dụngvàmột mã thông báocụthể

C_CloseSession đóng một session C_CloseAllSessions đóng mọi sessionsvớimột

mã thông báo C_GetSessionInfo có được thông tinvềsession C_Login bản ghivàomột mã thông

báo C_Logout bản ghi ratừmột mã thông báo

Quản lý object

C_CreateObject tạo ramột object C_CopyObject tạo ra một bảnsaocủa một

object C_DestroyObject hủymột object C_GetObjectSize

có đượcđượckích thướccủamột object trongbyte

C_GetAttributeValue có đượcđượcmột giá

trịthuộctínhcủa một object C_SetAttributeValue sửa đổi một giá

trịthuộctínhcủa một object C_FindObjectsInit khởi tạo một hoạt độngtìm

kiếmobject C_FindObjects tiếp tục mộthoạt động tìm

kiếmobject

Message digesting

C_DigestInit Khởi tạo một hoạt động

message digesting C_Digest Phân loạidữ liệumộtphần C_DigestUpdate tiếp tụcmột hoạt độngphân

loạinhiềuphần

Trang 7

C_DigestFinal kết thúc một hoạt độngphân

loạinhiềuphần

Chữ ký và xác thực

C_SignInit khởi tạo một thao tácchữ ký C_Sign Đăng ký một phần dữ liệu

duy nhất C_SignUpdate tiếp tục một thao tácchữ kýnhiềuphần C_SignFinal kết thúc một thao tácchữ

kýnhiềuphần C_SignRecoverInit khởi tạo mộtthao tác chữ ký,

nơi mà códữ liệu C_SignRecover

dấu hiệu duy nhấtmột phần

dữ liệu, nơidữ liệu có thể phục hồitừchữ ký

C_VerifyInit khởi tạo một thao tácxác

thực C_Verify xácthựcmột chữ ký

trênmộtphầndữ liệu C_VerifyUpdate tiếp tụcmột thao tácxác

thựcnhiềuphần C_VerifyFinal kết thúc một thao tácxác

thựcnhiềuphần C_VerifyRecoverInit

khởi tạo một thao tácxác thựcdữ liệu

phục hồitừchữ ký

C_VerifyRecover

xác thựcmột chữ ký trênmộtphầndữ liệu,nơi mà các

dữ liệu được phục hồithểtừchữ ký

Quản lý Key

C_GenerateKey tạo một key bảo mật C_GenerateKeyPair tạo ra một

cặppublic-key/private-key C_WrapKey wraps(mã hóa) 1key C_UnwrapKey unwraps (Giải mã) 1 key C_DeriveKey xuất phát 1 keytừ 1 key cơ

bản Khởi tạo một số ngẫu

nhiên

C_SeedRandom Tập hợp các tài liệu để bổ

sung cho việc tạo số C_GenerateRandom Tạo dữ liệu ngẫu nhiên

Hàm quản lý

C_GetFunctionStatus

có được trạng tháicập nhật củamột chức năngđang chạytrong

song song vớiứng dụng C_CancelFunction hủy bỏ một chức năngchạy

song songvới các ứng dụng

Trang 8

Callbacks Notify quy trình thông

báotừCryptoki

 XEM XÉT AN NINH

- Là một giao diện với các thiết bị mã hóa, Cryptoki cung cấp một cơ sở cho an ninh trong một máy tính hoặc hệ thống truyền thông Hai trong số các tính năng cụ thể của giao diện để tạo điều kiện bảo đảm đó là :

1.Truy cập đến các đối tượngtưtrêntoken, vàcó thể làchức năng mã hóa, đòimột số PIN.Vì vậy, sởcácthiếtmã hoá màthực hiệncác mã thông báolàkhôngđủ; PINcũng rất cần thiết

2.Bảo vệ tối đa chođốiđược đánh dấu "sensitive" có thể đượcđọc từtoken, cũng không phải xuấtthông quacácchức năng mã hóa(mặc dùchúng có thể đượcsửnhư là key)

 CÁC KIỂU DỮ LIỆU

 Thông tin tổng quát

Cryptoki thể hiệnthông tin chung vớicác loại sau đây:

o CK_VERSION là một cấu trúc mô tả các phiên bản của Cryptoki

o CK_INFO cung cấp thông tin chung về Cryptoki

o CK_NOTIFICATION liệt kê các loại thông báo mà Cryptoki cung cấp cho ứng dụng

 Các kiểu slot và token

o CK_SLOT_ID là một giá trị Cryptoki được giao xác định một slot

o CK_SLOT_ID_PTR trỏtới 1CK_SLOT_ID

o CK_SLOT_INFO cung cấp thông tinvề1 slot

o CK_SLOT_INFO_PTR trỏđến mộtcấu trúcCK_SLOT_INFO

o CK_TOKEN_INFO cung cấpthông tin vềmột mã thông báo

o CK_TOKEN_INFO_PTR trỏđến mộtcấu trúcCK_TOKEN_INFO

 Các kiểu session

o CK_SESSION_HANDLE là một giá trị Cryptoki giao xác định một token

o CK_SESSION_HANDLE_PTRtrỏtớiCK_SESSION_HANDLE

o CK_USER_TYPE liệt kêcácloạicủa người sử dụngCryptoki

o CK_STATE liệt kêcácSession

o CK_SESSION_INFO cung cấp thông tinvềmột session

o CK_SESSION_INFO_PTR trỏđến mộtcấu trúcCK_SESSION_INFO

 Các kiểu object

o CK_OBJECT_HANDLE là một định danh mã thông báo cụ thể cho một đối tượng

o CK_OBJECT_HANDLE_PTR trỏ tới CK_OBJECT_HANDLE

o CK_OBJECT_CLASS là một giá trị xác định các lớp học (hoặc các loại) của các đối tượng mà Cryptoki công nhận

o CK_OBJECT_CLASS_PTR trỏ đến cấu trúc CK_OBJECT_CLASS

o CK_KEY_TYPE là một giá trị xác định một loại quan trọng

o CK_CERTIFICATE_TYPE là một giá trị xác định một loại giấy chứng nhận

o CK_ATTRIBUTE_TYPE là một giá trị xác định một loại thuộc tính

Trang 9

o CK_ATTRIBUTE là một cấu trúc bao gồm các loại, chiều dài và giá trị của một thuộc tính

o CK_ATTRIBUTE_PTR trỏ đến cấu trúc CK_ATTRIBUTE

 Mechanisms

o CK_MECHANISM_TYPE là một giá trị xác định một loại cơ chế

o CK_MECHANISM_TYPE_PTR trỏ cấu trúc CK_MECHANISM_TYPE

o CK_MECHANISM là một cấu trúc xác định một cơ chế cụ thể

o CK_MECHANISM_PTR trỏ đến cấu trúc CK_MECHANISM

o CK_MECHANISM_INFO là một cấu trúc cung cấp thông tin về một cơ chế

cụ thể

o CK_MECHANISM_INFO_PTR trỏ đến cấu trúc CK_MECHANISM_INFO

o CK_RC2_CBC_PARAMS là một cấu trúc cung cấp các thông số cơ chế CKM_RC2_CBC

 Functions

o CK_ENTRY

o CK_RV

 OBJECTS

Hình dưới đây minhcác chi tiết củacác đối tượng1 key:

Trang 10

 Các thuộc tính cơ bản

Bảng sau đây xác địnhcác thuộc tínhchungtớitất cả các đối tượng:

 Data objects

 Certificate objects

Trang 11

 Key objects

 Public key objects

 Private key objects

 Secret key objects

Trang 12

FUNTIONS

 Chức năng của Cryptoki được tổ chức thành các loại sau đây:

 Mục đích chung

 Quản lý slot and token

 Quản lý session

 Quản lý object

Mã hóa và giải mã

Message digesting

Chữ ký và xác thực

 Quản lý key

Quản lý function

 Callback

Trang 14

 MECHANISMS

- Phần này mô tả các cơ chếmàphiên bản nàycủaCryptokihỗcho các hoạt độngmã hoá

Bảngsau đây tóm tắtcác cơ chếvàứng dụng của chúng

Ngày đăng: 26/12/2016, 09:13

w