Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking (LV thạc sĩ)
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT & TT THÁI NGUYÊN
NGÔ NGỌC CƯƠNG
CHỮ KÝ SỐ VÀ ỨNG DỤNG XÁC THỰC THÔNG TIN TRONG CÁC DỊCH VỤ INTERNET BANKING
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Thái Nguyên – 2017
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT & TT THÁI NGUYÊN
NGÔ NGỌC CƯƠNG
CHỮ KÝ SỐ VÀ ỨNG DỤNG XÁC THỰC THÔNG TIN TRONG CÁC DỊCH VỤ INTERNET BANKING
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐỖ TRUNG TUẤN
Thái Nguyên – 2017
Trang 3i
LỜI CAM ĐOAN
Tôi xin cam đoan: Đề tài “Chữ ký số và ứng dụng xác thực thông tin trong
các dịch vụ Internet Banking” do Thầy giáo PGS.TS Đỗ Trung Tuấn hướng dẫn là
công trình nghiên cứu của riêng tôi Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng
Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội dung trong đề cương và yêu cầu của thầy giáo hướng dẫn Nếu sai tôi hoàn toàn chịu trách nhiệm trước hội đồng khoa học và trước pháp luật
Thái Nguyên, ngày 15 tháng 4 năm 2017
Tác giả luận văn
Ngô Ngọc Cương
Trang 4ii
LỜI CÁM ƠN
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý thầy cô ở Khoa Công nghệ thông tin - Trường Đại học Công nghệ Thông tin và Truyền thông Thái Nguyên đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường
Em xin chân thành cảm ơn đến các thầy, đặc biệt thầy PGS TS Đỗ Trung Tuấn đã dành thời gian và tâm huyết hướng dẫn nghiên cứu và giúp em hoàn thành luận văn tốt nghiệp và thầy TS Phạm Thế Quế đã hướng dẫn tận tình em hoàn thành luận văn
Xin cảm ơn các cán bộ Ngân hàng Thương mại cổ phần Bưu điện Liên Việt Bắc Ninh đã tạo điều kiện và giúp đỡ em trong quá trình nghiên cứu, khảo sát để có thêm tài liệu viết luận văn
Bài luận văn được thực hiện trong khoảng thời gian gần 6 tháng Em đã có nhiều cố gắng để hoàn thiện luận văn bằng tất cả sự nhiệt tình và năng lực của mình, tuy nhiên việc hoàn thiện thời gian hạn hẹp không thể tránh khỏi những thiếu sót, rất mong nhận được những đóng góp quý báu của quý thầy cô và các bạn
Nhân đây, xin chân thành cám ơn gia đình, bạn bè và tập thể lớp Cao học K14B đã cổ vũ động viên em hoàn thành luận văn của mình
Ngô Ngọc Cương
Trang 5iii
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT vi
DANH MỤC CÁC HÌNH VẼ viii
MỞ ĐẦU 1
Đặt vấn đề, tổng quan đề tài 1
Cấu trúc của luận văn 1
Chương 1 An toàn thông tin và chữ kí số 3
1.1 Về mã hóa dữ liệu 3
1.1.1 Khái niệm mã hóa thông tin 3
1.1.2 Mã hóa khóa bí mật 4
1.1.3 Mã hóa khóa công khai 7
1.1.4 Hàm băm 9
1.2 Về chữ kí điện tử 14
1.2.1 Khái niệm chữ ký điện tử 14
1.2.2 Cơ sở hạ tầng khóa công khai (PKI) 15
1.2.3 Các thành phần của cơ sở hạ tầng khóa công khai 17
1.3 Tạo và kiểm tra chữ kí số 21
1.3.1 Tạo chữ kí số 21
1.3.2 Kiểm tra chữ kí số 22
1.4 Kết luận 22
Chương 2 Giải pháp xác thực thông tin trong các dịch vụ Internet Banking 23
2.1 Giới thiệu chung xác thực thông tin 23
2.1.1 Các kỹ thuật xác thực thông tin 23
Trang 6iv
2.2 Các giao thức xác thực 30
2.2.1 Mật khẩu 30
2.2.2 Các giao thức xác thực trong mô hình điểm - điểm 31
2.2.3 Xác thực trong các hệ thống phân tán 33
2.2.4 Giao thức xác thực Kerberos 4 37
2.2.5 Giao thức xác thực Kerberos 5 41
2.3 Kết luận 42
Chương 3 Thử nghiệm chữ kí số trong Internet Banking tại Ngân hàng Thương mại cổ phần Bưu điện Liên Việt 44
3.1 Về ngân hàng Liên Việt 44
3.1.1 Internet Banking 45
3.1.2 Rủi ro trong Internet Banking 46
3.2 Tổng quan về hạ tầng Công nghệ thông tin tại Ngân hàng Liên Việt 47
3.2.1 Mô hình hệ thống 47
3.2.2 Mô hình Hạ tầng khóa trong Internet Banking 48
3.2.3 Các chuẩn mã hóa khóa công khai (PKCS) 48
3.2.4 Một số hệ thống PKI 49
3.3 Ứng dụng Internet Banking 49
3.3.1 Đăng nhập 50
3.3.2 Tìm kiếm thông tin 51
3.4 Các thủ tục thực hiện các giao dịch Internet Banking ngân hàng Liên Việt 52
3.4.1 Người dùng sử dụng 52
3.5 Quản lí giao dịch bưu điện 56
3.5.1 Quy mô hệ thống Tiết kiệm Bưu Điện 56
3.5.2 Cài đặt thử nghiệm 57
3.5.3 Đánh giá kết quả thử nghiệm 58
3.6 Kết luận 59
Trang 7v
Kết luận 60
Kết quả đạt được 60
Hướng nghiên cứu tiếp theo 61
DANH SÁCH TÀI LIỆU THAM KHẢO 62
Tiếng Việt 62
Tiếng Anh 62
Trang 8vi
DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT
ATM Automatic Teller Machine Máy rút tiền tự động
CA Certificate authority Cơ quan cung cấp chứng thực số
CNTT Information technology Công nghệ thông tin
CRL Certificate revocation lists Danh sách thu hồi chứng chỉ
DES Data encryption standard Tiêu chuẩn mã hóa dữ liệu
GDP Gross Domestic Product Tổng sản phẩm nội địa
LRA Local registration authority Cơ quan quản lý đăng ký địa
phương
Code
Mã xác thực thông báo MD5 Message-Digest algorithm 5 Giải thuật tiêu hóa tin 5
Ngân hàng thương mại
Chuẩn cho việc truyền thông tin trên mạng dưới dạng các gói tin đã
mã hóa
PKI Public key infrastructure Cơ sở hạ tầng khóa công khai
RA Registration authority Cơ quan quản lý đăng ký
RSA Rivest, Shamir and Adleman Thuật toán mã hóa công khai của 3
tác giả: Rivest, Shamir và Adleman TLS Transport Layer Security Bảo mật tầng truyền dẫn
Trang 9vii
Trang 10viii
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Hệ thống mã hóa thông tin 3
Bảng 1.1 Các thuật toán mã hóa khóa bí mật 5
Bảng 1.2 Các thuật toán mã hóa khóa công khai 8
Hình 1.2 Sơ đồ biểu diễn thuật toán RSA 9
Bảng 1.3 Các thuật toán băm 10
Hình 1.3 Một thao tác trong 64 tác vụ của thuật toán MD5 11
Hình 1.4 Sinh ra tiêu hóa tin sử dụng SHA-1 12
Hình 1.5 Cơ sở hạ tầng khóa công khai (PKI) 18
Hình 1.6 Các bước tạo chữ ký điện tử 21
Hình 1.7 Các bước kiểm tra chữ ký điện tử 22
Hình 2.1 Xác thực thông tin dùng mật mã đối xứng 24
Hình 2.2 Sử dụng khóa bất đối xứng để trao đổi khóa bí mật 25
Hình 2.3 Xác thực thông tin dùng mật mã bất đối xứng 25
Hình 2.4 Xác thực thông tin dùng MAC 26
Hình 2.5 Xác thực thông tin dùng chữ ký số 27
Hình 2.6 Minh hoạ xác thực sử dụng chứng chỉ số và chữ ký điện tử 28
Hình 2.7 Mô hình chữ ký điện tử trong Internet Banking 29
Hình 2.8 Giao thức xác thực PAP 32
Hình 2.9 Giao thức xác thực CHAP 33
Hình 2.10 Thủ tục xác thực Kerberos 4 38
Hình 3.1 Ngân hàng Thương mại cổ phần Bưu điện Liên Việt 44
Hình 3.2 Mô hình hệ thống mạng tại Ngân hàng Liên Việt 47
Hình 3.3 Mô hình triển khai chữ ký điện tử trong Internet Banking 48
Hình 3.4 Người dùng tra cứu về Internet Banking 49
Hình 3.5 Trang Internet Banking 50
Hình 3.6 Đăng nhập với mật khẩu 50
Hình 3.7 Màn hình đăng nhập Internet Banking 51
Hình 3.8 Tìm kiếm thông tin 51
Hình 3.9 Truy vấn sao kê 52
Hình 3.10 Màn hình đăng nhập dịch vụ Internet banking 52
Trang 11ix
Hình 3.11 Form điền thông tin giao dịch 53
Hình 3.12 Form điền thông tin và mật khẩu 53
Hình 3.13 Thực hiện gửi thông tin giao dịch và mật khẩu 54
Hình 3.14 Tạo chữ ký điện tử 54
Hình 3.15 Máy chủ gửi chữ ký và chứng chỉ cho người dùng 54
Hình 3.16 Người dùng gửi thông tin, chữ ký và chứng chỉ cho máy chủ 55
Hình 3.17 Kiểm tra chữ ký điện tử 55
Hình 3.18 Sơ đồ điều hành quản lí 56
Hình 3.19 Giao diện tạo cặp khóa và ký văn bản 57
Hình 3.20 Thực hiện ký lên tài liệu cần gửi 57
Hình 3.21 Xác thực sự toàn vẹn của tài liệu nhận được 58
Bảng 3.1 Kết quả thử nghiệm 58
Trang 12Trong hoàn cảnh hệ thống mạng và mạng xã hội trở nên thông dụng, ứng dụng công nghệ thông tin nói chung và ứng dụng công nghệ thông tin trong hệ thống ngân hàng trở nên phổ biến Đi kèm với vấn đề đó là an toàn thông tin người dùng Ngân hàng Bưu điện Liên Việt cũng nhận thức được việc này Ngân hàng thương mại cổ phần Bưu điện Liên Việt hay Ngân hàng Bưu điện Liên Việt, tên giao dịch quốc tế: LienVietPostBank hoặc LPB, là một ngân hàng thương mại cổ phần của Việt Nam Nó được Ngân hàng Nhà nước Việt Nam cấp phép hoạt động vào tháng 3 năm 2008 và chính thức ra mắt ngày 1 tháng 5 năm 2008
Trong khuôn khổ luận văn tốt nghiệp cao học, tôi thấy vấn đề an toàn thông tin trong đơn vị mình công tác là quan trọng và có ý nghĩa Việc thử nghiệm chữ kí
số và quản lí hoạt động của các phòng giao dịch bưu điện, chẳng hạn (i) chấm các chứng từ; (ii) đóng/ mở ngày giao dịch trên phần mềm giao dịch bưu điện; (iii) đảm bảo an toàn hệ thống… Chữ kí số là công cụ sử dụng tại ngân hàng bưu điện Liên Việt Công việc của tôi tại cơ sở liên quan đến hạ tầng xác thực thông tin… Tôi đã chọn đề tài luận văn là “chữ kí số và ứng dụng xác thực thông tin trong các dịch vụ Internet Banking”
Cấu trúc của luận văn
Luận văn có cấu trúc theo các chương Mục tiêu của luận văn là ứng dụng được trong Ngân hàng Thương mại cổ phần Bưu điện Liên Việt Nội dung các chương như sau:
Chương 1 trình bày về kiến thức về an toàn thông tin và chữ chữ kí số Đây là kiến thức tìm hiểu và tham khảo trong các tài liệu liên quan;
Trang 132
Chương 2 đề cập đến các giải pháp xác thực thông tin trong Internet Banking và khả năng ứng dụng tại Ngân hàng Thương mại cổ phần Bưu điện Liên Việt;
Chương 3 trình bày các giao dịch thường xuyên của Ngân hàng Thương mại cổ phần Bưu điện Liên Việt, trong đó có vai trò của tôi, trong việc thực hiện an toàn thông tin đối với các phòng giao dịch;
Luận văn có phần mở đầu và phần kết luận Cuối luận văn là danh sách các tài liệu tham khảo và trích dẫn
Trang 143
Chương 1 An toàn thông tin và chữ kí số
1.1 Về mã hóa dữ liệu
1.1.1 Khái niệm mã hóa thông tin
Theo [9, 4], mã hóa sử dụng thuật toán và khóa để biến đổi dữ liệu từ bản rõ sang bản mã Chỉ có những ai có thông tin giải mã thì mới giải mã được và đọc được dữ liệu Thuật toán mã hóa đề cập tới nghành khoa học nghiên cứu về mã hoá
và giải mã thông tin Cụ thể hơn là nghiên cứu các cách thức chuyển đổi thông tin
từ dạng rõ (clear text) sang dạng mã (cipher text) và ngược lại
Mã hóa là một phương pháp hỗ trợ rất tốt cho trong việc chống lại những truy cập bất hợp pháp tới dữ liệu được truyền đi trên mạng, áp dụng mã hoá sẽ khiến cho nội dung thông tin được truyền đi dưới dạng mờ và không thể đọc được đối với bất
kỳ ai cố tình muốn lấy thông tin đó Hệ thống mã hóa là một bộ năm (P, C, K, E, D) thỏa mãn các điều kiện sau:
Tập nguồn P là tập hữu hạn tất cả các mẫu tin nguồn cần mã hóa có thể
có
Tập đích C là tập hữu hạn tất cả các mẫu tin có sau khi mã hóa
Tập khóa K là tập hữu hạn các khóa có thể được sử dụng
E và D lần lượt là tập luật mã hóa và giải mã.Với mỗi khóa k K, tồn tại luật mã hóa ek E và luật giải mã dk D tương ứng Luật mã hóa
ek: P → C và luật giải mã ek: C → P là hai ánh xạ thỏa mãn dk(ek(x)) =
x, x P
Hình 1.1 Hệ thống mã hóa thông tin
Hệ thống mã hoá phải đảm bảo các tính chất sau [1]:
Trang 154
an toàn và không thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu gốc ban đầu Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu
được chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu Kẻ giả mạo không thể có khả năng để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệu Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được
rằng dữ liệu không bị thay đổi trong quá trình truyền đi Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban đầu băng dữ liệu giả mạo
không thể chối bỏ sau khi đã gửi hoặc nhận thông tin
Có rất nhiều các thuật toán mã hoá khác nhau Từ những thuật toán được công khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung cho việc mã hoá dữ liệu; đến những thuật toán mã hoá không được công bố
Có thể phân loại theo các phương pháp:
1 Mã hoá cổ điển (Classical cryptography),
2 Mã hoá đối xứng (Symetric cryptography),
3 Mã hoá bất đối xứng(Asymetric cryptography),
4 Hàm băm (Hash function)
Hoặc phân loại theo số lượng khoá:
1 Mã hoá khoá bí mật (Private-key Cryptography),
2 Mã hoá khoá công khai (Public-key Cryptography)
Trang 16dữ liệu của cá nhân hay tổ chức đơn lẻ
Bảng 1.1 Các thuật toán mã hóa khóa bí mật
Data Encryption
Standard (DES)
DES là một thuật toán mã hóa đối xứng dạng mã khối, mã hóa
dữ liệu trong từng khối 64-bit sử dụng một khóa 56-bit với 8 bits chẵn lẽ Chính độ dài của khóa ngắn cho nên DES là một thuật toán mã hóa hơi yếu
(3DES)
3DES là một thuật toán mã hóa đối xứng tiến hành mã hóa dữ liệu thông qua việc xử lý mỗi block 3 lần và mỗi lần dùng một khóa khác nhau Trước hết nó sẽ mã hóa bản rõ thành bản mã hóa dùng một khóa, sau đó lại tiếp tục mã hóa bản mã hóa với khóa, và tiếp tục mã hóa bản mã hóa thứ 2 này với một khóa khác nữa
(RC) 4, 5, and 6
Thuật toán RC bao gồm một series được phát triển bởi Ronald Rivest Tất cả có chiều dài khóa khác nhau RC4 là một thuật toán mã hóa dòng RC5 và RC6 là các thuật toán mã hóa khối với các kích cỡ khác nhau
Skipjack Skipjack là một thuật toán mã hóa khối được thiết kế bởi Cơ
quan bảo mật quốc gia Hoa kỳ - US National Security Agency (NSA) được sử dụng trong chip Clipper Fortezza PC card Blowfish Blowfish là một thuật toán mã hóa miễn phí theo khối 64-bit
sử dụng khóa có độ dài khác nhau Được phát triển bởi Bruce Schneier
CAST-128 CAST-128, được đặt theo tên người phát triển là Carlisle
Adams và Stafford Tavares, là một thuật toán mã hóa đối xứng có chiều dài khóa 128-bit
Trang 176
Trong các thuật toán trên, DES là thuật toán mã hoá khóa bí mật điển hình được sử dụng rộng rãi nhất trên thế giới Ở thời điểm DES ra đời người ta đã tính toán rằng việc phá được khoá mã DES là rất khó khăn, nó đòi hỏi chi phí hàng chục triệu USD và tiêu tốn khoảng thời gian rất nhiều năm Cùng với sự phát triển của các loại máy tính và mạng máy tính có tốc độ tính toán rất cao, khoá mã DES có thể
bị phá trong khoảng thời gian ngày càng ngắn với chi phí ngày càng thấp Dù vậy việc này vẫn vượt xa khả năng của các hacker thông thường và mã hoá DES vẫn tiếp tục tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin nhiều
năm nữa đặc biệt với sự ra đời của thế hệ DES mới, tức Triple DES"
Quá trình mã hóa của thuật toán DES: Bước đầu tiên là chuyển 64 bit chìa
khoá qua một bảng hoán vị gọi là Permuted Choice hay PC-1 để thu được chìa khoá mới có 56 bit Sau khi vệc chuẩn bị chìa khoá và dữ liệu mã hoá hoàn thành, thực hiện mã hoá bằng thuật toán DES Đầu tiên, khối dữ liệu đầu vào 64 bit được chia thành hai nửa, L và R L gồm 32 bit bên trái và R gồm 32 bit bên phải Quá trình sau đây được lặp 16 lần tạo thành 16 vòng của DES gồm 16 cặp L[0]-L[15] và R[0]-R[15]:
R[r-1]- ở đây r là số vòng, bắt đầu từ 1- được lấy và cho qua bảng E bit Selection Table), bảng này giống như một bảng hoán vị, có điều là một số bit được dùng hơn một lần do vậy nó sẽ mở rộng R[r-1] từ 32 bit lên 48 bit để chuẩn bị cho bước tiếp theo
(E- 48 bit R[r-1] được XOR với K[r] và được lưu trong bộ nhớ đệm, vì vậy R[r-1] không thay đổi
Kết quả của bước trước lại được chia thành 8 đoạn, mỗi đoạn 6 bit, từ B[1] đến B[8] Những đoạn này tạo thành chỉ số cho các bảng S (Substitution) được sử dụng ở bước tiếp theo Các bảng S, là một bộ 8 bảng (S[1]-S[8]) 4 hàng, 16 cột Các số trong bảng có độ dài 4 bit vì vậy có giá trị từ 0 đến 15
Bắt đầu từ B[1], bit đầu và cuối của khối 6 bit được lấy ra và sử dụng làm chỉ số hàng của bảng S[1], nó có giá trị từ 0 đến 3, và 4 bit giữa được dùng làm chỉ số cột, từ 0 đến 15 Giá trị được chỉ đến trong bảng
S được lấy ra và lưu lại Việc này được lặp lại đối với B[2] và S[2] cho
Trang 18và các chìa khoá phụ K[1]-K[16] đã được sử dụng
Khi đã có L[16] và R[16], chúng được ghép lại với nhau theo cách chúng
bị tách ra (L[16] ở bên trái và R[16] ở bên phải) thành 64 bit 64 bit này được hoán vị để tạo ra kết quả cuối cùng là dữ liệu 64 bit đã được mã hoá
Quá trình giải mã của thuật toán DES: Việc giải mã dùng cùng một thuật toán
như việc mã hoá Để giải mã dữ liệu đã được mã hoá, quá trình như giống như mã hoá được lăp lại nhưng các chìa khoá phụ được dùng theo thứ tự ngược lại từ K[16]
đến K[1], nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên R[r-1]
sẽ được XOR với K[17-r] chứ không phải với K[r]
1.1.3 Mã hóa khóa công khai
Theo [4, 7], phương pháp mã hóa khóa công khai (public key cryptography)
đã giải quyết được vấn đề của phương pháp mã hóa khóa bí mật là sử dụng hai khóa khóa công khai (public key) và khóa bí mật (private key) Public key được gửi công khai trên mạng, trong khi đó private key được giữ kín Public key và private key có vai trò trái ngược nhau, một khóa dùng để mã hóa và khóa kia sẽ dùng để giải mã Phương pháp này còn được gọi là mã hóa bất đối xứng (asymmetric cryptography)
vì nó sử dụng hai khóa khác nhau để mã hóa và giải mã dữ liệu
Giả sử B muốn gửi cho A một thông điệp bí mật sử dụng phương pháp mã hóa khóa công khai Ban đầu, A có cả private key và public key A sẽ giữ private key ở nơi an toàn và gửi public key cho B B mã hóa và gửi cho A thông điệp đã mã hóa bằng public key nhận được của A Sau đó A sẽ giải mã thông điệp bằng private key của mình Ngược lại nếu A muốn gửi thông điệp cho B thì A phải mã hóa thông điệp bằng public key của B
Trang 198
Các thuật toán loại này cho phép trao đổi khóa một cách dễ dàng và tiện lợi Tuy nhiên, tốc độ mã hóa chậm nên thường chỉ được sử dụng mã hóa dữ liệu nhỏ
Bảng 1.2 Các thuật toán mã hóa khóa công khai
Rivest Shamir
Adelman (RSA)
RSA, được đặt tên theo người thiết kế là Ronald Rivest, Adi Shamir, và Len Adelman, là thuật toán thành công đầu tiên sử dụng cho mã hóa khóa công (public-key encryption) Nó có
độ dài khóa khác nhau và các kích cỡ khối khác nhau RSA vẫn được xem là rất an toàn nếu được triển khai dùng với các khóa có chiều dài lớn
Diffie-Hellman Diffıe-Hellman là một giao thức mã hóa cung cấp khóa
chuyển đổi an toàn Được mô tả vào năm 1976, được hình thành trên nền tảng của các các kỹ thuật mã hóa public-key phổ biến bao gồm cả RSA
Elgamal Elgamal là một thuật toán mã hóa public-key được phát triển
bởi Taher Elgamal Nó cũng dựa trên nền tảng của Diffie Hellman
-Paillier
Cryptosystem
Paillier cryptosystem là một thuật toán mã hóa bất đối xứng được phát triển bởi Pascal Paillier
Thuật toán RSA (được đặt tên từ ba nhà phát minh là Ron Rivest, Adi Shamir
và Leonard Adleman) là thuật toán mã hóa khóa công khai được sử dụng nhiều
nhất Thuật toán sử dụng biểu thức với hàm mũ để mã hóa bản gốc thành các khối, mỗi khối có một giá trị nhị phân nhỏ hơn n
Giả sử khối bản gốc của người gửi là M và khối bản mã của người nhận là C thì:
C = Me mod n
M = Cd mod n
Cả người gửi và người nhận phải biết giá trị n Người gửi biết giá trị e và chỉ người nhận biết giá trị d Đây là một thuật toán mã hóa khóa công khai với khóa công khai KU = {e,n} và khóa riêng KR = {d,n} Để thuật toán này được thỏa mãn cho mã hóa khoá công khai, các yêu cầu sau đây phải được đáp ứng:
Có thể tìm thấy giá trị của e, d, n sao cho Med = M mod n với tất cả
M < n
Trang 209
Tương đối dễ tính toán Me và C với tất cả các giá trị của M < n
Không thể xác định d dựa trên e và n
Hình 1.2 Sơ đồ biểu diễn thuật toán RSA
1.1.4 Hàm băm
Theo [7], hàm băm là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu Mục đích của một hàm băm là tạo ra một "dấu vân tay" của một tập tin, thông điệp, hoặc khối dữ liệu khác Nếu H là hàm băm thì H có các thuộc tính sau đây:
H có thể được áp dụng cho một khối dữ liệu có kích thước bất kỳ
H tạo ra một đầu ra có độ dài cố định
H (x) là tương đối dễ dàng để tính toán cho bất kỳ x được đưa ra, cho cả phần cứng và phần mềm triển khai thực tế
Đối với bất kỳ mã h, gần như không thể tìm x sao cho H (x) = h
Đối với bất kỳ khối cho x, gần như không thể tìm y ≠ x với H (y) = H (x)
Gần như không thể tìm thấy bất kỳ cặp (x, y) sao cho H (x) = H (y)
Ba thuộc tính đầu tiên được yêu cầu đối với các ứng dụng thực tế của một hàm băm để xác thực thông điệp Thuộc tính thứ tư là thuộc tính "một chiều": Nó dễ dàng để tạo ra một mã khi đưa ra thông điệp, nhưng hầu như không thể tạo ra một thông điệp khi đưa ra một mã Thuộc tính này là quan trọng nếu các kỹ thuật xác thực bao gồm việc sử dụng một giá trị bí mật
Trang 2110
Bảo đảm thuộc tính thứ năm mà không thể tìm thấy một thông điệp thay thế với giá trị băm như thông điệp đã đưa ra Điều này ngăn cản sự giả mạo khi một mã băm mật mã được sử dụng Nếu thuộc tính này không đúng, kẻ tấn công sẽ có khả năng làm theo trình tự sau đây: Thứ nhất, thực hiện hoặc ngăn chặn tin nhắn cộng với mã mã hóa băm của nó; thứ hai, tạo ra một mã băm không được mã hóa từ thông điệp; thứ ba, tạo ra một thông điệp sửa đổi với cùng mã băm
Một hàm băm thỏa mãn năm thuộc tính đầu tiên trong danh sách trước đó được gọi là một hàm băm yếu Nếu các thuộc tính thứ sáu là cũng được thỏa mãn thì được gọi là một hàm băm mạnh
Hàm băm có thể được ứng dụng để tạo chữ kí điện tử, chống và phát hiện xâm nhập hay dùng để bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng
Bảng 1.3 Các thuật toán băm
Message Digest 5
(MD5)
Thuật toán MD5 tạo thành một dạng thông điệp được mã hóa với 128-bit, được tạo ra bởi Ronald Rivest và hiện là công nghệ mã hóa mang tính phổ biến rộng rãi - public
1.1.4.1 Giải thuật MD5
MD5 (Message-Digest algorithm 5) được thiết kế bởi Ronald Rivest vào năm
1991 để thay thế cho hàm băm trước đó, MD4 (cũng do ông thiết kế, trước đó nữa
là MD2) MD5 là một hàm băm để mã hóa với giá trị băm là 128bit được sữ dụng rộng rãi trong các chương trình an ninh mạng, được dùng để kiểm tra tính nguyên vẹn của tập tin và ứng dụng trong chữ ký điện tử
Quá trình xử lý của thuật toán bao gồm các bước sau:
Bước 1: Gắn thêm các bit
Thông điệp được mở rộng, thêm bit vào phía sau sao cho độ dài của nó (tính theo bit) đồng dư với 448 theo môđun 512 Nghĩa là thông điệp được mở rộng sao cho nó còn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho 512 Việc này luôn
Trang 22đó các bit “0“ được thêm vào để có một độ dài đồng dư với 448 môđun 512
Hình 1.3 Một thao tác trong 64 tác vụ của thuật toán MD5
Bước 2: Gắn thêm độ dài
Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và được thêm vào cuối chuỗi nhị phân kết quả của bước 1 Nếu độ dài của khối dữ liệu ban đầu > 264, chỉ 64 bits thấp được sử dụng, nghĩa là giá trị được thêm vào bằng K mod 264 Kết quả có được từ 2 bước đầu là một khối dữ liệu có độ dài là bội số của
512 Khối dữ liệu được biểu diễn: Bằng một dãy L khối 512-bit Y0, Y1,…, YL-1; Bằng một dãy N từ (word) 32-bit M0, M1, MN-1 Vậy N = L x 16 (32 x 16 = 512)
Bước 3: Khởi tạo bộ đệm MD
Một bộ đệm 128-bit được dùng lưu trữ các giá trị băm trung gian và kết quả
Bộ đệm được biểu diễn bằng 4 thanh ghi 32-bit với các giá trị khởi tạo ở dạng endian (byte có trọng số nhỏ nhất trong từ nằm ở địa chỉ thấp nhất) như sau:
little- A = 67 45 23 01
B = EF CD AB 89
C = 98 BA DC FE
Trang 2312
D = 10 32 54 76
Bước 4: Xử lý các khối dữ liệu 512-bit
Trọng tâm của giải thuật là hàm nén (compression function) gồm 4 “vòng” xử
lý Các vòng này có cấu trúc giống nhau nhưng sử dụng các hàm luận lý khác nhau gồm F, G, H và I:
Bước 5: Xuất kết quả
Sau khi xử lý hết L khối 512-bit, đầu ra của lần xử lý thứ L là giá trị băm 128 bits
1.1.4.2 Giải thuật SHA-1
SHA (Secure Hash Algorithm) là năm thuật giải được chấp nhận bởi FPS (Federal Information Processing Standards) dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao
Có năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit)
Hình 1.4 Sinh ra tiêu hóa tin sử dụng SHA-1
Trang 2413
Thuật giải SHA là thuật giải băm mật được phát triển bởi cục an ninh quốc gia
Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST) Bốn thuật giải sau thường được gọi chung là SHA-2 SHA-1 được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau, bao gồm TLS và SSL, PGP, SSH, S/MIME, và IPSec SHA-1 được coi là thuật giải thay thế MD5, một thuật giải băm 128 bit phổ biến khác
Quá trình xử lý của thuật toán bao gồm các bước sau:
Bước 1: Gắn thêm các bit
Thông điệp được mở rộng, thêm bit vào phía sau sao cho độ dài của nó (tính theo bit) đồng dư với 448 theo môđun 512 Nghĩa là thông điệp được mở rộng sao cho nó còn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho 512 Việc này luôn được thực hiện ngay cả khi bản thân độ dài thông điệp đã đồng dư với 448 theo môđun 512
Trong tất cả các trường hợp, có ít nhất 1 và nhiều nhất 512 bit được thêm vào Việc thêm bit này thực hiện như sau: một bit “1“ được thêm vào sau thông điệp, sau
đó các bit “0“ được thêm vào để có một độ dài đồng dư với 448 môđun 512
Bước 2: Gắn thêm độ dài
Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và được thêm vào cuối chuỗi nhị phân kết quả của bước 1 Độ dài được biểu diễn dưới dạng nhị phân 64-bit không dấu Kết quả có được từ 2 bước đầu là một khối dữ liệu
có độ dài là bội số của 512 Khối dữ liệu được biểu diễn: Bằng một dãy L khối bit Y 0 , Y 1 ,…, Y L-1 ; Bằng một dãy N từ (word) 32-bit M 0 , M 1 , M N-1 Vậy N = L x 16
512-(32 x 16 = 512)
Bước 3: Khởi tạo bộ đệm MD
Một bộ đệm 160-bit được dùng lưu trữ các giá trị băm trung gian và kết quả
Bộ đệm được biểu diễn bằng 5 thanh ghi 32-bit với các giá trị khởi tạo ở dạng endian (byte có trọng số lớn nhất trong từ nằm ở địa chỉ thấp nhất) như sau:
big- A = 01 23 45 67
B = 89 AB CD EF
C = FE DC BA 98
Trang 2514
D = 76 54 32 10
E = C3 D2 E1 F0
Bước 4: Xử lý các khối dữ liệu 512-bit
Trọng tâm của giải thuật bao gồm 4 vòng lặp thực hiện tất cả 80 bước 4 vòng lặp có cấu trúc như nhau, chỉ khác nhau ở các hàm logic f1, f2, f3, f4 Mỗi vòng có đầu vào gồm khối 512-bit hiện thời và một bộ đệm 160-bit ABCDE Các thao tác sẽ cập nhật giá trị bộ đệm Mỗi bước sử dụng một hằng số Kt (0 ≤ t ≤ 79)
Kt = 5A827999 (0 ≤ t ≤ 19)
Kt = 6ED9EBA1 (20 ≤ t ≤ 39)
Kt = 8F1BBCDC (40 ≤ t ≤ 59)
Kt = CA62C1D6 (60 ≤ t ≤ 79) Đầu ra của 4 vòng (bước 80) được cộng với đầu ra của bước CVq để tạo ra
CVq+1
Bước 5: Xuất kết quả
Sau khi thao tác trên toàn bộ L khối Kết quả của khối thứ L là bảng băm bit
160-1.2 Về chữ kí điện tử
1.2.1 Khái niệm chữ ký điện tử
Chữ ký điện tử được tạo lập dưới dạng từ, chữ, số, ký hiệu, âm thanh hoặc các hình thức khác bằng phương tiện điện tử, gắn liền hoặc kết hợp một cách lô gíc với thông điệp dữ liệu, có khả năng xác nhận người ký thông điệp dữ liệu và xác nhận
sự chấp thuận của người đó đối với nội dung thông điệp dữ liệu được ký (Theo luật giao dịch điện tử của Quốc hội nước Cộng hòa xã hội chủ nghĩa Việt Nam số 51/2005/QH11, theo [6])
Khái niệm chữ ký số (digital signature) và chữ ký điện tử (electronic
signature) thường được dùng thay thế cho nhau mặc dù chúng không hoàn toàn có
cùng nghĩa Chữ ký số chỉ là một tập con của chữ ký điện tử (chữ ký điện tử bao hàm chữ ký số) Chữ ký số thường được sử dụng để thực thi chữ ký điện tử, nhưng không phải tất cả các chữ ký điện tử sử dụng chữ ký số
Chữ ký số sử dụng một kiểu mật mã phi đối xứng (asymmetric cryptography) Với các thông điệp gửi qua một kênh không an toàn, một chữ ký số thực thi đúng
Trang 2615
đem đến cho người nhận tin tưởng rằng thông điệp đã được gửi bởi đúng người gửi Chữ ký số tương đương với chữ ký viết tay truyền thống (traditional handwritten signatures) ở nhiều khía cạnh; hơn nữa, một chữ ký số thực thi đúng sẽ khó giả mạo hơn so với chữ ký viết tay Lược đồ chữ ký số chủ yếu dựa vào lý thuyết mật mã, và phải được thực thi đúng mới có hiệu quả
Chữ ký số cũng có thể cung cấp tính chống chối bỏ (non-repudiation), có nghĩa là người ký không thể khẳng định là không ký vào thông báo đó, trong khi yêu cầu người ký giữ kín khóa bí mật; hơn nữa, một số lược đồ chống chối bỏ còn đưa nhãn thời gian (time stamp) vào trong chữ ký số, do đó ngay cả khi khóa bí mật
bị lộ thì dù sao chữ ký vẫn hợp lệ Bất kỳ thông điệp ký số nào cũng có thể được biểu diễn như một chuỗi bit: ví dụ như thư điện tử, hợp đồng, hoặc một thông điệp được gửi qua các giao thức mật mã
Một lược đồ chữ ký số điển hình bao gồm có 3 thuật toán:
1 Thuật toán sinh khóa để lựa chọn ra một khóa bí mật ngẫu nhiên đều từ tập hợp các khóa bí mật có thể Thuật toán này cũng tạo ra khóa bí mật
và một khóa công khai tương ứng
2 Thuật toán ký, đầu vào là thông báo và khóa bí mật, để tạo ra một chữ ký
1.2.2 Cơ sở hạ tầng khóa công khai (PKI)
PKI là một kiến trúc an ninh được giới thiệu để gia tăng mức độ bảo mật trong việc trao đổi thông tin thông qua mạng Internet Phần này trình bày tổng quan về PKI, các khái niệm và các thành phần sử dụng trong PKI
Cuộc sống trong thời đại Internet đã tăng tầm quan trọng và yêu cầu của an ninh thông tin, đặc biệt là trong các tổ chức thông tin lớn mạnh Để đáp ứng các yêu cầu này, các tổ chức đã quyết định phát triển và triển khai một cơ sở hạ tầng khoá
Trang 27Một cơ sở hạ tầng khóa công khai cho phép một tổ chức tận dụng tốc độ của mạng Internet trong khi vẫn bảo vệ các thông tin quan trọng khỏi việc nghe trộm, giả mạo, và truy cập trái phép
Một PKI cung cấp các khả năng sau:
1 Giao tiếp an toàn với các cá nhân trong các tổ chức trên toàn thế giới: PKI cho phép người dùng truy cập từ xa với các kênh an toàn tới mạng nội bộ của họ
2 Trao đổi dữ liệu bí mật với các đối tác kinh doanh của tổ chức: Một PKI
hỗ trợ tạo ra mạng mở rộng an toàn cung cấp một số lựa chọn để các đối tác dễ dàng truy cập các thông tin cần chia sẻ giữa hai bên mà lưu trữ trong mạng nội bộ của tổ chức mình
3 Tận dụng lợi thế của thương mại điện tử an toàn PKI cung cấp một thế giới an toàn để mua hàng và dịch vụ trên Web
Ngoài ra, một PKI có thể cung cấp các lợi ích sau:
chứng chỉ số cho phép người dùng cá nhân, tổ chức và người điều hành trang web nhận diện các bên trong giao dịch Internet
diễn ra trong quá trình lưu trữ và truyền tải thông qua mạng Chứng chỉ
số đảm bảo rằng thông điệp hoặc tài liệu của chủ sở hữu không bị thay
đổi
không thể chối bỏ việc tham gia Chứng chỉ số xác nhận danh tính của
Trang 2817
người dùng, khiến cho người dùng không thể chối bỏ một giao dịch số
đã được ký
1.2.3 Các thành phần của cơ sở hạ tầng khóa công khai
Một PKI (public key infrastructure) cho phép người sử dụng của một mạng công cộng không bảo mật, chẳng hạn như Internet, có thể trao đổi dữ liệu và tiền một cách an toàn Nền tảng khoá công khai cung cấp một chứng chỉ số, dùng để xác minh một cá nhân hoặc tổ chức, và các dịch vụ danh mục có thể lưu trữ và khi cần
có thể thu hồi các chứng chỉ số Mặc dù các thành phần cơ bản của PKI đã phổ biến, nhưng một số nhà cung cấp đang muốn đưa ra những chuẩn PKI riêng khác biệt Một tiêu chuẩn chung về PKI trên Internet cũng đang trong quá trình xây dựng
Cơ sở hạ tầng khóa công khai đề cập tới việc tạo, cung cấp, phân phối, kiểm soát, quản lý khóa công khai và cung cấp những hỗ trợ cần thiết để hỗ trợ cho việc cung cấp ứng dụng bảo mật, xác thực giao dịch mạng cũng như tính toàn vẹn và chống chối bỏ nguồn gốc
Một cơ sở hạ tầng khoá công khai bao gồm:
1 Cơ quan cung cấp chứng thực số (CA)
2 Cơ quan quản lý đăng ký (RA)
3 Cơ quan quản lý đăng ký địa phương (LRA): Dùng đối với PKI có mạng lưới rộng lớn về mặt địa lý
4 Kho lưu trữ chứng chỉ (CD)
5 Danh sách thu hồi chứng chỉ (CRL): Dùng đối với PKI cần một kho lưu trữ các chứng chỉ bị thu hồi riêng với chứng chỉ còn hiệu lực
Trang 2918
Hình 1.5 Cơ sở hạ tầng khóa công khai (PKI)
1.2.3.1 Tổ chức chứng nhận khóa công khai (CA)
CA là một thành phần thiết yếu của PKI CA phát hành các chứng chỉ sau khi danh tính của người sẽ sở hữu chứng chỉ đã được xác nhận Cấp một chứng chỉ có nghĩa là CA ký vào hàm băm để bảo vệ sự toàn vẹn và xác thực danh tính của người
sở hữu Kết quả là các chứng chỉ đã phát hành có thể được sẵn sàng công khai và sử dụng bởi các cá nhân đang làm việc hoặc kinh doanh với chủ sở hữu chứng chỉ
CA có thể là một đơn vị trong tổ chức hoặc của một thực thể độc lập CA phát hành chứng chỉ cho các RA, LRA, và người dùng Đồng thời, CA cũng chịu trách nhiệm thu hồi chứng chỉ và tạo, duy trì, phát hành danh sách thu hồi chứng chỉ, duy trì lưu trữ các chứng chỉ đã hết hạn và bị thu hồi, và có thể giữ lại một bản sao khóa
bí mật mã hóa dữ liệu của người dùng để phục hồi dữ liệu trong trường hợp người dùng mất khóa bí mật
Một CA cũng có thể nói rõ chất lượng của các kiểm tra đã tiến hành trước khi chứng chỉ được cung cấp Các loại khác nhau của giấy chứng nhận có thể được trả giá tương ứng với mức độ kiểm tra đã thực hiện Có 4 loại chứng chỉ phổ biến:
1 Loại 1: Chứng chỉ dễ dàng có được bằng cách cung cấp một địa chỉ email
Trang 3019
2 Loại 2: Chứng chỉ yêu cầu bổ sung thêm một số thông tin cá nhân
3 Loại 3: Chứng chỉ được cung cấp sau khi đã kiểm tra kỹ lưỡng thông tin của người yêu cầu
4 Loại 4: Chứng chỉ được sử dụng bởi chính phủ hoặc các tổ chức cần tới mức độ cao đối với việc xác nhận định danh của người dùng Thông tin thu hồi chứng chỉ được cung cấp bởi CA về chứng chỉ bị thu hồi cho người dùng biết các chứng chỉ nào không còn hiệu lực và có thể làm theo hai cách:
1 Chứng chỉ có thể được xóa từ kho lưu trữ hoặc cơ sở dữ liệu mà chúng được tìm thấy Kết quả là bất kỳ nỗ lực nào tìm kiếm sự tồn tại của chứng chỉ đó sẽ thất bại và mọi người hiểu rằng chúng đã bị thu hồi
2 Một hệ thống chứa danh sách thu hồi (CRLs) được phát triển ngoài kho lưu trữ chứng chỉ Đây là danh sách các chứng chỉ không còn hiệu lực
1.2.3.2 Cơ quan quản lý đăng ký (RA)
Một CA thường sử dụng một hoặc nhiều cơ sở RA để kiểm tra người nộp đơn đăng ký Một RA cho phép cung cấp thông tin xác nhận danh tính đến CA Tùy thuộc vào từng cơ sở hạ tầng cụ thể, có thể là RA hoặc cơ quan đăng ký địa phương (LRA) gửi khóa công khai của người nộp đơn đến CA để chứng nhận và đặt trong một chứng chỉ Các RA cũng chịu trách nhiệm quản lý bất kỳ LRA nào được coi là cần thiết và phục vụ như là điểm thông báo yêu cầu thu hồi
1.2.3.3 Cơ quan quản lý đăng ký địa phương (LRA)
Giống như RA, LRA có trách nhiệm đối với các đơn đăng ký Các LRA cho phép tạo ra xác nhận và cung cấp các thông tin cần thiết cho CA
Người dùng được yêu cầu chứng minh danh tính của mình bằng chứng minh thư Sau khi danh tính được xác minh LRA thực hiện đăng ký người sử dụng Sau
đó người dùng được dạy làm thế nào để sinh cặp khóa của họ và nhận chứng nhận
từ CA Các LRA chỉ được thiết lập trong các PKI lớn mà người dùng ở trong khu vực địa lý rộng, do đó sẽ có lợi ích từ khả năng tiếp cận của một văn phòng địa phương để xử lý đăng ký người sử dụng và thay mặt CA quản lý người sử dụng
Trang 3120
1.2.3.4 Kho lưu trữ chứng chỉ (CD)
Kho lưu trữ chứng chỉ là một trong những thành phần quan trọng của bất kỳ PKI nào Các CA cung cấp chứng chỉ và danh sách thu hồi chứng chỉ đến kho lưu trữ chứng chỉ Bằng cách này, người dùng có thể nhận chứng chỉ của những người dùng khác mà được cấp chứng chỉ bởi CA sở hữu kho lưu trữ Kho lưu trữ này lưu trữ tất cả các chứng chỉ hiện hành và danh sách chứng chỉ thu hồi hiện hành
Kho lưu trữ chứng chỉ là cơ sở dữ liệu lưu trữ các chứng chỉ Chúng có thể được công khai hoặc hạn chế truy cập cho một tổ chức cụ thể Ví dụ, một tổ chức có thể có kho lưu trữ riêng nơi giữ các chứng chỉ dành riêng cho người dùng của tổ chức này
1.2.3.5 Danh sách thu hồi chứng chỉ (CRL)
Mỗi chứng chỉ có ghi ngày hết hạn Thêm vào đó, một giấy chứng nhận có thể trở thành không hợp lệ trước ngày hết hạn Do đó, CA cần một cơ chế để cung cấp một bản cập nhật trạng thái cho các chứng chỉ đã cung cấp và phát hành
Một phương pháp để giải quyết vấn đề này là xóa các chứng chỉ từ kho lưu trữ chứng chỉ Kết quả là, bất kỳ một nỗ lực nào kiểm tra sự tồn tại của các chứng chỉ
đã xóa sẽ thất bại và chúng ta hiểu rằng chứng chỉ đã thu hồi Có 3 vấn đề với phương pháp này:
Một cuộc tấn công từ chối dịch vụ vào kho lưu trữ chứng chỉ hoặc cơ sở
dữ liệu có thể tạo ra sự xuất hiện của chứng chỉ lỗi;
Xóa các bản ghi không nói cho người yêu cầu thông tin tại sao không có;
Nhiều sự triển khai PKI có thể tạo ra các bản sao chép tại nhiều nơi Kết quả là một hệ thống quản lý danh mục thu hồi đã được phát triển bên ngoài kho lưu trữ chứng chỉ Một CRL là một máy tính tạo ra danh sách các chứng chỉ được thu hồi bởi các công ty phát hành trước ngày hết hạn ban đầu của chúng vì một số lý do Khả năng tiếp cận với các danh sách thu hồi là hết sức quan trọng cho
sự tin tưởng cần thiết của cơ sở hạ tầng, các bên phải đảm bảo rằng các chứng chỉ
mà họ sử dụng chưa được thu hồi Vì vậy, những danh sách này phải có sẵn mọi lúc, ngay cả khi kho lưu trữ chứng chỉ có thể không có
Trang 3221
1.3 Tạo và kiểm tra chữ kí số
1.3.1 Tạo chữ kí số
Người ta theo các bước:
1 Bước 1: Dùng giải thuật băm (MD5 hoặc SHA) để băm thông điệp cần
truyền đi Kết quả ta được một tiêu hóa tin (message digest);
2 Bước 2: Sử dụng khóa bí mật (private key) của người gửi để mã hóa tiêu
hóa tin thu được ở bước 1 Thông thường ở bước này ta dùng giải thuật RSA Kết quả thu được gọi là chữ ký điện tử của thông điệp ban đầu;
3 Bước 3: Gộp chữ ký điện tử vào thông điệp ban đầu Công việc này gọi
là “ký nhận” vào thông điệp Sau khi đã ký nhận vào thông điệp, mọi sự thay đổi trên thông điệp sẽ bị phát hiện trong giai đoạn kiểm tra Ngoài
ra, việc ký nhận này đảm bảo người nhận tin tưởng thông điệp này xuất phát từ người gửi chứ không phải là ai khác
Hình 1.6 Các bước tạo chữ ký điện tử
Trang 3322
1.3.2 Kiểm tra chữ kí số
Để kiểm tra chữ kí số, người ta theo các bước:
1 Bước 1: Dùng mã hóa khóa công khai của người gửi (khóa này được
thông báo đến mọi người) để giải mã chữ ký số của văn bản
2 Bước 2: Dùng giải thuật băm (MD5 hoặc SHA) băm thông điệp đính
kèm
3 Bước 3: So sánh kết quả thu được ở bước 1 và 2 Nếu trùng nhau, ta kết
luận thông điệp này không bị thay đổi trong quá trình truyền và thông
điệp này là của người gửi
Hình 1.7 Các bước kiểm tra chữ ký điện tử
1.4 Kết luận
Chương 1 đã trình những tìm hiểu về chữ kí số và vai trò của mật mã trong việc đảm bảo an toàn dữ liệu Hạ tầng khóa công khai PKI đã được trình bày, như ứng dụng tại Ngân hàng Thương mại cổ phần Bưu điện Liên Việt
Trang 342.1 Giới thiệu chung xác thực thông tin
Xác thực (Authentification) là kỹ thuật kiểm tra tính hợp pháp của một thực thể giao tiếp trên mạng được quyền sử dụng tài nguyên của mạng Một thực thể có thể là một người sử dụng, một chương trình ứng dụng, hoặc một thiết bị phần cứng Các hoạt động kiểm tra tính xác thực được đánh giá là quan trọng nhất trong các hoạt động của một phương thức bảo mật Một hệ thống thông thường phải thực hiện kiểm tra tính xác thực của một thực thể trước khi thực thể đó thực hiện kết nối với
hệ thống Việc xác thực thường kết hợp với sự cho phép sử dụng hay từ chối phục
vụ Xác thực thông thường bằng mật khẩu (Password), dấu vân tay hay các dấu hiệu đặc trưng Nói cách khác, xác thực là sự cho phép xác định người sử dụng được quyền thực hiện một hành động nào đó như đọc/ghi một tệp, hay sử dụng tài nguyên phần mềm, sử dụng các tài nguyên phần cứng, sử dụng các dịch vụ mạng Người
sử dụng phải qua giai đoạn xác thực bằng mật khẩu trước khi được phép khai thác thông tin hay một tài nguyên nào đó trên mạng Cơ chế kiểm tra tính xác thực của các phương thức bảo mật dựa vào 3 mô hình chính sau:
- Đối tượng cần kiểm tra cần phải cung cấp những thông tin trước, ví dụ như Password, hoặc mã số PIN (PersonalInformation Number)
- Kiểm tra dựa vào mô hình những thông tin đã có, đối tượng kiểm tra cần phải thể hiện những thông tin mà chúng sở hữu, ví dụ như Private Key, hoặc số thẻ tín dụng
2.1.1 Các kỹ thuật xác thực thông tin
Xác thực thông tin (Message Authentication) là một cơ chế được ứng dụng trong xử lý thông tin với mục đích:
Trang 3524
Đảm bảo nội dung thông tin trao đổi giữa các thực thể là chính xác, không bị thêm, sửa, xóa hay phát lại Nói cách khác, đảm bảo tính toàn vẹn về nội dung không bị vi phạm
Đảm bảo đối tượng tạo ra thông tin, tạo ra nguồn gốc thông tin đúng là đối tượng hợp lệ đã được khai báo Nói cách khác, đảm bảo tính toàn vẹn về nguồn gốc thông tin
2.1.1.1 Sử dụng các thuật toán mật mã khóa đối xứng
Để xác thực thông tin, nguyên tắc của mật mã là chỉ có những đối tượng hợp
lệ mới khôi phục được thông tin gốc từ thông tin mật Có thể sử dụng nguyên tắc này để xác thực thông tin như sau:
Theo quy ước, chỉ có nơi gửi thông tin và nơi nhận thông tin hợp lệ mới có khóa bí mật K Do đó chỉ nơi nhận thông tin hợp lệ mới có khả năng tạo ra khối thông tin mật hợp lệ từ khối thông tin gốc M Tương tự, chỉ có nơi nhận thông tin hợp lệ mới có khả năng giải mã được thông tin mật để ra thông tin gốc M Tất cả các cố gắng khác đều cho ra kết quả sai
Như vậy:
Chỉ có người nhận hợp lệ mới nhận được thông điệp từ người gửi và
Chỉ có người gửi hợp lệ mới gửi được thông điệp đến người nhận
Hình 2.1 Xác thực thông tin dùng mật mã đối xứng
Sử dụng kỹ thuật mật mã khóa bất đối xứng để trao đổi khóa bí mật trên kênh
an toàn, bằng cách mã hóa khóa bí mật (đối xứng) sử dụng khóa công khai của người gửi PUB
Bên gửi: [E(K, PUB), E(M, K)]
Bên nhận:
- Giải mã: D[E(K, PUB), PRB] = K
- Giải mã: D[E(M, K), K] = M
Trang 3625
Hình 2.2 Sử dụng khóa bất đối xứng để trao đổi khóa bí mật
2.1.1.2 Sử dụng các thuật toán mật mã khóa bất đối xứng
Trường hợp sử dụng mật mã khóa bất đối xứng để xác thực thông tin, nơi gửi thông tin thực hiện mã hóa bằng khóa bí mật PR bên gửi thay vì dùng khóa công khai PU Khối thông tin mật tạo ra có thể được giải mã bởi bất kỳ đối tượng nào biết khóa công khai của thực thể gửi Tuy nhiên, nếu quá trình giải mã thành công, đối tượng nhận thông tin có thể chắc chắn rằng thông tin nhận được là đúng và chính đối tượng gửi hợp lệ đã gửi thông tin này, bởi vì chỉ có đối tượng đó mới có
khóa riêng PR
Hình 2.3 Xác thực thông tin dùng mật mã bất đối xứng
Bên gửi: E(M, PRA)
là cố định, không phụ thuộc vào kích thước của khối dữ liệu gốc và thường nhỏ hơn
dữ liệu gốc Nơi gửi sẽ gửi giá trị MAC kèm cùng với thông tin gốc Phía nhận sau khi nhận được thông tin gốc cùng với giá trị MAC gửi kèm sẽ thực hiện thao tác tạo
ra giá trị MAC mới từ thông tin gốc cùng với khóa bí mật đã thống nhất giữa hai
Trang 3726
bên Nếu giá trị MAC vừa tạo như giá trị MAC nhận được từ phía gửi, phía nhận có thể chắc chắn rằng thông tin gốc không bị thay đổi trong quá trình truyền
Việc dùng MAC để xác thực thông tin dựa vào hai cơ sở:
Ứng với một khối thông tin gốc M và một khóa bí mật K, hàm C chỉ tạo
ra duy nhất một mã xác thực MAC
Chỉ có phía gửi và phía nhận hợp lệ mới được biết khóa K
Có hai kỹ thuật tạo ra mã xác thực MAC: Kỹ thuật dùng cơ chế mật mã khối (Cipher Block Chaining), gọi là CMAC hay CBC-MAC và kỹ thuật dựa trên các hàm băm bảo mật, gọi là HMAC
Mã xác thực MAC được ứng dụng trong các trường hợp thông tin chỉ yêu cầu đảm bảo tính xác thực mà không cần đảm bảo tính bí mật
Hình 2.4 Xác thực thông tin dùng MAC
2.1.1.4 Xác thực thông tin dùng chữ ký điện tử
Sử dụng các hàm băm bảo mật (Secure Hash Function) chữ ký số để xác thực nguồn gốc thông tin Hàm băm dựa vào thông tin gốc để tạo ra mã băm và dùng khóa riêng của người gửi mã hóa giá trị băm này Vì vậy, để có thể sử dụng cơ chế