BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU VỀ MÃ HÓA CÔNG KHAI ELGAMAL VÀ ỨNG DỤNG TRONG CHỮ KÝ ĐIỆN TỬ TẠI TỔNG CÔNG TY BẢO HIỂM BẢO VIỆT LƯU XUÂN THỦY
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SĨ
NGHIÊN CỨU VỀ MÃ HÓA CÔNG KHAI ELGAMAL
VÀ ỨNG DỤNG TRONG CHỮ KÝ ĐIỆN TỬ
TẠI TỔNG CÔNG TY BẢO HIỂM BẢO VIỆT
LƯU XUÂN THỦY
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60480201
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS NGUYỄN LONG GIANG
HÀ NỘI - 2016
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Nghiên cứu về mã hóa công khai Elgamal và ứng dụng trong chữ ký điện tử tại Bảo Hiểm Bảo Việt” là công trình nghiên
cứu của riêng tôi Các số liệu, kết quả được trình bày trong luận văn là hoàn toàn trung thực và chưa từng được công bố trong bất kỳ một công trình nào khác Tôi đã trích dẫn đầy đủ các tài liệu tham khảo, công trình nghiên cứu liên quan trong nước và quốc tế Ngoại trừ các tài liệu tham khảo này, luận văn là công việc của tôi
Hà Nội, tháng 11 năm 2016
Học viên
Lưu Xuân Thủy
Trang 3LỜI CẢM ƠN
Trong suốt quá trình học tập ở nhà trường vừa qua, tác giả đã được quý thầy
cô cung cấp và truyền đạt tất cả kiến thức chuyên môn cần thiết và quý giá nhất Ngoài ra, tác giả còn được rèn luyện một tinh thần học tập, làm việc độc lập, sáng tạo và làm việc theo nhóm
Đề tài nghiên cứu luận văn Thạc sĩ là cơ hội để tác giả có thể áp dụng, tổng kết lại những kiến thức mà mình đã học Đồng thời, rút ra những kinh nghiệm thực tế, quý giá trong suốt quá trình thực hiện nghiên cứu
Tác giả xin chân thành cảm ơn các thầy, cô giáo trong Viện Sau Đại học – Viện Đại học Mở – Hà Nội, những người đã trực tiếp giảng dạy, truyền đạt kiến thức cho tác giả cũng nhữ lớp thế hệ trẻ cùng với các học viên khác trong những năm tháng vừa qua
Tác giả xin đặc biêt cảm ơn thầy giáo TS Nguyễn Long Giang, giảng viên hướng dẫn tác giả thực hiện luận văn nghiên cứu này, thầy đã hướng dẫn nhiệt tình để tác giả có thể hoàn thành tốt đề tài nghiên cứu này Bên cạnh những kết quả đạt được cũng không tránh được những thiếu xót trong quá trình thực hiện báo cáo nghiên cứu của mình Sự góp ý của thầy cô, các anh, chị và các bạn độc giả sẽ là kinh nghiệm quý báu sẽ giúp ích cho tác giả nhiều trong công việc Kính chúc các thầy cô luôn mạnh khỏe và đạt được nhiều thành công trong
Trang 4MỤC LỤC
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
MỤC LỤC iv
CÁC THUẬT NGỮ VIẾT TẮT vii
DANH SÁCH HÌNH VẼ viii
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN 3
1.1 Khái niệm về thương mại điện tử 3
1.1.1 Các loại thị trường điện tử 3
1.1.2 Các công đoạn của một giao dịch điện tử mua bán trên mạng 7
1.2 Một số khái niệm về bảo mật thông tin 8
1.2.1 Khái niệm an toàn 8
1.2.2 Các hiểm họa an toàn 9
1.2.3 Các dịch vụ an toàn 9
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 12
2.1 Cơ sở toán học 12
2.1.1 Khái niệm đồng dư modulo 12
2.1.2 Định lý về phần dư Trung Hoa 13
2.1.3 Các phép kiểm tra số nguyên tố 13
2.1.4 Thuật toán bình phương và nhân 15
2.1.5 Thuật toán Euclid mở rộng 16
2.1.6 Phẩn tử nguyên thủy và logarithm rời rạc 18
2.2 Lý thuyết về mã hóa, mã khối và hàm băm trong chữ ký điện tử 19
2.2.1 Khái niệm mã hóa 19
2.2.2 Mã hóa trong chữ ký điện tử 20
Trang 52.2.3 Khái niệm về mã khối 21
2.2.4 Hàm băm trong chữ ký điện tử 21
2.2.5 Quy trình tạo và kiểm tra chữ ký điện tử cơ bản 24
2.2.6 Các hệ mã đối xứng và công khai 27
2.2.7 Chữ ký một lần 33
2.2.8 Chữ kỹ không chối được 37
2.2.9 Thiết lập một hệ mật RSA 38
2.2.10 Hệ mật Elgamal và một số các vấn đề liên quan 39
CHƯƠNG 3: THỬ NGHIỆM CHỮ KÝ ĐIỆN TỬ TẠI TỔNG CÔNG TY BẢO HIỂM BẢO VIỆT BẰNG MÃ HÓA ELGAMAL 47
3.1 Giới thiệu về Bảo Việt 47
3.1.1 Tập đoàn Bảo Việt 47
3.1.2 Tổng công ty Bảo Hiểm Bảo Việt 47
3.2 Giải pháp ứng dụng chữ ký điện tử 49
3.3 Thực trạng ứng dụng chữ ký điện tử tại Việt Nam 49
3.4 Đề xuất ứng dụng chữ ký điện tử trong qui trình nghiệp vụ giám định bồi thường xe cơ giới tại Bảo Hiểm Bảo Việt 50
3.4.1 Qui trình giám định bồi thường 51
3.4.2 Mô tả các giai đoạn của qui trình 52
3.5 Đề xuất giải pháp 57
3.6 Phát biểu bài toán bảo lãnh điện tử 58
3.7 Mục tiêu thử nghiệm 58
3.8 Lựa chọn môi trường và công cụ cài đặt 59
3.9 Thử nghiệm và đánh giá kết quả thử nghiệm 59
3.9.1 Xây dựng thử nghiệm chương trình bảo lãnh điện tử với thứ tự các bước thực hiện như sau 59
Trang 63.9.2 Qui trình bảo lãnh điện tử đề xuất 60
3.9.3 Phân tích và thiết kế chương trình thử nghiệm 61
3.10 Đánh giá kết quả cài đặt thử nghiệm 64
3.10.1 Kết quả thu được 64
3.10.2 Những tồn tại của đề tài 65
3.11 Tổng kết 65
TÀI LIỆU THAM KHẢO 67
PHỤ LỤC: DANH MỤC CÁC BÀI BÁO ĐÃ ĐĂNG TRÊN KỶ YẾU HỘI THẢO KHOA HỌC CHUYÊN NGHÀNH CỦA ĐỀ TÀI 70
Bài báo của tác giả cùng với thầy hướng dẫn và cộng sự: “Chữ ký điện tử và ứng dụng trong hoạt động kinh doanh Bảo hiểm tại Tổng công Bảo Hiểm Bảo Việt” 70
Trang 7CÁC THUẬT NGỮ VIẾT TẮT
DES Data Encrytion Standard Mã hóa dữ liệu chuẩn
RSA Rivest Shamir Adleman
SHA Secure Hash Algorithm Giải thuật hàm băm
MD5 Message Digest
DSA Digital Signature Algorithm Giải thuật chữ ký số
CA Certificate Authority Ủy quyền chứng chỉ
IDE Integrated Development Environment Môi trường phát triển tích hợp
Trang 8DANH SÁCH HÌNH VẼ
Hình 2.1: Tạo chữ ký điện tử 29
Hình 2.2: Kiểm tra chữ ký điện tử 29
Hình 2.3: Sơ đồ mã hóa khóa đối xứng 31
Hình 2.4: Mô hình mã hóa khóa công khai 32
Hình 3.1: Quy trình giám định bồi thường xe cơ giới 54
Hình 3.2: Quy trình bảo lãnh điện tử 63
Trang 9LỜI MỞ ĐẦU
Ngày nay, sự phát triển mạnh mẽ của công nghệ thông tin và trao đổi thông tin ngày càng trở nên phổ biến khiến vấn đề đảm bảo an toàn thông tin trở nên cần thiết với mọi hoạt động kinh, xã hội và giao tiếp của con người
Để thực hiện yêu cầu về bảo mật thông tin thì cách hay dùng nhất là mã hóa thông tin trước khi gửi đi Vì vậy mật mã đã được nghiên cứu và sử dụng từ rất lâu trong lịch sử loài người, tuy nhiên nó mới được nghiên cứu công khai và tìm được các lĩnh vực ứng dụng trong đời sống công cộng cùng với sự phát triển của kỹ thuật tính toán và viễn thông hiện đại Từ đó, ngành khoa học này đã phát triển mạnh mẽ, đạt được nhiều kết quả lý thuyết và tạo cơ sở cho việc phát triển các giải pháp bảo mật và an toàn thông tin trong mọi lĩnh vực hoạt động của con người trong thời đại công nghệ thông tin được ứng dụng rộng rãi Với yêu cầu cấp thiết của an toàn thông tin, các cá nhân, tổ chức đã không ngừng tìm kiếm các phương pháp đảm bảo
tính bảo mật của thông tin Trong luận văn này, em xin trình bày về: “Nghiên cứu
về mã hóa công khai Elgamal và ứng dụng trong chữ ký điện tử tại Tổng công ty Bảo Hiểm Bảo Việt” Đồng thời, ứng dụng các thuật toán và chữ ký điện tử để đảm bảo an toàn thông tin khi truyền qua hệ thống mạng
Nội dung của đề tài bao gồm bốn chương:
CHƯƠNG 1: TỔNG QUAN
Chương này trình bày tổng quanvề tổng quan an toàn bảo mật thông tin, khái quát, giới thiệu về đề tài và công cụ lập trình
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này trình bày những khái niệm cơ bản về mã hóa và chữ ký điện tử và các loại chữ ký điện tử được sử dụng phổ biến hiện nay
Chương này bao gồm tìm hiểu về hệ mã Elgamal, mã hóa và giải mã hệ, đồng thời tìm hiểu quy trình tạo chữ ký điện tử dùng hệ Elgamal
CHƯƠNG 3: THỬ NGHIỆM CHỮ KÝ ĐIỆN TỬ TẠI TỔNG CÔNG
TY BẢO HIỂM BẢO VIỆT BẰNG MÃ HÓA ELGAMAL
Trang 10Chương này tiến hành cài đặt hệ mã, các nội dung tạo và kiểm tra chữ ký điện
tử Elgamal
Đánh giá kế quả đạt được những tồn tại của hệ thống và hướng phát triển, ứng
dụng trong hệ thống quản lý tài liệu, cấp đơn, Bảo lãnh Bảo hiểm tại Bảo Hiểm Bảo Việt
Trang 11CHƯƠNG 1: TỔNG QUAN
1.1 Khái niệm về thương mại điện tử
1.1.1 Các loại thị trường điện tử
• Loại hình thương mại điện tử B2B ( Business To Business ):
Loại hình thương mại điện tử B2B được định nghĩa đơn giản là thương mại điện tử giữa các công ty[27] Đây là loại hình thương mại điện tử gắn với mối quan
hệ giữa các công ty với nhau Khoảng 80% thương mại điện tử theo loại hình này và phần lớn các chuyên gia dự đoán rằng loại hình thương mại điện tử B2B sẽ tiếp tục phát triển nhanh hơn B2C
Thị trường B2B có hai thành phần chủ yếu: hạ tầng ảo và thị trường ảo
Hạ tầng ảo là cấu trúc của B2B chủ yếu bao gồm những vấn đề sau:
Hậu cần - Vận tải, nhà kho và phân phối;
Cung cấp các dịch vụ ứng dụng - tiến hành, máy chủ và quản lý phần mềm trọn gói từ một trung tâm hỗ trợ (ví dụ Oracle và Linkshare);
Các nguồn chức năng từ bên ngoài trong chu trình thương mại điện tử như máy chủ trang web, bảo mật và giải pháp chăm sóc khách hàng
Các phần mềm giải pháp đấu giá cho việc điều hành và duy trì các hình thức đấu giá trên Internet
Phần mềm quản lý nội dung cho việc hỗ trợ quản lý và đưa ra nội dung trang Web cho phép thương mại dựa trên Web
Phần lớn các ứng dụng B2B là trong lĩnh vực quản lý cung ứng ( Đặc biệt chu trình đặt hàng mua hàng), quản lý kho hàng (Chu trình quản lý đặt hàng gửi hàng-vận đơn), quản lý phân phối (đặc biệt trong việc chuyển gia các chứng từ gửi hàng)
và quản lý thanh toán (ví dụ hệ thống thanh toán điện tử hay EPS)
Tại Việt Nam có một số nhà cung cấp B2B trong lĩnh vực IT "khá nổi tiếng" là FPT , CMC, Tinh Vân với hàng loạt các dự án cung cấp phần mềm, các trang web giá thành cao và chất lượng tốt
Thị trường mạng được định nghĩa đơn giản là những trang web nơi mà người
Trang 12mua người bán trao đổi qua lại với nhau và thực hiện giao dịch
Qua hai nội dung trên chúng ta có thể đưa ra vài nét tổng quan về các doanh nghiệp B2B:
Là những nhà cung cấp hạ tầng trên mạng internet cho các doanh nghiệp khác như máy chủ, hệ điều hành, phần mềm ứng dụng;
Là các doanh nghiệp chuyên cung cấp các giải pháp trên mạng internet như cung cấp máy chủ, hosting (Dữ liệu trên mạng), tên miền, các dịch vụ thiết kế, bảo trì, website;
Là các doanh nghiệp cung cấp các phần mềm quản lý doanh nghiệp, kế toán doanh nghiệp, các phần mềm quản trị, các phần mềm ứng dụng khác cho doanh nghiệp;
Các doanh nghiệp là trung gian thương mại điện tử trên mạng internet
Tại Việt Nam các trang web về B2B rất ít xuất hiện hoặc nó bị gán nhầm cho cái tên B2B thậm chí nhiều người không hiểu B2B là gì, cứ thấy có doanh nghiệp với doanh nghiệp là gán cho chữ B2B Chúng ta có thể ghé thăm các website được xếp hạng bên trong trang web của Bộ Công Thương Việt Nam: www.ecvn.gov.vn, www.vnemart.com, www.gophatdat.com, www.vietoffer.com, www.thuonghieuviet.com, ……
• Loại hình thương mại điện tử B2C ( Business to Customers):
Loại hình thương mại điện tử B2C hay là thương mại giữa các công ty và người tiêu dùng, liên quan đến việc khách hàng thu thập thông tin, mua các hàng hoá thực (hữu hình như là sách hoặc sản phẩm tiêu dùng) hoặc sản phẩm thông tin (hoặc hàng hoá về nguyên liệu điện tử hoặc nội dung số hoá, như phần mềm, sách điện tử) và các hàng hoá thông tin, nhận sản phẩm qua mạng điện tử
Đơn giản hơn chúng ta có thể hiểu: Loại hình thương mại điện tử B2C là việc một doanh nghiệp dựa trên mạng internet để trao đổi các hang hóa dịch vụ do mình tạo ra hoặc do mình phân phối
Các trang web khá thành công với hình thức này trên thế giới phải kể đến Amazon.com, Drugstore.com, Beyond.com
Trang 13Tại Việt Nam hình thức buôn bán này đang rất "ảm đạm" vì nhiều lý do nhưng
lý do chủ quan nhất là ý thức của các doanh nghiệp, họ không quan tâm, không để ý
và tệ nhất là không chăm sóc nổi website cho chính doanh nghiệp mình Tôi đã có lần trình bày ở bài viết về khởi nghiệp bằng thương mại điện tử của giới trẻ Chi phí
để lập và duy trì một website là rất ít và không tốn kém với một cá nhân chứ chưa
kể đến một doanh nghiệp, doanh nghiệp Việt Nam nếu vẫn trì trệ trong việc cập nhật công nghệ thì sẽ sớm bị các doanh nghiệp trẻ, doanh nghiệp nước ngoài chiếm mất thị trường béo bở 80 triệu dân với 40% là giới trẻ
Danh sách các website theo loại hình thương mại điện tử B2C được đánh giá cao trong bảng xếp hạng của Bộ Thương mại Việt Nam
• Loại hình thương mại điện tử C2C (Customer to Customer):
Loại hình thương mại điện tử khách hàng tới khách hàng C2C đơn giản là thương mại giữa các cá nhân và người tiêu dùng
Loại hình thương mại điện tử này được phân loại bởi sự tăng trưởng của thị trường điện tử và đấu giá trên mạng, đặc biệt với các ngành theo trục dọc nơi các công ty / doanh nghiệp có thể đấu thầu cho những cái họ muốn từ các nhà cung cấp khác nhau Có lẽ đây là tiềm năng lớn nhất cho việc phát triển các thị trường mới Loại hình thương mại điện tử này tới theo ba dạng:
Đấu giá trên một trang web xác định
Hệ thống hai đầu P2P, Forum, IRC, các phần mềm nói chuyện qua mạng như Yahoo, Skype, Window Messenger, AOL
Quảng cáo phân loại tại một cổng (rao vặt)
Giao dịch khách hàng tới doanh nghiệp C2B bao gồm đấu giá ngược, trong đó khách hàng là người điều khiển giao dịch
Trang 14Tại các trang web của nước ngoài chúng ta có thể nhận ra ngay Ebay là website đứng đầu danh sách các website theo loại hình thương mại điện tử C2C trên thế giới đây la một tượng đài về kinh doanh theo hình thức đấu giá mà các doanh nghiệp Việt Nam nào cũng muốn "trở thành"
Tại Việt Nam thì chưa tất các các hinh thức này ở mọi loại dạng, đi đến đâu cũng thấy quảng cáo rao vặt, rao bán, rao mua, trao đổi Tôi có thể đưa ra các website do Bộ Thương mại xếp hạng để các bạn có cơ hội thăm quan
Ví dụ:
www.chodientu.com, www.heya.com.vn, www.1001shoppings.com, www.saigondaugia.com, www.aha.com.vn
• Loại hình thương mại điện tử B2G (Business to Government)
Loại hình thương mại điện tử giữa doanh nghiệp với chính phủ (B2G) được định nghĩa chung là thương mại giữa công ty và khối hành chính công Nó bao hàm việc sử dụng Internet cho mua bán công, thủ tục cấp phép và các hoạt động khác liên quan tới chính phủ Hình thái này của thương mại điện tử có hai đặc tính: thứ nhất, khu vực hành chính công có vai trò dẫn đầu trong việc
Thiết lập thương mại điện tử, thứ hai, người ta cho rằng khu vực này có nhu cầu lớn nhất trong việc biến các hệ thống mua bán trở nên hiệu quả hơn
Các chính sách mua bán trên web tăng cường tính minh bạch của quá trình mua hàng (và giảm rủi ro của việc không đúng quy cách) Tuy nhiên, tới nay, kích
cỡ của thị trường thương mại điện tử B2G như là một thành tố của của tổng thương mại điện tử thì không đáng kể, khi mà hệ thống mua bán của chính phủ còn chưa phát triển
• Ngoài ra vẫn còn một số loại hình thương mại điện tử khác nhưng sự xuất
hiện ở Việt Nam chưa cao như:
Thương mại điện tử M-Commerece ( Buôn bán qua các thiết bị di động cầm tay)
Thương mại điện tử sử dụng tiền ảo ( VTC với Vcoin)
Trang 151.1.2 Các công đoạn của một giao dịch điện tử mua bán trên mạng
Với một chiếc thẻ thanh toán và một máy tính kết nối Internet, người tiêu dùng
có thể hoàn thành việc mua hàng hóa, dịch vụ qua website.[27]
Dưới đây là các bước cơ bản để mua hàng và thanh toán trực tuyến
Bước 1: Tìm kiếm, chọn lựa hàng hóa
Truy cập website của nhà cung cấp dịch vụ, và chọn lựa hàng hóa, dịch vụ
Bước 2: Đặt hàng
Sau khi chọn lựa xong các sản phẩm cần mua, người mua sẽ thực hiện bước đặt hàng bằng cách điền các thông tin chi tiết như nhà cung cấp yêu cầu bao gồm: -Thông tin cá nhân
-Phương thức, thời gian giao hàng
-Phương thức, thời gian thanh toán
Bước 3: Kiểm tra thông tin hóa đơn
Hệ thống website sẽ hiển thị hóa đơn mua hàng để người mua kiểm tra thông tin trên hóa đơn Nếu thông tin chính xác, người mua sẽ tiến hànãiác nhận để chuyển sang bước thanh toán
Bước 4: Thanh toán
Nếu website chấp nhận thanh toán trực tuyến, người mua có thể hoàn thành việc thanh toán ngay trên website với điều kiện người mua sở hữu các loại thẻ mà nhà cung cấp chấp nhận Hầu hết website thương mại điện tử chấp nhận các loại thẻ tín dụng và ghi nợ mang thương hiệu Visa, MasterCard Người mua điền thông tin thẻ để hoàn thành thanh toán:
- Số thẻ
- Ngày hết hạn
- CVV
- Thông tin khác tùy theo yêu cầu của ngân hàng phát hành
Lưu ý: giao dịch thanh toán chỉ thành công khi thẻ thanh toán đã được đăng ký chức năng thanh toán online, thông tin thẻ điền đúng và thẻ còn khả năng chi trả
Bước 5: Xác nhận đặt hàng
Trang 16Hệ thống website sẽ gửi email xác nhận đơn hàng vào email của người mua Nhà cung cấp sẽ liên hệ với người mua để hoàn thành nghiệp vụ giao hàng
1.2 Một số khái niệm về bảo mật thông tin
1.2.1 Khái niệm an toàn
Ngày nay, do nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, điện tử - viễn thông và công nghệ công tin không ngừng được phát triển ứng dụng
để nâng cao chất lượng và lưu lượng truyền tin thì các ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới và phát triển Bảo vệ an toàn thông tin dữ liệu
là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu [27]
Các phương pháp bảo vệ an toàn thông tin dữ liệu chủ yếu gồm ba nhóm:
• Bảo vệ an toàn thông tin bằng các biện pháp hành chính
• Bảo vệ an toàn thông tin bằng các biện pháp phần cứng (kỹ thuật)
• Bảo vệ an toàn thông tin bằng các biện pháp phần mềm (thuật toán)
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối hợp với nhau Tuy nhiên, môi trường mạng và truyền tin là môi trường khó bảo vệ an toàn thông tin nhất và dễ xâm nhập nhất Hiện nay, biện pháp thuật toán đang được sử dụng là biện pháp hiệu quả nhất và kinh tế nhất trên mạng truyền tin và mạng máy tính Nội dung an toàn thông tin bao gồm:
• Tính bí mật là tính kín đáo riêng tư của thông tin
• Tính xác thực của thông tin, bao gồm xác thực đối tác: bài toán nhận danh, xác thực thông tin trao đổi
• Tính trách nhiệm: đảm bảo người gửi thông tin có trách nhiệm về thông tin
mà mình đã gửi
Các ứng dụng thực tế của mật mã được thông qua một số giao thức bảo mật phổ biến hiện nay là:
• Keberos: giao thức dùng để chứng thực dựa trên mã hóa đối xứng
• Chuẩn chứng thực X509: được dùng trong mã hóa khóa công khai
Trang 17• Secure Socket Layer (SSL): là giao thức bảo mật Web, được sử dụng phổ biến trong Web và thương mại điện tử
Bảo mật thư điện tử email: PGP và S/MMIME
1.2.2 Các hiểm họa an toàn
Lạm dụng các đặc quyền vượt mức và các đặc quyền không còn được dùng(Excessive and Unused Privileges)
Lợi dụng vết kiểm toán yếu(Weak Audit Trail)
Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ(Storage Media Exposure) Khai thác các CSDL có điểm yếu và bị lỗi cấu hình(Exploitation of Vunlerabilities and Misconfigured Database)
Rò rỉ các dữ liệu nhạy cảm không được quản lý(Unmanaged Sensitive Data) Tấn công từ chối dịch vụ(Denial of Service)
Vấn đề đào tạo và chuyên gia an ninh còn hạn chế(Limit Sercurity Expertise and Education)
1.2.3 Các dịch vụ an toàn
Dịch vụ rà soát/đánh giá lỗ hổng bảo mật (Vulnerability Assessment)
Dịch vụ đánh giá kiểm thử xâm nhập (Pentest)
Dịch vụ đánh giá kiểm định vận hành (IT Audit)
Dịch vụ xây dựng chính sách bảo mật - (Security policy & Compliance)
Dịch vụ xây dựng SoC (Security operator Center)
Dịch vụ rà soát lỗ hổng bảo mật và cập nhật bản vá an ninh HĐH cho máy chủ
Trang 18Đảm bảo tính xác thực ( Authentication )
Đối với những liên kết trực tuyến, có hai khía cạnh cần phải chú ý tới:
Tại thời điểm khởi tạo kết nối, dịch vụ xác thực phải hai thực thể tham gia vào trao đổi thông tin phải được ủy quyền
Dịch vụ cần khẳng định rằng kết nối không bị can thiệp bởi một bên thứ ba Trong đó bên thứ ba này có thể giả mạo một trong hai bên được ủy quyền để có thể tham gia vào quá trình truyền tin và thu nhận các thông điệp
Đảm bảo tính toàn vẹn ( Integrity )
Đảm bảo tính toàn vẹn cũng có thể áp dụng cho luồng thông điệp, một thông điệp hoặc một số trường được lựa chọn của thông điệp – Phương pháp hữu ích nhất
là trực tiếp bảo vệ luồng thông điệp – đảm bảo tính toàn vẹn:
Dịch vụ bảo đảm tính toàn vẹn dữ liệu hướng liên kết;
Dịch vụ bảo đảm tính toàn vẹn hướng không liên kết
Dịch vụ bảo đảm tính toàn vẹn dữ liệu hướng liên kết:
Tác động lên luồng thông điệp và đảm bảo rằng thông điệp được nhận hoàn toàn giống khi được gửi, không bị sao chép, không bị sửa đổi, thêm bớt
Các dữ liệu bị phá huỷ cũng phải được khôi phục bằng dịch vụ này
Dịch vụ bảo đảm tính toàn vẹn dữ liệu hướng liên kết xử lý các vấn đề liên quan tới sự sửa đổi của luồng các thông điệp và chối bỏ dịch vụ
Dịch vụ bảo đảm tính toàn vẹn hướng không liên kết:
Chỉ xử lý một thông điệp đơn lẻ Không quan tâm tới những ngữ cảnh rộng hơn
Chỉ tập trung vào ngăn chặn việc sửa đổi nội dung thông điệp
Trang 19Dịch vụ chống phủ nhận ngăn chặn người nhận và người gửi từ chối thông điệp được truyền tải – Khi thông điệp được gửi đi, người nhận có thể khẳng định được rằng thông điệp đích thực được gửi tới từ người được uỷ quyền – Khi thông điệp được nhận, người gửi có thể khẳng định được rằng thông điệp đích thực tới đích
Dịch vụ kiểm soát truy nhập
Dịch vụ kiểm soát truy nhập cung cấp khả năng giới hạn và kiểm soát các truy nhập tới các máy chủ hoặc các ứng dụng thông qua đường truyền tin
Để đạt được sự kiểm soát này, mỗi đối tượng khi truy nhập vào mạng phải được nhận biết hoặc được xác thực, sao cho quyền truy cập sẽ được gắn với từng cá nhân
Trang 20CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Cơ sở toán học
2.1.1 Khái niệm đồng dư modulo
Giả sử a và b là các số nguyên và m là một số nguyên dương Khi đó ta viết a
≡ b(mod m) nếu b-a chia hết cho m Mệnh đề a ≡ b (mod m) được gọi là “a đồng dư với b theo modun m” [8] Ví dụ: [9]
24 ≡ 9 (mod 5) vì 24-9 = 3*5
-11 ≡ 17 (mod 7) vì -11 -17 = -4 * 7
Giả sử chia a và b cho m và ta thu được thương nguyên và phần dư, các phần
dư nằm giữa 0 và m-1, nghĩa là a ≡ q1* m + r1 và a ≡ q2* m + r2 trong đó 0 ≤ r1 ≤
m-1 và 0 ≤ r2 ≤ m-1 Khi đó có thể dễ dàng thấy rằng a ≡ b (mod m) khi và chỉ khi r1=
r2 [12]
Ta sẽ dùng ký hiệu a mod m để xác định phần dư khi a được chia cho m (chính là giá trị r1 ở trên) Như vậy, a ≡ b (mod m) khi và chỉ khi (a mod m) = (b mod m) Phép rút gọn, thay a bằng a mod m thì ta nói rằng a được rút gọn theo modulo m [14]
• Nhận xét
Nhiều ngôn ngữ lập trình của máy tính xác định a mod m là phần dư trong dải –m+1,…,m-1 có cùng dấu với a Ví dụ -18 mod 7 sẽ là -4, giá trị này khác với giá trị 3 là giá trị được xác định theo công thức trên Tuy nhiên, để thuận tiện ta sẽ xác định a mod m luôn là một số không âm
Ta có thể định nghĩa số học modulo m: Zm được coi là tập hợp {0,1, m-1} có trang bị hai phép toán cộng và nhân Việc cộng và nhân trong Zm được thực hiện giống như cộng và nhân các số thực ngoại trừ một điểm là các kết quả được rút gọn theo modun m [8]
Trang 212.1.2 Định lý về phần dư Trung Hoa
Định lý số dư Trung Hoa cho phép vì phải thực hiện các phép thay vì phải thực hiện các phép toán mod T trong trường hợp T lớn, ta có thể chuyển về tính toán trên các phép toán mod ti, với các ti nhỏ hơn T Do đó, đinh lý số dư Trung Hoa giúp tăng tốc độ tính toán của thuật toán RSA [9]
Ý tưởng: Tính toán trên modulo của một tích các số mod M, với M
=m1m2…mk trong đó GCD(mimj)=1 (Với i ≠j)
Định lý phần dư Trung Hoa cho phép thực hiện trên từng modulo mi riêng biệt nên tốc độ tính toán sẽ nhanh hơn trên toàn bộ modulo M Để tính toán theo modulo số lớn: Giả sử để tính giá trị của biểu thức A mod M với M khá lớn, A là biểu thức số học nào đó, ta thực hiện các bước sau: [12]
i a i c
∑=1 . ) mod M Định lý phần dư Trung Hoa sử dụng giải hệ phương trình modulo cho
mod
j i m m GCD
m x a
j i
i i
Ta có thể sử dụng định lý này để giải hệ tìm x [14]
2.1.3 Các phép kiểm tra số nguyên tố
2.1.3.1 Phương pháp thô sơ
Phương pháp đơn giản nhất để kiểm tra một số n có là số nguyên tố không là kiểm tra xem nó có chia hết cho các số m nằm trong khoảng 2 đến n-1 hay không Nếu n chia hết cho một số m nào đó thì n là hợp số (composite), ngược lại là số nguyên tố [8]
Thực ra việc kiểm tra với m từ 2 đến n-1 là không cần thiết, mà chỉ cần kiểm tra đến căn bậc 2 của n Đó là vì nếu n là hợp số thì nó chắc chắn có ước số không
Trang 22vượt quá căn bậc 2 của n[9]
2.1.3.2 Kiểm tra theo xác suất
Các phép kiểm tra tính nguyên tố hay dùng nhất là các thuật toán ngẫu nhiên Giả sử có một mệnh đề Q(p,a) nào đó đúng với mọi số nguyên tố p và một số tự nhiên a <= p [8] Nếu n là một số tự nhiên lẻ và mệnh đề Q(n,a) đúng với một a<= n được lấy ngẫu nhiên, khi đó a có khả năng là một số nguyên tố Ta đưa ra một thuật toán, kết luận rằng n là số nguyên tố Nó là một thuật toán ngẫu nhiên hay thuật toán xác suất [9]Trong các thuật toán loại này, dùng một kiểm tra ngẫu nhiên không bao giờ kết luận một số nguyên tố là hợp số nhưng có thể kết luận một hợp
số là số nguyên tố Xác suất sai của phép kiểm tra có thể giảm xuống nhờ việc chọn một dãy độc lập các số a; nếu với mỗi số a xác suất để thuật toán kết luận một hợp
số là số nguyên tố là nhỏ hơn một nửa thì sau k lần thử độc lập, xác suất sai là nhỏ hơn 2−k, độ tin cậy của thuật toán sẽ tăng lên theo k [12]
Cấu trúc cơ bản của một phép kiểm tra ngẫu nhiên là:
Chọn một số ngẫu nhiên a
Kiểm tra một hệ thức nào đó giữa số a và số n đã cho Nếu hệ thức sai thì chắc chắn n là một hợp số (số a là "bằng chứng" chứng tỏ n là hợp số) và dừng thuật toán [14]
Lặp lại bước 1 cho đến khi đạt được số lần đã định hoặc gặp bước 2
Sau một loạt lần kiểm tra, nếu không tìm được bằng chứng chứng tỏ n là hợp
số thì ta kết luận n là số nguyên tố
2.1.3.3 Phương pháp lý thuyết số
Có một vài phương pháp khác trong lý thuyết số để kiểm tra tính nguyên tố như kiểm tra Lucas-Lehmer và kiểm tra Proth Chúng thường dựa vào việc phân tích n + 1, n − 1, hoặc những số khác.[8] Tuy nhiên các phương pháp này không dừng cho các số tự nhiên n bất kỳ mã chỉ cho các số có một dạng đặc biệt nào đó Kiểm tra Lucas-Lehmer dựa trên tính chất: bậc (multiplicative order) của một
số a modulo n là n − 1 với n là số nguyên tố và a là căn nguyên thuỷ (primitive root) modulo n Nếu ta có thể biểu diễn a chỉ theo n, ta có thể thấy n là nguyên tố
Trang 232.1.4 Thuật toán bình phương và nhân
Thuật toán bình phương và nhân là thuật toán tính nhanh lũy thừa tự nhiên của một số (thực hoặc nguyên) Trong trường hợp cơ số là số nguyên có thể được rút gọn theo một modun nào đó Được sử dụng nhiều trong các bài toán mã hóa và giải
mã các hệ mã hóa, đặc biệt là hệ mã hóa công khai [8]
Trang 242.1.5 Thuật toán Euclid mở rộng
Cho hai số tự nhiên a, n Ký hiệu (a,n) là ước số chung lớn nhất của a,n; Ø(n)
là số các số nguyên dương < n và nguyên tố với n, không mất tính tổng quát giả sử
Do đó, nếu (n,a) = 1, thì tm = a-1 mod n
Thuật toán Euclid mở rộng tìm phần tử nghịch đảo với modun cho trước Được sử dụng nhiều trong các bài toán mã hóa và giải mã các hệ mã hóa, đặc biệt là
Trang 25ai = ai-2 – (ai-1 * Yi-1)
bi = bi-2 – (bi-1 * Yi-1)
Trang 264 8 -3 9 1
Kết quả: -9 mod m = -9 mod 79 = 70
Cách tính chia dư với số âm: cộng liên tục với số chia cho đến khi được kết quả dương
2.1.6 Phẩn tử nguyên thủy và logarithm rời rạc
Cho số n nguyên dương Ta biết rằng tập các thặng dư thu gọn theo modun n (tức là tập các số nguyên dương < n và nguyên tố với n) lập thành một nhóm với phép nhân mod n, ta ký hiệu là Z*n Nhóm đó có cấp (số phần tử) là ∅(n) Một phần
tử g ϵ Z*n có cấp m, nếu m là số nguyên dương bé nhất sao cho gm = 1 trong Z*n [8] Theo một định lý đại số, ta có m | ∅(n) (ký hiệu m là ước số của ∅(n)) vì vậy với mọi b ϵ Z*n ta luôn có: b∅(n) ≡ 1 (mod n)[9]
Nếu p là số nguyên tố, thì do ∅(p) = p-1, nên ta có với mọi b nguyên tố với p
bp-1 ≡ 1 (mod p) (1) [12]
Nếu b có cấp p-1, thì p-1 là số mũ bé nhất sao cho có công thức (1), do đó các phần tử b,b2,…,bn-1 đều khác nhau, và lập thành Z*p Nói cách khác, b là một phần tử sinh, hay như thường gọi là phần tử nguyên thủy của Z*p : và khi đó Z*p là
Trang 27một nhóm cyclic
Trong lý thuyết số, người ta đã chứng minh được các định lý sau đây: [14]
• Với mọi số nguyên tố p, Z*p là nhóm cyclic, và số các phần tử nguyên thủy của Z*p bằng ∅(p-1)
• Nếu g là phần tử nguyên thủy theo modun p, thì β = gi , với mọi i mà 1) = 1, cũng là phần tử nguyên thủy theo modun p
(i,p-2.2 Lý thuyết về mã hóa, mã khối và hàm băm trong chữ ký điện tử
2.2.1 Khái niệm mã hóa
Mã hoá dữ liệu là mã hóa với mục đích làm cho dữ liệu không thể đọc được bởi bất cứ ai, ngoại trừ những ai được phép đọc Mã hóa sử dụng thuật toán và khóa
để biến đổi dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext) sang hình thức mật mã vô nghĩa (code hay ciphertext) Chỉ có những ai có thông tin giải mã thì mới giải mã và đọc được dữ liệu [8]
Kỹ thuật mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp
và kỹ thuật đảm bảo an toàn và bảo mật trong truyền tin liên lạc với giả thiết sự tồn tại của các thế lực thù địch, những kẻ muốn ăn cắp thông tin để lợi dụng và phá hoại.[9]
Bảo mật mã bao gồm: Lập, bảo vệ mã và phá mã Lập mã bao gồm quá trình
mã hóa và bảo vệ mã và quá trình giải mã
Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình này được gọi là mã hóa thông tin, ở nơi nhận phải thực hiện quá trình ngược lại, nghĩa là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được mã hóa) về dạng nhận thức được (dạng gốc), quá trình này gọi là giải mã Đây là lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rạng trong môi trường mạng.[12]
Có hai hướng tiếp cận bảo vệ thông tin bằng mật mã: [14]
o Theo đường truyền
Trang 28o Từ nút đến nút
Nếu theo đường truyền thông tin được mã hóa để bảo vệ trên đường truyền giữa hai nút mà không quan tâm đến nguồn và đích của thông tin đó Thông tin chỉ được bảo vệ trên đường truyền, mỗi nút đều có quá trình giải mã sau đó mã hóa để truyền đi tiếp, do vậy các nút cần được bảo vệ tốt
Nếu theo hướng thứ hai, thông tin trên mạng được bảo vệ trên đường truyền từ nguồn đến đích Thông tin sẽ được mã hóa ngay sau khi mới tạo ra và chỉ được giải
mã khi về đến đích Nhược điểm của cách này là chỉ có dữ liệu của người dùng thì mới có thể mã hóa được còn dữ liệu điều khiển thì được giữ nguyên để có thể xử lý tại các nút.[8]
Mã hóa là ngành nghiên cứu các thuật toán và phương thức để đảm bảo tính bí mật,thường dưới dạng các văn bản lưu trữ trên máy tính Các sản phẩm của lĩnh vực này bao gồm: các hệ mã mật, các hàm băm, các hệ chữ ký điện tử, các cơ chế phân phối, quản lý khóa và các giao thức mật mã
Mã hóa là phương pháp để biến thông tin(phim, văn bản, hình ảnh,…) từ định dạng bình thường sang dạng thông tin không chính thống, không giống dữ liệu gốc nếu không có phương tiện giải mã
2.2.2 Mã hóa trong chữ ký điện tử
Mã hóa là nền tảng để xây dựng nên các hệ chữ ký điện tử Các hệ mã hóa khóa bí mật ít dược sử dụng vì có một số hạn chế nhất định Hiện nay, các hệ mã hóa khóa công khai (hệ ba lô (Knapsack), hệ Rabin, hệ RSA,…) được sử dụng nhiều để xây dựng các lược đồ chữ ký điện tử vì nó có một số điểm mạnh: Sử dụng một khóa công khai để mã hóa thông báo và thẩm tra chữ ký, một khóa riêng (chỉ nơi giữ được biết) để giải mã văn bản và ký chữ ký, bên mã hóa không thể giải mã thông báo (nếu dùng để mã hóa thông báo) và bên kiểm tra không thể tạo chữ ký (nếu dùng để ký)[17]
Trang 292.2.3 Khái niệm về mã khối
Các hệ mã cổ điển (ví dụ: mã hóa dịch chuyển, mã hóa thay thế, mã hóa Affine, mã hóa Vigenere, mã hóa Hill) đều có đặc điểm chung là từng ký tự của bản
rõ được mã hoá tách biệt Điều này làm cho việc phá mã trở nên dễ dàng hơn Chính
vì vậy, trên thực tế người ta hay dùng một kiểu mật mã khác, trong đó từng khối ký
tự của bản rõ được mã hoá cùng một lúc như là một đơn vị mã hoá đồng nhất, gọi là phương pháp mã hóa “khối” [8]
Từ xưa đến nay thì đã có rất nhiều hệ mã “khối” ra đời và đã được phát triển
Có thể kể đến một số hệ mã như: Lucifer (1969), DES (1977), Madryga (1984), DES (1985)(t53), FEAL, REDOC, LOKI (1990), Khufu and Khafre (1990), RC2, RC4, IDEA (1990), MMB, CA-1.1, Shipjack, GOST, CAST, Blowfish, SAFER, AES (2001), [9]
3-2.2.4 Hàm băm trong chữ ký điện tử
2.2.4.1 Khái niệm
Một hàm băm H sẽ lấy ở đầu vào một văn bản M có kích thước bất kỳ và sinh kết quả ra là một chuỗi hM = h(M) có độ dài cố định (thường nhỏ hơn nhiều so với kích thước của M) Chuỗi này thường được gọi là cốt (digest) của M Hàm băm thường được sử dụng trong các hệ chữ ký điện tử, khi đó thay vì ký lên văn bản M, thì người ký chỉ cần thực hiện việc ký lên hM và như vậy văn bản đã được ký [26]
Để đảm bảm an toàn cao, chống tấn công giả mạo chữ ký, các hàm băm có các đặc điểm sau:
Lấy đầu vào là một xâu với độ dài bất kỳ và sinh ra xâu có độ dài cố định Tính một chiều: biết M, có thể dễ dàng tính được giá trị băm hM, nhưng không thể tính ngược được M khi chỉ biết hM
Tính bền xung đột yếu (weak collision resistance): với bất kỳ giá trị M, không thể tính được Y ≠ M sao cho h(Y) = h(M)
Tính bền xung đột mạnh (strong collision resistance): không thể tính được một cặp (M,Y) sao cho h(M) = h(Y)
Hiện nay, thường sử dụng hai hàm băm phổ biến là MD5 và SHA-1 [8]
Trang 302.2.4.2 Hàm băm MD5
• Mã hóa một chiều (Hash)
Phương pháp này dùng để mã hóa những thứ không cần dịch lại nguyên bản gốc [8]
Hàm băm sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, như chứng thực và kiểm tra tính nguyên vẹn của thông điệp Một hàm băm nhận đầu vào
là một xâu ký tự dài (hay thông điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký
tự có độ dài cố định được gọi là tóm tắt thông điệp hoặc chữ ký số.[9]
Hàm băm là các thuật toán không sử dụng khóa để mã hóa, có nhiệm vụ băm thông điệp được đưa vào theo một thuật toán h một chiều nào đó rồi đưa ra một bản băm gọi là văn bản đại diện có kích thước cố định Do vậy, người nhận không biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm Giá trị của hàm băm là duy nhất và không thể suy ngược lại được nội dung thông điệp
từ giá trị băm này.[12]
• MD5 (Message Digest 5)
Ronald Rivest là người đã phát minh ra các hàm Băm MD2, MD4 và MD5 Bây giờ ta sẽ xem xét hàm Băm MD5, đây là một cải tiến của MD4 và được sử dung rộng rãi nhất Nguyên tắc thiết kế của hàm băm này cũng là nguyên tắc chung cho rất nhiều các hàm băm khác [14]
MD5: Đầu vào là những khối 512 bit, được chia cho 16 khối con 32 bit Đầu
ra của thuật toán là một thiết lập của 4 khối 32 bit để tạo thành một hàm Băm 128 bit duy nhất: Đầu tiên, chia bức điện thành các khối 512 bit, với khối cuối cùng (đặt
là x và x < 512bit) của bức điện ta cộng thêm một bit 1 vào cuối của x, theo sau đó
là các bit 0 để được độ dài cần thiết (512 bit) Kết quả là bức điện vào là một chuỗi
M có độ dài chia hết cho 512 cho nên ta có thể chia M ra thành các N khối con 32 bit (N khối này sẽ chia hết cho 16) [27]
2.2.4.3 Hàm băm SHA-1 (Secure Hash Algorithm)
Thuật toán hàm Băm an toàn (SHA) sử dụng cho chuẩn chữ ký điện tử DSS SHA được thiết kế dựa trên những nguyên tắc của MD4/MD5, tạo ra 160 bit giá trị Băm [8][14]
Trang 31Cũng giống với MD5, bức điện được cộng thêm một bit 1 và các bit 0 ở cuối bức điện để bức điện có thể chia hết cho 512 SHA sử dụng 5 thanh ghi dịch:
SHA xác lập bốn hàm phi tuyến như sau:
ft(X,Y,Z) = (X and Y) or ((not X) and Z) ; 0 ≤ t ≤ 19
ft(X,Y,Z) = X xor Y xor Z ; 20 ≤ t ≤ 39
ft(X,Y,Z) = (X and Y) or (X and Z) or (Y and Z) ; 40 ≤ t ≤ 59
ft(X,Y,Z) = X xor Y xor Z ; 60 ≤ t ≤ 79
Bốn hằng số sử dụng trong thuật toán là:
Kt = 21/2 /4 = 0x5a827999 ; 0 ≤ t ≤ 19
Kt = 31/2 /4 = 0x6ed9eba1 ; 20 ≤ t ≤ 39
Kt = 51/2 /4 = 0x8f1bbcdc ;i 40 ≤ t ≤ 59
Kt = 101/2 /4 = 0xca62c1d6 ; 60 ≤ t ≤ 79
Các khối bức điện được mở rộng từ 16 khối con 32 bit (M0 đến M15) thành
80 khối con 32 bit (W0 đến W79) bằng việc sử dụng thuật toán mở rộng:
Wt = Mt với 0 ≤ t ≤ 15
Wt = (Wt-3 xor Wt-8 xor Wt-14 xor Wt-16) với 16 ≤ t ≤ 79
Nếu gọi Wt là biểu diễn của khối con thứ t của bức điện được mở rộng, và
<<<s là biểu diễn dịch trái s bit, thì vòng lặp chính của SHA như sau:
a = A, b = B, c = C, D = D, e = E,
for t = 0 to 79
Trang 32Ngoài ra, chữ ký còn đảm bảo phát giác được bất kỳ sự thay đổi nào trên dữ
liệu đã được ký Để ký lên một văn bản, phần mềm sẽ nghiền dữ liệu để gói gọn
bằng một vài dòng, được gọi là thông báo tóm tắt, bằng một tiến trình được gọi là
kỹ thuật băm, rồi tạo thành chữ ký điện tử Cuối cùng phần mềm ký tên sẽ gắn chữ
ký điện tử vào văn bản này
Ví dụ: Giả sử bên A có tài liệu Data cần ký Bên A sẽ thực hiện băm văn bản thành một bản vắn tắt X, sau đó dùng khóa bí mật của mình ký lên bản vắn tắt X để được văn bản chữ ký điện tử Y, sau đó gửi tài liệu Data kèm theo chữ ký Y cho A
Trang 33Bên B muốn nhận tài liệu Datat do bên A gửi, với chữ ký bản mã Y Bên B sẽ dùng khóa công khai của A để xác nhận chữ ký Y của A ký trên tài liệu Data gửi có đúng hay không, nếu xác nhận đúng thì chữ ký Y chính là A đã ký lên tài liệu Data, ngược lại thì không phải hoặc bản ký đã được thay đổi.[12] [14]
Một số trường hợp xảy ra với chữ ký điện tử, cũng giống như các trường hợp xảy ra với chữ ký truyền thống
Ví dụ: khi tài liệu của A bị thay đổi (dù chỉ một ký tự, một dấu chấm, hay một
ký hiệu bất kỳ) , thì B xác nhận, anh ta sẽ thấy bản giải mã khác với tài liệu của A, Bên B sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải tài liệu của A đã ký Trường hợp khác, nếu A để lộ khóa bí mật, nghĩa là văn bản tài liệu của A đã được ký bởi người khác có khóa bí mật của A Khi một ai đó xác nhận tài liệu được cho là của A ký, chữ ký vẫn là hợp lệ, mặc dù không phải chính A ký Như vậy chữ
ký của A sẽ không còn giá trị pháp lý nữa Do đó, việc giữ khóa bí mật là tuyệt đối quan trọng trong hệ thống chữ ký điện tử
Trong trường hợp ví dụ trên, A có một cặp khóa có thể ký trên văn bản, tải số liệu Tương tự như vậy, B hay bất kỳ ai sử dụng chữ ký điện tử, đều có một cặp khóa như vậy Khóa bí mật được giữa riêng, còn khóa công khai được đưa ra công cộng Vì vậy vấn đề đặt ra là làm thế nào để biết một khóa công khai thuộc về A, B hay một người nào đó
Hơn nữa, trong môi trường giao dịch trên mạng thì cần phải có độ tin cậy cao,
A muốn giao dịch với nhận vật X A và X cần trao đổi thông tin cá nhân cho nhau, các thông tin có thể như là: Họ tên, địa chỉ, số điện thoại,… Vậy làm sao để A có thể chắc chắn rằng mình giao dịch với X chứ không phải một ông X’ khác giả mạo ông X? Chứng chỉ số được tạo ra để giải quyết vấn đề này Chứng chỉ số có cơ chế
để xác nhận thông tin chính xác về các đối tượng sử dụng chứng chỉ số Thông tin giữa A và X sẽ được các nhận bằng một bên trung gian mà A và X đều tin tưởng Bên trung gian đó là nhà cung cấp chứng chỉ số CA(Cerfiticate Authority) CA
có một chứng chỉ số của riêng mình CA sẽ cung cấp chứng chỉ số cho A và X cũng như các đối tượng khác.[27]
Trang 34Quay lại ví dụ trên, A và X sẽ có cách kiểm tra thông tin của nhau dựa trên chứng chỉ số như sau: Khi A trao đổi với X , họ sẽ trao đổi chứng chỉ số cho nhau,
đồng thời họ cũng có chứng chỉ số của CA, phần mềm tại máy tính của A có cơ chế
kiểm tra chứng chỉ số của X có hợp lệ hay không, phần mềm sẽ kết hợp chứng chỉ
số của A và của CA để thông báo cho A vễ tính xác thực của đối tượng X
Nếu phần mềm của A kiểm tra và thấy chứng chỉ số của X phù hợp với chứng chỉ số của CA thì A có thể hoàn toàn tin tưởng vào X
Cơ chế chữ ký điện tử và chứng chỉ số sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để cấp chứng chỉ số không hợp pháp, mọi chứng chỉ giả mạo
đều có thể dễ dang bị phát hiện
Quay lại với việc ký văn bản, tài liệu, khóa bí mật sẽ dùng để ký các văn bản, tài liệu của chủ thể Theo như ví dụ trên thì A muốn gửi văn bản kèm với chữ ký
của mình trên văn bản đó, A sẽ phải dùng khóa bí mật để mã hóa thu được bản mã
văn bản, bản mã đó chính là chữ ký của A trên văn bản
Khi A gửi tài liệu Data và chữ ký, để người khác có thể xác nhận văn bản của mình với thông tin đầy đủ về chủ thể, A sẽ gửi kèm chứng chỉ số của mình với văn
bản Giả sử X nhận được văn bản A gửi kèm với chứng chỉ số, khi đó X có thể dễ
dang xác nhận tính hợp pháp của văn bản đó.[8]
2.2.5.2 Quy trình tạo và kiểm tra chữ ký điện tử cơ bản Quy trình tạo và kiểm tra chữ ký điện tử cơ bản gồm hai giai đoạn [17]:
Chữ ký
điện tử
Khóa công khai
Trang 352.2.5.1 Tạo chữ ký điện tử
Bước 1: Sử dụng thuật toán hàm băm để tính cốt của văn bản (message digest) (hay bản tóm lược) cần gửi đi
Bước 2: Sử dụng khóa bí mật của người gửi để mã hóa bản tóm lược (thường
sử dụng các thuật toán mã hóa khóa công khai : RSA, rabin,Egalmal,…) được
kết quả gọi là chữ ký điện tử của văn bản và được hiểu là đã “ký” vào văn bản
Từ thời điểm này, các thay đổi trên văn bản sẽ được phát hiện trong giai đoạn kiểm tra Việc ký này đảm bảo người nhận tin tưởng văn bản này chắc chắn được gửi đi từ người gửi
Bước 3: Kết hợp chữ ký điện tử vào văn bản gốc và gửi đến người nhận 2.2.5.2 Kiểm tra chữ ký điện tử
Bước 1: Tách riêng văn bản ban đầu và chữ ký điện tử
Bước 2: Sử dụng giải thuật hàm băm tương ứng để băm văn bản gốc ban đầu
Bước 3: Sử dụng khóa công khai của người gửi (được thông báo đến mọi người) để giải mã chữ ký điện tử của văn bản
Bước 4: So sánh 2 chuỗi băm thu được ở 2 bước trên (thực hiện theo quy trình kiểm tra của thuật toán chữ ký điện tử): Nếu trùng nhau thì văn bản không
bị thay đổi trong quá trình gửi và văn bản này được gửi đi từ người gửi Ngược lại, nếu không trùng nhau thì văn bản đã bị thay đổi và văn bản không phải của người gửi.[17]
2.2.6 Các hệ mã đối xứng và công khai
Trang 36Khóa bí mật dùng chung bởi bên gửi và bên nhận Khóa bí mật dùng chung bởi bên gửi và bên nhận
Giải mã (Decode) X= D K (Y)
Hình 2.3: S ơ đồ mã hóa khóa đối xứng
Thuật toán mã hóa và giải mã sử dụng chung một khóa, thuật toán giải mã là phép toán ngược lại của thuật toán mã hóa Vì vậy mô hình trên được gọi là mã hóa đối xứng
Bản mã C được gửi qua kênh truyền Do bản mã C đã được biến đổi so với bản rõ P, nên nếu có người thứ ba can thiệp vào kênh truyền để lấy bản mã C cũng
sẽ không hiểu được ý nghĩa của bản mã Đây chính là đặc điểm quan trọng của mã hóa, cho phép đảm bảo tính bảo mật của một hệ thống truyền tin
Một đặc tính quan trọng nữa là khóa phải được giữ bí mật giữa người gửi và người nhận hay khóa phải được chuyển một cách an toàn từ người gửi đến người nhận
Mã hóa đối xứng đảm bảo tính bí mật, tính toàn vẹn dữ liệu, tính xác thực và tính không từ chối
Mã hóa đối xứng được chia thành hai loại là: mã hóa cổ điển và mã hóa bí mật (mã hóa đối xứng hiện đại)
2.2.6.2 Hệ mã công khai
Khác với mã khóa bí mật, khóa mã hóa của thuật toán mã hóa công khai được công bố rộng rãi Một người bất kỳ có thể sử dụng khóa công khai để mã hóa thông tin nhưng chỉ có người nhận thông tin có khóa giải mã phù hợp với
Trang 37khóa mã hóa để giải mã thông tin sau đó [12][14]
Mô hình mã khóa công khai:
Hình 2.4: Mô hình mã hóa khóa công khai
Trong đó: Khóa mã hóa không thể giống giải mã và khóa giải mã không thể được tính từ khóa mã hóa
Các hệ mật mã khóa công khai dùng một khóa để mã hóa sau đó dùng một khóa khác để giải mã tức là khóa để mã hóa và giải mã là khác nhau Các khóa này được tạo nên từng cặp chuyển đổi ngược nhau và không có khóa nào có thể suy được từ khóa kia Khóa dùng để mã hóa có thể công khai nhưng khóa dùng
để giải mã phải giữ bí mật
Trong mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Một dùng để mã hóa và khóa còn lại dùng để giải mã.Điều quan trọng đối với hệ thống là không thể tìm ra được khóa
bí mật nếu chỉ biết khóa công khai
Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:
• Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã
được
• Tạo chữ kí số: cho phép kiểm tra một văn bản có phải đã được tạo với một
khóa bí mật nào đó hay không
Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa
2 bên.Ý tưởng về hệ mật khóa công khai được Diffie và Heliman đưa ra nhưng việc thực hiện mật mã khóa công khai lại được Rivest, Shamin và Adieman đưa ra đầu tiên.Họ tạo ra hệ mật mã RSA nổi tiếng và một số hệ mật mã được công bố, độ bảo mật của từng hệ dựa trên các bài toán khác nhau
Trang 382.2.6.3 Hạ tầng khóa công khai PKI
a PKI là gì ?
Để hiểu rõ về việc xây dựng cơ PKI và vần đề cấp phát chứng thực số có vai trò và ứng dụng như thế nào trong thương mại điên tử Chúng ta sẽ đi phân tích từng khía cạnh xung quanh PKI
Trước tiên chúng hiểu thế nào là PKI và tính cấp thiết của PKI hiện nay : PKI : viết tắt của Public Key Infrastructure tức là hạ tầng cơ sở khóa công khai Là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin
Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa bí mật
Một PKI 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 thông qua việc sử dụng một cặp mã khóa công khai và khóa cá nhân được cấp phát và sử dụng thông qua một nhà cung cấp chứng thực được tín nhiệm Nền tảng khóa công khai cung cấp một chứng chỉ số, dùng để xác minh một cá nhân hoặc một 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 đều được phổ biến, nhưng một số nhà cung cấp đang muốn đưa ra một 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.[8] [27]
Trong kỷ nguyên bùng nổ của công nghệ thông tin, mọi giao dịch từ xa có thể thông qua internet Tuy nhiên, mặt khác khó mà bảo đảm rằng những giao dịch trên Internet luôn an toàn Cơ sở hạ tầng khóa công khai (PKI) đã đáp ứng những yêu cầu cấp thiết đó Dựa trên cách sử dụng của chìa khóa mật mã công cộng và chữ ký điện tử, một PKI chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu cầu bảo mật của người sử dụng
Trang 39PKI cung cấp một cặp chìa khóa, trong đó có một chìa là chìa khóa công khai (Public key) để có thể sử dụng dịch vụ, chìa còn lại là chìa khóa bí mật (Private key) mà người sử dụng phải giữ bí mật Hai chìa khóa này có liên quan mật thiết đến nhau, sao cho một thông điệp được mã hóa bởi một chìa khóa mật mã công khai thì chỉ giải mã được bởi một chìa khóa bí mật tương ứng
Ví dụ về mô hình sử dụng xác thực :[27]
Giả sử có 2 người dùng B và A muốn chuyển thư điện tử cho nhau để đảm bảo tính xác thực và bảo mật họ dùng 1 phần mềm PKI
B muốn chuyển một thư điện tử
đến cho A, với yêu cầu rằng giao
dịch phải chứng minh được chính
anh đã gởi nó đi và nội dung bức
thư không bị thay đổi
Phần mềm PKI dùng chìa khóa cá nhân của B tạo ra một chữ ký điện
tử cho bức thư
B muốn chắc chắn rằng không ai
ngoài A đọc được bức thư này
Phần mềm PKI của B dùng chìa khóa công cộng của A để mã hóa thông điệp của B
A muốn đọc thư do B gởi Phần mềm PKI dùng chìa khóa cá