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 (7.35 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 tồ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 tố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 tố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 tồ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 hồn tồ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
ngồ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 tố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 ln để lưu trữ
chữ ký số trên đó để đảm bảo hồn tồ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ư hồn tồ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 tồ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 tồ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 tồ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
tồ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. Q 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 tồ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 tồ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ở tố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ố ngun 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ẽ u cầu một số khác ngồ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 để hồ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 tố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 tố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 q 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 hồ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 tố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 tố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 tố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 tồ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 tố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ó khố đã mở và giữ lại
chìa khố. A nhận chiếc hộp, cho vào đó một t ờ giấy viết thư bình thường và khố 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 khố của mình và đọc thơng tin
trong thư.
Trong ví dụ này, chiếc hộp với khố mở đóng vai trị khố cơng khai, chiếc chìa khố
chính là khố 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ố
ngun 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 tố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 tố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 khố của hệ mã, với khố 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 khố 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ố hố để 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 khố như trong
hệ mã bí mật.

-

Cặp khố 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 khố có thể (trong đó nếu khố này dùng để
mã hố 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ộ khố 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ã hố ke và căn cứ vào các thơng tin
về thuật tố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 tốn).

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

24


Hình 2.2. Q trình mã hóa và giải mã bằng thuật tốn RSA
2.2.4. Độ an tồ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 tồ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 tố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 10 12 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 tố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


×