1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn chứng thực số Đề tài Lite Security ModulePKCS#11

27 2,4K 2

Đ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 27
Dung lượng 813,01 KB

Nội dung

Đề tài Lite Security ModulePKCS#11

Trang 1

Lite Security Module

PKCS#11

Giảng viên hướng dẫn: Phạm Xuân Khánh

Sinh viên thực hiện: Nguyễn Tuấn Duyệt 07520532

Hồ Trung Kiên 06520235

Nguyễn Viết Sơn 06520388

TP.Hồ Chí Minh, Tháng 4 năm 2011

Trang 2

Mục lục

I. Tổng quan………Trang 3

II. Cấu trúc LSM-PKCS11……… ………Trang 3

1 SecureBox……… ………….Trang 4

2 Phiên và quản lý dối tượng……… Trang 7

3 Khe cắm và quản lý token……… Trang 17

4 Giao diện OpenSSL……… Trang 18

5 Slots, Tokens, Objects, Sessions……….… Trang 18

III. Cấu trúc dự án……… … Trang 19

1. Protocol Library module……… … Trang 20

2. SecureBox Library module……… Trang 21

3. LSM-PKCS11 Daemon module……… Trang 21

4. PKCS#11 Shared Library module……… Trang 21

5. PKCS#11 Test Program module……… ……….Trang 22

IV. Xây dựng LSM-PKCS#11……… Trang 22

1. Xây dựng trên môi trường Linux……… Trang 22

2. Xây dựng trên môi trường MS Window……… …… Trang 23

V. Sử dụng LSM-PKCS#11……… Trang 23

1. Chạy trên môi trường Linux……… ………Trang 23

2. Chạy trên môi trường MS Window……….… Trang 24

3. Xử lý SecureBoxes……… Trang 24

4. Cấu hình LSM-PKCS#11……… Trang 25

Trang 3

I Tổng quan

LSM-PKCS11 là một gói phần mềm dùng để hỗ trợ triển khai thực hiện Lite Security Modules, tức là một loại Software không đòi hỏi bản quyền hoặc Hardware Security Modules (HSM, SSM) Các chỉ tiêu triển khai thực hiện như vậy là PKIs(Public Keys Infrastructures) cho các công

ty nội bộ và mạng ứng dụng, đòi hỏi một mức độ bảo mật không quá tầm thường nhưng cũng không quá “ngân sách”, cho phép việc mua lại có xácnhận HSMs, có giá bắt đầu ít nhất vài ngàn đôla

Các phần cơ bản của LSM-PKCS11 là một trình nền (deamon) đa luồng (multi-thread) có thể được lưu trữ trên một hệ thống chuyên dụng nhỏ, chạy trên Linux (hoặc Windows NT/ 2000/ XP)

Các dịch vụ deamon có thễ được truy cập thông qua kết nối TCP/IP với sự hỗ trợ của một thư viện chia sẻ (DLL trong môi trường Window) phù hợp với PKCS#11 tiêu chuẩn được phát triễn bởi RSA Laboratories (http://www.rsasecurity.com), còn được gọi là Criptoki2 PKCS # 11 là một phần của Public-Key Cryptography tiêu chuẩn (PKCS)

Phiên bản đầu tiên của gói chỉ hỗ trợ mức thấp nhất của cơ chế mã hóa: RSA, DES, mã hóa và giải mã DES3; RSA và DSA chữ ký số và xác minh; MD2, MD5 và SHA1 digesting, tạo ngẫu nhiên Nhưng sau bước thử nghiệm ban đầu, trọn gói sẽ được mở rộng dễ dàng để hỗ trợ các cơ chế mã hóa nhiều hơn nữa

Các kênh giao tiếp giữa client và server là một kết nối TCP tiêu

chuẩn, thực thi với:

- Một cơ chế nén để giảm băng thông mạng

- Một lớp phiên thực hiện các giao thức phiên PKCS#11

- Một lớp trình bày hỗ trợ các giao thức phiên PKCS#11

Trang 4

Các điểm cuối của kết nối TCP là 2 thread, một trong những tiến trìnhngười dùng sử dụng thư viện PKCS#11, và một trong những trình nền LSM.

Hình 1 biễu diễn như một tình huống, chứng minh các lớp giao thức trong mẫu ISO/OSI

Hình 1 Cấu trúc mạng LSM-PKCS#11

PKCS#11 yêu cầu (do một user process thread) được ánh xạ, thông qua kết nối TCP, để các thread trình nền LSM-PKCS11 tương ứng thực hiện các chức năng cần thiết và ánh xạ phản hồi trở lại thread người dùngban đầu

Nội bộ LSM-PKCS11 liên kết chặt chẽ để chuẩn hóa PKCS#11, do

đó, dễ dàng giao tiếp với thư viện PKCS#11 để mã hóa thông tin thật và hoạt động Nghĩa là, các ánh xạ mạng vận chuyển dữ liệu thông qua kết nối TCP là một loại hệ thống ánh xạ độc lập của các hàm PKCS#11

Trang 5

Trình nền LSM-PKCS11 giữ các mật mã (public và private keys, secret keys, dữ liệu của đối tượng, giấy chứng nhận) trong các tập tin đặc biệt gọi là SecureBoxes Một SecureBox là:

- Một dữ liệu định dạng tập tin

- Thiết kế đặc biệt để giữ mật mã và mô tả thông tin người sử dụng được an toàn (public và private keys, secret keys, dữ liệu của đối tượng, giấy chứng nhận)

- Với một mức độ bảo mật bên trong, độc lập với cơ chế bảo mật màbản thân các tập tin được bảo vệ

- Nền tảng độc lập (tức là, nó có thể được tạo ra trên một hệ thống

và sử dụng trên bất kỳ hệ thống khác)Hiện tại, SecureBoxes xử lý bởi LSM-PKCS11 có thể chứa tới 256 đối tượng, với một đối tượng tối đa 1048576 bytes dữ liệu mã hóa và mô

tả (1MB), nhưng các giới hạn này có thể mở rộng cho các nhân vật quan trọng nếu ứng dụng cuối cùng đòi hỏi một con số cao hơn của các mục

mã hóa

Một SecureBox được sắp xếp thành ba phần, như sau:

Header Tổng quát và kích thước thông tin

Magic magic string “LSMSBOXM”VersionMajor số phiên bản chínhVersionMinor số phiên bản phụName[16+1] module tênKey thuật toán mã hóa key Camellia (256 bits)SOPINToBeChanged cờ SO PIN ToBeChanged SOPINLoginCount số lần đăng nhập sai SO PINSOPINMaxTrials tối đa số lần đăng nhập sai SO PINSOPIN SO PIN hiện tạiUSPINToBeChanged cờ user PIN ToBeChangedUSPINLoginCount số lần nhập sai user PINUSPINMaxTrials tối đa số lần nhập sai user PINUSPIN user PIN hiện tại

Object

Descriptor

s Pool

Mô tả chi tiết tất cả đối tượng được lưu giữ trong hộp

Pool NumObjects số đối tượng trong module

MaxObjects số tối đa các đối tượng được phân bổ AllSiz tổng kích thước phân bổ trong

Trang 6

khu vực dữ liệu FreSize kích thước phân bổ trống trong khu vực dữ liệu

MaxSize kích thước tối đa phân bổ trong khu vực dữ liệu

Object Name tên đối tượng

Type loại đối tượng: ứng dụng phụ thuộc Scope public | private | secret ActSize kích thước thực tế của đối tượng AllSize phân bổ kích thước trong khu vực dữ liệu

RelPtr con trỏ lien quan trongkhu vực dữ liệu

Data Area Mật mã thực và thông tin mô tả các đối tượng được lưu giữ

Một tập các đơn vị phân bổ (16 bytes): cho giá trị mặc địnhcủa 1 Mbyte dữ liệu (1048576 bytes), 65536 đơn vị phân bổ

Mỗi SecureBox tự mã hóa chính xác với một lược đồ chuyên dụng dựa trên thuật toán Camellia3 và cơ chế băm Tiger4 Key mã hóa

Camellia có nguồn gốc từ các Key bằng văn bản trong “Header” bằng một hoán vị xored (xored-permutation) và một Tiger hashing (Hình 2):

Trang 7

- Chuẩn bị (định dạng) của một SecureBox

- Tái xây dựng một SecureBox

- Dump của một SecureBox

- Quản lí và sử dụng mã PIN SO

2 Phiên và quản lý đối tượng

Trang 8

Mỗi thread LSM xử lý một phiên với thread ứng dụng người dùng cuối Quản lí phiên được thực hiện với sự hỗ trợ của một nhóm các mô tảphiên và hàng đợi lưu trữ động các phiên hiện tại: mỗi phiên hoạt động

có thể được truy cập bằng một hoặc nhiều thread của người dùng cuối (các tiến trình cùng một người dùng)

Một giao diện phiên có dạng như sau:

Forward Liên kết động giữa bộ nhớ quản lí hàng đợiBackward Liên kết động giữa bộ nhớ quản lí hàng đợiHandle Định danh phiên hợp lý (0 n)

SlotId Định danh khe cắm hợp lý (1 4)

ThreadId LSM thread tạo ra các phiên

Info Thông tin phiên (adhering PKCS#11

CK_SESSION_INFO structure)UserType Hình thức mở phiên (CKU_SO | CKU_USER)NumObjs Số đối tượng đang truy cập bằng phiên

ObjectList Mảng xử lý các đối tượng lưu trữ truy cập bằng

phiênEncryptState Con trỏ đến cấu trúc mã hóa nội bộ (nếu mã

hóa hoạt động)EncryptMechanism Loại cơ chế mã hóa (nếu mã hóa hoạt động)DecryptState Con trỏ đến cấu trúc giải mã nội bộ (nếu giải

mã hoạt động)DecryptMechanism Loại cơ chế giải mã (nếu giải mã hoạt động)DigestState Con trỏ đến cấu trúc digest nội bộ (nếu digest

hoạt động)DigestMechanism Loại cơ chế digest (nếu digest hoạt động)

SignState Con trỏ đến cấu trúc chữ ký nội bộ (nếu chữ ký

hoạt động)SignMechanism Loại cơ chế chữ ký (nếu chữ ký hoạt động)VerifyState Con trỏ đến cấu trúc xác minh nội bộ (nếu xác

minh hoạt động)VerifyMechanism Loại cơ chế xác minh (nếu xác minh hoạt động)Đối tượng truy cập của thread người dùng cuối được lưu trữ trong bộ nhớ trong được nhúng trong mỗi khe bộ nhớ ánh xạ: có nghĩa là không cóđối tượng có thể được tạo ra bên ngoài của một khe cắm

Trang 9

Một đối tượng có thể được một đối tượng phiên (biến động, xóa việc chấm dứt phiên), hoặc một đối tượng token (thường trú, nội dung bộ nhớ của nó là luôn ánh xạ tới SecureBox tương ứng).

Một mô tả đối tượng được trình bày như sau:

Handle Định danh đối tượng hợp lí (1 256)

Owner Kiểu đối tượng (session | token)

Name Tên đối tượng hợp lí

NumSession

s

Số phiên đang truy cập vào đối tượng

AttrSet Mảng động của thuộc tính phiên

Obj Gói nội dung đối tượng

Các mảng động của các thuộc tính phiên là một cấu trúc bộ nhớ mà nội dung đối tượng lưu trữ trong một hình thức thích hợp để xử lý bộ nhớthời gian chạy của các đối tượng Hình thức này liên quan đến hình thức được xác định bởi tiêu chuẩn PKCS # 11, và dễ dàng ánh xạ để định dạngnền tảng độc lập của thuộc tính đối tượng khi viết vào một SecureBox hoặc vận chuyển qua mạng

Một mảng động của các thuộc tính phiên được thể hiện trong bảng sau:

NumAttrs Số thuộc tính của đối tượng

Set Mảng thuộc tính đối tượng

Mỗi thuộc tính đối tượng được trình bày như sau:

Assigne

d

Gán giá trị thuộc tính bởi người dùng cuối (1), mặc định (0)

Type Loại đối tượng (boolean, numeric value, buffered value)

Size Kích thước đối tượng trong bytes: 1 if boolean, 4 if numeric

value, variable if bufferValue Giá trị thuộc tính thật – hợp của:

B boolean value

V numeric value

P buffered value (con trỏ trỏ tới một bộ nhớ đệm động)

Trang 10

Loại ob của một đối tượng có thể giả định như sau:

Các đối tượng quản lý bởi LSM-PKCS11 được định nghĩa với các bộ thuộc tính sau đây:

Trang 17

3 Khe cắm và quản lý Token

Mỗi khe cắm được xử lý bởi trình nền LSM-PKCS11 được quản lý trong một bộ nhớ với một mô tả chuyên dụng, chia thành hai phần, một cho khe cắm và một cho token được nhúng trên SecureBox lien quan.Các mô tả này được thể hiện trong bảng sau:

SlotId Định danh khe cắm hợp lý (1 4)

Name Tên khe cắm/ token

SlotInfo Thông tin khe cắm (adhering PKCS#11 CK_SLOT_INFO

structure)Token Mô tả token

Mô tả token như sau:

Trang 18

TokenInfo Thông tin token (adhering PKCS#11

CK_TOKEN_INFO structure)Flags Các cờ token cho phiên đang mở (RO, RW)

SBoxFileName tên tập tin SecureBox

SBoxKeyFName Key bảo vệ tập tin SecureBox

SBoxName Tên SecureBox

SBoxKey Key bảo vệ SecureBox

NumObjs Số đối tượng được lưu giữ vào token

ObjSet Mảng mô tả đối tượng

4 Giao diện OpenSSL

Để thực hiện thao tác mã hóa các trình nền LSM sử dụng thư viện mã hóa OpenSSL (libeay) Sự lựa chọn này được đề xuất bởi một số nguyên nhân sau:

- Mục tiêu chính của LSM-PKCS11 là sự phát triển của một module bảo mật (phần mềm hoặc phần cứng), không phải các thao tác mã hóa được thực hiện bởi nó

- Trong nhiều khả năng được cung cấp bởi các tình huống mã nguồn

mở, OpenSSL thường xuyên được sử dụng, thử nghiệm nhiều và đáng tin cậy

Giao diện cho thư viện OpenSSL được thực hiện trong một module chuyên dụng, trong đó một bộ chương trình con thực hiện các thao tác

mã hóa cần thiết với sự hỗ trợ của các hàm OpenSSL và các kiểu dữ liệu bên trong của nó (RSA, DSA, des_cblock, MD2_CTX, MD5_CTX, SHA_CTX, etc.) Các module dữ liệu ánh xạ từ định dạng OpenSSL sangmột định dạng nội bộ tới LSM, phù hợp hơn để chuẩn hóa giao diện PKCS#11

5 Khe cắm, Token, đối tượng, phiên

Thiết kế toàn cầu của việc quản lý trình nền LSM-PKCS11 cho các khe cắm, token, đối tượng và phiên được biễu diễn như Hình 3:

Trang 19

Hình 3 LSM-PKCS#11quản lý Slots, Tokens, Objects, Sessions.III Cấu trúc dự án

Dự án LSM-PKCS11 là một tập hợp các module như Hình 4:

Trang 20

Hình 4 LSM-PKCS11 Project modules

Tất cả các module có nền tảng độc lập, và chạy cả môi trường Linux

và Microsoft Windows Phiên bản hiện tại đã được phát triển và thử nghiệm trên những nền tảng sau đây:

- Linux Fedora 4, 64 bits

- Linux Fedora 4, 32 bits

- MS Windows 2000/XP, 32 bits

1 Protocol Library module

Module này chứa các nguồn sau đây:

• lsmprolib.c basic protocol and socket

managementlsmprolib.h

Trang 21

serialization/deserializationpkcs11proto.h

• lsmobjects.c object and attributes handlinglsmobjects.h

• lsmcamellia.c Camellia cryptographylsmcamellia.h

• lsmtiger.c Tiger hashinglsmtiger.h

• minilzo.c, lsmlzo.c network compression minilzo.h, lsmlzo.h, lzoconf.h

2 SecureBox Library module

Module này chứa các nguồn sau đây:

• lsmsbox.c SecureBox handlinglsmsbox.h

• lsmsboxutil.c SecureBox utility program

• lsmsboxtest.c SecureBox test program

3 LSM-PKCS11 Daemon module

Module này chứa các nguồn sau đây:

• lsmsrv_main.c main thread and process management

• lsmsrv_child.c child thread management

• lsmsrv_funcs.c PKCS11 functions

• lsmsrv_lsm.c LSM-PKCS11 management functions

• lsmsrv_crypto.c cryptographic handling

• lsmsrv_conf.c configuration file handling

• lsmsrv_queue.c dynamic memory queues and pools handling

• lsmsrv_lib.c general purpose internal functions

• lsmsrv_uxth.c Unix multithread functions

• lsmsrv_win32.c MS Windows multithread functions

• lsmsrv_log.c log functions

• lsmsrv_vars.c daemon global variables

• lsmsrv.h daemon internal header

4 PKCS#11 Shared Library module

Trang 22

Module này chứa các nguồn sau đây:

• pkcs11.c PKCS#11 shared library functionspkcs11.h

pkcs11types.hpkcs11proto.h

• pkcs11net.c client network handling

• pkcs11net.h

• pkcs11util.c internal functionspkcs11util.h

pkcs11int.h

• pkcs11uxtht.c Unix multithread functions

• pkcs11win32.c MS Windows multithread functions

5 PKCS#11 Test Program module

Module này chứa các nguồn sau đây:

• testpkcs11.c PKCS#11 test program

IV Xây dựng LSM-PKCS#11

1 Xây dựng trên môi trường Linux

Giải nén tập tin LSM-PKCS11.tar.gz, và thực hiện theo các bước sau:For 64 bits environment:

rm Makefile

ln –s Makefile.64 Makefilemake

make installFor 32 bits environment:

rm Makefile

ln –s Makefile.32 Makefilemake

make installThen create the following directories:

mkdir /usr/local/lsmmkdir /usr/local/lsm/conf

Trang 23

2 Xây dựng trên môi trường MS Window

Giải nén tập tin LSM-PKCS11.zip, và thực hiện theo các bước sau:

Run Visual Studio 6.0Open the project lsm.dws (it is under the main directory LSM-PKCS11)

Build, batch-build, rebuild allThen create the following directories:

mkdir c:\usr\local\lsmmkdir c:\usr\local\lsm\confmkdir c:\usr\local\lsm\keysmkdir c:\usr\local\lsm\logmkdir c:\usr\local\lsm\sbox

V Sử dụng LSM-PKCS#11

1 Chạy trên môi trường Linux

Chuẩn bị SecureBoxes, như chi tiết tại khoản V.3, và sao chép chúng theo thư mục / usr / local / LSM / sbox, và bảo vệ các tập tin quan trọng liên quan theo thư mục / usr / local / LSM / phím Sau đó chuẩn bị một file cấu hình cho trình nền LSM-PKCS11, càng chi tiết tại mục V.4, và sao chép nó theo thư mục / usr / local / LSM / conf

Vào lúc này, chạy các daemon ban hành lệnh:

/usr/local/bin/lsmsrv –c /usr/local/lsm/conf/<yourlsmsrv.cfg>

-d [-s]

The daemon is ready to be used

Now edit your file /etc/ld.conf.so, and if missing add to it the entry:

/usr/local/libChạy các lệnh hệ thống:

ldconfig

Để các thư viện chia sẻ / usr/local/lib/liblsmpkcs11.so.1.0.1 ánh xạ chính xác trong hệ thống

Sau đó chuẩn bị 'lsmpkcs11.cfg' cấu hình các tập tin cho thư viện chia

sẻ LSM-PKCS11, như chi tiết trong mục V.4, và sao chép nó theo thư mục / usr / local / LSM / conf

Bây giờ bạn có thể tiếp tục sử dụng các thư viện và daemon, ví dụ bằng lệnh:

Trang 24

/ usr/local/bin/testpkcs11 [<RSA-key-size>]

Nơi <RSA-key-size> có thể mất các giá trị 512, 1024, 2048, 4096 (mặc định 1024)

2 Chạy trên môi trường MS Window

Chuẩn bị SecureBoxes, như chi tiết tại mục V.3, và sao chép chúng theo thư mục c: \ usr \ local \ LSM \ sbox, bảo vệ các tập tin quan trọng liên quan theo thư mục c: \ usr \ local \ LSM \ key

Sau đó chuẩn bị một file cấu hình cho trình nền LSM-PKCS11, càng chi tiết tại mục V.4, và sao chép nó theo thư mục c: \ usr \ local \ LSM \ conf

Vào lúc này, bạn có thể chạy các daemon Tạo thư mục:

c:\usr\local\lsm\bin

Và sao chép theo nó là daemon tập tin thực thi lsmsrv.exe (từ thư mục

bi \ d hoặc bin r \ của bạn) Sau đó, dưới một cửa sổ DOS, ra lệnh:

c:\usr\local\lsm\bin\lsmsrv.exe –c lsmsrv.cfg> [-s]

c:\usr\local\lsm\conf\<your-The daemon is ready to be used

Bây giờ sao chép các thư viện chia sẻ LSM-PKCS11 (lsmpkcs11.dll) vào thư mục 'system32' hệ thống của bạn (tức là c: \ WINNT \ system32),

để nó có thể được tìm thấy bởi các chương trình ứng dụng

Sau đó chuẩn bị 'lsmpkcs11.cfg' các tập tin cấu hình cho thư viện chia

sẻ LSM-PKCS11, như chi tiết trong mục V.4, và sao chép nó theo thư mục c: \ usr \ local \ LSM \ conf

Bây giờ bạn có thể tiếp tục sử dụng các thư viện và daemon, ví dụ bằng lệnh:

testpkcs11.exe [<RSA-key-size>]

Nơi <RSA-key-size> có thể mất các giá trị 512, 1024, 2048, 4096 (mặc định 1024)

3 Xử lý SecureBoxes

Ngày đăng: 20/12/2014, 15:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w