Tải bản đầy đủ (.pdf) (70 trang)

Nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị smartphone

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.42 MB, 70 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Nguyễn Quang Minh

TÊN ĐỀ TÀI LUẬN VĂN
Nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị Smartphone
Chuyên ngành : Kỹ thuật viễn thông

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. TS. Nguyễn Quốc Khương

Hà Nội – 09/2016

1


DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................5
LỜI CAM ĐOAN .......................................................................................................7
MỞ ĐẦU .....................................................................................................................8
1.1. LÝ DO LỰA CHỌN ĐỀ TÀI .......................................................................8
1.2. MỤC TIÊU VÀ MỤC ĐÍCH CỦA NGHIÊN CỨU .....................................8
1.3. NHIỆM VỤ NGHIÊN CỨU .........................................................................9
1.4. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU ..............................................9
Chương 1. TỔNG QUAN VỀ CHỮ KÝ SỐ ............................................................10
1.1. TÌNH HÌNH TRIỂN KHAI CHỮ KÝ SỐ ..................................................10
1.1.1.

Tình hình triển khai chữ ký số trên thế giới. .....................................10


1.1.2.

Tình hình triển khai chữ ký số tại Việt Nam .....................................10

1.2. CÁC KHÁI NIỆM VỀ CHỮ KÝ SỐ. .........................................................12
1.3. CHỮ KÝ SỐ TRÊN THIẾT BỊ DI ĐỘNG .................................................14
1.3.1.

Nhu cầu thực tiễn...............................................................................14

1.3.2.

Tình hình triển khai trên thế giới .......................................................15

1.3.3.

Các vấn đề về kỹ thuật công nghệ .....................................................16

Chương 2. LÝ THUYẾT VỀ CHỮ KÝ SỐ .............................................................17
2.1. CƠ SỞ LÝ THUYẾT ..................................................................................17
2.1.1.

Khái niệm Chữ ký số .........................................................................17

2.1.2.

Cơ sở toán học của chữ ký số ............................................................18

2.1.3.


Phân loại Chữ ký số ..........................................................................21

2.2. HỆ MÃ HÓA KHÓA CÔNG KHAI RSA ..................................................23
2.2.1.

Mô tả sơ lược về mã hóa RSA ..........................................................23

2.2.2.

Phương pháp tạo mã và giải mã trong mã hóa công khai RSA.........23

2.2.3.

Đặc trưng của mã hóa công khai RSA ..............................................24

2.2.4.

Độ an toàn của mã hóa RSA .............................................................25

2.2.5.

Các hình thức tấn công đối với mã hóa RSA ....................................26

2.3. CHỮ KÝ SỐ RSA .......................................................................................27
2.3.1.

Đặt vấn đề ..........................................................................................27

2.3.2.


Các biểu tượng...................................................................................28

2


2.3.3.

Các loại khóa .....................................................................................31

2.3.4.

Các nguyên hàm mật mã ...................................................................33

2.3.5.

Các lược đồ mã hóa. ..........................................................................38

3.3.6. Các lược đồ chữ ký .................................................................................42
2.4. CHUẨN PKCS#11........................................................................................45
2.4.1. Giới thiệu................................................................................................45
2.4.2. Mục tiêu thiết kế......................................................................................46
2.4.3. Mô hình chung ........................................................................................46
2.4.4. Khung nhìn logic của một token .............................................................48
2.4.5. Người dùng .............................................................................................50
2.4.6. Các ứng dụng sử dụng Cryptoki. ...........................................................51
2.4.7. Một số vấn đề an ninh cần xem xét. ........................................................51
Chương 3. PHÂN TÍCH THIẾT KẾ CÁC ỨNG DỤNG TRIỂN KHAI CHỮ KÝ
SỐ TRÊN MOBILE. .................................................................................................53
3.1. THÀNH PHẦN KIẾN TRÚC ỨNG DỤNG...............................................53
3.2. THIẾT KẾ CÁC MÔ HÌNH MẬT MÃ VÀ CHỮ KÝ SỐ .........................55

3.2.1.

Mật mã bất đối xứng và đối xứng kế hợp .........................................55

3.2.2.

Mô hình sử dụng hạ tầng mã khóa công khai để đăng nhập hệ thống.
57

3.2.3.

Ký dữ liệu ..........................................................................................58

3.2.4.

Mô hình xác thực chữ ký số ..............................................................59

3.3. THIẾT KẾ CHỨC NĂNG .............................................................................60
3.3.1. Thiết kế chức năng cho Soft Token ........................................................60
3.3.2. Thiết kế chức năng cho Secured SMS. ...................................................61
3.3.3. Thiết kế chức năn cho Secured Email Client. .........................................61
3.3.4. Thiết kế chức năng cho Signing App. .....................................................61
3.4. THIẾT KẾ KIẾN TRÚC ................................................................................62
3.4.1. Kiến trúc Mobile PKI Soft Token App ...................................................62
3.4.2.

Kiến trúc Secured SMS App .............................................................63

3.4.3.


Kiến trúc Secured Email Client App .................................................65

3.4.4.

Kiến trúc Signing Apps .....................................................................67

3


KẾT LUẬN ...............................................................................................................69
5.1. NHỮNG CÔNG VIỆC MÀ LUẬN VĂN ĐÃ ĐẠT ĐƯỢC .......................69
5.2. KHẢ NĂNG PHÁT TRIỂN CỦA LUẬN VĂN ...........................................69

4


DANH MỤC CÁC TỪ VIẾT TẮT
STT

Chữ viết tắt

Nghĩa chữ viết tắt

1

CA

Nhà cung cấp dịch vụ chứng thực chữ ký số

2


CRL

Danh sách số serial của các chứng thư số bị
thu hồi, danh sách này được các nhà cung cấp
dịch vụ chữ ký số cung cấp.

3

OCSP

Giao thức kiểm tra chữ ký số trực tuyến

4

SSL

Giao thức bảo mật, nó dùng cơ chế của mã
khóa công khai và mã hóa đối xứng để áp
dụng bảo mật kênh truyền tin.

5

PKCS

Chuẩn mật mã hạ tầng mã khóa công khai

6

PKI


Hạ tầng mã khóa công khai

7

PIN

Mật khẩu để truy xuất vào một thiết bị chữ ký
số.

8

RSA

Thuật toán mã hóa công khai

9

Hash

Hàm băm

10

Private key

Khóa bí mật

11


Public key

Khóa công khai

12

Certificate

Chứng thư số

13

DES

Data Encryption Standard (Tiêu chuẩn Mã
hóa Dữ liệu)

14

3-DES

Triple DES

15

AES

Advanced Encryption Standard (Tiêu chuẩn
mã hóa tiên tiến)


16

MIME

chuẩn định dạng cho thư điện tử khi truyền
qua Internet

17

S/MIME

chuẩn mã hóa và ký số cho thư điện tử MIME

18

SMTP

Simple Mail Transfer Protocol - giao thức
truyền tải thư tín đơn giản

5


19

IMAP

Internet Message Access Protocol

6



LỜI CAM ĐOAN
Tôi xin cam đoan số liệu và kết quả nghiên cứu trong luận văn này là trung thực. Mọi
sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn
trong luận văn đã được chỉ rõ nguồn gốc rõ ràng và được phép công bố.

Hà Nội, ngày 30 tháng 09 năm 2016
Nguyễn Quang Minh

7


1.1.

MỞ ĐẦU
LÝ DO LỰA CHỌN ĐỀ TÀI
Việc giao dịch điện từ càng ngày trở nên càng mặc nhiên, trước đây mọi thông

tin trao đổi qua giấy tờ, giờ đây hầu hết qua các cuộc gọi, tin nhắn, mạng xã hội và
Email. Các vấn đề thương mại điện tử đã và đang phát triển mạnh mẽ, giờ rất nhiều
giao dịch đã thực hiện hoàn toàn qua mạng, thanh toán qua mạng tuy nhiên có thể nói
chưa triệt để.
Một xu hướng mọi giao dịch thông qua kênh điện tử ngày càng cao, xu hướng tất yếu
sẽ triển khai và có lẽ cả thế giới của bạn nằm trong một chiếu smartphone. Có thể nói
một xu hướng phát triển như thế nhưng càng ngày chúng ta càng thấy các vấn đề xác
thực và bảo mật chưa được thực sự quan tâm một cách chính đáng cho các sản phẩm
dịch vụ.
Trên thế giới việc phát triển các ứng dụng chữ ký số cho nền tảng thiết bị Mobile
chưa thực sự được triển khai rộng rãi về mặt ứng dụng tương tự như máy tính. Với

tính năng của chữ ký số: “Bảo mật”; “Xác thực người dùng”, chúng tôi dự kiến sẽ
nghiên cứu phát triển các ứng dụng sử dụng chữ ký số để nó đáp ứng các tính năng
nhằm bước đầu tạo ra nền tảng “Bảo mật” và “Xác thực” cho người dùng sử dụng
smartphone trong các giao dịch điển tử để nhằm mở toang cánh cửa giao dịch điện tử
ra để mọi người hoàn toàn tự tin giao dịch các giao dịch điện tử như giao dịch trực
tiếp. Chính vậy chúng tôi quyết định lựa chọn đề tài “Nghiên cứu và phát triển ứng
dụng chữ ký số trên thiết bị Smartphone”.
1.2.

MỤC TIÊU VÀ MỤC ĐÍCH CỦA NGHIÊN CỨU

o Mục đích
-

Nghiên cứu tình hình bảo mật, xác thực cá nhân để trên nền điện thoại di động
trong nước và quốc tế.

-

Nghiên cứu các tiêu chuẩn về kỹ thuật và công nghệ liên quan đến chữ ký số để
áp dụng và các giải pháp bảo mật, xác thực cá nhân.

8


-

Nghiên cứu phát triển các ứng dụng để quản lý, bảo mật và xác thực người dùng
cá nhân trong các giao dịch.


o Mục tiêu tạo ra các sản phẩm
-

Soft Token: Ứng dụng tạo, quản lý, lưu trữ các khóa số chứng thư số, một cách
bảo mật tuân theo các chuẩn chuẩn công nghiệp toàn cầu.

-

Ứng dụng ký các file PDF, Office trên nền Mobile.

-

Ký số và bảo mật Email.

-

Bảo mật SMS.

-

Ứng dụng tích hợp phục vụ cho xác thực, bảo mật các giao dịch thương mại điện
tử, ngân hàng, chứng khoán, thanh toán trực tuyến.

1.3.
-

NHIỆM VỤ NGHIÊN CỨU

Nghiên cứu, hệ thống hóa cơ sở lý thuyết, các chuẩn công nghiệp, về chữ ký số
để áp dụng vào phát triển các ứng dụng chữ ký số trên nền Mobile.


-

Mô tả, đánh giá thực trạng, nhu cầu triển khai triển khai áp dụng chữ ký số, các
lĩnh vực áp dụng chữ ký số và khả năng mở của nó.

-

Đề xuất và phát triển các ứng dụng, giải pháp đáp ứng các yêu cầu.

1.4.

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

o Đối tượng nghiên cứu
-

Các vấn đề bảo mật và xác thực thông tin cá nhân.

-

Các ứng dụng và giải pháp đáp ứng nhu cầu bảo mật và xác thực của cá nhân.

o Phạm vi nghiên cứu
-

Nghiên cứu tình hình chung trên thế giới và Việt Nam.

-


Thời gian trong khoảng từ 2014-2016.

9


Chương 1. TỔNG QUAN VỀ CHỮ KÝ SỐ
1.1. TÌNH HÌNH TRIỂN KHAI CHỮ KÝ SỐ
1.1.1. Tình hình triển khai chữ ký số trên thế giới.
Chữ ký số đang được ứng dụng vào trong các giao dịch điện tử ngày càng phổ
biến ở các nước trên thế giới. Đặc biệt là ở các nước có nền công nghệ tiên tiến như
Mỹ, Canada, Anh, Nhật Bản, Hàn Quốc, Malaysia, Singapore, Trung Quốc,…Các
giải pháp chính phủ điện tử và Thương mại điện tử đều được ứng dụng kỹ thuật chữ
ký số.
Tại các cường quốc công nghệ thông tin, việc ứng dụng chữ ký số đang được phát
triển mạnh mẽ trong các dịch vụ hành chính công. Trong đó, các nước châu Âu rất
tích cực trong triển khai áp dụng chữ ký số trong Chính phủ điện tử. Một số nước như
Estonia, việc sử dụng chứng minh thư điện tử đã bắt đầu được cấp cho người dân năm
2002, năm 2005, tiến hành bầu cử điện tử. Tại Ý, việc triển khai chứng minh điện tử
cho người dân cũng được thực hiện từ 2009. Một số nước sử dụng chữ ký số trong
hầu hết các giao dịch điện tử và tiến đến một thị trường hoàn toàn không tiền mặt
trong tương lại như Thụy Điển.
Các nước có nền công nghệ thông tin phát triển ở châu Á cũng đã bắt đầu triển khai
áp dụng chữ ký số vào Chính Phủ Điện tử. Thậm chí Hàn Quốc vượt lên đứng đầu
thế giới trong Chính phủ điện tử, hầu hết các giao dịch điện tử của Hàn Quốc đều sử
dụng chữ ký số. Đối với Trung Quốc, lượng chữ ký số được cấp ra hàng năm cho
người dùng đến hàng trăm triệu chữ ký số phục vụ các giao dịch hành chính công và
giao dịch điện tử.
1.1.2. Tình hình triển khai chữ ký số tại Việt Nam
Các portal, website của các ngân hàng, doanh nghiệp thương mại điện tử, các bộ ban
ngành phần lớn đã sử dụng chứng thư số SSL để áp dụng bảo mật kênh truyền dữ liệu

giữa người dùng và khách hàng.
Tại Việt Nam, việc tổ chức triển khai và áp dụng chữ ký số được phân tách ra làm
hai lĩnh vực, thứ nhất là chữ ký số công cộng, thứ hai là chữ ký số chuyên dùng. Theo
10


luật quy định chữ ký số công cộng sẽ được áp dụng cho giao dịch giữa các tổ chức,
cá nhân dân sự với nhau và với cơ quan nhà nước. Chữ ký số chuyên dùng được cấp
phát và sử dụng cho khối cơ quan chính phủ sẽ được cấp riêng cho cơ quan ban ngành
trong hệ thống của chính phủ. Chữ ký số chuyên dùng trong các tổ chức doanh nghiệp
thì sẽ dùng riêng nội bộ trong các doanh nghiệp mà không dùng với giao tiếp bên
ngoài.
Hiện tại ở Việt Nam có 9 nhà cung cấp dịch vụ chứng thực chữ ký số công cộng được
Bộ Thông Tin và Truyền Thông cấp phép dưới hệ thống RootCA quốc gia. Với
khoảng 450 nghìn doanh nghiệp sử dụng chữ ký số vào trong các giao dịch như khai
thuế, hải quan và chứng khoán. Với khoảng 50 nghìn chữ ký số được cấp cho cá nhân
phục vụ các giao dịch ngân hàng và chứng khoán với lĩnh vực chữ ký số công cộng.
Hệ thống cung cấp dịch vụ chữ ký số chuyên dùng phục vụ các cơ quan thuộc hệ
thống chính trị của Ban Cơ yếu Chính phủ đã triển khai cung cấp chứng thư số cho
các Bộ, ngành, địa phương. Tính đến tháng 7/2013, Ban Cơ yếu Chính phủ đã cung
cấp khoảng 15.000 chứng thư số cho 11 Bộ, cơ quan ngang Bộ và 15 địa phương.
Việc cung cấp, quản lý, sử dụng chứng thư số đã đáp ứng kịp thời nhu cầu cấp thiết
của cơ quan nhà nước các cấp trong việc đảm bảo xác thực và bảo mật thông tin phục
vụ lãnh đạo, điều hành. Tuy nhiên, việc triển khai chữ ký số còn chưa được rộng
khắp, nhiều cơ quan, đơn vị chưa ứng dụng chữ ký số trong hoạt động tác nghiệp.
Trong khi đó, để phát huy hiệu quả các hoạt động giao dịch qua mạng và điện tử hóa
quy trình làm việc của cơ quan nhà nước thì chữ ký số phải được triển khai rộng rãi
theo hướng mở rộng đối tượng và quy mô sử dụng.
Một số lĩnh vực cũng được áp dụng chữ ký số một cách mạnh mẽ tại thị trường Việt
Nam là dùng trong các giao dịch liên ngân hàng giữa các ngân hàng thương mại và

Ngân hàng nhà nước, trong việc xử lý các giao dịch nội bộ của các nhân viên trong
các hệ thống ngân hàng và một số khách hàng lớn của ngân hàng cũng được ưu tiên
sử dụng dịch vụ chữ ký số để ký các giao dịch.

11


1.2.

CÁC KHÁI NIỆM VỀ CHỮ KÝ SỐ.

Mật mã đối xứng: Mật mã đối xứng là mật mã dùng một khóa để mã hóa và dùng
chính khóa đó để giải mã hoặc khóa dễ dàng tìm thấy từ khóa đó để giải mã. Một số
thuật toán của mật mã đối xứng như DES, RC2, RC4,RC5, RC6, 3-DES, IDEA, AES,
CAST−128…
Mật mã bất đối xứng:Mật mã bất đối xứng là mật mã dùng một khóa để mã hóa và
dùng một khóa để giải mã. Việc biết được khóa này để tìm được khóa kia thì vô cùng
khó khăn. Một số thuật toán mật mã bất đối xứng như RSA, ECC, DSA...
Hàm băm: Hàm băm là hàm dùng thuật toán băm để biến biến một khối lượng dữ
liệu lớn thành một khối dữ liệu nhỏ và duy nhất đại diện cho khối dữ liệu lớn trước
khi băm qua hàm băm, dữ liệu băm là kết quả của hàm băm cũng không thể nào tính
ngược lại được dữ liệu trước khi băm.
Khóa riêng (Private-key): Khóa riêng hay được gọi là khóa bí mật (Private-key),
được tạo ra tại chính thiết bị lưu trữ khóa (USB token, HSM vv..) do nhà cung cấp
dịch vụ CA cấp. Khóa này sẽ được người dùng mã hóa dữ liệu đã băm của dữ liệu
gốc để tạo ra chữ ký số, khóa bí mật chỉ có duy nhất người dùng để tạo chữ ký số
biết. Khóa riêng là một khóa trong mật mã bất đối xứng.
Khóa công khai (public-key): Khóa công khai (public-key) được tạo tại chính thiết
bị lưu trữ khóa (USB token, HSM vv..) do nhà cung cấp dịch vụ CA cấp. Khóa này
sẽ được người ký số tạo rà và công khai cho người nhận, người nhận dùng khóa này

để giải mã chữ ký số và kiểm tra chữ ký số xem có đúng người cần gửi gửi cho mình
không (xác thực chữ ký số).
Chữ ký số: Chữ ký số là việc sử dụng khóa Bí mật của cá nhân hoặc tổ chức để thực
hiện mã hóa chuỗi dữ liệu đại diện, dữ liệu này là kết quả của một hàm băm của dữ
liệu nào đó như các file hoặc khối dữ liệu. Sau đó dữ liệu mã hóa đó được đóng gói
thành chuẩn Chữ ký số cùng với Chứng thư sốđính kèm các file hoặc khối dữ liệu để
tạo thành Chữ ký số của một ai đó trên file hoặc khối dữ liệu.

12


USB Token: USB token là thiết bị phần cứng dùng để tạo cặp khóa bí mật, công khai
và Chứng thư số, được nhà cung cấp dịch vụ chữ ký số giao cho khách hàng để khách
hàng có thể tạo cặp khóa và ký lên dữ liệu cần ký.
Dịch vụ chứng thực chữ ký số:Là một loại hình dịch vụ chứng thực chữ ký điện tử
do tổ chức cung cấp dịch vụ chứng thực chữ ký số cấp. Tổ chức dịch vụ chứng thực
chữ ký số là đơn vị phải được phép của nhà nước, tuân theo hệ thống và quy trình
pháp lý để cung cấp dịch vụ chứng thực chữ ký số. Nhiệm vụ của nhà cung cấp dịch
vụ chứng thực chữ ký số:
o Thẩm tra hồ sơ hợp pháp theo đúng quy định của pháp lý để cung cấp chữ ký
số cho người dùng.
o Tạo cặp khóa công khai và khóa bí mật cho người dùng, tạo chứng thư số để
chứng nhận cho khóa bí mật của người dùng.
o Cung cấp dịch vụ gia hạn, tạm dừng, thu hồi chứng thư số cho khách hàng.
o Duy trì dịch vụ xác thực chứngthư số trực tuyến để những người tham gia giao
dịch đảm bảo tin cậy đúng các đối tượng được chứng nhận tham gia các giao
dịch điện tử.
Danh sách chứng thư số bị thu hồi CRL: Danh sách chứng thư số do một lý do nào
đó như mất khóa bí mật, bị lộ khóa bí mật, hoặc bị hỏng, hoặc người sử dụng rời khỏi
một vị trí chức danh nào đấy…khi đó chứng thư số sẽ được thông báo cho nhà cung

cấp thu hồi. Thông tin chứng thư số bị thu hồi sẽ được đưa vào danh sách CRL để
cung cấp rộng rãi cho môi trường mạng, như thế một ai đó có lợi dụng chữ ký số và
chứng thư số tham gia một giao dịch nào đó thì cũng không thể thực hiện được. CRL
thông thường sẽ được cập nhật một ngày một lần.
Giao thức xác thực chữ ký số trực tuyến OCSP: Giao này cho phép người dùng
kiểm tra được trạng thái chữ ký số còn được phép sử dụng trong thời điểm thực hiện
giao dịch hay không. Như trường hợp CRL, thì việc cập nhật sẽ được thực hiện trong
24 giờ, vì thế sẽ có độ trễ về thời gian, trong trường hợp dùng dịch vụ OCSP thì không
có độ trễ về thời gian.
13


1.3. CHỮ KÝ SỐ TRÊN THIẾT BỊ DI ĐỘNG
1.3.1. Nhu cầu thực tiễn
o Ứng dụng xử lý chữ ký số như trên máy tính
Với nền máy tính chúng ta dễ dàng thấy rằng các ứng dụng và thiết bị lưu trữ và xử
lý chữ ký số trên máy tính rất dễ dàng như thiết bị Token cứng và các ứng dụng Soft
Token.Tuy nhiên với nền thiết bị di động như Smarphone và Tablet, muốn triển khai
được ứng dụng chữ ký số trên đó thì chúng ta cần phải tìm kiếm hoặc đặt hàng các
nhà sản xuất thiết bị chữ ký số chuyên biệt cung cấp thiết bị để lưu trữ chữ ký số trên
thiết bị di động và giao tiếp và làm việc được với thiết bị di động. Một mặt chúng ta
cũng có thể xây dựng ứng dụng và coi thiết bị di động chính là Token luôn để lưu trữ
chữ ký số trên đó để đảm bảo hoàn toàn bảo mật. Chính vì vậy trong phạm vi của đề
tài này chúng tôi cũng nghiên cứu và phát triển ứng dụng để lưu trữ, xử lý, giao tiếp
với ứng dụng lưu trữ chữ ký số hoặc thiết bị lưu trữ chữ ký số để làm cơ sở phát triển
các ứng dụng chữ ký số khác.
o Secured Email
Hiện tại một số ứng dụng sử dụng để duyệt Email trên các máy tính phần lớn đã hỗ
trợ các tính năng ký số và mã hóa nội dung. Mục tiêu của chúng là để tránh giả mạo
email và bảo mật các nội dung email dùng chữ ký số và chứng thư số. Tuy nhiên có

thể nói một cách chính thống trên thế giới chưa cho một ứng dụng nào chính thức
cung cấp các ứng dụng ký và mã hóa Email trên các thiết bị cầm tay phổ biến hiện
tại. Chính vì thế trong phạm vi của đề tài này, chúng tôi cũng sẽ tiến hành nghiên cứu
phát triển ứng dụng để tiến hành ký số và mã hóa được với một ứng dụng email và
nhằm cung cấp dịch vụ ra thị trường.
o Secured SMS
Trong một môi trường làm ăn kinh doanh phức tạp, trong một môi trường do thám
các thông tin của nhau, nghe nén các thông tin của nhau, rất cần thiết một kênh phải
đảm bảo bảo mật. Việc đảm bảo bảo mật không đơn thuần bảo mật cho cá nhân, bảo
mật cho doanh nghiệp và thậm chí bảo mật cho quốc gia. Chính vì vậy việc trao đổi
14


SMS trong làm ăn kinh doanh, thông tin mang tính chất riêng tư cá nhân, các trao đổi
nội dung chính trị nên được đảm bảo bảo mật tính riêng tư cho các cá nhân, doanh
nghiệp và nhà nước. Hiện nay đã có một số ứng dụng dùng, nhưng dùng chủ yếu kênh
mã hóa đối xứng. Vậy đảm bảo ứng dụng bảo mật tính riêng tư hoàn toàn chúng tôi
phát triển kênh mã hóa SMS dùng chữ ký số để cung cấp đến người dùng một ứng
dụng chữ ký số thật sự tiện lợi và bảo mật.
o Signing Apps
Trên nền ứng dụng mobile, hiện tại chưa có chính thức một sản phẩm nào ký số trên
Mobile, các giao dịch điện tử đang ngày trở nên phổ biến, các giao dịch không đơn
thuần trên máy tính, mà có lẽ các giao dịch điện tử sẽ giảm dần trên máy tính mà
được thực hiện chủ yếu trên nền Mobile. Chính vì vậy cần thiết phải phát triển ứng
dụng chữ ký số trên nền Mobile.
1.3.2. Tình hình triển khai trên thế giới
Hiện tại các quốc gia trên thế giới đã và đang triển khai các ứng dụng chữ ký số trên
thiết bị di động. Tuy nhiên việc triển khai chưa thực sự rộng rãi, việc triển khai trên
nền tảng di động trên thế giới có thể nói dựa chính trên các giải pháp của Valimo
phục vụ chính để giao dịch với ngân hàng và tích hợp vào các sim điện thoại, nhưng

giải pháp này là giải pháp phụ thuộc hoàn toàn vào các nhà mạng viễn thông, đồng
thời giải pháp này tập trung vào ký các dạng dữ liệu còn ở mức nguyên thủy là mức
binary, và mức dữ liệu này sẽ không tiếp cận được với người dùng cuối.
Như vậy cần phải ký số các văn bản giấy tờ để đưa ra các xác nhận và quyết định
điện tử triển khai trên Mobile trên toàn cầu dường như chưa hoặc rất hiếm và không
được công bố rộng rãi. Đồng thời các Email trao đổi với nhau của các sản phẩm Email
trên nền mobile của toàn cấu hầu như chưa có chức năng ký và mã hóa dữ liệu. Như
vậy có thể nói trên nền tảng di động, một thiết bị thiết yêu của hầu hết mọi người dân
trên toàn cầu còn thiếu khả năng xác thực và bảo mật Email, văn bản, giao dịch nếu
thực hiện trên mobile có thể nói là còn rất yếu.

15


Hiện tại một số quốc gia cũng đang đẩy rất mạnh việc phát triển chữ ký số trên nền
tảng Mobile, nhưng việc đẩy hẳn thành một trào lưu mang tính toàn cầu thì chắc chắn
cũng sẽ được diễn ra trong vài năm tới. Và trong quá trình nghiên cứu và phát triển
này, chúng tôi cũng đặt đặt vấn đề của rất nhiều đơn vị trên thế giới là phát triển một
thành phần nào đó trong bộ ứng dụng của chúng tôi.
1.3.3. Các vấn đề về kỹ thuật công nghệ
Về kỹ thuật công nghệ, có thể nói nền tảng chữ ký số trên các thiết bị di động cũng
đã được xây dựng trên các nền tảng chính:
-

Các nền tảng kỹ thuật và công nghệ để tích hợp chíp xử lý chữ ký số trên Sim của
thiết bị di động.

-

Các nền tảng kỹ thuật và công nghệ để triển khai một thiết bị lưu trữ và xử lý chữ

ký số và thực hiện kết nối vào thiết bị di động qua các kênh đầu cắm Audio, qua
kênh Blutooth

-

Một số nền tảng sử dụng thuần thiết bị chính là Token, và ứng dụng phần mềm
lưu trữ và quản lý chữ ký số được cài đạt trên các thiết bị.

Về chuẩn, hiện tại các chuẩn đối với các thiết bị công nghệ là thiết bị phần cứng có
thể nó nó tuân theo các chuẩn công nghiệp sẵn có của các thiết bị phần cứng và phần
mềm chuẩn chữ ký số p như PKCS#11, PKCS#1, PKCS#15... Với thiết bị mobile khi
giao tiếp một số chuẩn cũng cần phải kiểm soát được tuân theo như chuẩn giao tiếp
của thiết bị tương ứng như chuẩn Audio, chuẩn Bluetooth...
Về cơ bản các chuẩn cũng được hiệp hội các nhà viễn thông toàn cầu họp và chấp
nhận để tạo thành một chuẩn chung để phục vụ trong mọi giao tiếp viễn thông trên
toàn cầu.

16


2.1.

Chương 2. LÝ THUYẾT VỀ CHỮ KÝ SỐ
CƠ SỞ LÝ THUYẾT

2.1.1. Khái niệm Chữ ký số
Giới thiệu
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu (ví dụ: đơn xin học, giấy báo
nhập học, ... ), lâu nay người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu.
Như vậy người ký phải trực tiếp “ký tay“ vào tài liệu.

Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồn gốc
hay hiệu lực của các tài liệu này. Rõ ràng không thể “ký tay“ vào tài liệu, vì chúng
không được in ấn trên giấy. Tài liệu “số” ( hay tài liệu “điện tử”) là một xâu các bit
(0 hay 1), xâu bít có thể rất dài (nếu in trên giấy có thể hàng nghìn trang). “Chữ ký”
để chứng thực một xâu bít tài liệu cũng không thể là một xâu bit nhỏ đặt phía dưới
xâu bit tài liệu. Một “chữ ký” như vậy chắc chắn sẽ bị kẻ gian sao chép để đặt dưới
một tài liệu khác bất hợp pháp.
Để có được những đặc tính như trên, giao thức “ký trong thế giới điện tử” cần phải
có sự hỗ trợ của công nghệ mã hóa. Sơ đồ chữ ký số là phương pháp ký một thông
báo được lưu dưới dạng điện tử. Giao thức cơ bản của chữ ký số dựa trên ý tưởng của
Diffie và Hellman :
-

Người gửi (chủ nhân của văn bản) ký văn bản bằng cách mã hóa nó với khóa
bí mật của mình

-

Người gửi chuyển văn bản đã ký cho người nhận

-

Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóa công khai
của người gửi để giải mã văn bản.

Định nghĩa Chữ ký số:
Chữ ký số (khóa công khai) là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi
người sử dụng một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện
tử cũng như trao đổi các thông tin mật. Khóa công khai thường được phân phối thông


17


qua chứng thực khóa công khai. Quá trình sử dụng chữ ký số bao gồm 2 quá trình:
tạo chữ ký và kiểm tra chữ ký.
Các thuật toán chữ ký số cho phép xác định nguồn gốc, bảo đảm tính toàn vẹn của dữ
liệu được truyền đi, đồng thời nó cũng bảo đảm tính không thể phủ nhận của thực thế
đã ký thông tin.
Các đăc điểm của chữ ký số:
-

Tính bảo mật (Confidentiality)

-

Tính toàn vẹn (Integrity)

-

Tính chống chối bỏ (Non-repudiation)

-

Tính xác thực (Authenticity)

2.1.2. Cơ sở toán học của chữ ký số
2.1.2.1.

Sinh số nguyên tố và phân tích thừa số nguyên tố


Hai hệ quả và một ước lượng trong thuyết số học là tiền đề cho hệ thống khóa công
khai RSA ngày nay
Hệ quả 1 : Sinh số nguyên tố thì dễ. Việc tìm ra một số nguyên tố ngẫu nhiên với kích
cỡ cho trước là dễ dàng.
Nó là kết quả của hai điểm khác : Số nguyên tố với kích thước bất kỳ thì rất phổ biến
và việc kiểm tra số nguyên tố thì không khó – thậm chí với cả số nguyên tố rất lớn
Để sinh số nguyên tố ngẫu nhiên, đơn giản nhất là chỉ việc sinh ra một số nguyên
ngẫu nhiên với độ lớn đã cho và kiểm tra tính nguyên tố cho đến khi một số nguyên
tố được tìm thấy. Dựa vào điều kiện số nguyên tố, một số kỳ vọng được kiểm tra dựa
vào thứ tự của lnx( thuật toán tự nhiên của x) khi mà x là một số điển hình với độ
lớn mong muốn.
Việc kiểm tra một số là số nguyên tố là không dễ. Trong thực tế, dường như việc
kiểm tra tính nguyên tố sẽ yêu cầu một số khác ngoài chính số đó và số 1 là ước của
số nguyên cần kiểm tra. Hầu hết các hệ mã hóa khóa công khai ngày nay đề phụ thuộc
vào việc sinh số nguyên tố.
18


Cho p, và q là 2 số nguyên tố lớn được sinh ngẫu nhiên.(kích cỡ trung bình trong các
hệ mã hóa thường là 512 bits hoặc lớn hơn).
Hệ quả 2 : Phép tính nhân là dễ : Với p và q cho trước, việc tính kết quả của phép
nhân n = pxq là dễ dàng.
Ước lượng 3 : Phân tích thừa số là khó : Với một số nguyên n là kết quả của phép
nhân số nguyên tố lớn, việc tìm lại các số nguyên tố thừa số p, q là rất khó.
Bất chấp hàng trăm năm nghiên cứu trong vấn đề này, việc phân tích ra thừa số của
một số nguyên lớn vẫn mất rất một thời gian dài. Phương pháp nhanh nhất gần đây
đã nhanh hơn rất nhiều so với những cách đơn giản là tìm tất cả các thừa số ở cùng
một thời điểm. Tuy nhiên, chúng vẫn rất đắt. Cho ví dụ, việc phân tích ra thừa số
nguyên tố cua một số 1024 bit mất một năm với một máy giá 10 triệu USD. Với một
số 2048 bit thì thời gian để hoàn thành còn gấp vài tỉ lần.

2.1.2.2.

Phép mũ hóa và khai căn modul

Như ở trên ta đã khai báo n là kết quả của phép nhân hai số nguyên tố lớn được sinh
ngẫu nhiên. Cho m và c là những số nguyên nằm trong khoảng (0,n-1) và e là một số
nguyên lẻ trong khoảng (3,n-1) và nguyên tố cùng nhau với p-1 và q-1.
Thao tác mã hóa và giải mã trong hệ mã hóa khóa công khai RSA được thực hiện dựa
trên 2 hệ quả và 1 ước lượng sau :
Hệ quả 4: Phép tính mũ hóa modul là dễ : Cho n,m và e. Việc tính c = me mod n là
dễ dàng
Giá trị me mod n chính thức là kết quả của nâng lũy thừa e của m, chia cho n và lấy
phần dư. Điều này có thể là một phép tính toán phức tạp liên quan tới việc nhân (e-1)
số m và kết quả trả về là một số nguyên lớn, trước khi việc thực hiện phép chia cho
n. Tuy nhiên hai cách tối ưu hóa sau làm cho việc tính toán trở nên dễ dàng :

19


- Nhân với một trình tự thích hợp của các giá trị trung gian trước đó, thay vì hơn chỉ
bằng m, có thể giảm số lượng các phép nhân để không quá hai lần kích thước của e
trong hệ nhị phân
- Chia và lấy phần dư sau khi mỗi phép nhân giữ kết quả trung gian có cùng kích
thước như n
Hệ quả 5 : Phép khai căn module – nghịch đảo của phép lũy thừa module.
Cho n,e,c và những thừa số nguyên tố p, q, việc khôi phục lại giái trị m sao cho c =
me mod n là dễ dàng.
Giá trị m có thể khôi phục từ c bởi thao tác mũ hóa modul với một số nguyên lẻ d
nằm trong khoảng (3,n-1). Đặc biệt, với số d này, biểu thức sau thể hiện cho tất cả m
: m = (me)d mod n.

Số nguyên d này thì dễ dàng tính với e, p, q cho trước.
Ước lượng 6: Phép khai căn modul lại khó ở một hoàn cảnh khác
Cho n,e, và nhưng không biết những thừa số nguyên tố, việc khôi phục lại m là khó
khăn.
Phương pháp nhanh nhất thì có sẵn trong việc tính toán khai căn modul dưới điều
kiện dựa là n và e là phân tích thừa số n và áp dụng hệ quả 5 để quyết định d. Thực
sự, bất kỳ phương thức nào quyết định d đều bị chuyển về một cách khác của việc
phân tích thừa số n. Đúng là có thể khi mà tồn tại một phương pháp mà tính toán khai
căn modul mà không cần phân tích n hoặc quyết định d. Nhưng cho đến nay chưa
phương phàp nào có thể làm như vậy nhanh hơn việc phân tích thừa số n.
2.1.2.3.

Hàm băm

Hàm băm tiếp nhận các đầu vào với kích thước bất kỳ, và đầu ra là một khối dữ liệu
có kích thước cố định. Từ văn bản M, ta có thể dễ dàng tính ra bản băm của M là
H(M), nhưng từ H(M) không thể tìm ra M. Và một tính chất quan trọng nhất của hàm
băm là với những văn bản khác biệt nhau dù là rất nhỏ, thì sau khi qua hàm băm kết

20


quả nhận được cũng phải khác nhau, ta có thể gọi là độ nhạy cảm của hàm băm với
sự thay đổi của văn bản.
Hình 2.1 mô tả cơ chế của 1 hàm băm, với dữ liệu đầu vào và đầu ra tương ứng.

Hình 2.1 Minh họa cách làm việc của 1 hàm băm
Một số tính chất cơ bản của hàm băm :
-


(i) Có thể áp dụng với thông báo đầu vào có độ dài bất kỳ

-

(ii) Tạo ra giá trị băm y = h(x) có độ dài cố định

-

(iii) h(x) dễ dàng tính được với bất kỳ x nào

-

(iv) Tính một chiều : Với mọi đầu ra y cho trước không thể tìm được x’ sao
cho

h(x’) bằng giá trị y cho trước
-

(v) Tính chống xung đột yếu : Với mọi dữ liệu đầu vào x1 cho trước không
thể tìm được bất kỳ giá trị x2 nào (x2 khác x1) mà h(x2) = h(x1).

-

(vi) Tính chống xung đột mạnh : Không thể tính toán để tìm được hai dữ liệu
đầu vào x1 và x2 phân biệt sao cho chúng có cùng giá trị băm (h(x1) = h(x2))

2.1.3. Phân loại Chữ ký số
Có nhiều loại chữ ký tùy theo cách phân loại, sau đây xin giới thiệu một số cách.

21



2.1.3.1.

Phân loại chữ ký theo khả năng khôi phục thông điệp gốc.

 Chữ ký có thể khôi phục thông điệp gốc
Là loại chữ ký, trong đó người nhận có thể khôi phục lại được thông điệp gốc, đã
được “ký” bởi “chữ ký” này.
Ví dụ: Chữ ký RSA là chữ ký khôi phục thông điệp, sẽ trình bày trong mục sau.
 Chữ ký không thể khôi phục thông điệp gốc
Là loại chữ ký, trong đó người nhận không thể khôi phục lại được thông điệp gốc, đã
được “ký” bởi “chữ ký” này.
Ví dụ: Chữ ký Elgamal là chữ ký không thể khôi phục, sẽ trình bày trong mục sau.
2.1.3.2.

Phân loại chữ ký theo mức an toàn.

 Chữ ký “không thể phủ nhận”:
Để tránh việc chối bỏ chữ ký hay nhân bản chữ ký để sử dụng nhiều lần, người gửi
chữ ký cũng tham gia trực tiếp vào việc kiểm thử chữ ký. Điều đó được thực hiện
bằng một giao thức kiểm thử, dưới dạng một giao thức mời hỏi và trả lời.
Ví dụ: Chữ ký không phủ định (Chaum - van Antverpen), trình bày trong mục sau.
 Chữ ký “một lần”
Để bảo đảm an toàn, “Khóa ký” chỉ dùng 1 lần (one- time) trên 1 tài liệu.
Ví dụ: Chữ ký một lần Lamport. Chữ ký Fail - Stop (Van Heyst & Pedersen).
2.1.3.3.

Phân loại chữ ký theo ứng dụng đặc trưng.


Chữ ký “mù” (Blind Signature).
Chữ ký “nhóm” (Group Signature).
Chữ ký “bội” (Multy Signature).
Chữ ký “mù nhóm” (Blind Group Signature).
Chữ ký “mù bội” (Blind Multy Signature).
22


2.2.

HỆ MÃ HÓA KHÓA CÔNG KHAI RSA

2.2.1. Mô tả sơ lược về mã hóa RSA
Bài toán: A muốn gửi cho B một thông tin mật mà A muốn duy nhất B có thể đọc
được. Để làm được điều này, B gửi cho A một chiếc hộp có khoá đã mở và giữ lại
chìa khoá. A nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khoá lại
(lúc này ngay cả A cũng không thể đọc lại hay sửa thông tin trong thư được nữa). Sau
đó A gửi chiếc hộp lại cho B. B mở hộp với chìa khoá của mình và đọc thông tin
trong thư.
Trong ví dụ này, chiếc hộp với khoá mở đóng vai trò khoá công khai, chiếc chìa khoá
chính là khoá riêng.
Độ mật của RSA được dựa trên cơ sở là hầu như không có khả năng khôi phục hai số
nguyên tố p và q từ tích n = p.q của chúng ít nhất là theo với các thuật toán phân tích
ra thừa số hiện đã biết. Mặt khác, các số nguyên tố lớn ngẫu nhiên có thể được tạo
sinh nhanh chóng.
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật
(hay khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và
giải mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã
hóa. Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng
khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có

người biết khóa cá nhân (bí mật) mới có thể giải mã được
2.2.2. Phương pháp tạo mã và giải mã trong mã hóa công khai RSA
a. Tạo khóa
Một cặp khóa công khai – khóa riêng được thực hiện theo các bước sau :
i)

Chọn hai số nguyên tố lớn p, q (p ≠ q) , tính tích n = p.q

ii)

ϕ(n) = (p - 1)(q - 1)

iii)

Chọn một số nguyên e đủ lớn nguyên tố cùng ϕ(n), có nghĩa: 1< e < ϕ(n)
và (e, ϕ(n) = 1)

23


iv)

Tìm số d thoả mãn: e.d (mod ϕ(n)) = 1, 1Euclidean mở rộng

Bộ ba (n; e; d) là chìa khoá của hệ mã, với khoá công khai của B là (n; e) và
khoá riêng của B là (n; d)
b. Mã hóa
i)


Sử dụng khoá công khai của B là (n, e)

ii)

Biểu diễn thông điệp dưới dạng số, giả sử là số nguyên m sao cho: m ∈
[0, n-1]

iii)

Tính C = m e mod n iv)

Gửi bản mã C cho B
c. Giải mã
i)

Dùng khoá riêng d của B tính m = C d mod n

ii)

Khôi phục thông điệp từ hàm ngược của hàm số hoá để có P

2.2.3. Đặc trưng của mã hóa công khai RSA
Đặc trưng của hệ mã hóa công khai RSA:
-

Không cần phải thiết lập một kênh bảo vệ phức tạp để truyền khoá như trong
hệ mã bí mật.

-


Cặp khoá công khai được tạo ra theo một phương pháp đặc biệt có quan hệ với
nhau và được chọn trong nhiều khoá có thể (trong đó nếu khoá này dùng để
mã hoá thì khoá kia dùng để giải mã).

-

Ứng với một cặp p, q có thể chọn được nhiều bộ khoá công khai (n; e; d)

-

Mọi người trong hệ thống nếu nhận được bản mật C thì cũng không thể biết
được bản rõ P. Với việc chỉ biết khoá mã hoá ke và căn cứ vào các thông tin
về thuật toán thì không thể tìm ra khó giải mã kd trong thời gian chấp nhận
được (kể cả dùng hệ thống hiện đại nhất để tính toán).

Hình 2.2 mô tả quá trình mã hóa và giải mã giữa A và B sử dụng thuật toán mã hóa
công khai RSA.

24


Hình 2.2. Quá trình mã hóa và giải mã bằng thuật toán RSA
2.2.4. Độ an toàn của mã hóa RSA
Độ an toàn của hệ mật RSA thể hiện qua hai yếu tố:
-

Tính bảo mật của mã hóa RSA, chủ yếu dựa vào việc bảo vệ khoá riêng d và
giữ bí mật các số nguyên tố p và q.

-


Tính an toàn của hệ RSA dựa vào độ khó của bài toán RSA và độ phức tạp của
bài toán phân tích một số thành các thừa số nguyên tố.

Với việc phân tích thừa số nguyên tố, giả sử khóa có độ dài128 bit là một số giữa 1
và một số rất lớn : 340.282.366.920.938.000.000.000.000.000.000.000.000  Có
khoảng ≈ n / ln(n) = 2128 / ln(2128) ≈
3.835.341.275.459.350.000.000.000.000.000.000.000 số nguyên tố giữa 1 và số
này. Giả sử nếu mỗi giây có thể tính được 1012 số  Cần hơn
121,617,874,031,562,000 năm (khoảng 10 triệu lần tuổi của vũ trụ) để tìm ra khóa
Các cách thức tấn công mã hóa RSA:
-

Phương pháp vét cạn : Thử tất cả các khóa riêng có thể  Phụ thuộc vào độ
dài khóa và gần như không thể.

-

Phương pháp phân tích toán học : Phân tích n thành 2 thừa số nguyên tố p và
q. Như trên ta đã nói việc phân tích một số ra số nguyên tố là rất khó khăn, với
tốc độ của máy tính hiện nay cũng không thể đáp ứng được việc phân tích số
nguyên tố lớn trong thời gian đa thức nếu các số p, q được chọn là lớn.
25


×