Nghiên cứu giải pháp bảo mật và xác thực website - Pdf 30

BỘ GIÁO DỤC VÀ ĐÀO TẠO


TRỊNH HỒNG LÂM

KHOA HỌC MÁY TÍNH

K
16

Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ MÁY TINH

Người hướng dẫn khoa học: TS. Nguyễn Viết Thế

HÀ NỘI, 2014 LỜI CẢM ƠN

Lời đầu tiên, với tất cả lòng kính trọng và biết ơn sâu sắc em xin gửi lời
cảm ơn tới thầy giáo hướng dẫn Ts. Nguyễn Viết Thế, đã tạo mọi điệu kiện,
hướng dẫn, chỉ dẫn tận tình cho bài luận văn. Em xin chân thành cảm ơn tới
các thầy giáo Ts. Hồ Văn Hương đã giúp đỡ em rất nhiều trong quá trình học
tập và nghiên cứu.
Xin cám ơn Khoa Công nghệ Thông tin, Phòng Sau đại học, Trường Đại
học Sư phạm Hà Nội đã tận tâm giảng dạy, cung cấp cho tôi kiến thức,
phương pháp nghiên cứu trong khóa học cũng như trong quá trình thực hiện
luận văn.
Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè và đồng nghiệp đã
luôn cổ vũ động viên em trong quá trình học tập và làm luận văn.

Trịnh Hồng Lâm MỤC LỤC
Trang bìa phụ………………………………………….……………………….
Lời cảm ơn
Lời cam đoan
Mục lục…………………………………………………………………………
Danh mục các ký hiệu và các chữ viết tắt
Danh mục các hình vẽ
Danh mục các bảng
MỞ ĐẦU 1
Chương 1. CƠ SỞ LÝ THUYẾT AN TOÀN THÔNG TIN 4
1.1. Tổng quan về an toàn thông tin 4
1.2. Cơ sở khoa học trong an toàn thông tin 6
1.2.1. Khái niệm về mật mã …………………………………………… 6
1.2.2. Mã hóa và giải mã dữ liệu ……………………………………… 7
1.2.3. Hệ mật mã khoá đối xứng ……………………………………… 8
1.2.4. Hệ mật mã khóa công khai ……………………………………….9
1.2.5. Thuật toán mã hóa RSA ……………………………………… 10
1.2.6. Hàm băm ……………………………………………………… 14
1.2.7. Chữ ký số ……………………………………………………… 20
1.3. Các nguy cơ và rủi ro mất an toàn đối với hệ thống thông tin 25
1.3.1. Nguy cơ mất an toàn đối với hệ thống thông tin ……………… 25
1.3.2. Đánh giá và xử lý các nguy cơ mất an toàn thông tin …………….25
1.3.3. Rủi ro và quản lý rủi ro trong an toàn thông tin …………………26
1.3.4. Quản trị và bảo mật hệ thống thông tin ………………………….27

3.1.3. Môi trường hệ thống …………………………………………….61
3.1.4. Thiết kế cơ sở dữ liệu ………………………………………… 62
3.1.5. USB Token …………………………………………………… 62
3.2. Xây dựng ứng dụng 64

3.2.1. Server ……………………………………………………………64
3.2.2. Client ………………………………………………………… 65
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 73 DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT

Stt
Từ viết tắt
Ý nghĩa từ viết tắt
1
CA
Certificate Authority
2
CIA
Confidentiality, Itegrity, Authentication
3
CSS

Open Single Sign On
13
OTP
One Time Password
14
PKI
Public Key Infrastructure
15
SHA
Secure Hash Algorithm
16
SSO
Single Sign On
17
SSL
Secure Socket Layer
18
ST
Service Ticket
19
URL
Uniform Resource Locator
20
CERT
Computer Emegency Response Team
21
PKCS
Public Key Cryptography Standards
21
Hình 1.9
Mô hình C - I – A
28
Hình 2.1
Mô hình hoạt động của Website
32
Hình 2.2
Mô tả tấn công DoS
37
Hình 2.3
Biểu đồ trình tự modul mã hóa hoạc giải mã
40
Hình 2.4
Sơ đồ truyền tin có mã hoá và giải mã trên website
41
Hình 2.5
Mô hình đăng nhập duy nhất OpenSSO
44
Hình 2.6
Cơ chế hoạt động của OpenSSO
45
Hình 2.7
Người dùng truy cập vào ứng dụng khi đã chứng
thực…
47
Hình 2.8
Người dùng truy cập ứng dụng mà chưa chứng thực
với
48

61
Hình 3.6
Chức năng người dùng Client
62
Hình 3.7
Thiết kế cơ sở dữ liệu
62
Hình 3.8
USB Token của Viettel
62
Hình 3.9
Màn hình chính của Server
64
Hình 3.10
Màn hình quản lý tài khoản
65
Hình 3.11
Màn hình thêm tài khoản
65
Hình 3.12
Màn hình đăng nhập pin Usb token
66
Hình 3.13
Màn hình đăng nhập user
66
Hình 3.14
Màn hình chính của Client
67
Hình 3.15
Màn hình chọn file

Bảng các tính chất của thuật toán băm SHA
22
Bảng 2.3
Đặc tính kĩ thuật của USB eToken
64 1
MỞ ĐẦU

thực thể không được uỷ thác
- Sự chứng minh xác thực: Xác thực tính hợp pháp trong quá trình trao
đổi thông tin, nguồn gốc thông tin của một chủ thể.
- Không thể thoái thác trách nhiệm: Người gửi tin không thể thoái thác về
những sự việc và những nội dung thông tin đã gửi đi, xuất phát từ những khả
năng ứng dụng trong thực tế và những ứng dụng đã có từ các kết quả của
nghiên cứu trước đây về lĩnh vực Bảo mật và an toàn trong TMĐT. Đề tài sẽ đi
sâu nghiên cứu các kỹ thuật và các phương pháp bảo mật và an toàn thông tin
trong Website.
2. Mục đích nghiên cứu (Các kết quả cần đạt được)
Đề tài nghiên cứu các kiến thức khoa học và thuật toán liên quan như:
Xác thực, Bảo mật, Bảo toàn dữ liệu, Mật mã, Chữ ký số để thực hiện
nhiệm vụ bảo mật, an toàn và xác thực trong Website.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu các kỹ thuật và phương pháp an toàn bảo mật trong thiết kế
Website.
- Áp dụng các kết quả đã nghiên cứu để triển khai hệ thống Bảo mật và
an toàn trong Website
4. Đối tượng và phạm vi nghiên cứu
- Đối tượng là các dữ liệu trong các ứng dụng web.
- Các vấn đề về bảo mật chứng thực trong website, hàm băm, các thuật
toán mã hoá đối xứng và và bất đối xứng, chữ ký số, giao thức bảo mật trên
mạng như SSL.
- Các kỹ thuật sử dụng thiết kế website và các phương pháp kết hợp hệ
mật mã trong bảo mật.
3
- Phạm vi nghiên cứu của luận văn là đảm bảo an toàn và bảo mật cho

1.1. Tổng quan về an toàn thông tin
Chúng ta đang sống trong thời đại bùng nổ thông tin. Nhu cầu trao đổi
thông tin và các phương tiện truyền tin phát triển một cách nhanh chóng.
Cùng với sự phát triển đó, việc đòi hỏi phải bảo vệ an toàn nguồn thông tin
ngày càng trở nên cấp thiết và phổ biến.
Có thể hiểu an toàn thông tin (dữ liệu) là khả năng xác suất ngăn chặn
các nguy cơ và thời gian đảm bảo mức độ an toàn xác định đối với thông tin
trên mạng. Các chỉ số này phụ thuộc lẫn nhau. Trong những biện pháp bảo vệ
thông tin cụ thể cho trước, có thể đảm bảo mức độ an toàn cao hơn trong
khoảng thời gian ngắn hơn.
Vì thông tin được chứa trong các tham số của vật mang, nên để đảm bảo
an toàn thông tin, các tham số này phải giữ được giá trị của nó trong khoảng
thời gian nhất định. Do tác động của những nhân tố (nhiễu) khác nhau mà giá
trị tham số của vật mang tin cũng khác nhau.
Vậy để thông tin được an toàn thì phải thỏa mãn các tiêu chí sau:
Bảo đảm bí mật: Giữ thông tin được bí mật không bị lộ đối với người
không được phép, chỉ người có thẩm quyền mới biết được nội dung thông tin đó.
Một số loại thông tin chỉ có giá trị đối với một đối tượng xác định và
chúng không được phổ biến đối với các đối tượng khác. Tính bí mật của
thông tin chính là giới hạn quyền truy xuất đến thông tin. Đối tượng truy xuất
có thể là con người, máy tính hay các phần mềm, kể cả các phần mềm phá
hoại như virus, worm, spyware,…
Để đảm bảo tính tính bí mật của thông tin, ngoài các cơ chế và phương
tiện vật lý như thiết bị lưu trữ, dịch vụ bảo vệ … thì kỹ thuật mã hóa được
5
xem là công cụ bảo mật thông tin hữu hiệu nhất. Các kỹ thuật mã hóa sẽ được
trình bày cụ thể ở phần mã hóa.

đảm bảo.
Tính khả dụng là một yêu cầu rất quan trọng của hệ thống, bởi nếu hệ
thống tồn tại nhưng không sẵn sàng cho sử dụng thì hệ thống đó giống như
không tồn tại. Một hệ thống được xem có tính khả dụng tốt là một hệ thống
hoạt động liên tục và có hiệu quả, có khả năng phục hồi nhanh chóng nếu có
sự cố xảy ra.
1.2. Cơ sở khoa học trong an toàn thông tin
1.2.1. Khái niệm về mật mã
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ
khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai
Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở
khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc trao đổi thông tin
trong nhiều lĩnh vực hoạt động giữa con người với con người, quốc gia với quốc
gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã trước hết
là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin.
Với mật mã hiện đại ngoài khả năng che dấu dữ liệu, còn dùng để thực hiện: ký
số (ký điện tử) tạo đại diện thông điệp, giao thức bảo toàn dữ liệu, giao thức xác
thực thực thể, giao thức xác thực tài liệu, giao thức chưng minh không tiết lộ
thông tin, giao thức thỏa thuận phân phối khóa…
Ví dụ muốn gửi một văn bản từ một người gửi A đến một người nhận B,
A phải tạo cho văn bản đó một bản mã mật tương ứng và thay vì gửi văn bản
rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật và khôi phục lại
văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình. Do văn bản gửi
đi thường được chuyển qua các con đường công khai nên người ngoài có thể
“lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được; Còn A
có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu
7


Với mỗi k K, có một hàm lập mã ek  E, ek : P → C và một hàm giải
mã dkD, dk: C → P sao cho dk(ek(x)) = x ,  x  P (x: bản rõ)

Hình 1.1: Quá trình mã hoá và giải mã dữ liệu
1.2.3. Hệ mật mã khoá đối xứng
Hệ mã hóa khóa đối xứng còn được gọi là hệ mã hóa khóa bí mật, hay khóa
riêng, vì phải giữ bí mật cả 2 khóa. Trước khi dùng hệ mã hóa đối xứng người
gửi và người nhận phải thỏa thuận thuật toán mã hóa và khóa chung, khóa phải
được giữ bí mật. Độ an toàn của hệ mã hóa đối xứng phụ thuộc vào khóa nếu để
lộ ra khoá này nghĩa là bất kì người nào cũng có thể mã hoá và giải mã thông
báo trong hệ thống mã hoá. Sự mã hoá và giải mã của thuật toán đối xứng biểu
thị (hình 1.2):

Hình 1.2: Mã hóa với khóa mã và giải mã giống nhau
Các thành phần trong sơ đồ mã hóa khóa đối xứng:
- Bản rõ: Dữ liệu hay thông điệp cần được mã hóa.
- Thuật toán mã hóa: Thực hiện mã hóa dữ liệu tức là tạo ra sự thay đổi,
dịch chuyển khác nhau trên bản rõ để sinh ra bản mã.
- Khóa bí mật: Dùng để mã hóa bản rõ, là giá trị đầu vào của thuật toán
mã hóa và có giá trị độc lập với bản rõ. Thuật toán sinh ra bản mã phụ thuộc
vào khóa mã hóa.
9
- Bản mã: dữ liệu hay thông điệp đã được mã hóa. Bản mã phụ thuộc vào
khóa và thuật toán mã hóa.
- Thuật toán giải mã: Thực hiện dịch chuyển và thay thế trên bản mã và
khóa bí mật để sinh ra bản rõ.

và private key) là thuộc tập số nguyên Z
N
={1,…,N-1}. Trong đó tập Z
N
với
N = p*q là các số nguyên tố khác nhau cùnh với phép cộng, phép nhân modun
N tạo ra modun số học N.
Khóa mã hóa E
KB
là cặp số nguyên (N, K
B
) và khóa giải mã D
kB
là cặp
số nguyên (N, k
B
), các số là rất lớn, số N có thể lên tới hàng trăm chữ số các
phương pháp mã hóa và giải mã hóa là rất dễ dàng. Công việc mã hóa là sự
biến đổi bản rõ P (Plaintext) thành bản mã C (Ciphertext) dựa trên cặp khóa
công khai K
B
và bản rõ P theo công thức sau đây:
C = E
KB
(P) = P
KB
(mod N) (1)
Công việc giải mã là sự biến đổi ngược lại bản mã C thành bản rõ P dựa
trên cặp khóa bí mật k
B

Đầu tiên người nhận B lựa chọn một khóa công khai K
B
một
cách ngẫu nhiên. Khi đó khóa bí mật k
B
được tính ra bằng công thức (5).

Hình 1.4: Sơ đồ các bước thực hiện mã hóa theo thuật toán RSA
Ví dụ: Mã hóa bản rõ: P = RENAISSANCE sử dụng thuật toán RSA.
Sinh khóa:
Chọn bí mật số nguyên tố p = 53, q = 61, tính n = p*q = 3233, công khai
n. Đặt P = C = Z
n
, tính bí mật (n) = (p-1)*(q-1) = 52*60 = 3120.
+ Chọn khóa công khai k
B
là nguyên tố với (n), tức là:
UCLN(b, (n)) = 1, chọn k
B
= 71.
+ Khóa bí mật K
B
là phần tử nghịch đảo của k
B
theo mod (n):
K
B
* k
B
≡ 1 (mod (n))


m
3

m
4

m
5

m
6

12
Theo phép lập mã:
c
i
= m
i
kB
mod n = m
i
71
mod 3233
Bản rõ số:
c
1

791
mod 3233 ta nhận được bản rõ: RENAISSANCE
1.2.5.2. Đánh giá thuật toán RSA
Trước khi thực hiện mã hóa, ta phải thực hiện chuyển đổi chuyển đổi văn
bản rõ sao cho không có giá trị nào của P tạo ra văn bản mã không an toàn. Nếu
không có quá trình này thuật toán RSA sẽ gặp phải một số vấn đề sau:
- Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị 0 và 1 tương ứng.
- Khi mã hóa với số mũ nhỏ (k
b
=3) và m cũng có giá trị nhỏ, giá trị m
kb

cũng nhận giá trị nhỏ (so với n). Như vậy phép modun không có tác dụng và
có thể dễ dàng tìm được m bằng cách khai căn bậc k
B
của P.
RSA là phương pháp mã hóa xác định (không có thành phần ngẫu nhiên)
nên kẻ tấn công có thể thực hiện tấn công lựa chọn bản rõ bằng cách tạo ra
một bảng tra giữa bản rõ và bản mã. Khi gặp một bản mã kẻ tấn công sử dụng
bảng tra để tìm ra bản rõ tương ứng.
Trên thực tế, ta thường gặp 2 vấn đề khi gửi các bản tin ASCII ngắn với
m là nhóm vài ký tự ASCII. Một đoạn tin chỉ có một ký tự NUL sẽ được gán
giá trị m = 0 và cho ra bản mã là 0 bất kể giá trị của k
B
và N. Tương tự, một
ký tự ASCII khác SOH có giá trị 1 sẽ luôn cho bản mã là 1. Với Với các giá
trị k
B
nhỏ thì tất cả ký tự ASCII đều cho kết quả mã hóa không an toàn vì giá
trị m chỉ là 255 và 2553 nhỏ hơn giá trị n chấp nhận được. Những bản mã này

4*10
25
năm

Một số tiêu chuẩn, chẳng hạn như PKCS, đã được thiết kế chuyển đổi
bản rõ trước khi mã hóa bằng RSA. Các phương pháp chuyển đổi này bổ
xung thêm bít vào P. Các phương pháp chuyển đổi cần phải được thiết kế thận
trọng để tránh những dạng tấn công phức tạp tận dụng khả năng biết trước
được cấu trúc bản rõ.
1.2.5.3. Ứng dụng của RSA
Hệ mã hóa RSA được ứng dụng rộng rãi chủ yếu cho web và các chương
trình email. Ngày nay, RSA còn được sử dụng rộng rãi trong các công nghệ
bảo mật sử dụng cho thương mại điện tử.
14
1.2.6. Hàm băm
1.2.6.1. Đặt vấn đề
Chúng ta có thể thấy rằng các sơ đồ chữ ký nói chung chỉ cho phép ký
các bức điện nhỏ. Thông thường khi sử dụng một sơ đồ chữ ký, chữ ký được
sinh ra có độ dài lớn hơn so với văn bản ký, do vậy kích thước văn bản sau
khi ký sẽ tăng lên rất nhiều. Và trên thực tế ta cần ký trên các bức điện rất dài,
chẳng hạn, một tài liệu có thể dài nhiều Megabyte.
Một cách đơn giản để giải bài toán này là chia các bức điện dài thành nhiều
đoạn sau đó ký lên các đoạn đó độc lập nhau. Phương pháp này gặp phải một số
vấn đề trong việc tạo ra các chữ ký số. Trước hết, với một bức điện dài, ta kết
thúc bằng một chữ ký rất lớn. Nhược điểm khác là các sơ đồ chữ ký “an toàn” lại
chậm vì chúng dùng các phương pháp số học phức tạp như số mũ modulo. Tuy
nhiên, vấn đề nghiêm trọng hơn với phép toán này là bức điện đã ký có thể bị


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status