Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.77 MB, 105 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Luận văn này là cơng trình nghiên cứu của cá nhân tôi, được thực hiện dưới sự hướng dẫn khoa học của TS. Phạm Thế Quế. Các số liệu, những kết luận nghiên cứu được trình bày trong luận văn này hồn tồn trung thực. Tơi xin hồn tồn chịu trách nhiệm về lời cam đoan này.
<b>Tác giả luận văn </b>
<i> </i>
<b> Nguyễn Xuân Hoàng</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">người thầy đã tận tình hướng dẫn em trong q trình học tập, nghiên cứu để hồn thành luận văn tốt nghiệp này.
Con xin chân thành cảm ơn ba mẹ, cảm ơn các anh/em trong lớp K3-CNTT và những người thân trong gia đình đã giúp đỡ, động viên con trong suốt 2 năm học tập
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>DANH MỤC CÁC HÌNH VẼ... iii </b>
<b>CÁC CHỮ VIẾT TẮT ... v </b>
<b>THÔNG TIN VỀ LUẬN VĂN THẠC SĨ ... vii </b>
<b>LỜI GIỚI THIỆU ... 1 </b>
<b>Chương 1 TỔNG QUAN VỀ AN TỒN THƠNG TIN TRÊN MẠNG INTERNET VÀ CÁC KỸ THUẬT MÃ HÓA ... 3 </b>
1.1 Vấn đề an tồn thơng tin trên mạng Internet ... 4
1.2 Yêu cầu của an toàn thơng tin ... 6
1.3 Các giải pháp an tồn thơng tin ... 8
1.4 Khái niệm mã hóa và giải mã ... 10
1.5 Kỹ thuật mã hóa khóa bí mật ... 11
1.5.1 Mã khóa bí mật ... 11
1.5.2 Mã hóa sử dụng chuẩn DES ... 12
1.6 Kỹ thuật mã hóa khóa cơng khai ... 17
1.6.1 Mã khóa cơng khai ... 18
1.6.2 Ngun tắc cấu tạo một hệ khóa cơng khai ... 19
1.6.3 Mã hóa khóa cơng khai RSA ... 21
2.3.3 Các chứng chỉ khóa cơng khai ... 41
2.4 Phân loại các hệ thống chữ kí điện tử ... 42
2.4.1 Chữ kí điện tử với phụ lục ... 43
2.4.2 Chữ kí điện tử với khơi phục bản tin ... 46
2.5 Thuật tốn chữ kí điện tử DSA ... 49
2.5.1 Khái quát về DSA ... 49
2.5.2 Các tham số của DSA ... 50
2.5.3 Thuật toán tạo khóa cho DSA ... 51
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>Chương 3 GIAO DỊCH THANH TOÁN TRONG THƯƠNG MẠI ĐIỆN TỬ 54 </b>
3.1 Giới thiệu về thương mại điện tử ... 55
3.1.1 Thương mại điện tử là gì? ... 55
3.1.2 Giao dịch trong thương mại điện tử ... 57
3.2 Giao dịch thanh toán điện tử ... 63
3.2.1 Giới thiệu chung ... 63
3.2.2 Yêu cầu đối với các hệ thống thanh toán điện tử ... 64
4.3.1 Thiết kế Module Vendor ... 76
4.3.2 Thiết kế Module Customer ... 79
4.3.3 Thiết kế Module Payment Server ... 81
4.3.4 Chứng thực thanh toán Receipt ... 82
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Hình 1.2: Mơ hình Mã hố và Giải mã ... 11
Hình 1.3: Sơ đồ minh hoạ Symetric-key Crytography ... 12
Hình 1.4: Truyền thơng hai phía sử dụng mã hóa đối xứng ... 12
Hình 1.5: Giải thuật DES (a)-Sơ đồ tổng quan (b)-Một tầng lặp ... 13
Hình 1.6: Sơ đồ biểu diễn thuật tốn tạo khố ... 15
...
Hình 1.7: Mã hóa 3 tầng DES (Triple DES) ... 16
Hình 1.8: Sơ đồ minh hoạ Public-key Crytography ... 18
Hình 1.9: Mơ hình truyền thơng hai phía sử dụng mã hóa khóa cơng khai ... 19
Hình 2.1: Sơ đồ minh hoạ việc xác thực sử dụng chứng chỉ số và chữ ký điện tử ... 33
Hình 2.2: Sơ đồ minh hoạ q trình truyền thơng điệp sử dụng chữ ký điện tử ... 35
Hình 2.3: Quá trình tạo chữ kí số cho một bản tin ... 36
Hình 2.4: Q trình xác minh một chữ kí số ... 38
Hình 2.5: Một chứng chỉ khóa cơng khai ... 40
Hình 2.6: Tổng quan về hệ thống chữ kí số với phụ lục ... 43
Hình 2.7: Tổng quan về hệ thống chữ kí số hồi phục bản tin ... 44
Hình 2.8: Hệ thống chữ kí số với phụ lục nhận được từ một hệ thống hồi phục bản tin ... 46
Hình 2.9: Sử dụng SHA trong DSA ... 48
Hình 4.1: Mơ hình hệ thống ... 66
Hình 4.2: Thơng điệp u cầu thanh tốn ... 71
Hình 4.3: Thơng điệp xác nhận thanh tốn ... 72
Hình 4.4: Thơng điệp u cầu chuyển hàng ... 73
Hình 4.5: Sơ đồ xử lý dữ liệu của Module Vendor ... 74
Hình 4.6: Sơ đồ xử lý dữ liệu của Module Customer ... 77
Hình 4.7: Sơ đồ xử lý dữ liệu của Module PaymentServer ... 79
Hình 4.8: Giao diện mua hàng ... 86
Hình 4.9: Giao diện giỏ hàng ... 86
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Hình 4.13: Giao diện thơng báo giao dịch khơng thành cơng ... 88 Hình 4.14: Giao diện khi thanh tốn thành cơng ... 89
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">B2B Bussiness to Bussiness
<b>C </b>
<b>D </b>
<b>E </b>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">NIC New Industrial Country
<b>P </b>
<b>R </b>
<b>S </b>
<b>T </b>
TCP/IP Transmission Control Protocol/Internet Protocol
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>THÔNG TIN VỀ LUẬN VĂN THẠC SĨ </b>
1. Họ và tên học viên: Nguyễn Xuân Hoàng 2. Giới tính: Nam 3. Ngày, tháng, năm sinh: 09/02/1993
4. Nơi sinh: Hà Nội
5. Quyết định công nhận học viên số: 284/QĐ-ĐHHB ngày 17 tháng 12 năm 2018 của Hiệu trưởng Trường Đại học Hịa Bình.
6. Các thay đổi trong quá trình đào tạo:
<i>(ghi các hình thức thay đổi và thời gian tương ứng) </i>
7. Tên đề tài luận văn: Nghiên cứu chữ ký điện tử và ứng dụng trong thanh tốn điện tử
8. Chun ngành: Cơng nghệ thông tin 9. Mã số: 8480201
10. Người hướng dẫn khoa học: TS. Phạm Thế Quế 11. Tóm tắt các kết quả của luận văn:
- Hiểu được tổng quan về an tồn thơng tin trên mạng internet, yêu cầu và các giải pháp an tồn thơng tin.
- Nắm được các kỹ thuật mã hóa, giải mã (DES,RSA), hiểu về chứng thực điện tử. - Nắm được khái niệm, cách hoạt động của hệ chữ ký điện tử (DSA) và ứng dụng của nó.
- Hiểu được và ứng dụng chữ ký điện tử trong thanh toán điện tử.
12. Khả năng ứng dụng trong thực tiễn: thanh toán online, internet banking, remote working (làm việc từ xa), …
13. Những hướng nghiên cứu tiếp theo: remote working (làm việc từ xa).
Hà Nội, ngày…… tháng ……năm 2019 <b>Học viên </b>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Trong những năm gần đây, sự phát triển của mạng thơng tin tồn cầu đã có ảnh hưởng sâu sắc tới mọi mặt của đời sống kinh tế, xã hội. Internet trở thành mạng truyền dữ liệu được sử dụng phổ biến trên tồn thế giới. Nó được dùng để truyền thư điện tử, truy nhập các Website, kết nối tới các công sở ở xa, giám sát hệ thống từ xa, truyền tệp, làm việc tại nhà, liên lạc với khách hàng và sử dụng các dịch vụ ngân hàng...Tuy nhiên, điều này cũng đặt ra một thách thức lớn đó là vấn đề đảm bảo an tồn cho các thơng tin được trao đổi qua mạng.
Cùng với sự hình thành và phát triển của Internet, giao dịch thương mại đã và đang có nhiều thay đổi lớn. Hiện nay, trong thương mại điện tử, các hoạt động trao đổi dữ liệu điện tử, các dịch vụ thanh tốn điện tử cho phép chu chuyển hàng hóa và tiền tệ giữa các đối tác kinh doanh một cách nhanh chóng, hiệu quả. Thương mại điện tử giúp thực hiện các giao dịch, thanh toán, marketting, truyền những cơ sở dữ liệu liên quan đến thẻ tín dụng, các phương tiện thanh tốn khác của khách hàng.
Một trong những vấn đề người dùng quan tâm hàng đầu khi thực hiện giao dịch
<i>thương mại qua Internet đó là tính bí mật và tính tồn tồn vẹn của các thơng tin nhạy cảm như thơng tin tài khoản, thơng tin cá nhân, tính xác thực của đối tác giao </i>
dịch. Sở dĩ là vì việc truyền thơng tin qua mạng Internet hiện nay chủ yếu sử dụng giao thức TCP/IP[8]. TCP/IP cho phép các thơng tin được gửi từ một máy tính này tới một máy tính khác đi qua một loạt các máy trung gian hoặc các mạng riêng biệt trước khi nó có thể đi tới được đích. Chính vì điểm này, giao thức TCP/IP đã tạo cơ hội cho “bên thứ ba” có thể thực hiện các hành động gây mất an tồn thơng tin trong giao dịch, dễ dàng can thiệp, theo dõi và giả mạo các bức điện trên Internet. Lý do này khiến nhiều người đang đắn đo trong việc sử dụng mạng Internet cho các ứng dụng về tài chính và các số liệu nhạy cảm về tính pháp lý...
Trong các hệ thống thương mại điện tử hiện nay, nhiều giải pháp công nghệ
<i>được đưa ra để đảm bảo an toàn cho các giao dịch. Kỹ thuật mã hóa thơng tin, Chữ </i>
<i>ký điện tử và chứng thực điện tử được sử dụng để đáp ứng yêu cầu trên. </i>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Nội dung nghiên cứu của đồ án bao gồm:
<b>Chương 1: Tổng quan về an tồn thơng tin trên mạng Internet </b>
Chương này giới thiệu một cách khái quát về Internet và các vấn đề về tính an tồn của thông tin trên mạng Internet như: các lĩnh vực an ninh mạng, yêu cầu của an ninh mạng và các giải pháp an ninh mạng ...
<b>Chương 2: Các kỹ thuật mã hóa </b>
Chương này trình bày các vấn đề về mật mã học, khái niệm mã hóa và giải mã, các phương pháp mã hoá và giải mã thông tin, lý thuyết mã khố bí mật, mã hóa khóa cơng khai, các giải thuật được sử dụng để xây dựng các ứng dụng bảo mật như DES, RSA ...
<b>Chương 3: Chữ kí điện tử </b>
Chương này trình bày khái qt về chữ kí điện tử và các khái niệm liên quan, việc sử dụng chữ kí điện tử để giải quyết vấn đề xác thực, q trình tạo và xác minh chữ kí điện tử, hai phân loại chữ kí điện tử, giải thuật chữ kí điện tử được dùng để xây dựng ứng dụng DSA và thuật toán băm được dùng trong chữ kí DSA là SHA.
<b>Chương 4: Giao dịch thanh tốn trong thương mại điện tử </b>
Chương này trình bày về thanh toán trong thương mại điện tử, các yêu cầu đối với một hệ thống thanh toán điện tử, các phương tiện và giao thức thanh toán được dùng hiện nay, các cấu hình có thể của một hệ thống thanh toán, vấn đề sử dụng kỹ thuật chữ kí điện tử và chứng chỉ số để đảm bảo an tồn cho giao dịch
<b>thanh tốn. </b>
<b>Chương 5: Hệ thống thanh toán sử dụng chữ ký điện tử </b>
Chương này trình bày tóm tắt q trình phân tích, thiết kế và xây dựng hệ
<i>thống thanh toán cho một hệ mua bán điện thoại, một số kết quả đạt được ... </i>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">___________________________________________________________________
Tổng quan về an tồn thơng tin
u cầu của an tồn thơng tin
Các giải pháp an tồn thơng tin
Khái niệm mã hóa và giải mã
Kỹ thuật mã hóa khóa bí mật
Kỹ thuật mã hóa khóa cơng khai
Mã hóa khóa cơng khai RSA
Chứng thực điện tử
___________________________________________________________________ Chương này giới thiệu một cách tổng quan về vấn đề an tồn thơng tin trên mạng Internet hiện nay, các yêu cầu đặt ra của an ninh mạng và các giải pháp kỹ
<b>thuật nhằm đảm bảo an tồn hệ thống mạng. </b>
trình bày về lý thuyết mã hóa và giải mã, hai kỹ thuật dùng trong mật mã hóa là Mã khóa bí mật và Mã khóa cơng khai. Đối với mỗi phương pháp, chương này sẽ đi vào cụ thể thuật toán được sử dụng phổ biến nhất. Đó là thuật tốn mã hóa khóa bí mật dùng chuẩn DES và thuật tốn mã hóa khóa cơng khai RSA.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>1.1 Vấn đề an tồn thơng tin trên mạng Internet </b>
Internet hiện nay đã trở thành mạng truyền dữ liệu được dùng phổ biến trên toàn thế giới. Nó được sử dụng để truyền thư điện tử, truy nhập các website, kết nối tới các công sở ở xa, giám sát hệ thống từ xa, truyền tệp, làm việc ở nhà, liên lạc với các khách hàng và sử dụng các dịch vụ ngân hàng. Những tập đồn cơng nghiệp, những cơng ty đa quốc gia, thị trường chứng khoán… đều sử dụng môi trường mạng Internet để tiến hành xử lý và truyền nhận những thông tin đắt giá, những phiên giao dịch hay mua bán cổ phiếu... Giờ đây với sự tăng trưởng nhanh của các siêu thị điện tử, thương mại điện tử thì hàng ngày có một khối lượng tiền rất lớn được lưu chuyển trên mạng toàn cầu.
Rõ ràng tiềm năng của mạng Internet là rất lớn và Internet có những kỹ thuật tuyệt vời cho phép mọi người truy nhập, khai thác, chia sẻ thơng tin. Tuy nhiên nó lại bị hạn chế bởi chính thiết kế mở của mình. Mạng Internet sử dụng giao thức truyền dữ liệu TCP/IP, các gói tin truyền từ điểm nguồn tới điểm đích sẽ đi qua rất nhiều các máy tính trung gian, các thơng tin này lại khơng được mã hố, vì vậy nó q dễ dàng để can thiệp, theo dõi và giả mạo các bức điện trên Internet. Lý do này khiến nhiều người đang đắn đo trong việc sử dụng mạng Internet cho các ứng dụng về tài chính và các số liệu nhạy cảm về tính pháp lý.
Mạng Internet vốn có khơng cung cấp bất kỳ một sự bảo vệ nào đối với các thơng tin được truyền trên nó, và nó có thể trở thành một ác mộng về an tồn thông
<i>tin đối với các công ty kết nối vào nó. Bức tường lửa (Firewall) và việc điều khiển truy nhập (Access Control) bằng cách sử dụng mật khẩu (Password) một lần không </i>
thể xử lý được tất cả các vấn đề. Rất dễ dàng để ghi lại và phân tích hầu hết các dữ liệu truyền trên mạng hay tấn cơng một máy tính rồi sử dụng máy tính này để tấn cơng các máy tính khác thậm chí ngay cả khi các máy tính này đã có bức tường lửa bảo vệ.
Do đặc điểm nhiều người sử dụng nên việc bảo vệ các tài nguyên tránh khỏi sự mất mát, xâm phạm trong môi trường mạng phức tạp hơn nhều so với trường hợp
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">một máy tính đơn lẻ, một người sử dụng. Để bảo vệ thông tin đạt hiệu quả cao, chúng ta phải lường trước được càng nhiều càng tốt các khả năng xâm phạm, các sự cố rủi ro đối với thiết bị và dữ liệu trên mạng. Xác định chính xác các nguy cơ nói trên ta càng quyết định được tốt các giải pháp phù hợp để ngăn chặn và giảm thiểu các thiệt hại.
Trước tình hình như vậy, việc quản lý vận hành mạng sao cho an toàn, tận dụng tốt các ưu điểm mà hệ thống Mạng đem lại, hạn chế tối đa các nhược điểm gây ra là nhiệm vụ vơ cùng khó khăn đòi hỏi những nhà thiết kế quản trị mạng cần có hiểu biết sâu sắc về mạng, đặc biệt là vấn đề an ninh mạng.
Vấn đề an ninh mạng máy tính được chia làm ba lĩnh vực:
<b>An toàn mạng (Network Security) </b>
<b>An toàn ứng dụng (Application Security) An toàn hệ thống (System Security) An toàn mạng (Network Security) </b>
Phần này mô tả các phương pháp đảm bảo an tồn cho các q trình trao đổi dữ liệu trên mạng. Nó đảm bảo cho dữ liệu sẽ đến đúng nơi cần truyền, dữ liệu không bị xem trộm trong đường truyền, đảm bảo tính toàn vẹn của dữ liệu từ nơi gửi đến nơi nhận.
<b>An toàn ứng dụng (Application Security) </b>
Phần này mô tả các phương pháp bảm mật được áp dụng cho từng ứng dụng cụ thể và nó độc lập với việc đảm bảo an toàn mạng. Ở mức này sẽ đảm bảo vấn đề bảo mật thông tin cá nhân trên các ứng dụng cụ thể.
<b>An toàn hệ thống (System Security) </b>
Một hệ thống an toàn là hệ thống chỉ cho phép các thành viên thực hiện các chức năng mà họ được phép. An toàn hệ thống khác với an toàn về mặt dữ liệu, những thành viên của hệ thống khơng có quyền thao tác với dữ liệu thì cũng khơng thể sửa được dữ liệu.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><b>1.2 u cầu của an tồn thơng tin </b>
Một hệ thống mạng đảm bảo an tồn nếu nó hội đủ các yếu tố sau [7]:
<i><b>Tính riêng tƣ (Privacy) hay tính bí mật (Confidentiality): </b></i>
Có lẽ hầu hết sự chú ý khi nói đến an tồn của mạng Internet là tính riêng tư của dữ liệu được truyền trên mạng. Vấn đề là ở chỗ thông tin được truyền đi trên mạng cơng cộng mà khơng biết nó có bị xem trộm bởi bên thứ ba hay khơng. Tính riêng tư này yêu cầu rất khác nhau phụ thuộc vào các bên và mục đích của thơng tin trao đổi. Ví dụ như hầu hết mọi người không lo lắng về bức thư điện tử của họ có bị xem trộm hay khơng, có lẽ nó cũng khơng thu hút được sự tị mị cho lắm. Tuy nhiên các thông tin nội bộ giữa tổng hành dinh và các chi nhánh sẽ thu hút được sự chú ý hơn. Các công ty sẽ lo lắng về các thông tin kinh doanh của họ bị lọt vào tay đối thủ cạnh tranh, và họ sẽ bị mất đi lợi nhuận hay thị trường.
<i><b>Tính tồn vẹn của dữ liệu (Data intergrity): đảm bảo rằng các gói tin gửi đi/ </b></i>
<i><b>nhận được khơng có sự trùng lặp, chèn, sửa đổi, hốn vị hoặc tái sử dụng. </b></i>
<i>Ngồi tính riêng tư, cũng cần thiết phải đảm bảo về tính tồn vẹn của dữ liệu </i>
được truyền trên mạng. Do cơ chế của mạng Internet, bất kỳ thông tin nào được truyền từ điểm này tới điểm khác thường được chứa tạm thời tại các máy trung gian
<i>trên đường truyền. Tại các máy trung gian này, tính tồn vẹn của dữ liệu có thể dễ </i>
dàng bị xâm phạm thơng qua các hành động có chủ đích hay tình cờ. Nói một cách khác, một người bất kỳ có thể thay đổi nội dung của dữ liệu được truyền ở bất kỳ điểm dọc nào theo đường truyền sau khi gói tin rời khỏi máy phát và trước khi gói tin tới đích. Một thí dụ điển hình là cách các hacker đính kèm các virus vào chương trình phần mềm được đặt trên mạng Internet. Khi chương trình này được tải về và cho chạy thì các virus sẽ lây nhiễm sang các máy khác trong cùng mạng.
<i><b>Xác thực (Authentication): liên quan đến việc đảm bảo rằng một cuộc trao đổi </b></i>
<i><b>là đáng tin. </b></i>
Để thương mại điện tử được đưa vào khai thác trên mạng Internet, một vấn đề
<i>rất quan trọng là phải biết mình đang trao đổi dữ liệu với ai? Xác thực là việc xác </i>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">định máy trạm hay máy chủ được nối có đích thực là máy trạm hay máy chủ cần nối không? Nó cũng được dùng để đảm bảo là một tệp hay các số liệu được đưa đến từ một nguồn tin cậy.
Hiện nay trên Internet, một máy tính có thể chặn một bức điện hay yêu cầu gửi bức điện tới một địa chỉ IP nhất định, và đóng giả như là một máy mong đợi. Thí dụ, một máy có thể đóng giả như một máy chủ để cho máy trạm liên lạc với nó. Bằng cách này, cuộc đối thoại giữa máy trạm và máy chủ sẽ diễn ra, theo đó máy trạm sẽ bị lừa cung cấp các thơng tin cho máy chủ mà nó nghĩ là đang cung cấp thông tin cho máy cần cung cấp. Cách này được gọi là “masquerading” hay “spoofing”, nó cũng có thể hoạt động theo chiều ngược lại, lúc này một máy sẽ đóng giả làm máy trạm hợp lệ và trao đổi thông tin với máy chủ.
Khi tiến hành giao dịch thương mại điện tử và các giao dich chuyển tiền trên mạng, điều cực kỳ quan trọng cho người sử dụng là sự chắc chắn về máy chủ mà họ sẽ cung cấp các thông tin riêng tư như số tài khoản ... Thiếu sự tin tưởng này, thương mại điện tử sẽ khó trở thành hiện thực.
<i><b>Tính khơng thể phủ nhận (Non repudiation): </b></i>
Ngăn cản người gửi và người nhận khỏi sự chối bỏ một gói tin đã được truyền. Vì vậy khi một gói tin đã được gửi đi, bên nhận có thể chứng minh được rằng gói tin đó thật sự được gửi đi bởi người gửi hợp pháp. Hồn tồn tương tự khi một gói tin được nhận, bên phát có thể chứng minh được gói tin đó đúng thật là được nhận bởi người nhận hợp lệ.
<i><b>Điều khiển truy nhập (Access Control): </b></i>
Là khả năng hạn chế và điều khiển truy nhập tới các hệ thống máy chủ và các ứng dụng thông qua hệ thống truyền thông. Để đạt được việc điều khiển này, mỗi thực thể cố gắng đạt được quyền truy nhập phải qua nhận diện, hoặc được xác nhận sao cho quyền truy nhập có thể được đáp ứng nhu cầu của từng cá nhân.
<i><b>Tính khả dụng (Availability): </b></i>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Các cuộc tấn cơng khác nhau có thể tạo ra sự mất mát hoặc thiếu về sự sẵn sàng của dịch vụ. Do đó, dịch vụ này nhằm ngăn chặn và khôi phục những tổn thất của hệ thống do các cuộc tấn công gây ra.
<b>1.3 Các giải pháp an tồn thơng tin </b>
Hiện nay mạng Internet được xây dựng dựa trên mơ hình 7 tầng OSI và sử dụng bộ giao thức truyền thông TCP/IP[8].
<i><b>Vấn đề đầu tiên là Bảo mật. Ta đã biết, ở một mạng Internet thơng thường, các </b></i>
gói tin được truyền dưới dạng không mã hóa, ta có thể cài đặt một chương trình thông tin sẽ bị truy cập một cách trái phép, đây là hình thức tấn cơng chủ động hay
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">là hình thức tấn cơng bên theo dõi mạng. Khi đó ta có thể nắm bắt các gói tin trên mạng, đọc chúng ra, các trong mạng. Để chống lại việc này, ta tiến hành các hình thức bảo mật như: Với phần cứng, ta xây dựng các mạng riêng ảo, với các giao thức truyền thơng đã được mã hóa. Với phần mềm, ta xây dựng các chương trình mã hóa dữ liệu riêng biệt, các dữ liệu truyền đi sẽ được mã hóa ở nguồn truyền và giải mã ở đích nhận.
<i><b>Để ngăn chặn các thơng tin trái phép cũng như các hình thức phá hoại từ ngồi </b></i>
vào, ta sử dụng các giải pháp an toàn về phần cứng và phần mềm như: Firewall, các bộ định tuyến Router, các Switch thông minh...
<i><b>Theo dõi các thông tin trên mạng phục vụ mục đích theo dõi phát hiện các thông </b></i>
tin trái phép, các hình thức phá hoại mới mà các biện pháp ngăn chặn chưa phát hiện ra. Sau đó, từ các thơng tin theo dõi được, ta đề ra các cách giải quyết, xử lý. Cuối cùng ta sẽ tiến hành bổ sung các cách giải quyết đó vào giải pháp ngăn chặn như nạp thêm thông tin chặn bắt vào Firewall, thiết lập thêm các bộ định tuyến, phân mảnh mạng, quy hoach lại luồng đi của các gói tin...
Một giải pháp an ninh hoàn hảo là giải pháp cực đại hố được lợi ích của việc truyền thông dữ liệu qua mạng nhưng phải đảm bảo được các thành phần:
<i><b>Bảo vệ vật lý (Physical Security) Mật mã hoá (Encryption) </b></i>
<i><b>Kiểm soát truy nhập (Access Control) </b></i>
<i><b>Chứng thực (Certification) và xác thực (Authentication) thông tin </b></i>
<i>Trong các chương tiếp theo, “Các kỹ thuật mã hóa” – chương 2 và “Chữ kí điện </i>
<i>tử” – chương 3, sẽ trình bày chi tiết hơn vấn đề đảm bảo an toàn hệ thống mạng </i>
<i>bằng việc sử dụng các cơ chế mật mã hoá, cơ chế chứng thực và xác thực thông tin. </i>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><b>1.4 Khái niệm mã hóa và giải mã </b>
<i> Mã hố (encryption) là q trình chuyển đổi thơng tin từ dạng có thể đọc được </i>
sang dạng không thể đọc được đối với những người khơng được nhận thơng tin đó.
<i>Giải mã (decryption) là quá trình chuyển đổi thơng tin từ dạng khơng đọc sang </i>
dạng có thể đọc được. Các thuật toán mã hoá là các hàm toán học đặc biệt [1]. Việc mã hoá nhằm đảm bảo tính bí mật của thơng tin, ngăn chặn những kẻ đột nhập đọc được hoặc thay đổi nó. Mã hố và giải mã có ngun tắc là phải đảm bảo
<i>quan hệ 1-1 giữa bản tin ban đầu (plaintext) và bản tin được mã hoá (ciphertext). Sự </i>
mã hố và giải mã có ý nghĩa là thực hiện các hàm có hai tham số:
<i><b>Bản tin được mã hoá (là plaintext) /giải mã (là ciphertext) Từ khoá mã (key) </b></i>
Gọi hai hàm đó là E<sub>k</sub> và D<sub>k</sub> ứng với một từ khố mã K. Khi đó hai hàm này phải thoả mãn biểu thức sau:
C = E<sub>k</sub><b>(P) </b>
P = D<sub>k</sub>(C) = D<sub>k</sub>(E<sub>k</sub><b>(P)) </b>
Để giải mã thì phải biết được cách mã hố, tức là phải biết được hàm E<sub>k</sub> và biết được Key. Hàm mã hố E<sub>k</sub> có thể được thay đổi sau vài năm nhưng Key có thể thay đổi thường xun nếu cần, hàm E<small>k</small> nói chung khơng thể thay đổi liên tục vì sẽ rất khó khăn để nhiều người dùng cùng thay đổi cả phần cứng và phần mềm thiết bị mã hoá, giải mã. Một phương pháp mã hoá dữ liệu được bảo mật 5 năm thì có nghĩa là đã bảo mật thành công.
Hàm E<sub>k</sub> trước khi dùng phải được kiểm tra độ an toàn bảo mật và phải được thống nhất sử dụng chung. Vì vậy hàm E<sub>k</sub> chưa phải là cái bí mật, Key mới thực sự là bí mật. Mức độ bảo mật sẽ tăng lên khi chiều dài của Key tăng lên.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b><small>Hình 1.2: Mơ hình Mã hố và Giải mã </small></b>
Để bảo đảm an tồn thì phương thức mã hố phải có độ bảo mật cao. Ngay cả khi giải mã được một số đoạn tin thì vẫn rất khó giải mã được nội dung thơng tin.
<b>Khơng gian khóa </b>
Kích thước của khơng gian khóa là số các cặp khóa mã hóa / giải mã sẵn có trong hệ thống mã [1]. Một khóa là một phương tiện đặc trưng để xác định phép biến đổi mã hóa (từ một tập các phép biến đổi) được dùng. Ví dụ, một phép biến đổi
<i>mã khối độ dài t có số các hàm mã hóa là t!. Mỗi hàm có thể được mơ tả đơn giản </i>
bằng một phép hoán vị gọi là khóa.
Có sự liên quan chặt chẽ giữa tính bảo mật của một hệ thống mã hóa với kích thước khơng gian khóa. Kích thước khóa càng lớn thì mức độ bảo mật càng cao. Đây là một tính chất rất quan trọng
<b>1.5 Kỹ thuật mã hóa khóa bí mật 1.5.1 Mã khóa bí mật </b>
Mã hóa khóa bí mật hay mã hóa khóa đối xứng là dạng kinh điển của mật mã học đã được sử dụng từ xa xưa. Trong các hệ mã khóa đối xứng, hai bên gửi và nhận tin chia sẻ chung một khóa bí mật được dùng để mã hóa và giải mã các bản
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">tin. Điều này đòi hỏi giữa hai bên phải thiết lập một kênh truyền liên lạc an toàn để họ thống nhất về khóa bí mật dùng chung đó.
<b><small>Hình 1.3: Sơ đồ minh hoạ Symetric-key Crytography </small></b>
Một truyền thơng hai phía sử dụng mã hóa khóa đối xứng có thể mơ tả bằng sơ đồ khối như hình sau [1]:
<b><small>Hình 1.4: Truyền thơng hai phía sử dụng mã hóa đối xứng </small></b>
<b>1.5.2 Mã hóa sử dụng chuẩn DES </b>
Vào những năm đầu thập kỷ 70, nhu cầu có một chuẩn chung về thuật tốn mã
<i>hóa đã trở nên rõ ràng. Vào năm 1977, National Bureau of Standard đã đưa ra </i>
chuẩn DES để sử dụng cho các ứng dụng ở Mỹ [2]. DES mã hóa các khối data 64
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">bits với khóa 56 bits (thực ra DES sử dụng khố có độ dài 64 bits nhưng sử dụng 8
<i>bits để kiểm tra chẵn lẻ (parity) tại các vị trí 8,16,...64 nên độ dài khố chỉ cịn lại </i>
56 bits). Như vậy DES thuộc loại mã hoá đối xứng và sử dụng mơ hình mã khối CBC. Sơ đồ của phương pháp mã hố này như hình 2.7:
<b><small>Hình 1.5: Giải thuật DES (a)-Sơ đồ tổng quan (b)-Một tầng lặp </small></b>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23"><i>Bản rõ (PlainText) được mã hoá từng khối 64 bits thành khối bản mã (CipherText) 64 bits. Thuật toán được tham số hoá bằng một key 56 bits. Phép mã </i>
hoá gồm 19 tầng:
<b>- Tầng 1: là tầng hoán vị các bit của plainText - Tầng 18: đổi chỗ 32 bits trái với 32 bits phải </b>
- Tầng 19: đảo từng bit một 0 → 1 và 1 → 0
- Tầng 2-17 là các tầng lặp (hoạt động giống nhau nhưng có khố khác nhau) Tại mỗi tầng lặp i (2 i 17), 64 bits vào được chia làm 2 nửa L<sub>i-1</sub> và R<sub>i-1</sub> cịn 64 bits ra có 2 nửa là L<sub>i</sub> và R<sub>i</sub> trong đó L<sub>i </sub>= R<sub>i-1</sub> và R<sub>i </sub>= L<sub>i-1</sub> ⊕ f(R<sub>i-1</sub>,K<sub>i</sub>) | K<sub>i</sub> (khoá 48 bits) được tạo ra từ key input 56 bits. Tất cả sự phức tạp nằm ở hàm f bao gồm bước như sau:
32 bits R<sub>i-1</sub> được hoán vị và lặp lại theo một qui luật cố định để tạo ra chuỗi E có 48 bits
E và K<sub>i</sub> đi qua một bộ XOR để lấy ra 48 bits
<i> 48 bits này được chia ra làm 8 nhóm 6 bits, mỗi nhóm được đưa vào một </i>
<i>S-box riêng (S-S-box là bộ mã hoá thay thế) 6 bits đầu vào tương ứng với 4 bits </i>
đầu ra trên S-box đó
8*4 bits được đi qua một bộ P-box (P-box là bộ mã hoá thay đổi trật tự) Trong mỗi tầng lặp dùng một K<sub>i</sub> riêng được tạo ra như sau:
56 bits Key được hoán vị ở mỗi tầng khác nhau
Ngay trước mỗi tầng lặp 56 bits đã được hốn vị được chia thành hai nhóm 28 bits, mỗi nhóm quay trái số bit tuỳ theo chỉ số tầng lặp i (nếu i=1,2,9,16 thì quay trái 1 bit, các tầng còn lại quay trái 2 bits)
Kết quả nhận được lại được hoán vị rồi lấy ra 48 bits (Sau khi hoán vị C<small>i</small> bỏ qua các bit 9,18,22,25 tạo thành 24 bits nửa trái của K<sub>i</sub> còn D<sub>i</sub> bỏ qua các bit 35,38,43,54 tạo ra 24 bits nửa phải của K<sub>i</sub>)
Như vậy một tập con 48 bit được lấy ra từ 56 bit Key được thay đổi ở mỗi vòng.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24"><i><b>Cấu trúc của các S-box: </b></i>
Mỗi S-box như một bộ biến đổi gồm 4 bảng biến đổi, mỗi bảng biến đổi một đầu vào 4 bit thành đầu ra cũng 4 bit (bảng 10 dịng). Đầu vào 4 bit chính là lấy từ các bit 2-5 của nhóm 6 bit. Cịn lại các bit 1 và 6 sẽ dùng để xác định 1 trong 4 bảng biến đổi của S-box. Vì thế chúng được gọi là các bit điều khiển.
Quá trình giải mã DES được thực hiện theo cùng giải thuật này nhưng theo thứ tự ngược lại: ở vòng lặp thứ i sử dụng khoá K<sub>17-i</sub> (K<sub>16</sub> ở vòng lặp đầu tiên, K<sub>1</sub> ở vòng lặp cuối cùng) và R<small>i-1</small> = L<sub>i</sub> ; L<sub>i-1 </sub>= R<sub>i</sub> ⊕ F(L<sub>i</sub>,K<sub>i</sub>).
Sơ đồ biểu diễn thuật toán tạo khóa cho DES được mơ tả như trong hình 2.8 sau:
<b><small>Hình 1.6: Sơ đồ biểu diễn thuật tốn tạo khố </small></b>
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25"><i><b>Tấn cơng bằng phương pháp vét cạn (hay brute-force attack) </b></i>
<i>Tấn công dạng brute-force là dạng tấn cơng bằng cách thử tất cả các khố đến khi tìm được khố đúng. </i>
DES có 2<sup>56</sup>=10<sup>7</sup> khóa. Nếu như biết một cặp TIN/MÃ thì chúng ta có thể có tất cả 10<small>7</small> này để tìm ra khóa cho kết quả khớp.
<i>Một cuộc tấn cơng dạng brute-force gần đây có khả năng thử 245 tỉ khoá trong </i>
một giây do tốc độ chip xử lý ngày càng cao và môi trường tính tốn song song ngày càng mở rộng. Với khả năng tính tốn này, một tin tặc có thể thử tất cả các khố 56 bits (2<sup>56</sup> trường hợp) trong 81 giờ, tìm ra khố với thời gian trung bình là 40 giờ. Vì vậy, một bản tin được mã hoá bằng giải thuật DES ngun bản hồn tồn có thể khơi phục được. Tuy nhiên với khoá 112 bits (2<small>112</small> trường hợp) thì sẽ phải
<i>mất trung bình 366 nghìn tỉ (trillion) năm để khám phá ra khố. Chính vì vậy, để </i>
tăng tính bảo mật của thơng tin, phải tăng số lần mã hố lên, chẳng hạn mã hoá DES
<i>3 lần (Triple DES). </i>
<b><small>Hình 1.7: Mã hóa 3 tầng DES (Triple DES) </small></b>
<i>Đây chính là phương pháp được sử dụng nhiều nhất để thay thế cho DES. Triple </i>
<i>DES được thực hiện bằng việc chuyển dữ liệu thành dạng mật mã thông qua 3 quá </i>
trình DES. Dữ liệu trước hết được mã hoá với một khoá bằng việc truyền qua giải thuật mã hố DES. Sau đó, dữ liệu đầu ra được truyền qua giải thuật mã hoá DES
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">sử dụng khoá thứ hai. Cuối cùng, đầu ra của quá trình thứ hai được truyền qua mã hóa DES một lần nữa sử dụng hoặc một khoá thứ ba hoặc dùng lại khoá thứ nhất. Với trường hợp đầu, chiều dài tổng cộng của khoá là 112 bits (Triple DES 2 khoá), trường hợp sau là 168 bits (Triple DES 3 khoá).
Triple DES với 2 khoá được sử dụng thay thế cho DES khá phổ biến và đã được chấp nhận sử dụng trong chuẩn quản lý khố tài chính ISO 8732. Triple DES hoạt động chậm hơn gấp 3 lần so với DES nhưng an toàn hơn gấp hàng tỉ lần nếu sử dụng một cách đúng đắn.
<b>1.6 Kỹ thuật mã hóa khóa cơng khai </b>
Mã hóa khóa đối xứng đã và đang được sử dụng rất rộng rãi, tạo ra nhiều hệ thống liên lạc một cách an toàn qua mạng cơng cộng. Tuy nhiên, mã hóa khóa đối xứng gặp một số vấn đề, đặc biệt đối với các hệ thống lớn:
Vấn đề quản lý khóa (Tạo, lưu mật, trao chuyển …) là rất phức tạp và ngày càng khó khi sử dụng trong mơi trường trao đổi tin giữa rất nhiều người dùng. Với số lượng user là n thì số lượng khóa cần tạo lập là n(n - 1)/2. Mỗi người dùng phải tạo và lưu (n-1) khóa bí mật để làm việc với (n-1) người khác trên mạng. Như vậy rất khó khăn và khơng an tồn khi n tăng lớn.
Vấn đề thứ hai là trên cơ sở mã đối xứng, không thể thiết lập được khái niệm chữ kí điện tử (mà thể hiện được các chức năng của chữ kí tay trong thực tế) và cũng do đó khơng có dịch vụ khơng thể phủ nhận được (non - repudiation) cho các giao dịch thương mại trên mạng.
B K<sub>AB</sub> A K<sub>BD</sub> K<sub>AC</sub> K<small>AD </small>K<small>BC</small>
D C
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27"><i> Xuất phát từ sự hạn chế của phương pháp mã hoá đối xứng, mã khố cơng khai hay mã hố bất đối xứng (asymmetric algorithm) đã ra đời và nhanh chóng tạo ra </i>
một cuộc cách mạng trong tồn bộ lịch sử mã hố.
<b>1.6.1 Mã khóa cơng khai </b>
Diffie và Hellman trong các cơng trình của mình (1975 - 1976) đã đề xuất một loại hệ mã với nguyên tắc mới gọi là hệ mã với khóa cơng khai (public key cryptosystems), trong đó hệ mã được gắn với một người sử dụng (user) nhất định chứ không phải gắn với một cuộc truyền tin giữa một cặp người dùng.
Trong hệ thống mã hóa khóa cơng khai, mỗi user có hai khóa, một được gọi là khóa bí mật (secret key hay private key) và một được gọi là khóa cơng khai (public key). Khóa thứ nhất chỉ mình user biết và giữ bí mật, khóa thứ hai được phổ biến cơng khai. Khóa thứ nhất thường đi liền với thuật tốn giải mã, cịn khóa thứ hai thường đi liền với thuật tốn sinh mã, tuy nhiên điều đó khơng phải là bắt buộc. Kí hiệu z là khóa riêng và Z là khóa cơng khai.
Hoạt động của chúng là đối xứng:
X = D(z, E(Z,X)) (1) Và X = E(Z, D(z,X)) (2)
Trong đó (1) được sử dụng cho truyền tin mật : B, C, D muốn gửi tin cho A chỉ việc mã hóa thơng tin với khóa cơng khai (Z<sub>A</sub>) của A rồi gửi đi. Chỉ có A mới có thể có khóa riêng để giải mã (z<small>A</small>) và đọc được tin, E dù nghe trộm cũng không thể giải mã để lấy được tin vì khơng có khóa z<sub>A</sub>.
Cịn (2) sẽ được sử dụng để xây dựng các hệ chữ kí điện tử (Ký bằng E(Z<sub>A</sub>) và kiểm định bằng D(z<sub>A</sub>)).
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><b><small>Hình 1.8 Sơ đồ minh hoạ Public-key Crytography </small></b>
Một truyền thơng hai phía sử dụng mã hóa khóa đối xứng có thể mơ tả bằng sơ đồ khối như hình sau[1]:
<b><small>Hình 1.9: Mơ hình truyền thơng hai phía sử dụng mã hóa khóa cơng khai </small></b>
<b>1.6.2 Ngun tắc cấu tạo một hệ khóa cơng khai </b>
Một hệ mã PKC có thể được tạo dựng trên cơ sở sử dụng một hàm kiểu one – way (một chiều). Một hàm f được gọi là one – way nếu:
a. Đối với mọi X tính ra Y = f(X) là dễ dàng;
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">Cần một hàm one – way đặc biệt mà có trang bị một trap – door (cửa bẫy), sao cho nếu biết trap – door thì việc tính X khi biết f(X) là dễ dàng còn ngược lại sẽ khó khăn.
Một hàm one – way có trap – door như thế có thể dùng để tạo một hệ mã PKC. Lấy E<small>z</small> (hàm sinh mã) là hàm one – way có trap – door. Trap – door chính là khóa bí mật, mà nếu biết nó thì có thể dễ dàng tính được nghịch đảo của E<sub>z</sub> tức là biết D<sub>z</sub>, còn nếu khơng biết thì rất khó tính được.
Những giải thuật khố cơng khai dựa vào khóa cơng khai để mã hố và khóa bí mật có liên quan để giải mã. Như vậy, mỗi người tham gia vào hệ thống đều có hai khố: khố mã hoá E và khoá giải mã D.
Những giải thuật này có những đặc tính quan trọng sau: D(E(P)) = P (Plaintext - bản tin mã hoá)
Khối lượng tính tốn khơng khả thi để xác định khóa giải mã D khi chỉ biết giải thuật mật mã và khóa mã hóa E.
Khơng thể phát hiện khố mã hố E từ bản tin P chọn sẵn
Trong một số giải thuật như RSA cịn có đặc điểm: hoặc một trong hai khóa liên quan có thể được sử dụng cho mã hóa cịn khóa kia được dùng cho giải mã.
Ngồi ra có một đặc tính khác, đó là việc tính tốn cho các bên tạo cặp khoá mã hoá - giải mã, việc tính tốn khi biết bản tin cần mã hố và khố cơng khai của bên kia để tạo bản mã tương ứng, việc sử dụng bản tin đã được mã hoá và khố bí mật của mình để khơi phục bản tin ban đầu phải dễ dàng thực hiện và với tốc độ cao.
Các bước cần thiết trong quá trình mã hóa khóa cơng khai:
Mỗi hệ thống đầu cuối trong mạng tạo ra một cặp khóa để dùng cho mã hóa và giải mã đoạn tin mà nó sẽ nhận.
Mỗi hệ thống công bố rộng rãi khóa mã hóa bằng cách đặt khóa vào một
<i>thanh ghi hay một file cơng khai. Đây là khóa cơng khai (public key), khóa cịn lại được giữ riêng (private key). </i>
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30"> Nếu A muốn gửi một đoạn tin P tới B thì A mã hóa đoạn tin bằng khóa cơng khai E<sub>B</sub> của B (gửi E<sub>B</sub>(P) cho B).
Khi B nhận đoạn tin mã hóa, nó giải mã bằng khóa bí mật D<sub>B</sub> của mình (tính D<sub>B</sub>(E<sub>B</sub>(P))=P). Khơng một người nào khác có thể giải mã đoạn tin mã này bởi vì chỉ có mình B biết khóa bí mật đó thơi.
Với cách tiếp cận này, tất cả những người tham gia có thể truy xuất khóa cơng khai. Khóa riêng được tạo ra bởi từng cá nhân, vì vậy khơng bao giờ được công bố. Ở bất kỳ thời điểm nào, hệ thống cũng có thể thay đổi khố riêng của nó và cơng bố khố cơng khai tương ứng để thay thế khố cơng khai cũ.
<b>1.6.3 Mã hóa khóa cơng khai RSA </b>
RSA là hệ PK phổ biến và cũng đa năng nhất trong thức tế, phát minh bởi Rivest, Shamir và Adleman. Nó là chuẩn bất thành văn đối với PKC, cung cấp tính bí mật (secretcy), chứng thực (authentication) và chữ kí điện tử (digital signature).
RSA dựa trên tính khó của bài tốn phân tích các số lớn ra thừa số nguyên tố: Biết một số số nguyên tố, nhân chúng với nhau để thu được một hợp số là dễ, còn biết hợp số, phân tích nó ra thừa số nguyên tố là khó.
<b>Nội dung giải thuật RSA </b>như sau [1]:
<i>Cho khối chưa mã hóa – khối rõ (plaintext block) P và khối đã mã hóa – khối mã (ciphertext block) C. RSA sử dụng mơ hình mã khối, bản tin được mã hố từng khối </i>
có độ dài không cố định nhưng nhỏ hơn giá trị n mà cả hai bên gửi và nhận cùng biết. Việc mã hoá và giải mã được thực hiện theo hình thức sau:
C = P<small>e</small>
mod n P = C<small>d</small>
mod n = (P<sup>e</sup>)<sup>d</sup> mod n = P<sup>ed</sup> mod n
Người gửi biết e và chỉ người nhận biết d. Như vậy đây là giải thuật có mã khố cơng khai là KU=[e,n] và khố bí mật KR=[d,n]
Theo đặc tính của giải thuật mã khố cơng khai phải thoả mãn các điều kiện:
Có thể tìm thấy giá trị d,e,n để P=P<small>ed</small>
<b> mod n với mọi P<n </b>
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31"> Một cách tương đối dễ dàng tính P<small>e</small>
và C<sup>d</sup><b> với mọi P<n </b>
<b>Khơng thể xác định d khi biết e và n </b>
Theo lý thuyết của Euler: cho 2 số nguyên tố p và q, 2 số nguyên n và P (n=p*q,
Giả sử user A đã cơng bố khóa cơng khai e của A và user B muốn gửi đoạn tin P tới A. Khi đó B tính C = P<small>e</small> mod n và truyền C. Khi nhận được đoạn tin C này, user A giải mã bằng cách tính C<small>d</small> mod n. Có thể thấy rằng P = C<sup>d</sup> mod n vì:
de mod Φ(n) = 1 hay de = kΦ(n) + 1 P<small>de</small>
mod n = P<sup>kΦ (n) + 1</sup> = P<sup>k (p-1) (q-1) + 1 </sup>= P mod n = P (vì 0<P<n) C<small>d</small>
mod n = (P<sup>e</sup>)<sup>d</sup> mod n = P<sup>de</sup> mod n = P.
<b>Thuật tốn tạo khóa trong hệ mã RSA: </b>
1. Tạo 2 số nguyên tố lớn p và q (thông thường lớn hơn 10<sup>100</sup>)
<i>2. Tính n = p*q, Φ(n) = (p-1)*(q-1) (Hàm Euler) </i>
3. Chọn 1 số ngẫu nhiên 1<e<Φ(n): gcd(Φ(n), e) = 1 với gcd là ước số chung
<i> lớn nhất (Greatest Common Divisor). </i>
4. Tính d: d = e<sup>-1</sup><i> mod Φ(n) (giải thuật Extended Euclidean) </i>
<i>5. Khóa cơng khai : KU = [e, n] (public key). Khóa bí mật : KR = [d, n] </i>
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32"><i>B mã hóa bản tin m gửi cho A và A thực hiện giải mã. </i>
<i>a) Nhận khóa cơng khai xác thực của A (n,e) </i>
<i>b) Biểu diễn bản tin dưới dạng số nguyên P trong khoảng [ 0, n- 1] c) Tính C = P<sup>e</sup> mod n </i>
<i>d) Gửi bản tin mã hóa C tới A </i>
sau:
<i>a) Sử dụng khóa bí mật d để khơi phục P= C<small>d</small></i>
<i> mod n. </i>
Cả mã hố và giải mã trong RSA đều có một vấn đề là luỹ thừa một số tự nhiên lên và mod n. Nếu tính xong luỹ thừa cho các số tự nhiên và giảm theo modul n, giá trị trung gian sẽ rất lớn. Tuy nhiên chúng ta có thể sử dụng một tính chất của giải thuật modul để giảm giá trị trung gian, điều này sẽ làm cơng việc tính tốn khả thi hơn.
<i>[(a mod n) x (b mod n)] mod n = (a x b) mod n </i>
Ta cũng có thể giảm cơng việc tính luỹ thừa theo cách sau:
x<sup>16</sup> = x * x * x * x * x * x * x * x * x * x * x * x * x * x * x * x = ((((x)<sup>2</sup>)<sup>2</sup>)<sup>2</sup>)<sup>2 </sup> Bên cạnh đó một phương pháp thường được áp dụng là chia nhỏ bản tin thành các khối P để cho 0P<n tức là mỗi khối P này gồm có nhiều nhất là k bít | k thoả mãn 2<sup>k</sup><n.. Nếu bản tin không chia được ngun lần khối P thì có thể thêm ký tự ngẫu nhiên nào đó.
Mức độ an toàn của phương pháp càng lớn khi chọn các số n càng lớn. Ví dụ
<i>như p và q chọn 200 chữ số để phá khoá cần phải 4 tỉ năm để tính (thời gian chi phí </i>
<i>lớn nhất của thuật tốn là thời gian phân tích một số lớn ra tích của các thừa số nguyên tố bởi vì muốn xác định được d từ e và n thì nhất định thám mã phải biết được p và q , với kỹ thuật hiện đại như ngày nay vẫn cần hàng triệu năm để phân tích một số có 200 chữ số ra tích các thừa số, vì vậy chưa có một thám mã nào thực sự hiệu quả trong việc phá mã RSA). Tuy nhiên khi n càng tăng thì thời gian thực </i>
hiện mã hố sẽ rất lâu.
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">Trong thực tế để khắc phục nhược điểm về tốc độ xử lý của phương pháp mã
<i>hố cơng khai người ta sẽ tiến hành mã hoá bức điện bằng một thuật toán khố bí </i>
<i>mật (mã hố đối xứng) như DES, rồi mã hố chìa khố bí mật (secret-key) với một hệ khố cơng khai như RSA. Ta nói rằng hệ mật khố cơng khai “truyền tải” khố </i>
bí mật. Do khố bí mật thường ngắn hơn so với bức điện, việc mã hoá theo cách này sẽ nhanh hơn so với việc chỉ dùng mật mã khố cơng khai để mã hoá. Do vậy mỗi bức điện được truyền một cách an tồn trên mạng sẽ có hai phần: một bức điện thật (được mã hoá bằng hệ mã khố bí mật) và chìa khố được dùng để mã hố bức điện (chìa khố này được sử dụng hệ mã khố cơng khai). Việc đọc bức điện theo đó sẽ có hai bước: đầu tiên là giải mã khố bí mật, sau đó dùng khố bí mật này giải mã
<i>bức điện. Phương pháp này được gọi là Bao điện tử (Digital Envelope). </i>
<b>1.6.4 Chứng thực điện tử </b>
Chứng thực điện tử là một chứng thực sử dụng chữ ký số để gắn một khóa cơng khai với một thực thể (cá nhân, máy chủ hoặc công ty...). Một chứng thực khóa cơng khai tiêu biểu thường bao gồm khóa cơng khai và các thơng tin (tên, địa chỉ...) về thực thể sở hữu khóa đó. Chứng thực điện tử có thể được sử dụng để kiểm tra một khóa cơng khai nào đó thuộc về ai.
Trong một mơ hình hạ tầng khóa cơng khai (PKI) tiêu biểu, chữ ký trong chứng thực thuộc về nhà cung cấp chứng thực số (certificate authority, viết tắt là CA). Trong mơ hình mạng lưới tín nhiệm (web of trust), thì chữ ký có thể là của chính thực thể đó hoặc của một thực thể khác. Trong bất kỳ trường hợp nào thì chữ ký trong chứng thực là sự đảm bảo của người ký về mối liên hệ giữa khóa cơng khai và thực thể được chứng nhận.
Việc sử dụng chứng thực sẽ tạo điều kiện áp dụng rộng rãi mật mã hóa khóa công khai. Đối với hệ thống mã hóa khóa bí mật, việc trao đổi khóa giữa những người sử dụng trên quy mô lớn là không thể thực hiện được. Hệ thống mã hóa khóa cơng khai có thể tránh được vấn đề này. Trên nguyên tắc nếu Alice và Bob muốn người khác gửi thông tin mật cho mình thì chỉ cần cơng bố khóa cơng khai của
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">chính mình. Bất kỳ ai có được khóa này đều có thể gửi thông tin mật cho họ. Tuy nhiên, bất kỳ người nào (David) cũng có khả năng đưa ra một khóa cơng khai khác và giả mạo rằng đó là khóa của Alice. Bằng cách làm như vậy kẻ tấn cơng có thể đọc được một số thơng tin gửi cho Alice. Nếu Alice đưa khóa cơng khai của mình vào một chứng thực và chứng thực này được một bên thứ 3 (Trent) xác nhận bằng chữ ký điện tử thì bất kỳ ai tin tưởng vào Trent sẽ có thể kiểm tra khóa công khai của Alice. Trong hạ tầng khóa cơng cộng thì Trent chính là nhà cung cấp chứng thực số (CA). Trong mơ hình mạng lưới tín nhiệm, Trent có thể là bất kỳ người dùng nào và mức độ tin tưởng vào sự chứng thực tùy thuộc vào sự đánh giá của người dùng.
Khi áp dụng chứng thực ở quy mơ lớn, có rất nhiều CA cùng hoạt động. Vì vậy Alice có thể khơng quen thuộc (không đủ tin tưởng) với CA của Bob. Do đó chứng thực của Bob có thể phải bao gồm chữ ký của CA ở mức cao hơn CA2. Quá trình này dẫn đến việc hình thành một mạng lưới quan hệ phức tạp và phân tầng giữa các CA. Hạ tầng khóa cơng khai thơng thường chính là chỉ tới các phần mềm để quản lý hệ thống này. Trong tiêu chuẩn X.509 về hệ thống hạ tầng khóa cơng khai, mạng lưới CA tạo thành cây từ trên xuống với gốc là một CA trung tâm mà không cần được chứng thực bởi một bên thứ 3 nào khác.
Một chứng thực khóa cơng khai có thể bị thu hồi nếu như khóa bí mật của nó đã bị lộ hoặc mối liên hệ giữa khóa cơng khai và chủ thể sở hữu đã thay đổi. Điều này có thể xảy ra ở mức độ không thường xuyên nhưng người sử dụng phải ln kiểm tra tính pháp lý của chứng thực mỗi khi sử dụng. Điều này có thể thực hiện bằng cách so sánh chứng thực với danh sách các chứng thực bị thu hồi (certificate revocation list - CRL). Việc đảm bảo danh sách này chính xác và cập nhật là chức năng cơ bản của hạ tầng khóa cơng cộng tập trung. Tuy nhiên cơng việc này địi hỏi nhân cơng cũng như ngân sách nên thường không được thực hiện đầy đủ. Để thực sự đạt hiệu quả, danh sách này phải luôn sẵn sàng cho bất kỳ ai cần đến vào bất kỳ thời điểm nào tại mọi nơi. Một cách kiểm tra khác là truy vấn vào nơi đã cung cấp
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">chứng thực với giao thức kiểm tra chứng thực online OCSP (Online Certificate Status Protocol).
Cả hai phương pháp trên đều có thể bị thay thế bằng một chuẩn mới: XKMS. Tuy nhiên tiêu chuẩn này chưa được sử dụng rộng rãi.
Một chứng thực tiêu biểu gồm các thành phần sau:
Khóa cơng khai;
Tên: có thể là tên người, máy chủ hoặc tổ chức;
Thời hạn sử dụng;
Địa chỉ URL của trung tâm thu hồi chứng thực (để kiểm tra).
Tiêu chuẩn chứng thực khóa cơng khai phổ biến nhất hiện này là X.509 do ITU-T ban hành. Tiêu chuẩn này được làm thích ứng với Internet bởi nhóm làm việc IETF PKIX working group.
<b>1.7 Các hệ thống lai </b>
Các hệ thống lai kết hợp các hệ mã khóa cơng khai và hệ mã khóa bí mật [22]. Bắt đầu quá trình giao tiếp giữa 2 bên là thiết lập một số thoả thuận, thực hiện bằng cách sử dụng một bộ mã khoá công khai, kết quả là các bên tham gia thoả thuận
<i>được khoá phiên (session key). Khoá phiên được sử dụng với một bộ mã hoá đối </i>
xứng để mã hố phần cịn lại của q trình giao tiếp. Khố phiên sẽ hết chức năng sử dụng khi các bên kết thúc quá trình giao tiếp. Nếu họ muốn một quá trình giao tiếp mới, họ sẽ tạo một khoá phiên mới, điều này sẽ làm cho việc thám mã vất vả hơn.
Những hệ thống lai có cả sức mạnh của các bộ mã hoá đối xứng và mã khoá công khai. Trong hệ thống lai, một bộ mã khoá công khai được dùng cho chứng thực và toàn vẹn dữ liệu, và một bộ mã hoá đối xứng được sử dụng để bảo mật
<i>(confidentiality). Những bộ mã hoá đối xứng có tốc độ nhanh hơn những bộ mã </i>
khoá cơng khai, do đó sẽ tăng tính hiệu quả khi sử dụng những bộ mã hoá đối xứng cho hầu hết quá trình giao tiếp. Cũng như vậy, những bộ mã khố cơng khai lại phù hợp với việc chứng thực và trao đổi khoá phiên.
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36"><b>1.8 So sánh mã hóa khóa đối xứng và mã hóa khóa cơng khai </b>
<small>* Khố: </small>
<small>sử dụng 1 khoá chung cho cả mã hoá và giải mã </small>
<i><small>khố được giữ bí mật (secret key) </small></i>
<small>* Khố: </small>
<small>- sử dụng hai khố </small>
<i><small>- 1 khố cơng khai (public key) dùng để mã hố </small></i>
<small>(được cơng bố rộng rãi) </small>
<i><small>- 1 khoá riêng (private key) dùng để giải mã (được </small></i>
<small>giữ bí mật) * Yêu cầu để hoạt động: </small>
<small>- Giải thuật tương tự cho mã hóa và giải mã - Người gửi và người nhận phải tham gia cùng giải thuật và cùng khóa </small>
<small>* Yêu cầu để hoạt động: </small>
<small>- Một giải thuật cho mã hóa và một giải thuật cho giải mã </small>
<small>- Người gửi và người nhận, mỗi người phải có cặp khóa cho riêng mình </small>
<small>* u cầu cho bảo mật: - Khóa phải được giữ bí mật. </small>
<small>- Khơng thể hay ít nhất khơng có tính thực tế để giải mã đoạn tin nếu thơng tin khác khơng có sẵn. </small>
<small>- Kiến thức về giải thuật cộng với các mẫu về mật mã khơng đủ để xác định khóa. </small>
<small>* u cầu cho bảo mật: </small>
<small>- Một trong hai khóa phải được giữ bí mật. - Khơng thể hay ít nhất khơng có tính thực tế để giải mã đoạn tin nếu thơng tin khác khơng có sẵn. - Kiến thức về giải thuật cộng với một trong các khóa, cộng với các mẫu về mật mã không đủ để </small>
</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37"><b>1.9 Kết luận </b>
<i>Hai kỹ thuật cơ bản trong lý thuyết mã hóa là Mã hóa khóa bí mật (secret-key </i>
<i>crytography) và Mã hóa khóa cơng khai (public-key crytography). Hệ mã khố bí </i>
mật giống như việc sử dụng khố chìa, hai bên A và đều phải có chìa giống nhau để đóng hay mở, chỉ có hai người này mới sử dụng được khố đó, cịn hệ mã khố cơng khai giống như việc dùng thùng thư riêng cho mỗi người, B hay người nào đó muốn gửi gì cho A thì bỏ vào thùng, sau đó A sẽ dùng chìa riêng để mở.
Người ta sẽ dùng phương pháp mã khố bí mật hay mã khố cơng khai tuỳ theo u cầu về bảo mật để giữ bí mật thơng tin. Ứng dụng được xây dựng trong phần sau của đồ án sẽ sử dụng thuật tốn mã hóa khóa cơng khai RSA để kí số lên các
</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38"> Hoạt động của một hệ thống chữ kí điện tử
Phân loại các hệ thống chữ kí điện tử
Giải thuật chữ kí điện tử DSA
Ứng dụng chữ ký điện tử
___________________________________________________________________ Chương 2 trước hết trình bày khái quát về chữ kí điện tử và các khái niệm liên quan, việc sử dụng chữ kí điện tử để giải quyết vấn đề xác thực. Phần tiếp theo mô tả hoạt động của một hệ thống chữ kí điện tử. Phần cuối của chương sẽ đi vào hai phân loại chữ kí điện tử, sau đó trình bày cụ thể giải thuật chữ kí điện tử DSA được đưa ra trong chuẩn chữ kí điện tử DSS, cũng như thuật tốn băm được dùng trong chữ kí DSA là SHA.
</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39"><b>2.1 Một số khái niệm cơ bản </b>
<small></small> <b><small>Chữ kí số (Digital Signature) [4] </small></b>
Chữ kí số là sự biến đổi của một bản tin sử dụng một hệ thống mã bất đối xứng (asymmetric cryptosystem) và một hàm băm mà một người có bản tin ban đầu và khóa cơng khai của người kí có thể xác định chính xác được:
1. Sự biến đổi có được tạo ra bằng cách sử dụng khóa bí mật tương ứng với khóa cơng khai của người kí hay khơng.
2. Bản tin ban đầu có bị thay đổi do sự biến đổi của nó gây ra hay khơng. Chữ kí số (hay chữ kí điện tử) là ứng dụng quan trọng nhất của mã hố khố
<i>cơng khai . Chữ ký điện tử là một hình thức để đảm bảo tính pháp lý của các cam </i>
kết. Người gửi mã hóa đoạn tin (ký) bằng khóa bí mật của mình, người nhận giải mã bằng khóa cơng khai của người gửi. Chữ ký được áp dụng đối với thông điệp hay với một khối dữ liệu nhỏ tương ứng với thông điệp. Nó phải đáp ứng được các yêu cầu sau:
<b>- Phải tương đối dễ dàng để tạo ra chữ ký điện tử. </b>
<b>- Phải tương đối dễ dàng để xác định và kiểm tra chữ ký điện tử. </b>
- Phải khơng có khả năng tính tốn để giả mạo một chữ ký điện tử, hoặc
<b>tạo một đoạn tin mới cho một chữ ký điện tử có sẵn. </b>
- Người nhận có thể xác thực được đặc điểm nhận dạng của người gửi, nói cách khác, chữ ký phải sử dụng một số thông tin duy nhất đối với người gửi để chống cả giả mạo và phủ nhận. Vì vậy, người gửi sau này khơng
<b>thể chối bỏ được nội dung của bản tin mà mình đã gửi. </b>
<b>- Người nhận không thể bịa đặt hay thay đổi bản tin nhận được. </b>
<small></small> <b><small>Chứng chỉ (Certificate)[4] </small></b>
Chứng chỉ là một bản tin thực hiện các chức năng sau:
</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">1. Xác định tổ chức cấp chứng chỉ (Certification authority - CA) phát hành chứng chỉ đó.
2. Gọi tên hoặc nhận dạng người sử dụng chứng chỉ (subscriber). 3. Chứa khóa cơng khai của người sử dụng chứng chỉ
4. Xác định thời hạn hợp lệ (operational period) của chứng chỉ (tức khoảng thời gian mà thơng tin trong chứng chỉ cịn hiệu lực).
5. Xác định chứng chỉ đã được kí một cách số hóa bởi tổ chức cấp chứng chỉ phát hành nó.
Một người muốn xác minh một chữ kí điện tử thì ít nhất cần phải có: (1) khóa cơng khai tương ứng với khóa bí mật được dùng để tạo chữ kí, và (2) chứng cứ chắc chắn rằng khóa cơng khai (và do đó cả khóa bí mật tương ứng của cặp khóa) là của người ký. Mục đích cơ bản của chứng chỉ là đáp ứng cả hai yêu cầu này theo cách thức tin cậy.
Một chứng chỉ thông thường sẽ ở dạng các bản ghi nhị phân (binary record) nằm trong quá trình trao đổi dữ liệu điện tử (Electric Data Interchange - EDI) hiện thời. Việc sử dụng các trường bổ sung hay các mở rộng nhằm cung cấp thêm thông tin hay các thuộc tính bổ sung (ví dụ như sự xác nhận người sử dụng chứng chỉ (subscriber ) như một tác nhân, hay tham chiếu chéo đến các cơ sở dữ liệu khác cung cấp thông tin về người sử dụng) là không bắt buộc.
Tổ chức cấp chứng chỉ (CA) cần phải ký một cách số hóa lên chứng chỉ, nhằm hai mục đích: (1) Bảo vệ tính tồn vẹn thơng tin của chứng chỉ, và (2) cho phép xác nhận chữ kí điện tử của tổ chức cấp chứng chỉ.
Chữ kí điện tử của tổ chức cấp chứng chỉ (CA) cũng như chữ kí điện tử của người sử dụng chứng chỉ (subscriber) cần có một dấu thời gian (time - stamp) để thuận tiện cho việc chứng minh rằng chữ kí điện tử (của tổ chức cấp chứng chỉ hay của người sử dụng chứng chỉ) được tạo ra trong thời gian hiệu lực của một chứng chỉ hợp lệ, do đó chữ kí điện tử có khả năng kiểm định một chứng chỉ.
</div>