Nghiên cứu giải pháp xác thực và bảo mật trong trao đổi tài liệu trên môi trường mạng giữa các cơ quan nhà nước Trịnh Xuân Hoàng Trường Đại học Khoa học Tự nhiên Luận văn ThS chuyên n
Trang 1Nghiên cứu giải pháp xác thực và bảo mật trong trao đổi tài liệu trên môi trường mạng giữa các
cơ quan nhà nước
Trịnh Xuân Hoàng
Trường Đại học Khoa học Tự nhiên Luận văn ThS chuyên ngành: Bảo đảm toán cho máy tính và hệ thống tính toán;Mã
Mã số: 60 46 35 Người hướng dẫn: TS Tôn Quốc Bình
Năm bảo vệ: 2012
Abstract: Nghiên cứu giải pháp xác thực và bảo mật tài liệu trong trao đổi văn bản trên
môi trường mạng giữa các cơ quan nhà nước và ứng dụng thành công tại tỉnh Thái Bình Thực trạng và nhu cầu về an toàn thông tin trong các cơ quan nhà nước; các tiêu chuẩn,
cơ sở mật mã, giải pháp công nghệ; trên cơ sở đó nghiên cứu giải pháp xác thực và bảo
mật trong trao đổi tài liệu trên môi trường mạng
Keywords: Hệ thống tính toán; Bảo mật tài liệu; Trao đổi văn bản
Content
MỞ ĐẦU
1 Lý do chọn đề tài
Nhận thức được lợi ích và tầm quan trọng của công nghệ thông tin và truyền thông trong việc duy trì và thúc đẩy sự phát triển bền vững, trong những năm vừa qua lĩnh vực công nghệ thông tin nói chung và hoạt động ứng dụng công nghệ thông tin nói riêng đã phát triển nhanh chóng, mạnh mẽ và ngày càng sâu rộng trong mọi mặt của đời sống kinh tế xã hội Các hoạt động có thể
kể đến như: Các hoạt động thương mại điện tử; các hoạt động hành chính công phổ biến như gửi nhận thư điện tử, các hệ thống hỗ trợ quản lý điều hành trên mạng Chính vì những vấn đề thực
tiễn trên, luận văn: “Nghiên cứu giải pháp xác thực và bảo mật tài liệu trong trao đổi văn bản
trên môi trường mạng giữa các cơ quan nhà nước” nhằm nâng cao việc xác thực và an toàn
thông tin trong các hoạt động của các cơ quan, tổ chức trong các ứng dụng trên môi trường
mạng
Trang 22 Mục đích nghiên cứu
Luận văn nghiên cứu giải pháp xác thực và bảo mật tài liệu trong trao đổi văn bản trên môi trường mạng giữa các cơ quan nhà nước và ứng dụng thành công tại tỉnh Thái Bình
3 Đối tượng và phạm vi nghiên cứu
Tập trung nghiên cứu, tìm hiểu thực trạng và nhu cầu về an toàn thông tin trong các cơ quan nhà nước; các tiêu chuẩn, cơ sở mật mã, giải pháp công nghệ; trên cơ sở đó nghiên cứu giải pháp xác
thực và bảo mật trong trao đổi tài liệu trên môi trường mạng
4 Phương pháp nghiên cứu
- Tiếp cận phân tích và tổng hợp: Đọc tài liệu, tổng hợp lý thuyết, phân tích lý thuyết về Hệ mật
mã đối xứng, hệ mật mã bất đối xứng (hệ mật mã khóa công khai), chữ ký số
- Tiếp cận theo định tính và định lượng: Nghiên cứu cơ sở khoa học của mã hóa, chữ ký số của các tác giả trong và ngoài nước, các bài báo, thu thập thông tin trên mạng, tìm hiểu các mô hình bảo mật, chứng chỉ số Từ đó trình bày theo ý tưởng của mình và đề xuất các giải pháp xác thực
và bảo mật tài liệu trong trao đổi văn bản trên môi trường mạng giữa các cơ quan nhà nước trên
địa bàn
5 Bố cục Luận văn
Luận văn được trình bày trong 03 chương:
- Chương 1: Tập trung tìm hiểu một số khái niệm về án toàn thông tin, đánh giá thực trạng và
nhu cầu về an toàn thông tin trong các cơ quan nhà nước
- Chương 2: Trình bày tổng hợp, phân tích một số cơ sở mật mã cần thiết để áp dụng trong việc
bảo mật thông tin trên môi trường mạng
- Chương 3: Tập trung phân tích thiết kế giải pháp xác thực và bảo mật thông tin trong trao đổi
tài liệu trên môi trường mạng
Chương-1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN
1.1 Một số khái niệm cơ bản
1.1.1 Khái niệm về an toàn thông tin
Thông tin được lưu trữ bởi các sản phẩm và hệ thống CNTT là một tài nguyên quan trọng cho sự thành công của tổ chức đó, là tài sản của một cá nhân hay tổ chức Các thông tin cá nhân lưu trữ trong hệ thống thông tin cần được giữ bí mật, bảo vệ và không bị thay đổi khi không được phép Trong khi các sản phẩm và hệ thống CNTT thực hiện các chức năng của chúng, các thông tin cần được kiểm soát để đảm bảo chúng được bảo vệ chống lại các nguy cơ, ví dụ như việc phổ biến và
thay đổi thông tin không mong muốn và trái phép, nguy cơ mất mát thông tin
1.1.2 Khái niệm về đảm bảo an toàn thông tin
Đảm bảo an toàn thông tin là đảm bảo an toàn kỹ thuật cho hoạt động của các cơ sở hạ tầng thông tin, trong đó bao gồm đảm bảo an toàn cho cả phần cứng và phần mềm hoạt động theo các tiêu chuẩn kỹ thuật do nhà nước ban hành; ngăn ngừa khả năng lợi dụng mạng và các cơ sở hạ
Trang 3tầng thông tin để thực hiện các hành vi trái phép gây hại cho cộng đồng, phạm pháp hay khủng bố; đảm bảo các tính chất bí mật, toàn vẹn, chính xác, sẵn sàng phục vụ của thông tin trong lưu
trữ, xử lý và truyền tải trên mạng
1.2 Thực trạng về an toàn thông tin trong các cơ quan nhà nước
Theo thống kê của Bkav, tính từ đầu năm 2012 đến nay, mỗi ngày có tới 6 website tại Việt Nam
bị tấn công, tương ứng với hơn 2.000 website bị hack mỗi năm Đã có 175 website của các cơ quan, doanh nghiệp tại Việt Nam bị hacker xâm nhập, trong đó có 24 trường hợp gây ra bởi hacker trong nước, 151 trường hợp do hacker nước ngoài Hầu hết nguyên nhân của các vụ hack
này là do website tồn tại nhiều lỗ hổng
1.3 Nhu cầu về an toàn thông tin trong ứng dụng tại các cơ quan nhà nước
Những thông tin trên cho thấy việc lựa chọn giải pháp và đầu tư cho an toàn thông tin là vấn đề cần được các cơ quan nhà nước chú trọng đầu tư, bên cạnh đó là việc hoàn thiện hành lang chính
sách và pháp lý trong lĩnh vực này để việc ứng dụng CNTT thực sự có hiệu quả
1.4 Một số kỹ thuật mật mã
Kỹ thuật mật mã [1], [9] đóng vai trò thiết yếu trong việc giải quyết vấn đề an toàn thông tin Bảng 1.1 liệt kê một số kỹ thuật và công nghệ để giải quyết yêu cầu xác thực, toàn vẹn, bí mật,
chống chối bỏ trong an toàn và bảo mật thông tin
Bảng 1.1 Một số kỹ thuật và công nghệ giải quyết yêu cầu an toàn và bảo mật
Bí mật Mã hóa và giải mã dựa vào khóa
Xác thực Sử dụng tên và mật khẩu của người dùng, đặc điểm sinh trắc học,
ký số và kiểm tra chữ ký số dựa vào khóa Tin cậy Ký số và kiểm tra chữ ký số dựa vào khóa
Chống chối bỏ Ký số và kiểm tra chữ ký số dựa vào khóa
Trao quyền Áp dụng chính sách kiểm soát truy nhập và quản lý quyền hạn
Kiểm toán Lưu nhật ký và sử dụng công cụ kiểm toán
1.4.1 Các hệ mật mã
Hệ mật chính là hệ thống cung cấp các kỹ thuật mã hóa và giải mã dữ liệu, được phân loại thành
hệ mật khóa công khai và hệ mật khóa đối xứng
Hệ mật khóa đối xứng sử dụng cùng một khóa khi mã hóa và giải mã, được minh hoạ trong Hình
1.1 Độ an toàn của hệ mật này phụ thuộc chính vào sự bí mật của khóa
Trang 4Hình 1.1 Hệ mật khóa đối xứng đảm bảo tính bí mật và xác thực
Hệ mật khóa công khai sử dụng một cặp khóa (khóa riêng và khóa công khai), một khóa được sử dụng để mã hóa và khóa còn lại được sử dụng để giải mã, được minh hoạ trong dưới đây:
Hình 1.2 Hệ mật khoá công khai
Trang 5Mục đích chính của hệ mật khóa công khai là phân phối khóa và ký số Các ứng dụng của hệ mật
này gồm có: Mã hóa/giải mã, chữ ký , trao đổi khóa
Các thuật toán mật mã:
- Tóm lược thông báo (MD2-4-5, SHA, SHA1, SHA2,…): chuyển thông báo rõ có độ dài không
xác định thành thông báo mã có độ dài xác định
- Mật mã khóa bí mật (DES, IDEA, RC2-4-5, Triple-DES, AES,…): sử dụng cùng một khóa cho
mã hóa và giải mã
- Mật mã khóa công khai (DSA, RSA,…): sử dụng một khóa để mã hóa và một khóa khác để giải
mã
Khi A muốn truyền thông với B, thủ tục được tiến hành như sau:
1 A tạo ra một cặp khóa {KUa, KRa} và truyền thông báo cho B gồm KUa và tên của A (IDA)
2 B tạo ra khóa bí mật Ks và gửi cho A sau khi mã hóa với khóa công khai của A
3 A tính toán DKRa[EKUa[Ks]] để khôi phục lại khóa bí mật Chỉ A có khóa riêng nên giải mã
được khóa bí mật Chỉ A và B biết khóa bí mật Ks
Nếu kiểm soát được kênh truyền thông, đối tượng E có thể dàn xếp cuộc truyền thông mà không
bị phát hiện, theo hình thức sau đây:
1 A tạo ra một cặp khóa {KUa, KRa} và truyền thông báo cho B gồm có KUa và tên của A
(IDA)
E chặn lấy thông báo, tạo ra một cặp {KUe KRe} và truyền KUe || IDA cho B
B sinh ra một khóa bí mật Ks và truyền EKUe[Ks] cho A
E chặn lấy thông báo, biết được Ks bằng cách tính DKRe[EKUe[Ks]]
E truyền EKUa[Ks] cho A
A và B không biết E đã làm giả Ks và dùng Ks để trao đổi các thông báo Không mất nhiều thời gian, E có thể can thiệp vào kênh truyền thông, nghe trộm và giải mã tất cả các thông báo vì biết
Ks
- Lược đồ phân phối khóa bí mật đảm bảo tính bí mật và xác thực:
1 A sử dụng khóa công khai của B để mã hóa thông báo (1) gửi cho B có chứa tên của A (IDA)
và một nonce N1 để nhận dạng giao dịch này
2 B gửi thông báo (2) cho A Thông báo được mã hóa bằng KUa, có chứa N1 của A và nonce mới N2 do B sinh ra Do chỉ có B mới có thể giải mã thông báo (1) nên sự xuất hiện của N1
trong thông báo (2) đảm bảo A đang liên lạc với B
3 A trả lại N2, được mã hóa bằng khóa công khai của B để đảm bảo rằng B đang liên lạc với A
4 A chọn một khóa bí mật Ks và gửi thông báo (3) M= EKUb[EKRa[Ks]] cho B Việc mã hóa thông báo với khóa công khai của B đảm bảo chỉ có B mới có thể đọc Việc mã hóa với khóa
riêng của A đảm bảo chính A đã gửi thông báo
5 B tính toán DKUa[EKRb[M]] để khôi phục khóa bí mật
1.4.2 Chữ ký số
Chữ ký số là dữ liệu để xác định nguồn gốc và tính toàn vẹn của thông báo Người gửi sử dụng khóa riêng của mình để ký số thông báo hay tạo chữ ký số cho thông báo được gửi đi Người nhận sử dụng khóa công khai của người gửi để kiểm tra nguồn gốc thông báo và xác định thông
báo không bị thay đổi trên đường truyền
Chữ ký số tương tự như chữ ký viết tay và phải có một số tính chất sau:
- Có khả năng kiểm tra chữ ký số và thời gian ký số
Trang 6- Có khả năng xác thực các nội dung tại thời điểm ký số
- Thành viên thứ 3 có thể kiểm tra chữ ký số để giải quyết các tranh chấp
Dựa vào các tính chất cơ bản này, chữ ký số có các yêu cầu sau:
- Phải là một mẫu bít phụ thuộc vào thông báo được ký số
- Phải sử dụng một thông tin duy nhất của người gửi để ngăn chặn tình trạng làm giả và chối bỏ
- Được tạo ra dễ dàng
- Khó có thể làm giả chữ ký số bằng cách tạo ra một thông báo mới cho một chữ ký số hiện có,
hoặc tạo ra một chữ ký số giả mạo cho một thông báo cho trước
- Trong thực tế, cần lưu giữ một bản sao của chữ ký số
1.4.3 Phân phối khóa công khai
Nhiều kỹ thuật phân phối khóa công khai được đưa ra như khai báo công khai, thư mục công
khai, trung tâm quản lý khóa công khai và chứng chỉ khóa công khai
Một giải pháp lựa chọn khác là sử dụng chứng chỉ khóa công khai Các thành viên trao đổi khóa thông qua chứng chỉ khóa công khai mà không cần liên lạc với cơ quan quản lý khóa công khai Khi cần sử dụng khóa công khai, các thành viên kiểm tra chứng chỉ do cơ quan quản lý phát
hành
1.4.4 Chứng chỉ khóa công khai
Chứng chỉ khóa công khai là sự gắn kết khóa công khai của một thực thể (con người, thiết bị phần cứng, dịch vụ) với một hoặc nhiều thuộc tính nhận dạng thực thể, được một cơ quan chứng
thực (Certification Authority - viết tắt là CA) phát hành
Việc sử dụng khóa công khai có trong chứng chỉ hoàn toàn rất đơn giản nhưng việc công bố và quản lý các chứng chỉ gặp rất nhiều vấn đề như phát hành, hủy bỏ, kiểm tra tình trạng trực tuyến, thư mục lưu trữ, chứng thực chéo Những vấn đề này được giải quyết thông qua hạ tầng khóa
công khai
1.4.5 Hạ tầng khóa công khai
Các thành phần cơ bản của PKI X509 gồm phía nhà cung cấp (cơ quan chứng thực, cơ quan đăng
ký, hệ thống quản lý và phân phối chứng chỉ) và phía người dùng (các ứng dụng PKI) Mô hình cấp phát chứng chỉ khóa công khai của PKI X509 được minh họa trong hình dưới dây
Trang 7Hình 1.3 Mô hình cấp phát chứng chỉ của PKI X509
Trang 8MỘT SỐ CƠ SỞ MẬT MÃ PHỤC VỤ AN TOÀN THÔNG TIN
1.5 Lược đồ mã RSA-OAEP
1.5.1 Hàm mã hoá RSAES-OAEP
RSAES-OAEP-ENCRYPT((n, e), M,L) Các lựa chọn: Hash là hàm băm (hLen ký hiệu độ dài theo byte của đầu ra hàm
băm) MGF là hàm sinh mặt nạ Đầu vào: (n, e) là khoá công khai RSA của người nhận (k ký hiệu độ dài
theo byte của RSA modulo n)
M là thông báo được mã hóa, chuỗi byte có độ dài mLen với
mLen k –2hLen-2
L là nhãn tùy chọn liên quan đến thông báo, giá trị mặc định của
L là chuỗi rỗng nếu không được cung cấp
Đầu ra: C bản mã, chuỗi byte có độ dài k
Các lỗi: “thông báo quá dài”, “nhãn quá dài”
Giả thiết: Khoá công khai RSA (n, e) là hợp lệ
Hình 1.4 Thuật toán mã hóa EME-OAEP
Trang 91.5.2 Hàm giải mã RSAES-OAEP
RSAES-OAEP-DECRYPT(K, C,L) Các lựa chọn: Hash là hàm băm (hLen ký hiệu độ dài theo byte của đầu ra hàm
băm
MGF là hàm sinh mặt nạ
Đầu vào: K là khoá riêng RSA của người nhận (k ký hiệu độ dài theo byte
của RSA-modulo n)
C là bản mã cần được giải mã, chuỗi byte có độ dài k, với k
2hLen + 2
L là nhãn tùy chọn liên quan đến thông báo, giá trị mặc định của
L là chuỗi rỗng nếu không được cung cấp
Đầu ra: M thông báo, một chuỗi byte có độ dài mLen với mLen k –
2hLen -2
1.5.3 Yêu cầu tham số an toàn cho hệ mật RSA
V2 Số mũ công khai e phải được chọn với các ràng buộc sau:
a) Chọn trước khi tạo số mũ bí mật
b) Là số nguyên dương lẻ sao cho 65537 e < 2nlen-2security_strength
V3 Hai số nguyên tố p, q phải được chọn với ràng buộc:
a) p-1 và q-1 phải nguyên tố cùng nhau với e
b) Mỗi một trong bốn số p-1, p+1, q-1 và q+1 phải có ước nguyên tố lớn hơn
2security_strength+20
c) 22nlen/2-1 p, q 2nlen/2-1
V4 Số mũ bí mật d phải được chọn sau khi tạo p và q với các ràng buộc:
a) d > 2nlen/2
b) d e-1 (mod lcm(p-1,q-1))
1.6 Thuật toán mã khối AES
1.6.1 Giới thiệu thuật toán AES
AES là thuật toán hướng byte Đơn vị thông tin được xử lý trong thuật toán là byte Chúng được
xem như một phần tử của trường Galois GF(28) với phép và phép nhân
Mỗi byte có thể được biểu diễn theo nhiều cách khác nhau Ở dạng nhị phân là {b7 b6 b5 b4 b3
b2 b1 b0}, ở dạng hệ cơ số 16 là { h1 h0}, ở dạng đa thức có các hệ số nhị phân là
7
0
i i i
b x
Ví
dụ, một byte được biểu diễn ở dạng nhị phân là {01100011}, ở dạng đa thức: hoặc
ở dạng hexa là {63}
Phép cộng trên GF(28) như sau:
Phép nhân trên GF(28) như sau:
6 5
1
x x x
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
{a a a a a a a a } {b b b b b b b b }={c c c c c c c c } c i a i b i 0 i 7
a x b x a x b x x x x x
Trang 101.6.2 Cấu trúc bên trong của AES
Số lượng các vòng phụ thuộc vào kích cỡ khóa được chọn, ví dụ kích cỡ khóa 128 bit-10 vòng,
192 bit-12 vòng, và 256 bit – 14 vòng Mỗi vòng gồm nhiều tầng khác nhau Các tầng cho quá
trình mã hóa và giải mã như sau:
* Mã hóa
Tầng thay thế byte (ByteSub) Tầng thay thế byte gồm 16 S-box có các tính chất sau:
Các S-box giống hệt nhau Là thành phần phi tuyến duy nhất trong AES, nghĩa là: ByteSub(Si)
+ ByteSub(Sj)≠ByteSub(Si+Sj), S-box của AES được xây dựng dựa trên ánh xạ nghịch đảo trên trường GF(28)
Trong cài đặt bằng phần mềm, các S-box thường được thực hiện như một bảng tra
Lược đồ tạo khóa (Keyschedule) Các khóa con được tính một cách đệ quy từ 128/192/256 bit khóa gốc đầu vào
Mỗi vòng mã hóa/giải mã, sử dụng một khóa con cộng với một khóa con ở phần bắt đầu của thuật toán AES Như vậy, số khóa con=số vòng +1 Tương ứng với mỗi kích cỡ khóa đầu vào có một lược đồ khóa Với khóa 128 bit có số khóa con là 11, khóa 192 bit có số khóa con là 13 và
khóa 256 bit có số khóa con là 15
* Giải mã
AES không dựa vào cấu trúc Feistel nên mọi biến đổi phải thực hiện ngược khi giải mã Với biến đổi MixColumn có InvMixColumns cho quá trình giải mã, với biến đổi ShiftRows, với ByteSub có InvByteSub Tầng cộng khóa cũng phải thực hiện với các khóa con có thứ tự ngược
lại
InvShiftRows: tất cả các hàng trong ma trận trạng thái được dịch vòng theo hướng ngược lại InvByteSub: Vì S-box là song ánh nên chúng ta có thể xây dựng một ánh xạ ngược sao cho Ai=S-1(Bj) Ánh xạ này được dùng khi giải mã Nó thường được lưu trữ ở dạng một bảng tra Lược đồ khóa cho giải mã: Mọi khóa con phải được sử dụng theo thứ tự ngược lại Trong thực tế, cả khi mã hóa và giải mã, chúng ta vẫn sử dụng cùng một lược đồ khóa Điều này dẫn
đến việc phải tính toán các khóa con trước khi mã hóa khối đầu tiên
1.6.3 Một số yêu cầu đảm bảo an toàn khi ứng dụng mã khối AES
Hệ mã khối AES có vai trò quan trọng và được sử dụng nhiều trong các hệ thống an toàn và bảo mật Tuy nhiên, ta cần tuân thủ một số yêu cầu về cài đặt hiệu quả và chọn lựa chế độ làm
việc cho AES nhằm đảm bảo an toàn khi ứng dụng
Yêu cầu cài đặt hiệu quả AES trong thực tế:
Cách cài đặt trực tiếp là cách khá tốt đối với các bộ vi xử lý 8-bit, nhưng không hiệu quả với các bộ vi xử lý 32-bit hoặc 64-bit Đối với các bộ vi xử lý (hoặc thiết bị có tài nguyên nhỏ), việc
cài đặt tối ưu cần chú ý vấn đề sau:
- S-box: có thể lưu bảng tra đơn (1 S-box 8 bit) hoặc tính toán qua các phép tính số học trên
GF(28)
,
i j
( ) {0 } {0 } {09} {0 }