Tải bản đầy đủ (.pdf) (84 trang)

Giáo trình môn An toàn bảo mật hệ thống thông tin

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.29 MB, 84 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT </b>
<b>THÀNH PHỐ HỒ CHÍ MINH </b>


<b> </b>


<b> </b>
<b> </b>
<b> </b>


<b>GIÁO TRÌNH </b>



<b>MƠN HỌC: AN TỒN BẢO MẬT HỆ THỐNG THÔNG TIN </b>


<b>NGÀNH: HỆ THỐNG THÔNG TIN </b>



<b>TRÌNH ĐỘ: CAO ĐẲNG </b>


<b> </b>









</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT </b>
<b>THÀNH PHỐ HỒ CHÍ MINH </b>



<b> </b>
<b> </b>


<b>GIÁO TRÌNH </b>



<b>MƠN HỌC: AN TỒN BẢO MẬT HỆ THỐNG THƠNG TIN </b>
<b>NGÀNH: HỆ THỐNG THƠNG TIN </b>


<b>TRÌNH ĐỘ: CAO ĐẲNG </b>
<b> </b>


<b> THÔNG TIN CHỦ NHIỆM ĐỀ TÀI </b>
Họ tên: Võ Đào Thị Hồng Tuyết
Học vị: Thạc sĩ


Đơn vị: Khoa Công nghệ thông tin
Email:


<b> TRƯỞNG KHOA </b> <b>TỔ TRƯỞNG </b>


<b>BỘ MÔN </b>


<b>CHỦ NHIỆM </b>
<b>ĐỀ TÀI </b>


<b>HIỆU TRƯỞNG </b>
<b>DUYỆT </b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể được phép
dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Gần đây, môn học “An tồn và bảo mật thơng tin” đã được đưa vào giảng dạy tại
hầu hết các Khoa Công nghệ Thông tin của các trường đại học và cao đẳng. Do các ứng
dụng trên mạng Internet ngày các phát triển và mở rộng, nên an tồn thơng tin trên mạng


đã trở thành nhu cầu bắt buộc cho mọi hệ thống ứng dụng. Để đáp ứng yêu cầu học tập và
tự tìm hiểu của sinh viên chuyên ngành Hệ thống thông tin, giảng viên khoa Công nghệ
thông tin, trường Cao đẳng Kinh tế - Kỹ thuật thành phố Hồ Chí Minh đã tổ chức biên soạn
giáo trình này với mục đích trang bị các kiến thức cơ sở vừa đủ và giúp cho sinh viên hiểu
được bản chất của các khía cạnh an ninh thông tin và bảo mật thông tin, trong giáo trình đã
cố gắng trình bày tóm tắt các phần lý thuyết cơ bản và đưa ra các ứng dụng thực tế.


Giáo trình gồm 5 chương. Chương đầu nêu tổng quan về bảo mật, chương 2 tóm tắt
sơ lược về các loại bảo mật và cách phòng chống, chương 3 trình bày các phương pháp mã
hóa, chương 4 trình bày về chữ ký điện tử và chứng chỉ số, chương 5 nêu các ứng dụng
bảo mật.


<i>TP. Hồ Chí Minh, ngày 20 tháng 8 năm 2020 </i>
Tham gia biên soạn


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

TUYÊN BỐ BẢN QUYỀN ... 3


LỜI GIỚI THIỆU ... 4


MỤC LỤC ... 5


CHƯƠNG TRÌNH MƠN HỌC ... 9


CHƯƠNG 1: TỔNG QUAN ... 1


1. Khái niệm an tồn thơng tin và bảo mật thơng tin ... 1


1.1. Hệ thống thông tin ... 1


1.2. An tồn thơng tin ... 2



1.3. Bảo mật thông tin ... 2


2. Khái niệm bảo mật dữ liệu và các nguyên tắc cơ bản trong bảo mật dữ liệu ... 3


3. Mục tiêu của an toàn thông tin và bảo mật thông tin ... 4


4. Sự tấn cơng và mục đích tấn cơng ... 4


5. Các loại điểm yếu và loại tội phạm ... 5


6. Các biện pháp nhằm đảm bảo an tồn thơng tin và bảo mật thông tin ... 6


CHƯƠNG 2: CÁC LOẠI BẢO MẬT VÀ CÁCH PHÒNG CHỐNG ... 9


1. Bảo mật máy tính ở cấp độ chương trình ... 9


1.1. Sử dụng tường lửa (Firewall) ... 9


1.2. Virus máy tính ... 9


1.3. Thường xuyên cập nhật phần mềm ... 11


2. Bảo mật máy tính ở cấp độ hệ điều hành ... 11


2.1. Các vấn đề bảo vệ trong Hệ điều hành ... 11


2.2. Cài đặt các bản Security Update của hệ điều hành... 14


3. Bảo mật web ... 14



4. Bảo mật mạng ... 19


5. Cách phòng chống ... 22


CHƯƠNG 3: CÁC PHƯƠNG PHÁP MÃ HÓA ... 25


1. Khái niệm mã hóa ... 25


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

3.2. Phương pháp mã hóa VIIGNERE ... 29


3.3. Phương pháp mã hóa TRITHEMIUS ... 30


3.4. Phương pháp mã hóa BELASCO ... 31


4. Các phương pháp mã hóa hiện đại ... 31


4.1. Mã hóa DES (Data Encryption Standard) ... 32


4.2. Mã hóa RSA ... 40


5. Cài đặt thử nghiệm ... 43


CÂU HỎI ... 45


CHƯƠNG 4: CHỮ KÝ ĐIỆN TỬ VÀ CHỨNG CHỈ SỐ ... 46


1. Giới thiệu ... 46


2 Một số khái niệm cơ bản ... 47



2.1. Khái niệm Chữ ký điện tử ... 47


2.2. Chương trình ký điện tử ... 49


2.3. So sánh điểm khác biệt của chữ ký số và chữ ký điện tử ... 51


3. Vấn đề xác thực và chữ ký điện tử ... 51


4. Hoạt động của một hệ thống chữ ký điện tử ... 52


5. Phân loại các hệ thống chữ ký điện tử ... 52


6. Thuật toán chữ ký điện tử DSA ... 52


7. Giải thuật băm bảo mật SHA ... 55


7.1. Giới thiệu ... 55


7.2. Hash là gì? ... 56


7.3. SHA-1 và SHA-2 ... 57


7.4. Giữ chữ ký an toàn ... 59


8. Chứng chỉ số ... 60


8.1. Khái niệm Chứng chỉ số ... 60


8.2. Lợi ích của chứng chỉ số ... 61



CÂU HỎI ... 63


CHƯƠNG 5: - ỨNG DỤNG BẢO MẬT... 64


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

2.2. Các phương pháp xác thực: ... 65


3. Ứng dụng bảo mật trong thanh toán điện tử ... 65


3.1. Giao thức SSL ... 65


3.2. Giao thức SET ... 66


4. Ứng dụng bảo mật trong SSL ... 67


CÂU HỎI ... 71


TÀI LIỆU THAM KHẢO ... 72


DANH MỤC HÌNH ẢNH ... 73


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8></div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>Tên môn học: AN TỒN BẢO MẬT HỆ THỐNG THƠNG TIN </b>
<b>Mã mơn học: MH 3101311 </b>


<b>Thời gian thực hiện môn học: 60 giờ; (Lý thuyết: 30 giờ; Thực hành: 28 giờ; Kiểm tra: </b>
2 giờ)


<b>Đơn vị quản lý môn học: Khoa Công Nghệ Thơng Tin. </b>
<b>I. Vị trí, tính chất của mơn học: </b>



- Vị trí: Là mơn học chun ngành, học kỳ 5.
- Tính chất: mơn lý thuyết, mơn học tự chọn.
<b>II. Mục tiêu môn học: </b>


- Về kiến thức:


+ Trình bày được các khái niệm an tồn thơng tin, bảo mật thơng tin


+ Trình bày được khái niệm bảo mật dữ liệu và các nguyên tắc cơ bản trong bảo


mật dữ liệu


+ Nhận biết được sự cần thiết của việc bảo mật thông tin và bảo mật dữ liệu
+ Nhận biết được những kiểu tấn công thông thường của website


+ Trình bày phương pháp bảo mật máy tính ở cấp độ chương trình, cấp độ hệ điều


hành, cấp độ web, cấp độ mạng.


+ Trình bày phương pháp mã hóa cổ điển (CEASAR, VIIGNERE,


TRITHEMIUS, BELASCO) và phương pháp mã hóa hiện đại (DES, RSA) để
bảo mật dữ liệu


+ Trình bày được các khái niệm chữ ký điện tử (DSA) và chứng chỉ số


+ Mô tả được chức năng và công dụng của các ứng dụng bảo mật hệ thống thông


tin
- Về kỹ năng:



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

+ Phân biệt được các loại virus và cách phịng chống
+ Kiểm sốt được quyền truy cập


+ Ứng dụng cài đặt các loại tường lửa


+ Phân biệt được phương pháp mã hóa cổ điển và phương pháp mã hóa hiện đại
+ Cài đặt và thử nghiệm các giải thuật mã hóa


+ Ứng dụng bảo mật trong thanh tốn điện tử, SSL .


- Về năng lực tự chủ và trách nhiệm:


+ Nhận thức được tầm quan trọng của việc bảo vệ dữ liệu, bảo mật hệ thống thông


tin


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>CHƯƠNG 1: TỔNG QUAN </b>



<b>Giới thiệu: </b>


Trong Chương 1 sẽ trình bày các khái niệm về an tồn thơng tin và bảo mật thơng
tin, khái niệm về bảo mật dữ liệu, mục tiêu của an tồn thơng tin và bảo mật thơng tin,
sự tấn cơng và mục đích tấn cơng, các loại điểm yếu và loại tội phạm, các biện pháp
nhằm đảm bảo an tồn thơng tin và bảo mật thơng tin.


<b>Mục tiêu: </b>


Trình bày được các khái niệm cơ bản về an tồn thơng tin và bảo mật thơng tin
Trình bày được khái niệm bảo mật dữ liệu và các nguyên tắc cơ bản trong bảo


mật dữ liệu


Nhận biết được sự cần thiết của việc bảo mật thông tin và bảo mật dữ liệu
Nhận biết được những kiểu tấn công thông thường của website


<b>1. Khái niệm an tồn thơng tin và bảo mật thông tin </b>
<b>1.1. Hệ thống thông tin </b>


<b>1.1.1. Khái niệm </b>


Hệ thống thông tin (IS – Information System) là một hệ thống tích hợp các thành
phần nhằm phục vụ việc thu thập, lưu trữ, xử lý thông tin và chuyển giao thông tin, tri
thức và các sản phẩm số.


Một hệ thống thông tin dựa trên máy tính (Computer-Based Information System)
là một hệ thống thơng tin sử dụng cơng nghệ máy tính để thực thi các nhiệm vụ.


<b>1.1.2. Mơ hình hệ thống thông tin </b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

Các doanh nghiệp và các tổ chức sử dụng các hệ thống thông tin (HTTT) để thực
hiện và quản lý các hoạt động:


- Tương tác với khác khàng.
- Tương tác với các nhà cung cấp.


- Tương tác với các cơ quan chính quyền.
- Quảng bá thương hiệu và sản phẩm.
- Cạnh tranh với các đối thủ trên thị trường.
<b>1.2. An tồn thơng tin </b>



An tồn thông tin (Information Security) là việc bảo vệ chống truy nhập, sử
dụng, tiết lộ, sửa đổi, hoặc phá hủy thơng tin một cách trái phép.


An tồn thơng tin cịn bao gồm cả việc đảm bảo an tồn cho các thành phần,
hoặc hệ thống được sử dụng để quản lý, lưu trữ, xử lý và trao đổi thông tin.


<b>1.3. Bảo mật thông tin </b>
<b>1.3.1. Khái niệm </b>


Bảo mật hệ thống thông tin (Information Systems Security) là bảo vệ hệ thống
thông tin chống lại việc truy cập, sử dụng, chỉnh sửa, phá hủy, làm lộ và làm gián đoạn
thông tin và hoạt động của hệ thống một cách trái phép.


<b>1.3.2. Những yêu cầu bảo mật hệ thống thơng tin </b>


<b>Hình 1. 2 Các u cầu trong bảo mật hệ thống thơng tin </b>


<b>Tính bí mật (Confidentiality): bảo vệ dữ liệu không bị lộ ra ngồi một cách </b>
trái phép. Ví dụ: Trong hệ thống ngân hàng, một khách hàng được phép xem thông tin
số dư tài khoản của mình nhưng khơng được phép xem thơng tin của khách hàng khác.


<b>Tính tồn vẹn (Integrity): Chỉ những người dùng được ủy quyền mới được </b>
phép chỉnh sửa dữ liệu. Ví dụ: Trong hệ thống ngân hàng, không cho phép khách hàng
tự thay đối thơng tin số dư của tài khoản của mình.


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>Tính chống thối thác (Non-repudiation): Khả năng ngăn chặn việc từ chối </b>
một hành vi đã làm. Ví dụ: Trong hệ thống ngân hàng, có khả năng cung cấp bằng chứng
để chứng minh một hành vi khách hàng đã làm, như rút tiền, chuyển tiền.


<b>2. Khái niệm bảo mật dữ liệu và các nguyên tắc cơ bản trong bảo mật dữ liệu </b>


Các bước cơ bản trong bảo mật thơng tin


<b>Hình 1. 3 Các bước cơ bản trong bảo mật thông tin </b>


<b>Bước 1: Xác định các mối đe dọa (threat): cái gì có thể làm hại đến hệ thống? </b>
Các mối đe dọa bảo mật (security threat) là những sự kiện có khả năng ảnh hưởng
đến an tồn của hệ thống.


Ví dụ: tấn công từ chối dịch vụ (DoS và DDoS) là một nguy cơ đối với hệ thống
các máy chủ cung cấp dịch vụ trên mạng.


Khi nói đến nguy cơ, nghĩa là sự kiện đó chưa xảy ra, nhưng có khả năng xảy ra
và có khả năng gây hại cho hệ thống. Có những sự kiện có khả năng gây hại, nhưng
khơng có khả năng xảy ra đối với hệ thống thì khơng được xem là nguy cơ


Các mối đe dọa được chia làm 4 loại:


<b>- Xem thông tin một cách bất hợp pháp </b>
<b>- Chỉnh sửa thông tin một cách bất hợp pháp </b>
<b>- Từ chối dịch vụ </b>


<b>- Từ chối hành vi </b>
Các mối đe dọa thường gặp:


<b>- Lỗi và thiếu sót của người dùng (Errors and Omissions) </b>
<b>- Gian lận và đánh cắp thông tin (Fraud and Theft) </b>


<b>- Kẻ tấn công nguy hiểm (Malicious Hackers) </b>
<b>- Mã nguy hiểm (Malicious Code) </b>



<b>- Tấn công từ chối dịch vụ (Denial-of-Service Attacks) </b>
<b>- Social Engineering </b>


Lỗi và thiếu sót của người dùng: mối đe dọa của hệ thống thông tin xuất phát từ
những lỗi bảo mật, lỗi thao tác của những người dùng trong hệ thống.


<b>- Là mối đe dọa hàng đầu đối với một hệ thống thông tin </b>


<b>- Giải pháp: huấn luyện người dùng thực hiện đúng các thao tác, hạn chế </b>
sai sót, thiện hiện nguyên tắc quyền tối thiểu (least privilege) và thường xuyên back-up
hệ thống.


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>Lựa chọn cơ chế bảo mật (security mechanism): cách nào để hệ thống bảo mật </b>
<b>có thể đạt được những mục tiêu bảo mật đề ra? </b>


<b>3. Mục tiêu của an tồn thơng tin và bảo mật thông tin </b>
Ngăn chặn kẻ tấn cơng vi phạm các chính sách bảo mật
Phát hiện: Phát hiện các vi phạm chính sách bảo mật.


Phục hồi: Chặn các hành vi vi phạm đang diễn ra, đánh giá và sửa lỗi. Tiếp tục
hoạt động bình thường ngay cả khi tấn công đã xảy ra.


<b>4. Sự tấn cơng và mục đích tấn cơng </b>


<b>Hình 1.4 Mơ hình truyền tin bị tấn cơng </b>


<b>Các hệ thống trên mạng có thể là đối tượng của nhiều kiểu tấn công: </b>


- Tấn công giả mạo là một thực thể tấn công giả danh một thực thể khác. Tấn
công giả mạo thường được kết hợp với các dạng tấn công khác như tấn công chuyển tiếp


và tấn công sửa đổi thông báo.


- Tấn công chuyển tiếp xảy ra khi một thông báo, hoặc một phần thông báo
được gửi nhiều lần, gây ra các tác động tiêu cực.


- Tấn công sửa đổi thông báo xảy ra khi nội dung của một thông báo bị sửa
đổi nhưng không bị phát hiện.


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

pháp ngăn chặn hữu hiệu. Các hình thức tấn cơng này đều nhắm vào tính khả dụng của
hệ thống.


- Tấn công từ bên trong hệ thống xảy ra khi người dùng hợp pháp cố tình
hoặc vơ ý can thiệp hệ thống trái phép. Cịn tấn cơng từ bên ngồi là nghe trộm, thu
chặn, giả mạo người dùng hợp pháp và vượt quyền hoặc lách qua các cơ chế kiểm soát
truy nhập.


- Tấn công bị động là do thám, theo dõi đường truyền để: nhận được nội dung
bản tin hoặc theo dõi luồng truyền tin.


- Tấn công chủ động là thay đổi luồng dữ liệu để: giả mạo một người nào đó,
lặp lại bản tin trước, thay đổi ban tin khi truyền, từ chối dịch vụ.


- Tấn công bằng mã nguy hiểm là dùng một đoạn mã không mong muốn được
nhúng trong một chương trình nhằm thực hiện các truy cập trái phép vào hệ thống máy
tính để thu thập các thơng tin nhạy cảm, làm gián đoạn hoạt động hoặc gây hại cho hệ
thống máy tính, bao gồm: virus, worm, trojan horses, spyware, adware, backdoor,…


<b>Năm bước để tấn công vào một hệ thống </b>
- Thăm dò (Reconnaisance)



- Quét lỗ hổng để tấn công (Scanning)


- Cố gắng lấy quyền truy cập (Gaining access)
- Duy trì kết nối (Maintaining access)


- Xóa dấu vết (Cover his track)
<b>Ảnh hưởng của các cuộc tấn công </b>


- Các cuộc tấn công hàng năm gây hại trung bình 2,2 triệu USD cho các công
ty lớn (theo Symantec).


- Trộm cắp thông tin khách hàng/hack trang chủ làm giảm uy tín của công ty.
- Tấn công DoS/DDoS và các cuộc tấn công khác làm gián đoạn thời gian
hoạt động dịch vụ của doanh nghiệp, gây mất mát về doanh thu.


- Các thông tin quan trong trong các hợp đồng bị ăn cắp, tiết lộ cho đối thủ
cạnh tranh.


<b>5. Các loại điểm yếu và loại tội phạm </b>


<b>Lừa đảo trên internet (Internet Scammer) </b>


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

- Có động cơ là lợi ích kinh tế
<b>Khủng bố </b>


- Tham gia các giao dịch chợ đen bất hợp pháp trên Internet
- Thuốc phiện, vũ khí, hàng cấm


- Có động cơ là lợi ích kinh tế
<b>Hacker mũ xám </b>



- Xâm nhập hệ thống trái phép và cảnh báo về tính an tồn bảo mật của hệ thống.
- Không làm việc cho công ty hoặc các khách hàng của công ty


- Không định gây hại, chỉ tỏ ra là “có ích”
- Động cơ chỉ là bốc đồng


<b>Hacker mũ đen hay cracker </b>


- Xâm nhập hệ thống trái phép lợi dụng các vấn đề bảo mật
- Không làm việc cho công ty hoặc các khách hàng của công ty
- Không muốn giúp đỡ mà chỉ gây hại


- Động cơ là do từ cộng đồng tội phạm này tham gia
<b>Hacker mũ trắng </b>


- Xâm nhập hệ thống để kiểm tra, xác nhận vấn đề về an toàn bảo mật hệ thống
- Làm việc cho công ty hoặc các khách hàng của cơng ty


- Khơng định gây hại, là “có ích”


<b>Các công cụ tấn công mà tội phạm dùng để tấn công </b>
- Vulnerability Scanner - Quét lỗ hổng


- Port Scaner - Quét cổng
- Sniffer - Nghe trộm


- Wardialer – phần mềm quét số điện thoại
- Keylogger – nghe trộm bàn phím



<b>6. Các biện pháp nhằm đảm bảo an tồn thơng tin và bảo mật thông tin </b>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

án khắc phục bằng các gói Signatures hoặc Definitions, có tác dụng cập nhật cơ sở dữ
liệu nhận dạng virus và chương trình độc hại cho hệ thống. Hầu hết các chương trình
diệt virus hiện nay đều có cơ chế tự động thực hiện việc này, các bạn có thể thay đổi
phần thiết lập này cho phù hợp với nhu cầu cá nhân:


<b>Hình 1. 5 Xem thời gian cập nhật bản gần nhất trên Microsoft Security Essentials </b>
Chương trình Microsoft Security Essentials khơng có cơ chế tự động cập nhật
từng giờ. Người sử dụng có thể khắc phục bằng cách tab Settings và đánh dấu phần lựa
chọn Check for the latest virus & spyware definitions before running a scheduled scan:


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

rất tốt và sử dụng SpyBot Search and Destroy với nhiều tính năng nổi trội và đặc biệt
vô cùng hiệu quả trong việc phát hiện và tiêu diệt những phần mềm spyware, adware và
malware.


<b>Kiểm tra toàn bộ hệ thống thường xuyên theo định kỳ: Cơng đoạn này rất </b>
quan trọng vì nó ảnh hưởng rất nhiều đến sự ổn định của hệ thống, chỉ với những thao
tác đơn giản như xóa bộ nhớ đệm, cookies của trình duyệt, history làm việc, các thư mục
temp trong Windows... điển hình và dễ sử dụng nhất là CCleaner của Piriform


<b>Nâng cao ý thức và trách nhiệm phịng chống tội phạm cơng nghệ cao; cần </b>
cẩn trọng trong việc cung cấp thông tin cá nhân, mật khẩu hoặc số OTP khi thực hiện
các giao dịch thanh toán hoặc thực hiện bất kỳ yêu cầu thay đổi thông tin trên mạng xã
hội, forum, website, email, điện thoại...Đặc biệt, sử dụng các phần mềm có bản quyền;
sử dụng mật khẩu có tính bảo mật cao và thường xuyên thay đổi mật khẩu; cài đặt và sử
dụng các phần mềm bảo vệ (diệt vi rút) hoặc thiết lập tường lửa (firewall)...


<b>CÂU HỎI </b>



Câu 1. Nêu các mục tiêu của an tồn thơng tin.
Câu 2. Nêu các hình thức tấn cơng, cho ví dụ.


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>CHƯƠNG 2: CÁC LOẠI BẢO MẬT VÀ CÁCH PHÒNG CHỐNG </b>



<b>Giới thiệu: </b>


Trong Chương 2 sẽ trình bày bảo mật máy tính ở cấp độ chương trình, bảo mật
máy tính ở cấp độ hệ điều hành, bảo mật web, bảo mật mạng, cách phịng chống.
<b>Mục tiêu: </b>


Trình bày được phương pháp bảo mật máy tính ở cấp độ chương trình, cấp độ hệ
điều hành, cấp độ web, cấp độ mạng.


Phân biệt được các loại virus và cách phòng chống.
<b>1. Bảo mật máy tính ở cấp độ chương trình </b>


<b>1.1. Sử dụng tường lửa (Firewall) </b>


Tường lửa thường là phần mềm hệ thống được đính kèm sẵn theo mỗi phiên bản
Windows, nó có tác dụng như một biên giới giúp ngăn chặn, hoặc chọn lọc những kẻ
xâm nhập khơng mong muốn trên Internet vào máy tính cá nhân của người khác. Nhưng
đôi khi bức tường này tỏ ra không hiệu quả và dễ dàng bị qua mặt, việc sử dụng phần
mềm bên thứ 3 là giải pháp hữu hiệu để khắc phục vấn đề này. Tuy nhiên đừng quá tin
tưởng vào Firewall, đây chỉ là một mẹo rất nhỏ trong công cuộc bảo vệ chiếc máy tính
của bạn.


<b>1.2. Virus máy tính </b>


<b>1.2.1. Khái niệm virus máy tính </b>



Virus máy tính là đoạn mã thực thi ghép vào chương trình chủ và giành quyền
điều khiển khi chương trình chủ thực thi.


Virus được thiết kế nhằm nhân bản, tránh né sự phát hiện, phá hỏng/thay đổi dữ
liệu, hiển thị thông điệp hoặc làm cho hệ điều hành hoạt động sai lệch.


<b>1.2.2. Hoạt động của virus </b>
Các pha:


- Không hoạt động - chờ đợi sự kiện kích hoạt
- Lan truyền - sao chép mình tới chương trình/đĩa
- Kích hoạt – theo sự kiện để thực thi payload
- Thực thi – theo payload


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>1.2.3. Cấu trúc của virus </b>
program V :=
{goto main;
1234567;


subroutine infect-executable := {loop:
file := get-random-executable-file;


if (first-line-of-file = 1234567) then goto loop
else prepend V to file; }


subroutine do-damage := {whatever damage is to be done}
subroutine trigger-pulled := {return true if some condition holds}
main: main-program := {infect-executable;



if trigger-pulled then do-damage;
goto next;}


next:
}


<b>1.2.4. Các loại virus </b>


Có thể phân loại theo cách tấn công của chúng


<b>- Virus ký sinh: loại virus ký sinh vào các tập tin thi hành (com, exe, pif, scr, </b>
dll...) trên hệ thống đích. Ứng dụng chủ (host application) có thể bị nhiễm virus vào đầu
file, giữa file hoặc cuối file. Khi hệ thống thi hành một ứng dụng chủ nhiễm: Pay-load
nắm quyền sử dụng CPU; Vir-code thực thi các thủ tục phá hoại, sử dụng dữ liệu trong
Vir-data; Trả quyền sử dụng CPU cho ứng dụng chủ.


<b>- Virus boot sector: Boot-virus: loại virus nhiễm vào mẫu tin khởi động </b>
(boot record - 512 byte) của tổ chức đĩa; Multi-partite: loại virus tổ hợp tính năng của
virus ký sinh và boot virus, nhiễm cả file lẫn boot sector.


<b>- Virus macro: Đính vào các tập tin dữ liệu có sử dụng macro, data virus tự </b>
động thực hiện khi tập dữ liệu nhiễm được mở bởi ứng dụng chủ. Các data virus quen
thuộc:


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

+ Adobe Reader: pdf script virus
+ Visual Basic: vb script virus
+ Java: java script virus


+ Startup file: bat virus,…



<b>Email virus: Lây lan bằng cách sử dụng email với tập tin đính kèm có chứa một </b>
virus macro (Ví dụ Melissa); Kích hoạt khi người dùng mở tập tin đính kèm hoặc tệ hơn,
ngay cả khi thư xem bằng cách sử dụng tính năng kịch bản trong email agent; Thường
nhắm vào Microsoft Outlook mail agent & các tài liệu Word/Excel.


<b>1.2.5 Sử dụng các phần mềm Antivirus </b>


Antivirus có rất nhiều ích lợi trong việc phát hiện, loại bỏ các loại virus cũng như
khắc phục phần nào hậu quả do chúng gây ra. Tuy nhiên nhiều người lại phớt lờ và bỏ
qua quá trình này, dẫn đến hậu quả là chiếc máy tính của họ thường xuyên xảy ra lỗi hệ
thống hay nghiêm trọng hơn có thể làm lộ các thơng tin cá nhân lên mạng Internet. Vì
vậy, mỗi người nên cài đặt và thường xuyên cập nhật các chương trình Antivirus để bảo
vệ dữ liệu của mình. Hiện nay bên cạnh các phần mềm yêu cầu trả tiền, vẫn có rất nhiều
chương trình mạnh mẽ nhưng miễn phí như Avast, Avira,…


<b>1.3. Thường xuyên cập nhật phần mềm </b>


Bên trong mỗi hệ điều hành hay các phần mềm thường vẫn còn rất nhiều lỗi chưa
được phát hiện, từ những lỗi đó hacker có thể dễ dàng xâm nhập và chiếm quyền điều
khiển máy tính cá nhân. Vì thế, nên kiểm tra và update thường xuyên chương trình của
mình lên phiên bản mới nhất, ngồi việc đảm bảo an tồn nó cịn giúp phần mềm chạy
trơn tru và mượt mà hơn.


<b>2. Bảo mật máy tính ở cấp độ hệ điều hành </b>
<b>2.1. Các vấn đề bảo vệ trong Hệ điều hành </b>


Một hệ điều hành (OS) cung cấp các chỉ thị chương trình cơ bán để giao tiếp với
phần cứng của máy tính. Hệ điều hành là một mã chương trình giúp người sử dụng bẳt
đầu các chức năng cơ bản của một máy tính như: xem nội văn bàn trên màn hình của
máy tính, lưu giữ thơng tin, truy nhập và sửa đổi thông tin, truy nhập vào một mạng, kết


nối Internet và chạy các phần mềm ứng dụng khác. Hệ điều hành thực hiện các chức
năng quản lý vào/ra (I/O) cơ bản nhất của máy tính. Quản lý vào/ra cho phép các chương
trình giao tiếp với phần cứng của máy một cách dễ dàng. Đóng vai trị là một giao diện
giữa các chương trình ứng dụng và phần cứng của máy, một hệ điều hành thực hiện các
tác vụ sau:


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

- Kiểm sốt dừ liệu ra màn hình, máy in và mạng.


- Cho phép truyền thông qua modem hoặc các cơng trun thơng khác.
- Kiểm sốt vào/ra cho tất cả các thiết bị, kể cả cạc giao diện mạng.


- Quản lý việc lưu trữ, tìm kiếm và phục hồi thơng tin trên các thiết bị lưu
trữ như các ổ đĩa cứng, các ổ đĩa CD-ROM.


- Cho phép các chức năng đa phương tiện như chơi nhạc và truy cập các
đoạn video clip.


Tất cả các cấp độ hệ điều hành, hệ điều hành đều có khả năng đề cung cấp các
chức năng an tồn. Ví dụ, một hệ điều hành có thể cung cấp chức năng an tồn để quản
lý việc truy nhập ổ đĩa cứng hoặc quản lý cách thức các chương trình phần mềm kiểm
sốt các chức năng phần cứng. Thông qua hệ điều hành, việc truy cập tới một máy tính
hay một mạng có thể được kiểm sốt bằng các khoản mục người dùng và mật khẩu. Một
số hệ điều hành cỏ khả năng tự bảo vệ mã chương trình của chúng bằng cách chạy mă
này trong một vùng an toàn mà chỉ có hệ điều hành đó được phép sử dụng. Một số hệ
điều hành lại có khả năng tự bảo vệ bằng cách tự động tắt các phần mềm có lỗi hoặc
phần mềm sai chức năng để ngăn không cho chúng can thiệp vào các phần mềm khác
hoặc can thiệp vào phần cứng.


- Giao diện lập trình ứng dụng (API): là phần mềm trung gian giừa chương
trình ứng dụng và nhân hệ điều hành (mã chương trình chính cùa hệ điều hành). API sẽ


biên dịch các yêu cầu từ chương trình ứng dụng thành mã mà nhân hệ điều hành có thể
hiểu được và chuyền xuống các trình điều khiển thiết bị phần cứng và ngược lại. Một
chức năng khác của API là cung cấp một giao diện cho hệ thống vào/ra cơ bản (BIOS).
- Hệ thống vào/ra cơ ban (BIOS): là một chương trình nhận dạng thiết bị
phần cứng và thiết lập quá trình truyền thơng cơ ban với các thành phần như màn hình
và các ổ đĩa. Ngồi ra, BIOS cịn nạp các thành phần khác của hệ điều hành khi khởi
động và duy trì một đồng hồ thời gian thực để cung cấp ngày giờ cho hệ thống.


- Nhân hệ điều hành (Kernel): là phần lõi cùa hệ điều hành thực hiện phối
họp các chức năng của hệ điều hành như: kiểm soát bộ nhớ và thiết bị lưu trữ. Nhân hệ
điều hành sẽ giao tiếp với BIOS, các trình điều khiển thiết bị và API để thực hiện các
chức năng này. Ngồi ra, nó cịn là giao diện với các trình quản lý tài nguyên.


- Trình quản lý tài nguyên (Resource Manager): là các chuơng trình quản
lý việc sử dụng bộ nhớ và vi xử lý trung tâm.


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

ra, hệ điều hành cịn có thêm các trình điều khiển chuyên dụng phục vụ các chức năng
và các thiết bị khác như âm thanh.


Trong các thành phần này, một dạng an tồn cơ bản nhất là cấu hình an toàn mật
khẩu BIOS. Tuỳ chọn an toàn mật khẩu này có thể khác nhau tuỳ theo các nhà sản xuất
phần mềm BIOS khác nhau. Dưới đây là một số tuỳ chọn mật khâu thông dụng trong
BIOS:


- Đặt mật khẩu để quản lý việc truy nhập ổ đĩa cứng.


- Đặt mật khẩu để truy cập chương trình cài đặt BIOS hoặc xem cấu hình
của BIOS (trong một số trường hợp người dùng có thể truy nhập vào BIOS để xem các
thơng tin cấu hình nhưng khơng thể thay đổi các cấu hình đó).



- Đặt mật khẩu để thay đổi cấu hình BIOS.
- Đặt mật khẩu để khởi động máy.


<b>2.1.1. Bảo vệ bộ nhớ và địa chỉ: </b>


Có 2 cách ngăn chặn một chương trình/người dùng can thiệp vào không gian bộ
nhớ của chương trình/người dùng khác là Phân đoạn (Segmentation) và Phân trang
<b>(Paging). </b>


- Phân đoạn (Segmentation):


+ Phân chia chương trình thành các đoạn, tương ứng với các đoạn dữ liệu,
các chương trình con, mỗi đoạn có quyền khác nhau (R,W,E)


+ Phân chia bộ nhớ vật lý thành các đoạn,  tương ứng với, các mảng dữ
liệu người dùng hoặc các đoạn mã chương trình


+ Mỗi đoạn có một tên duy nhất:  <Name,Offset>,  hệ điều hành phải
duy trì một bảng các đoạn.


- Phân trang (Paging)


+ Phân chia chương trình thành các trang (page) cùng kích thước


+ Phân chia bộ nhớ vật lý thành các khung trang (page frame) cùng kích
thước  512 đến 4096 byte


+  Mỗi trang có một tên duy nhất <Page,Offset>, hệ điều hành phải duy
trì một bảng các trang.



- Kết hợp Phân đoạn và Phân trang


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

+  Ưu điểm của phân trang:  tốc độ.


+ Trong các hệ điều hành hiện đại: kết hợp Phân đoạn + Phân trang
<b> 2.1.2. Bảo vệ tệp </b>


- Bảo vệ nhóm: tất cả người dùng được phân thành nhóm, quyền sử dụng được
một người dùng thiết lập cho mình và cả nhóm


-  Bảo vệ cá thể:  mỗi người dùng có một số quyền (quyền sử dụng lâu dài
hoặc  quyền sử dụng tạm thời)


- Hệ thống tệp UNIX/LINUX: mỗi tệp có chủ sở hữu và nhóm sở hữu. Quyền
được thiết lập bởi chủ sở hữu R,W,E, setid, owner, group, other; chỉ có chủ sở hữu và
root mới được phép thay đổi quyền.


<b>2.1.3. Xác thực người dùng </b>


Hệ điều hành quản lý nhiều người dùng: Ai là ai?
Giải pháp xác thực người dùng


-  Mật khẩu: Hệ điều hành lưu trữ một tệp người dùng/mật khẩu. Tệp thông
thường: thơng tin lưu dạng văn bản, độ an tồn thấp. Tệp mã hóa:  mã hóa cả tệp hoặc
chỉ mã hóa mật khẩu, độ an tồn phụ thuộc vào hệ mật mã. Để tăng cường độ an toàn,
mật khẩu đủ dài, tránh chứa các thông tin đặc biệt, thay đổi mật khẩu đều đặn, đề phịng
tấn cơng dạng “đăng nhập giả”


-  Một số đặc điểm sinh trắc học: vân tay, mắt, khuôn mặt, chữ viết…Xác thực bằng
sinh trắc học tương đối mới, phát triển nhanh trong những năm gần đây. Một số nhược điểm:


giá thành cao, Tốc độ và Độ chính xác cịn tùy thuộc vào thiết bị, dễ giả mạo.


<b>2.2. Cài đặt các bản Security Update của hệ điều hành </b>


Như chúng ta đã biết, bất kỳ hệ điều hành nào của Microsoft, Apple, Linux... đều
gặp các lỗi có liên quan đến bảo mật. Và do vậy, khi nhà phát hành chính thức cung cấp
những bản vá – Patch theo định kỳ thì chúng ta nên tiến hành cập nhật ngay lập tức để
đảm bảo sự ổn định của hệ thống.


<b>3. Bảo mật web </b>


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

Các máy bị xâm nhập có thể bị biến thành một phần của mạng botnet, để đào Bitcoin,
hoặc dùng ransomware tấn công nạn nhân.


Sau khi website đã được khử độc, nếu quản trị viên vẫn chủ quan không quan
tâm đến các lỗ hỗng này thường xuyên thì website vẫn sẽ dễ dàng bị nhiễm độc trở lại
bất cứ lúc nào. Để ngăn chặn điều này xảy ra, cần có những phương pháp thích hợp để
bảo vệ máy chủ web cũng như máy tính của quản trị viên khi kết nối với tài khoản máy
chủ.


Cách đơn giản nhất để bảo vệ website là đảm bảo an toàn cho website trước
những kẻ xấu. Nhưng khi tìm hiểu về các lỗ hổng bảo mật web, bạn sẽ phải đối mặt với
những khái niệm và giải pháp phức tạp. Hiểu được điều đó, Một vài trong số đó là lời
khuyên của Marta Janus, Chuyên gia nghiên cứu an ninh mạng, Kaspersky Lab.


<b>- Sử dụng mật khẩu mạnh là nền tảng cơ bản giúp tăng cường bảo mật cho </b>
hệ thống máy chủ. Mật khẩu không chỉ bắt buộc thay đổi sau khi xảy ra sự cố mà cần
phải thay đổi thường xuyên, tốt nhất là định kỳ mỗi tháng một lần. Một mật khẩu đủ
mạnh cần đáp ứng được các tiêu chí cơ bản. Mật khẩu an tồn phải được tích hợp giữa
chữ, số và các ký tự đặc biệt nhưng phải đảm bảo dễ nhớ để không phải ghi chú lại mật


khẩu này vào sổ hay máy tính, khơng sử dụng cùng một mật khẩu cho nhiều tài khoản
khác nhau như email, tài khoản ngân hàng,…


<b>- Liên tục cập nhật: Để nâng cao mức độ bảo mật, người dùng cần phải cập </b>
nhật website của mình thường xuyên, đặc biệt theo dõi thông tin phiên bản mới nếu đang
dùng các phần mềm web nguồn mở (CMS, portal, forum...). Tất cả các phần mềm mà
người sử dụng quản lý bằng tài khoản máy chủ phải là phiên bản mới nhất và tất cả các
bản vá bảo mật cần phải được áp dụng ngay sau khi nó được phát hành. Điều này sẽ
<b>giảm nguy cơ một cuộc tấn công nhằm vào việc khai thác dữ liệu. </b>


<b>- Tạo các bản sao lưu: một bản sao lưu tất cả các nội dung của máy chủ không </b>
bị "nhiễm độc" chắc chắn sẽ giúp người dùng tiết kiệm rất nhiều thời gian và công sức
khi khôi phục. Một bản sao gần nhất sẽ rất hữu ích trong việc giải quyết các vấn đề phát
<b>sinh cũng như trong trường hợp máy chủ hoặc trang web bị nhiễm độc. </b>


<b>- Quét tập tin thường xuyên: Quét ngay cả khi không có dấu hiệu bị nhiễm </b>
độc nào được tìm thấy. Đây là một thao tác rất hữu ích để bảo vệ website, quét tất cả các
tập tin trên máy chủ trong một thời gian nhất định ít nhất là một lần.


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

<b>- Tăng cường mức độ bảo mật của máy chủ: Loại bỏ tất cả các phần mềm </b>
<b>khơng sử dụng </b>


+ Vơ hiệu hóa tất cả các dịch vụ và module không cần thiết
+ Thiết lập chính sách phù hợp cho người dùng và các nhóm


+ Thiết lập quyền truy cập/hạn chế truy cập vào các tập tin và thư mục nhất định
+ Vơ hiệu hóa việc duyệt thư mục trực tiếp


+ Thu thập các tập tin ghi nhận hoạt động, thường xuyên kiểm tra các hoạt
động đáng ngờ



+ Sử dụng mã hóa và các giao thức an tồn
<b>Xác thực cả hai phía: </b>


Xác thực phải ln ln được thực hiện cả trên trình duyệt và phía máy chủ.
Trình duyệt có thể gặp các lỗi đơn giản như khi các trường bắt buộc điền bị để trống hay
nhập văn bản vào trường chỉ cho điền số. Tuy nhiên, những điều này có thể được bỏ qua
và nên đảm bảo việc kiểm tra các xác thực sâu hơn phía máy chủ. Vì khơng làm như
vậy có thể dẫn đến mã hoặc tập lệnh độc hại được chèn vào cơ sở dữ liệu hoặc có thể
gây ra kết quả không mong muốn trong trang web.


<b>Tránh upload file </b>


Cho phép người dùng upload file lên trang web có thể mang đến rủi ro lớn cho
trang web, ngay cả khi chỉ đơn giản là thay đổi hình đại diện. Rủi ro nằm ở bất kỳ file
nào được upload lên, dù trơng có vẻ vơ hại, nó có thể chứa một tập lệnh mà khi được
thực thi trên máy chủ sẽ “phơi bày” hoàn toàn trang web.


Nếu upload file là điều bắt buộc thì cần phải cảnh giác với tất cả mọi thứ. Nếu
cho phép người dùng upload lên hình ảnh, khơng thể chỉ dựa vào phần mở rộng file để
xác minh đó là file hình ảnh vì chúng có thể dễ dàng bị giả mạo. Ngay cả việc mở file
và đọc tiêu đề hoặc sử dụng các chức năng để kiểm tra kích thước hình ảnh cũng khơng
thể tuyệt đối an tồn. Hầu hết các định dạng hình ảnh cho phép lưu trữ một phần bình
luận có thể chứa code PHP được thực thi bởi máy chủ.


Vậy có thể làm gì để ngăn chặn điều này? Hãy ngăn người dùng thực thi bất kỳ
file nào họ upload lên. Theo mặc định, các máy chủ web sẽ không cố thực thi các file
có phần mở rộng hình ảnh, nhưng không thể chỉ dựa vào việc kiểm tra phần mở rộng
file, vì một file có tên image.jpg.php có thể dễ dàng “lách luật”.



</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

sử dụng *nix, người dùng có thể tạo file .htaccess, chỉ cho phép truy cập đến một bộ file
ngăn chặn việc sử dụng phần mở rộng kép được đề cập trước đó.


deny from all


<Files ~ "^\w+\.(gif|jpe?g|png)$">
order deny,allow


allow from all
</Files>


Cuối cùng, giải pháp được đề xuất là ngăn chặn hoàn toàn quyền truy cập trực
tiếp vào các file được upload lên. Bằng cách này, mọi file được upload lên trang web
được lưu trữ trong một thư mục bên ngoài webroot hoặc trong cơ sở dữ liệu dưới dạng
blob. Nếu các file không thể truy cập trực tiếp, sẽ cần tạo một tập lệnh để tìm nạp các
file từ thư mục riêng (hoặc trình xử lý HTTP trong .NET) và gửi chúng đến trình duyệt.
Thẻ img hỗ trợ thuộc tính src khơng phải là URL trực tiếp đến hình ảnh, vì vậy thuộc
tính src có thể trỏ đến tập lệnh phân phối file, cung cấp loại nội dung chính xác trong
tiêu đề HTTP. Ví dụ:


<img src="/imageDelivery.php?id=1234" />
<?php


// imageDelivery.php


// Fetch image filename from database based on $_GET["id"]
...


// Deliver image to browser



Header('Content-Type: image/gif');
readfile('images/'.$fileName);
?>


Các nhà cung cấp dịch vụ lưu trữ web tốt đều xử lý cấu hình máy chủ cho bạn,
nhưng nếu đang lưu trữ trang web trên máy chủ của riêng mình thì có vài điều cần kiểm
tra.


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Nếu cho phép các file được upload lên từ Internet, chỉ sử dụng các phương thức
vận chuyển an toàn đến máy chủ của bạn như SFTP hoặc SSH.


Nếu có thể, cơ sở dữ liệu sẽ chạy trên một máy chủ khác với máy chủ web. Làm
điều này có nghĩa là máy chủ cơ sở dữ liệu không thể được truy cập trực tiếp từ bên
ngồi, chỉ có máy chủ web có thể truy cập nó, giảm thiểu rủi ro dữ liệu bị lộ.


Cuối cùng, đừng quên việc hạn chế quyền truy cập vật lý vào máy chủ.


<b>Thêm cơng cụ bảo mật trang web: khi cho rằng mình đã làm tất cả những gì có </b>
thể thì đã đến lúc kiểm tra bảo mật trang web. Cách hiệu quả nhất để thực hiện việc này
là thông qua việc sử dụng một số công cụ bảo mật trang web, thường được gọi là kiểm
tra thâm nhập (viết tắt là pen testing).


- Có rất nhiều sản phẩm thương mại và miễn phí hỗ trợ điều này. Chúng hoạt
động trên cơ sở tương tự với tập lệnh của các tin tặc ở chỗ chúng kiểm tra tất cả các hoạt
động khai thác và cố gắng tấn công trang web, bằng cách sử dụng một số phương pháp
như SQL Injection.


- Một số công cụ miễn phí đáng xem xét là:


<b>+ Netsparker.com (Phiên bản cộng đồng miễn phí và phiên bản dùng thử </b>


có sẵn). Thích hợp để kiểm tra SQL injection và XSS


<b>+ OpenVAS.org: Tự nhận là trình quét bảo mật mã nguồn mở tiên tiến nhất. </b>
Thích hợp để kiểm tra các lỗ hổng đã biết (hơn 25.000). Nhưng có thể khó cài đặt và yêu cầu
cài đặt máy chủ OpenVAS chỉ chạy trên *nix. OpenVAS là một nhánh của Nessus trước khi
nó trở thành một sản phẩm thương mại nguồn đóng.


<b>+ SecurityHeaders.com (kiểm tra trực tuyến miễn phí). Một cơng cụ để </b>
nhanh chóng báo cáo các tiêu đề bảo mật được đề cập ở trên (như CSP và HSTS), một
domain đã được bật và định cấu hình chính xác.


<b>+ Xenotix XSS Miningit Framework (xenotix.in). Một công cụ từ </b>
OWASP (Open Web Application Security Project) bao gồm rất nhiều ví dụ về các cuộc
tấn cơng XSS, người dùng có thể chạy để nhanh chóng xác nhận xem các đầu vào trang
web có dễ bị tấn công trong Chrome, Firefox và IE hay không.


- Kết quả từ các cơng cụ tự động có thể khiến bạn nản chí, vì chúng thể hiện
rất nhiều vấn đề tiềm ẩn, hãy tập trung vào các vấn đề quan trọng trước tiên. Mỗi vấn đề
được báo cáo thường đi kèm với một lời giải thích rõ ràng về lỗ hổng tiềm ẩn. Người
dùng có thể sẽ thấy rằng một số vấn đề ở mức cảnh báo trung bình/thấp khơng phải là
mối quan tâm đối với trang web.


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

này vì nó cho phép chặn các giá trị của yêu cầu HTTP giữa trình duyệt và máy chủ. Phần
mềm Fiddler là một điểm khởi đầu tốt để thực hiện việc này.


- Nếu website có trang chỉ hiển thị cho người dùng đã đăng nhập thì hãy thử
thay đổi các tham số URL như ID người dùng hoặc giá trị cookie để cố gắng xem chi
tiết của người dùng khác. Một lĩnh vực đáng thử nghiệm khác là các biểu mẫu, thay đổi
các giá trị POST để cố gắng gửi code thực thi XSS hoặc upload lên tập lệnh phía máy
chủ.



<b>Mã hóa trang đăng nhập: hãy sử dụng mã hóa SSL trên các trang đăng nhập. </b>
SSL cho phép thơng tin nhạy cảm như số thẻ tín dụng, số an sinh xã hội và thông tin
đăng nhập được truyền một cách an tồn. Thơng tin được nhập trên một trang được mã
hóa sao cho nó vô nghĩa đối với bất kỳ bên thứ ba nào. Điều này giúp ngăn chặn tin tặc
truy cập thông tin đăng nhập hoặc dữ liệu riêng tư khác.


<b>Giữ trang web “sạch sẽ”: Mỗi cơ sở dữ liệu, ứng dụng hoặc plugin trên trang </b>
web đều là điểm có thể khai thác trong mắt hacker. Người dùng nên xóa các file, cơ sở
dữ liệu hoặc ứng dụng không còn được sử dụng khỏi trang web. Điều quan trọng là phải
giữ cấu trúc file được tổ chức hợp lý để theo dõi các thay đổi và giúp xóa các file cũ dễ
dàng hơn.


<b>Thuê một chuyên gia bảo mật: phát triển mối quan hệ với một công ty cung cấp </b>
dịch vụ bảo mật có thể là cứu cánh trong việc bảo vệ trang web. Mặc dù người dùng có
thể tự xử lý những việc nhỏ, nhưng có nhiều biện pháp bảo mật cần được xử lý bởi một
chuyên gia. Các công ty cung cấp dịch vụ bảo mật có thể thường xuyên quét trang web
để tìm lỗ hổng, thực hiện kiểm tra bảo mật trang web đầy đủ, theo dõi hoạt động độc hại
<b>và có mặt bất cứ khi nào có sự cố cần sửa chữa. </b>


<b>4. Bảo mật mạng </b>


Bảo mật mạng là sự bảo mật: chỉ có người gửi, người nhận mới “hiểu” được nội
dung thông điệp; người gửi mã hóa thơng điệp, người nhận giải mã thơng điệp. Chứng
thực: người gửi, người nhận xác định là nhận ra nhau. Sự tồn vẹn thơng điệp: người
gửi, người nhận muốn bảo đảm thông điệp không bị thay đổi (trên đường truyền hoặc
sau khi nhận) mà không bị phát hiện. Truy cập & tính sẵn sàng: các dịch vụ phải có khả
năng truy cập và sẵn sàng đối với các user.


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b>Hình 2. 1 Mơ tả bảo mật mạng </b>


<b>Bob, Alice có thể là những ai? </b>


- Trình duyệt Web/server cho các giao dịch điện tử
- Client/server ngân hàng trực tuyến


- DNS servers


- Các router trao đổi thông tin cập nhật bảng routing
<b>Bạn và kẻ thù: Kẻ xấu có thể làm những việc gì? </b>


- Nghe lén: ngăn chặn các thơng điệp


- Kích hoạt chèn các thơng điệp vào trong kết nối


- Giả danh: có thể giả mạo địa chỉ nguồn trong gói (hoặc bất kỳ trường nào
trong đó)


- Cướp: “tiếp tục” kết nối hiện hành nhưng thay người gửi hoặc người nhận
bằng chính họ.


- Từ chối dịch vụ: dịch vụ hiện tại bị người khác dùng (đồng nghĩa quá tải)
<b>Cảnh giác với SQL injection: các cuộc tấn công SQL injection là khi kẻ tấn </b>
công sử dụng trường mẫu web hoặc tham số URL để có quyền truy cập hoặc thao tác cơ
sở dữ liệu của nạn nhân. Khi sử dụng Transact SQL tiêu chuẩn, thật dễ dàng chèn code
giả mạo vào truy vấn của người dùng, từ đó thay đổi bảng, lấy thơng tin và xóa dữ liệu.
Có thể dễ dàng ngăn chặn điều này bằng cách luôn sử dụng truy vấn được tham số hóa.
<b>Hầu hết các ngơn ngữ web đều có tính năng này và nó rất dễ thực hiện. </b>


- Xem xét truy vấn sau:



</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

- Nếu kẻ tấn công thay đổi tham số URL thành ' or '1'='1 thì điều đó sẽ khiến
truy vấn trơng như sau:


"SELECT * FROM table WHERE column = '' OR '1'='1';"


Vì '1' bằng '1', điều này sẽ cho phép kẻ tấn công thêm một truy vấn bổ sung vào cuối câu
lệnh SQL và nó cũng sẽ được thực thi.


- Bạn có thể sửa truy vấn này bằng cách tham số hóa nó một cách rõ ràng. Ví
dụ, nếu đang sử dụng MySQLi trong PHP thì truy vấn sẽ trở thành:


$stmt = $pdo->prepare('SELECT * FROM table WHERE column = :value');
$stmt->execute(array('value' => $parameter));


<b>Bảo vệ chống lại các cuộc tấn công XSS: Cross-site scripting (XSS) truyền </b>
JavaScript độc hại vào các trang web, sau đó chạy trong trình duyệt của người dùng và
có thể thay đổi nội dung trang, hoặc đánh cắp thông tin để gửi lại cho kẻ tấn cơng. Ví
dụ, nếu hiển thị nhận xét trên một trang mà khơng có xác thực, thì kẻ tấn cơng có thể
gửi nhận xét chứa thẻ script và JavaScript, chạy trong mọi trình duyệt của người dùng
khác và đánh cắp cookie đăng nhập của họ, sau đó chiếm quyền kiểm sốt tài khoản của
mọi người người dùng đã xem bình luận. Cần đảm bảo rằng người dùng không thể đưa
<b>nội dung JavaScript đang hoạt động vào các trang web. </b>


- Đây là mối quan tâm đặc biệt trong các ứng dụng web hiện đại, nơi các trang
hiện được xây dựng chủ yếu từ nội dung người dùng và tạo HTML cũng được biên dịch
bởi các framework front-end như Angular và Ember trong nhiều trường hợp. Các
framework này cung cấp nhiều biện pháp bảo vệ chống lại XSS, nhưng việc kết hợp
rendering máy chủ và máy khách cũng tạo ra các cách tấn công mới và phức tạp hơn,
khơng chỉ có khả năng truyền JavaScript vào HTML hiệu quả, mà cịn có thể truyền nội
dung sẽ chạy code bằng cách chèn các lệnh Angular hoặc sử dụng các trình trợ giúp


Ember.


- Mấu chốt ở đây là tập trung vào cách nội dung do người dùng tạo. Điều này
tương tự như bảo vệ chống lại SQL injection. Khi tạo HTML động, hãy sử dụng các
hàm thực hiện rõ ràng các thay đổi đang tìm kiếm (ví dụ, sử dụng phần tử .setAttribution
và Element.textContent để trình duyệt tự động escape, thay vì cài đặt phần tử.inner
HTML thủ công) hoặc sử dụng các hàm tự động escape khi thích hợp, thay vì nối chuỗi
hoặc đặt nội dung HTML thô.


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

phép JavaScript nội tuyến hoặc vô hiệu hóa eval(). Mozilla có một hướng dẫn tuyệt vời
với một số cấu hình ví dụ (tham khảo tại
developer.mozilla.org/en-US/docs/Web/HTTP/CSP). Điều này làm cho các tập lệnh của kẻ tấn cơng khó hoạt
động hơn, ngay cả khi kẻ tấn cơng có thể đưa chúng vào trang web.


<b>Cẩn thận với các thông báo lỗi: hãy cẩn thận với lượng thông tin bạn cung cấp </b>
trong các thông báo lỗi. Chỉ cung cấp các lỗi tối thiểu cho người dùng, để đảm bảo chúng
không làm rị rỉ các bí mật có trên máy chủ (ví dụ, khóa API hoặc mật khẩu cơ sở dữ
liệu). Đừng cung cấp đầy đủ chi tiết ngoại lệ vì những điều này có thể làm cho các cuộc
tấn công phức tạp như SQL injection được thực hiện dễ dàng hơn nhiều. Giữ các lỗi chi
tiết trong nhật ký máy chủ và chỉ hiển thị cho người dùng thông tin họ cần.


<b>Sử dụng HTTPS: HTTPS là một giao thức được sử dụng để cung cấp bảo mật </b>
qua Internet. HTTPS đảm bảo rằng người dùng đang nói chuyện với máy chủ mà họ
mong đợi và khơng ai khác có thể chặn hoặc thay đổi nội dung họ đang thấy trong q
<b>trình. </b>


Nếu có bất cứ thơng tin gì mà người dùng muốn riêng tư (như thẻ tín dụng và các
trang đăng nhập, cũng như các URL gửi đến), thì chỉ nên sử dụng HTTPS để truyền
thơng tin. Ví dụ, một biểu mẫu đăng nhập sẽ đặt một cookie, được gửi cùng với mọi yêu
cầu khác đến trang web mà người dùng đã thực hiện đăng nhập, sau đó được sử dụng để


xác thực các u cầu đó. Kẻ tấn cơng đánh cắp điều này có thể giả mạo người dùng một
cách hoàn hảo và chiếm quyền trong phiên đăng nhập. Để đánh bại các loại tấn công
này, hãy sử dụng HTTPS cho tồn bộ trang web của mình.


Điều đó khơng cịn khó khăn hay tốn kém như xưa. Let's Encrypt cung cấp các
chứng chỉ hoàn toàn miễn phí và tự động, kích hoạt HTTPS và có các cơng cụ cộng
đồng hiện có cho nhiều nền tảng và framework chung để tự động thiết lập điều này cho
người dùng. Đáng chú ý là Google đã thông báo rằng hãng sẽ tăng thứ hạng trong bảng
xếp hạng tìm kiếm nếu sử dụng HTTPS (điều này cũng mang lại lợi ích SEO). HTTP
khơng an tồn đang dần biến mất và bây giờ là lúc để nâng cấp.


Nếu đã sử dụng HTTPS, hãy thử xem xét việc thiết lập HTTP Strict Transport
Security (HSTS), một header đơn giản để thêm vào phản hồi máy chủ nhằm ngăn chặn
HTTP khơng an tồn hoạt động trên tồn bộ domain.


<b>5. Cách phịng chống </b>


<b>Tn thủ những nguyên tắc cơ bản khi làm việc với email: </b>


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

- Nếu có người nào đó nhận là nhân viên của 1 ngân hàng, quỹ tín dụng gửi
email tới cho bạn và thông báo rằng tài khoản của bạn đã bị đánh cắp, hãy xóa nó đi.
Bởi vì dịch vụ chính thức của bất kỳ ngân hàng nào luôn thông báo các sự cố hoặc thay
đổi qua hình thức gọi điện, liên lạc trực tiếp. Cịn nếu bạn vẫn muốn xác nhận về thơng
tin trong email đó, hãy liên lạc lại với phía ngân hàng để làm rõ sự thật.


- Nếu nhận được email với thông báo rằng bạn đã trúng thưởng 1 khoản tiền
nào đó, hãy xóa nó đi.


- Cẩn thận với những email với nội dung không rõ ràng, thứ nhất là vì chúng
khơng đáng để đọc, thứ 2 là trong đó rất có thể chứa nhiều đường dẫn tới các địa chỉ có


mã độc, phần mềm giả mạo.


- Nếu nhận được email với file đính kèm dưới dạng nén và có mật khẩu bảo
vệ, hãy xóa nó đi.


- Cẩn thận với những email chúc mừng, khánh thành hoặc khai trương văn
phịng. Vì hầu hết trong số đó đều chứa đường dẫn tới các trang web khác.


<b>Truy cập Internet theo cách an toàn: </b>


- Nếu truy cập 1 website bất kỳ và yêu cầu bạn quét máy tính để phát hiện
virus, hãy bỏ qua.


- Không cài đặt trực tiếp bất cứ phần mềm, ứng dụng nào từ 1 trang web bất
kỳ nào đó, trừ khi bạn đã biết rõ và đảm bảo an toàn tuyệt đối. Tuy nhiên, một số ngoại
lệ trong trường hợp này là những trang web của hãng Adobe, Microsoft và Apple, bởi
vì chúng ta phải cài đặt Flash Player, Silverlight và QuickTime Player thì mới có thể
xem được nội dung trên trang web của họ.


- Khơng cài đặt những trị chơi miễn phí khi bạn truy cập vào 1 website nào
đó.


- Khơng nên truy cập vào các trang web “đen” như cung cấp phim 18+, phần
mềm crack, chia sẻ theo kiểu BitTorrent... bởi vì đây là nơi tụ tập của rất nhiều phần
mềm có nguồn gốc khơng rõ ràng.


<b>Tạo mật khẩu rõ ràng và đảm bảo an toàn đối với từng tài khoản: việc tạo </b>
và quản lý được mật khẩu theo cách khoa học chính là yếu tố quyết định để đảm bảo tài
khoản của bạn được an toàn.



- Một chuỗi mật khẩu đủ mạnh là phải thống nhất, tuy nhiên nguyên tắc cơ bản
nhất là không bao giờ được sử dụng cùng 1 mật khẩu cho nhiều tài khoản trực tuyến (sự
thật là rất nhiều người trong số chúng ta đều mắc lỗi này). Việc chia sẻ mật khẩu qua
các trang web, dịch vụ hỗ trợ hiện nay cũng chỉ đảm bảo phần nào, và tỉ lệ rủi ro vẫn là
50/50. Không sử dụng những từ ngữ trong từ điển, đơn giản vì chúng rất dễ đốn. Sử
dụng cụm từ ngữ kết hợp giữa ký tự và chữ số, độ dài tối thiểu là 10 ký tự, ví dụ như
sf756358&pk21h!dfg chẳng hạn.


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

- Các công cụ quét lỗ hổng website: Acunetix, Paros, Havij, APP SCAN
WebScarab.


<b>CÂU HỎI </b>


<b>Câu 1: Nêu các nguyên tắc cơ bản khi làm việc với email </b>


Câu 2: Nêu cách truy cập Internet an toàn và nguyên tắc đặt mật khẩu tài khoản.
Câu 3: Thế nào là tấn công bằng SQL Injection? Nêu cách tấn cơng và biện pháp
phịng chống.


</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

<b>CHƯƠNG 3: CÁC PHƯƠNG PHÁP MÃ HÓA </b>



<b>Giới thiệu: </b>


Chương 3 sẽ trình bày các khái niệm mã hóa, sơ đồ một hệ thống mã hóa, các
phương pháp mã hóa cổ điển, các phương pháp mã hóa hiện đại, cài đặt thử nghiệm
<b>Mục tiêu: </b>


- Trình bày những khái niệm về mã hóa và giải mã.


- Trình bày phương pháp mã hóa cổ điển (CEASAR, VIIGNERE, TRITHEMIUS,


BELASCO) và phương pháp mã hóa hiện đại (DES, RSA) để bảo mật dữ liệu


- Cài đặt và thử nghiệm các giải thuật mã hóa và giải mã.
- So sánh ưu và nhược điểm của các phương pháp mã hóa.
<b>1. Khái niệm mã hóa </b>


Mã hóa là một phương pháp bảo vệ thông tin, bằng cách chuyển đổi thơng tin từ
dạng rõ (Thơng tin có thể dễ dàng đọc hiểu được) sang dạng mờ (Thông tin đã bị che đi,
nên không thể đọc hiểu được. Để đọc được ta cần phải giải mã nó). Nó giúp ta có thể
bảo vệ thơng tin, để những kẻ đánh cắp thơng tin, dù có được thơng tin của chúng ta,
cũng không thể hiểu được nội dung của nó.


Ví dụ: khi bạn muốn gửi thư cho bạn mình, và trong đó chứa những thơng tin
quan trọng mà bạn không muốn ai biết (Giả sử nội dung ban đầu là "Ngày mai xăng tăng
giá đó"). Do đó bạn muốn bảo mật thơng tin này, để dù có người cố tình đọc trộm nội
dung thì cũng khơng thể hiểu, thì bạn sẽ mã hóa nó (Giả sử bạn mã hóa thành
"fd%$23fDd432FDs4#@Vdserf3%$3"). Xong khi đưa đến bạn mình, bạn sẽ bày cho
họ cách giải mã để họ có thể hiểu được nội dung thư.


<b>2. Sơ đồ một hệ thống mã hóa </b>


Một hệ thống mã hóa khái quát sẽ có các thành phần sau:


<b>Văn bản trơn (plaintext), tức là thông điệp nguyên gốc chưa được mã hóa. </b>
<b>Văn bản mã hóa (ciphertext), tức là thơng điệp đã được mã hóa. </b>


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

<b>Khóa mã hóa (enciphering key) là một hoặc nhiều đối tượng (thường là các con </b>
số hay là các hướng dẫn quan trọng nào đó) được dùng trong việc mã hóa văn bản trơn.
Ngoại trừ trong hệ thống PKC, để đảm bảo bí mật an tồn thì khóa mã hóa thường chỉ
được người gửi biết.



<b>Thuật toán giải mã (deciphering algorithm) là các giao thức hoặc hướng dẫn </b>
có tác dụng chuyển đổi văn bản mã hóa trở về văn bản trơn. Để đảm bảo bí mật, chỉ có
người nhận thơng điệp biết được thuật tốn giải mã.


<b>Khóa giải mã (deciphering key) là một hoặc nhiều đối tượng (thường là các con </b>
số hay là các hướng dẫn quan trọng nào đó) được dùng trong việc giải mã văn bản bị mã
hóa. Để đảm bảo bí mật, chỉ có người nhận thơng điệp biết được khóa giải mã.


<b>Sản phẩm mật mã (Cryptography Product) bao gồm các hệ thống thiết bị, </b>
module, mạch tích hợp và các chương trình phần mềm mã hố chun dụng có tích hợp
các thuật toán mật mã, được thiết kế, chế tạo để bảo vệ thông tin giao dịch điện tử và
lưu trữ dưới dạng số hố, trong đó sử dụng "Thuật toán mã đối xứng" hoặc "Thuật toán
mã khơng đối xứng"


<b>Hình 3. 1 Sơ đồ một hệ thống mã hóa </b>
<b>3. Các phương pháp mã hóa cổ điển </b>


Mã hoá cổ điển là phương pháp mã hoá đơn giản nhất xuất hiện đầu tiên trong
lịch sử ngành mã hoá. Thuật toán đơn giản và dễ hiểu. Những phương pháp mã hoá này
là cơ sở cho việc nghiên cứu và phát triển thuật toán mã hoá đối xứng được sử dụng
ngày nay. Trong mã hoá cổ điển có hai phương pháp nổi bật đó là: mã hoá thay thế và
mã hoá hoán vị.


</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

dùng đến bất kì key nào. Do đó, độ an tồn của thuật tốn sẽ chỉ dựa vào độ bí mật của
thuật tốn, vì chỉ cần ta biết được thuật tốn mã hóa, ta sẽ có thể giải mã được thơng tin.
Ví dụ: Giả sử bạn mã hóa bằng cách thay đổi một kí tự trong chuỗi cần mã hóa
thành kí tự liền kề (“Di hoc ve” thành “Ek ipd xg”). Thì bất cứ người nào, chỉ cần biết
cách bạn mã hóa, đều có thể giải mã được.



<b>3.1. Phương pháp mã hóa CEASAR </b>


Thế kỷ thứ 3 trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ
ra phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng chữ
<i>đứng sau nó k vị trí trong bảng chữ cái. Giả sử chọn k = 3, ta có bảng chuyển đổi như </i>
sau:


<i>Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y z </i>
<i>Chữ thay thế: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C </i>
(sau Z sẽ vịng lại là A, do đó x A, y B và z C)


<i>Giả sử có bản tin gốc (bản rõ): </i>


<i>Như vậy bản tin mã hóa (bản mã) sẽ là: </i>


meet me after the toga party
PHHW PH DIWHU WKH WRJD SDUWB
Thay vì gửi trực tiếp bản rõ cho các cấp dưới, Ceasar gửi bản mã. Khi cấp dưới
nhậnđược bản mã, tiến hành giải mã theo quy trình ngược lại để có được bản rõ. Như
vậy nếu <i>đối thủ của Ceasar có lấy được bản mã, thì cũng khơng hiểu được ý nghĩa của </i>
<i>bản mã.</i>Chúng ta hãy gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:


<i>Phương pháp Ceasar được biểu diễn như sau: với mỗi chữ cái p thay bằng chữ mã</i>hóa
<i>C, trong đó: </i>


<i>C = (p + k) mod 26 (trong đó mod là phép chia lấy số dư)</i>
Và quá trình giải mã đơn giản là:


p = (C – k) mod 26



</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

<b>Hình 3. 2 Bảng mã Ceasar</b>


Trong 25 trường hợp trên, chỉ có trường hợp k=3 thì bản giải mã tương ứng là có ý
nghĩa. Do đó đối thủ có thể chắc chắn rằng “meet me after the toga part” là bản rõ ban đầu.


Mã hóa Ceasar, từ một bản mã có thể dễ dàng suy ra được bản rõ ban đầu mà
khơng cần biết khóa bí mật. Hành động đi tìm bản rõ từ bản mã mà khơng cần khóa như
vậy được gọi là hành động phá mã (cryptanalysis). Do đó một hệ mã hóa đối xứng được
gọi là an toàn khi và chỉ khi nó khơng thể bị phá mã (điều kiện lý tưởng) hoặc thời gian
phá mã là bất khả thi.


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

<b>3.2. Phương pháp mã hóa VIIGNERE </b>


Với sự phát hiện ra quy luật phân bố tần suất, các nhà phá mã đang tạm thời
chiếm ưu thế trong cuộc chiến mã hóa-phá mã. Cho đến thế kỷ thứ 15, một nhà ngoại
giao người Pháp tên là Vigenere đã tìm ra phương án mã hóa thay thế đa bảng. Phương
pháp Vigenere dựa trên bảng sau đây:


<b>Hình 3. 3. Bảng mã Vigenere </b>


Dịng thứ k của bảng là một mã hóa Ceasar k-1 vị trí. Ví dụ, dịng thứ 4, ứng với
từ khóa D là mã hóa Ceasar 3 vị trí. (Trong trường hợp tổng qt, mỗi dịng của bảng
Vigenere khơng phải là một mã hóa Ceasar nữa mà là một mã hóa đơn bảng, do đó có
tên gọi là mã hóa đa bảng).


Để mã hóa một bản tin thì cần có một khóa có chiều dài bằng chiều dài bản tin.
Thường thì khóa là một cụm từ nào đó và được viết lặp lại cho đến khi có chiều
dài bằng chiều dài bản tin. Ví dụ với bản tin là „We are discovered, save yourself‟ và
khóa là từ



DECEPTIVE, chúng ta mã hóa như sau:
plaintext: wearediscoveredsaveyourself
key: DECEPTIVEDECEPTIVEDECEPTIVE


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

Trong ví dụ trên, ứng với với chữ w trong bản rõ là chữ D trong khóa, nên dịng
mã hóa thứ 4 ứng với khóa D trong bảng Vigenere được chọn. Do đó chữ w được mã
hóa thành chữ Z. Tương tự như vậy cho các chữ cịn lại.


Trong ví dụ trên, các chữ e trong bản rõ được mã hóa tương ứng thành I, T, G, T,
H, M trong bản mã. Do đó phương pháp phá mã dựa trên thống kê tần suất chữ cái là
không thực hiện được. Trong 3 thế kỷ sau đó mã hóa Vigenere được xem là mã hóa
khơng thể bị phá và được biết dưới cái tên “le chipffre indechiffrable” (mật mã khơng
thể phá nổi). Các nhà mã hóa lại chiếm ưu thế trở lại so với người phá mã.


Đến thế kỷ 19, nhà khoa học người Anh Charles Barbage, đã tìm ra cách phá mã
Vigenere. Việc phá mã bằng cách thống kê sự lặp lại của các cụm từ để phỏng đốn
chiều dài của khóa, trong ví dụ trên cụm từ VTW được lặp lại cách nhau 9 vị trí nên có
thể đốn chiều dài của khóa là 9. Và từ đó có thể tách bản mã thành 9 phần, phần thứ
nhất gồm các chữ 1, 10, 19, 28, … phần thứ hai gồm các chữ 2, 11, 20, 29….cho đến
phần thứ chín. Mỗi phần coi như được mã hóa bằng phương pháp mã hóa đơn bảng. Từ
đó áp dụng phương pháp phá mã dựa trên tần suất chữ cái cho từng phần một. Cuối cùng
ráp lại sẽ tìm ra được bản rõ.


<b>3.3. Phương pháp mã hóa TRITHEMIUS </b>


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

<b>Hình 3. 4 Bảng Tabula recta dùng trong Mã hóa Trithemius </b>
Ví dụ:


Thơng điệp gốc là HAPPY
sẽ được mã hóa thành HBRSC.


<b>3.4. Phương pháp mã hóa BELASCO </b>


Belasco dựa trên ý tưởng của Trithemius đã phát triển một mật mã phức tạp hơn
có dùng khóa. Khóa được viết ngay phía trên thơng điệp gốc. Mỗi một chữ cái trong
thơng điệp gốc cùng với chữ cái khóa được viết ngay phía trên nó tạo thành một tọa độ
dùng để xác định chữ cái mã.


Toạ độ có dạng: hàng là khóa, cột là thơng điệp gốc.
Ví dụ:


Khóa A B C A B C A B C A B C A B C


Văn bản gốc H A V E A N I C E D A Y


Văn bản mã hóa H B X E C O K C F D B A


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

<b>4.1. Mã hóa DES (Data Encryption Standard) </b>


Mã hóa đối xứng (Hay cịn gọi là mã hóa khóa bí mật) là phương pháp mã hóa
mà key mã hóa và key giải mã là như nhau (Sử dụng cùng một secret key để mã hóa và
giải mã). Đây là phương pháp thông dụng nhất hiện nay dùng để mã hóa dữ liệu truyền
nhận giữa hai bên. Vì chỉ cần có secret key là có thể giải mã được, nên bên gửi và bên
nhận cần làm một cách nào đó để cùng thống nhất về secret key.


Để thực hiện mã hóa thơng tin giữa hai bên thì:


Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thóa thuận secret key
(khóa bí mật) được dùng để mã hóa và giải mã. Vì chỉ cần biết được secret key này thì
bên thứ ba có thể giải mã được thơng tin, nên thơng tin này cần được bí mật truyền đi
(bảo vệ theo một cách nào đó).



Sau đó bên gửi sẽ dùng một thuật tốn mã hóa với secret key tương ứng để mã
hóa dữ liệu sắp được truyền đi. Khi bên nhận nhận được sẽ dùng chính secret key đó để
giải mã dữ liệu.


Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận”
secret key giữa bên gửi và bên nhận, vì nếu truyền secret key từ bên gửi sang bên nhận
mà không dùng một phương pháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy
được secret key này.


Các thuật tốn mã hóa đối xứng thường gặp: DES, AES…


<b>Hình 3. 5 Mơ hình phương pháp Mã hóa đối xứng </b>


- Bản rõ X được gọi là là bản tin gốc. Bản rõ có thể được chia nhỏ có kích thước
phù hợp.


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

- Mã là thuật toán E chuyển bản rõ thành bản mã. Thơng thường chúng ta cần
thuật tốn mã hóa mạnh, cho dù kẻ thù biết được thuật toán, nhưng khơng biết thơng tin
về khóa cũng khơng tìm được bản rõ.


- Khố K là thơng tin tham số dùng để mã hố, chỉ có người gửi và nguời nhận
biết. Khóa là độc lập với bản rõ và có độ dài phù hợp với yêu cầu bảo mật.


- Mã hố là q trình chuyển bản rõ thành bản mã, thông thường bao gồm việc
áp dụng thuật tốn mã hóa và một số q trình xử lý thơng tin kèm theo.


- Giải mã chuyển bản mã thành bản rõ, đây là quá trình ngược lại của mã hóa.
Mật mã là chun ngành khoa học của Khoa học máy tính nghiên cứu về các
nguyên lý và phương pháp mã hoá. Hiện nay người ta đưa ra nhiều chuẩn an toàn cho


các lĩnh vực khác nhau của công nghệ thông tin.


Thám mã nghiên cứu các nguyên lý và phương pháp giải mã mà khơng biết khố.
Thơng thường khi đưa các mã mạnh ra làm chuẩn dùng chung giữa các người sử dụng,
các mã đó được các kẻ thám mã cũng như những người phát triển mã tìm hiểu nghiên
cứu các phương pháp giải một phần bản mã với các thông tin không đầy đủ.


<b>Mã DES có các tính chất sau: </b>


- Là mã thuộc hệ mã Feistel gồm 16 vịng, ngồi ra DES có thêm một hốn vị
khởi tạo trước khi vào vịng 1 và một hốn vị khởi tạo sau vịng 16.


- Kích thước của khối là 64 bit.


Ví dụ: bản tin “meetmeafterthetogaparty” biểu diễn theo mã ASCII thì mã DES
sẽ mã hóa làm 3 lần, mỗi lần 8 chữ cái (64 bít): meetmeaf - tertheto - gaparty.


- Kích thước khóa là 56 bít


- Mỗi vịng của DES dùng khóa con có kích thước 48 bít được trích ra từ khóa
chính.


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

<b>Hình 3. 6 Các vòng Feistel của mã DES </b>


Sơ đồ mã DES trên gồm ba phần: phần thứ nhất là các hoán vị khởi tạo và hoán
vị kết thúc. Phần thứ hai là các vòng Feistel, phần thứ ba là thuật tốn sinh khóa con.
<b>3.4.1.1. Hốn vị khởi tạo và hoán vị kết thúc: </b>


Ta đánh số các bít của khối 64 bít theo thứ tự từ trái sang phải là 0, 1,…, 62, 63:
Hoán vị khởi tạo sẽ hốn đổi các bít theo quy tắc sau



</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

<b>Hình 3. 8 Hốn vị kết thúc của mã DES </b>


Hoán vị kết thúc chính là hốn vị nghịch đảo của hoán vị khởi tạo. Đối với
knownplaintext hay chosen-plaintext attack, hoán vị khởi tạo và hoán vị kết thúc khơng
có ý nghĩa bảo mật, sự tồn tại của hai hoán vị trên được nhận định là do yếu tố lịch sử.
<b>3.4.1.2. Hoán vị khởi tạo và hoán vị kết thúc: </b>


Hình sau minh họa một vịng Feistel của DES


<b>Hình 3. 9 Cấu trúc một vịng của mã DES </b>
Trong DES, hàm F của Feistel là:


F(Ri-1, Ki) = P-box(S-boxes(Expand(Ri-1) Ki))


- Hàm Expand vừa mở rộng vừa hốn vị Ri-1 từ 32 bít lên 48 bít theo thứ tự từ


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

<b>Hình 3. 10 Quy tắc mở rộng hàm Expand trong DES </b>


- Hàm S-boxes của DES biến đổi một số 48 bít thành một số 32 bít. Tuy nhiên,
nếu chỉ lập một bảng tra cứu như ở TinyDES thì bảng này phải có 216 dịng và 232 cột,
dẫn đến số phần tử của bảng rất lớn. Để giảm kích thước của bảng tra cứu, người ta chia
hàm S-boxes thành 8 hàm S-box con, mỗi hàm biến đổi số 6 bít thành số 4 bít.


<b>Hình 3. 11 Hàm S-boxes của DES </b>


</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47></div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

<b> - Hàm P-box cũng thực hiện hốn vị 32 bít đầu vào theo quy tắc </b>

P-box(b

0

b

1

b

2

…b

30

b

31

) = b

15

b

6

b

19

…b

10

b

3

b

24


<b>3.4.1.3. Thuật toán sinh khóa con của DES </b>



</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

Khóa 56 bít này được chia thành 2 nửa trái phải KL0 và KR0 , mỗi nửa có kích
thước 28 bít. Tại vòng thứ i (i = 1, 2, 3,…,16), KLi-1 và KRi-1 được dịch vịng trái ri
bít để có được KLi và KRi, với ri được định nghĩa:


<i>Cuối cùng khóa Ki của mỗi vịng được tạo ra bằng cách hốn vị và nén 56 bít của KLi</i>
<i>và KRi thành 48 bít theo quy tắc: </i>


<b>3.4.1.4. Độ an tồn của DES </b>


Ta hãy xem xét tính an tồn của DES trước một vài phương pháp tấn công phá
mã.


a) Tấn cơng vét cạn khóa (Brute Force Attack):


</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

nhiên người ta đã bắt đầu áp dụng những phương pháp mã hóa khác có chiều dài khóa
lớn hơn (128 bít hay 256 bít) như TripleDES hoặc AES.


b) Phá mã DES theo phương pháp vi sai (differential cryptanalysis):


Năm 1990 Biham và Shamir đã giới thiệu phương pháp phá mã vi sai. Phương
pháp vi sai tìm khóa ít tốn thời gian hơn brute-force. Tuy nhiên phương pháp phá mã
này lại địi hỏi phải có 247<sub> cặp bản rõ - bản mã được lựa chọn (chosen-plaintext). Vì vậy </sub>


phương pháp này là bất khả thi dù rằng số lần thử có thể ít hơn phương pháp brute-force.
c) Phá mã DES theo phương pháp thử tuyến tính (linear cryptanalysis)


Năm 1997 Matsui đưa ra phương pháp phá mã tuyến tính. Trong phương pháp
này, cần phải biết trước 243<sub> cặp bản rõ-bản mã (known-plaintext). Tuy nhiên 2</sub>43<sub> cũng là </sub>



một con số lớn nên phá mã tuyến tính cũng khơng phải là một phương pháp khả thi.
<b>4.2. Mã hóa RSA </b>


Mã hóa bất đối xứng (Hay cịn gọi là mã hóa khóa cơng khai) là phương pháp mã
hóa mà key mã hóa (lúc này gọi là public key – khóa cơng khai) và key giải mã (lúc này
gọi là private key – khóa bí mật) khác nhau. Nghĩa là key ta sử dụng để mã hóa dữ liệu
sẽ khác với key ta dùng để giải mã dữ liệu. Tất cả mọi người đều có thể biết được public
key (kể cả hacker), và có thể dùng public key này để mã hóa thơng tin. Nhưng chỉ có
người nhận mới nắm giữ private key, nên chỉ có người nhận mới có thể giải mã được
thông tin.


Để thực hiện mã hóa bất đối xứng thì:


Bên nhận sẽ tạo ra một gặp khóa (public key và private key). Bên nhận sẽ dữ lại
private key và truyền cho bên gửi public key. Vì public key này là cơng khai nên có thể
truyền tự do mà khơng cần bảo mật.


Bên gửi trước khi gửi dữ liệu sẽ mã hóa dữ liệu bằng thuật tốn mã hóa bất đối
xứng với key là public key từ bên nhận.


Bên nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên gửi,
với key giải mã là private key.


Điểm yếu lớn nhất của mã hóa bất đối xứng là tốc độ mã hóa và giải mã rất chậm
so với mã hóa đối xứng, nếu dùng mã hóa bất đối xứng để mã hóa dữ liệu truyền – nhận
giữa hai bên thì sẽ tốn rất nhiều chi phí.


</div>
<span class='text_page_counter'>(51)</span><div class='page_container' data-page=51>

Thuật tốn RSA được 3 nhà khoa học Ron Rivest, Adi Shamir và Len Adleman
mô tả lần đầu tiên vào năm 1977 tại học viện công nghệ Massachusetts (MIT). Tên của
thuật toán được lấy từ 3 chữ cái đầu của tên 3 tác giả.



Trước đó, vào năm 1973, Clifford Cocks, 1 nhà toán học người Anh làm việc tại
GCHQ (Goverment Communications Headquarters – 1 cơ quan tình báo của vương quốc
Anh), đã mơ tả 1 thuật tốn tương tự. Với khả năng tính tốn tại thời điểm đó thì thuật
tốn này khơng khả thi và chưa bao giờ được thử nghiệm. Tuy nhiên, phát minh này chỉ
được cơng bố vào năm 1997 vì được xếp vào loại tuyệt mật.


Thuật toán RSA được MIT đăng ký bằng sáng chế tại Mỹ vào năm 1983 (Số đăng
ký 4.105.829). Bằng sáng chế này hết hạn vào ngày 21/09/2000. Tuy nhiên, do thuật
tốn đã được cơng bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như khơng có giá
trị bên ngồi nước Mỹ. Ngồi ra, nếu cơng trình của Clifford Cocks đã được cơng bố
trước đó thì bằng sáng chế RSA đã khơng thể đăng ký.


Thuật tốn RSA có 2 khóa: khóa cơng khai (public key) và khóa bí mật (private
key). Mỗi khóa là những số cố định được sử dụng trong q trình mã hóa và giải mã.
Khóa cơng khai được cơng bố rộng rãi cho mọi người và được dùng để mã hóa. Những
thơng tin được mã hóa bằng khóa cơng khai chỉ có thể được giải mã bằng khóa bí mật
tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa
bí mật mới có thể giải mã được.


<b>3.4.2.1. Các bước mã hóa </b>


<b>a) Sinh khóa và chia sẻ khóa </b>


Với thuật tốn RSA, đầu tiên chúng ta cần tạo ra cho mình 1 cặp khóa bao gồm
khóa cơng khai và khóa bí mật (khóa riêng) theo các bước sau:


Bước 1: Chọn hai số nguyên tố lớn p và q và
tính N = pq, sao cho M < 2i-1 < N < 2i
Bước 2: Tính n = (p - 1)(q- 1)



Bước 3: Tìm một số e nguyên tố cùng nhau với n


Bước 4: Tìm một số d sao cho e.d1 mod n (d là nghịch đảo của e trong phép
modulo n)


Bước 5: Hủy bỏ n, p và q, chọn khóa cơng khai KU là cặp (e, N), khóa riêng


KR là cặp (d, N).


<b>b) Mã hóa </b>


</div>
<span class='text_page_counter'>(52)</span><div class='page_container' data-page=52>

Theo Phương án 2, mã hóa chứng thực: C=E(M, KR)=Md mod N


<b>c) Giải mã </b>


Theo Phương án 1, giải mã bảo mật: M =D(C, KR)=Cd mod N


Theo Phương án 2, giải mã chứng thực: M = D(C, KU)=Ce mod N


Bản rõ M có kích thước i-1 bít, bản mã C có kích thước i bít
Phép mã hóa RSA thỏa mãn


= M


Khơng thể tính được KR từ KU


Ví dụ: Chứng minh = M (trong Phương án 1)
Từ Bước 4 trong Sinh mã, suy ta ed=kn+1 (kZ)



- Nên =Cd mod N=Medmod N = Mkn+1mod N = Mk(p-1)(q-1)+1mod N
- Nếu M mod p=0, thì Mk(p-1)(q-1)+1<sub>M </sub><sub> 0 mod p </sub>


- Ngược lại, thì do p nguyên tố nên (M, p)=1, do đó
Mk(p-1)(q-1)+1<sub>mod p = M(M</sub>p-1<sub>)</sub>k(q-1)<sub> mod P </sub>


= M(1)k(q-1)<sub> mod P =M mod P </sub>


Vậy Mk(p-1)(q-1)+1<sub>-M chia hết cho p </sub>


- Tương tự Mk(p-1)(q-1)+1<sub>-M chia hết cho q </sub>


- Do p và q là các số nguyên tố nên Mk(p-1)(q-1)+1-M chia hết cho N=pq
Suy ra Mk(p-1)(q-1)+1<sub>M mod N </sub>


Do M và <N, từ = Mk(p-1)(q-1)+1 M mod N
nên M=


<b>3.4.2.2. Độ an toàn của RSA </b>


Sau đây ta sẽ xem xét một số cách tấn công phương pháp RSA.


a) Vét cạn khóa: cách tấn cơng này thử tất cả các khóa d có thể có để tìm ra bản
giải mã có ý nghĩa, tương tự như cách thử khóa K của mã hóa đối xứng. Với N lớn, việc
tấn công là bất khả thi.


</div>
<span class='text_page_counter'>(53)</span><div class='page_container' data-page=53>

đây. Năm 1977, các tác giả của RSA đã treo giải thưởng cho ai phá được RSA có kích
thước của N vào khoảng 428 bít, tức 129 chữ số. Các tác giả này ước đốn phải mất 40
nghìn triệu triệu năm mới có thể giải được. Tuy nhiên vào năm 1994, câu đố này đã
được giải chỉ trong vịng 8 tháng. Bảng sau liệt kê kích thước N của các RSA đã phá mã


được cho đến hiện nay.


<b>Bảng liệt kê các mốc phá mã RSA </b>


Dĩ nhiên là việc phá mã trên chỉ được thực hiện trong phịng thí nghiệm. Tuy
nhiên người ta cho rằng kích thước của N phải khoảng 1024 bít (309 chữ số) thì mới bảo
đảm an tồn thật sự.


c) Đo thời gian: đây là một phương pháp phá mã khơng dựa vào mặt tốn học
của thuật tốn RSA, mà dựa vào một “hiệu ứng lề” sinh ra bởi q trình giải mã RSA.


Hiệu ứng lề đó là thời gian thực hiện giải mã. Giả sử người phá mã có thể đo
được thời giải mã dùng thuật tốn bình phương liên tiếp. Trong thuật tốn bình phương
liên tiếp, nếu một bít của d là 1 thì xảy ra hai phép modulo, nếu bít đó là 0 thì chỉ có một
phép modulo, do đó thời gian thực hiện giải mã là khác nhau. Bằng một số phép thử
chosen-plaintext, người phá mã có thể biết được các bít của d là 0 hay 1 và từ đó biết
được d. Phương pháp phá mã này là một ví dụ cho thấy việc thiết kế một hệ mã an toàn
rất phức tạp. Người thiết kế phải lường trước được hết các tình huống có thể xảy ra.
<b>5. Cài đặt thử nghiệm </b>


</div>
<span class='text_page_counter'>(54)</span><div class='page_container' data-page=54>

Bài tập 2: Viết chương trình mã hóa và giải mã một file văn bản bằng phương
pháp mã hóa DES


</div>
<span class='text_page_counter'>(55)</span><div class='page_container' data-page=55>

<b>CÂU HỎI </b>



Câu 1: Giải mã bản mã sau, giả sử mã hóa Ceasar được sử dụng để mã hóa với k=3:
IRXUVFRUHDQGVHYHQBHDUVDJR


Câu 2: Mã hóa từ ‘explanation’ bằng phương pháp Vigenere, từ khóa là LEG.
Câu 3: Phá mã bản mã sau, giả sử mã hóa Ceasar được sử dụng: CSYEVIXIVQMREXIH


Câu 4: Xét phương pháp Vigenere. Giả sử biết bản mã “PVRLHFMJCRNFKKW” có bản rõ
tương ứng là “networksecurity”. Hãy tìm khóa K.


Câu 5: Cho p = 5, q= 11, e = 7. Tính khóa riêng (d, N) trong phương pháp RSA


Câu 6: Thực hiện mã hóa và giải mã bằng phương pháp RSA với p = 3, q = 11, e = 7, M =5
theo hai trường hợp mã hóa bảo mật và mã hóa chứng thực.


Alice chọn p = 7, q = 11, e = 17, Bob chọn p = 11, q = 13, e = 11:
a. Tính khóa riêng KRA của Alice và KRB của Bob


</div>
<span class='text_page_counter'>(56)</span><div class='page_container' data-page=56>

<b>CHƯƠNG 4: CHỮ KÝ ĐIỆN TỬ VÀ CHỨNG CHỈ SỐ </b>



<b>Giới thiệu: </b>


Trong Chương 4 trình bày về chữ ký điện tử và chứng chỉ số, một số khái niệm
cơ bản, vấn đề xác thực và chữ ký điện tử, 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ử, thuật toán chữ ký điện tử DSA, giải thuật băm
bảo mật SHA, chứng chỉ số.


<b>Mục tiêu: </b>


- Trình bày những khái niệm về chữ ký điện tử và chứng chỉ số.
- Mô tả hoạt động của hệ thống chữ ký điện tử.


- Phân loại và so sánh các hệ thống chữ ký điện tử.
<b>1. Giới thiệu </b>


Công nghệ thông tin đang thâm nhập ngày càng sâu, rộng và mạnh mẽ vào đời
sống xã hội và làm thay đổi diện mạo thế giới. Nếu khi mới xuất hiện, máy tính chỉ được


coi như một dụng cụ phụ trợ, như một chiếc máy chữ để soạn thảo văn bản, sau đó in ra
giấy, thì ngày nay với sự xuất hiện của Internet, chúng ta đang dần chuyển sang sử dụng
văn bản điện tử. Loại văn bản này đang có xu hướng thay thế tài liệu giấy. Tiện ích của
văn bản điện tử được xác định bởi hàng loạt ưu thế vượt trội: có thể đọc ngay từ màn
hình máy tính mà khơng cần in ra giấy – điều này đồng nghĩa với việc tiết kiệm chi phí
văn phịng phẩm (giấy, mực…), khơng cần khơng gian lớn để lưu giữ, việc tìm kiếm
thơng tin văn bản cố thể tiết kiệm tối đa thời gian – nếu có một hệ thống lưu giữ và tra
tìm khoa học, và đặc biệt, có thể chu chuyển trong môi trường internet với thời gian tối
thiểu.


Sự xuất hiện của căn bản điện tử đã kéo theo sự xuất hiện của một loại hình giao
dịch mới: giao dịch điện tử. Theo Luật giao dịch điện tử thì “giao dịch điện tử là giao
dịch được thực hiện bằng phương tiện điện tử”. Có thể dễ dàng nhận thấy rằng, những
giao dịch dưới dạng điện tử có những ưu thế hơn hẳn so với loại hình giao dịch truyền
thống, cho phép rút ngắn thời gian và thu gọn khoảng cách.


</div>
<span class='text_page_counter'>(57)</span><div class='page_container' data-page=57>

tử cùng với các đặc điểm của nó như: dễ dàng thay đổi nội dung thộng tin trong tài liệu
mà không để lại dấu vết, vấn đề xác định tác giả…đã dẫn đến sự cần thiết phải tìm giải
pháp cho vấn đề xác định tác giả và tính tồn vẹn, tính nguyên gốc của tài liệu điện tử.
Phương tiện kỹ thuật để giải quyết vấn đề đã nêu, công cụ để xác định địa vị pháp lý của
tài liệu điện tử, để có thể sử dụng tài liệu điện tử – chính là chữ ký điện tử.


<b>2 Một số khái niệm cơ bản </b>
<b>2.1. Khái niệm Chữ ký điện tử </b>


Chữ ký điện tử là chương trình phần mềm gồm đoạn dữ liệu ngắn đính kèm văn
bản gốc để chứng thực tác giả của văn bản và giúp người nhận kiểm tra tính tồn vẹn
của nội dung văn bản gốc. Theo Điều 21 – Luật Giao dịch điện tử: “Chữ ký điện tử được
tạo lập dưới dạng từ, chữ, số, ký hiệu, âm thanh hoặc các hình thức khác bằng phương
tiện điện tử, gắn liền hoặc kết hợp một cách lơ gíc với thơng điệp dữ liệu, có khả năng


xác nhận người ký thơng điệp dữ liệu, có khả năng xác nhận người ký thông điệp dữ
liệu và xác nhận sự chấp thuận của người đó đối với nội dung thơng điệp dữ liệu được
ký”. Về bản chất, chữ ký điện tử là chương trình phần mềm điện tử “được tạo ra bằng
sự biến đổi một thông điệp dữ liệu sử dụng hệ thống mật mã không đối xứng theo đó
người đó có được thơng điệp dữ liệu ban đầu và khóa cơng khai của người ký có thể xác
định được chính xác:


- Việc biến đổi nêu trên được tạo ra bằng đúng khóa bí mật tương ứng với khóa
cơng khai trong cùng một cặp khóa;


- Sự tồn vẹn nội dung của thơng điệp dữ liệu kể từ khi thực hiện việc biến đổi
nêu trên”. Sự xuất hiện của chữ ký điện tử và chức năng tiền định của nó, đặc biệt là vai
trị của nó như là một cơng cụ trong việc xác định tính nguyên gốc, xác định tác giả, bảo
đảm tính tồn vẹn của tài liệu điện tử, đã đóng một vai trị vơ cùng quan trọng trong việc
xác định địa vị pháp lý của tài liệu điện tử trong giao dịch điện tử. Việc sử dụng chữ ký
điện tử trong phần lớn trường hợp là cơ sở khẳng định giá trị pháp lý của những văn bản
điện tử tương đương với tài liệu giấy. Hiện nay, chữ ký điện tử là phương tiện duy nhất
để xác nhận giá trị pháp lý của tài liệu điện tử.


Như vậy, với sự xuất hiện của chữ ký điện tử, vấn đề giá trị pháp lý của tài liệu
điện tử, có thể coi như đã được giải quyết. Việc sử dụng chữ ký điện tử trong giao dịch
điện tử cũng có những ưu điểm và bất cập nhất định. Trong phạm vi tham luận này,
chúng tôi xin đề cập đến những ưu điểm và hạn chế khi sử dụng chữ ký số trong giao
dịch điện tử:


a) Những ưu điểm khi sử dụng chữ ký điện tử


</div>
<span class='text_page_counter'>(58)</span><div class='page_container' data-page=58>

Khác với văn bản giấy với chữ ký bằng tay, những văn bản điện tử có thể chuyển theo
đường truyền internet trong một thời gian rất ngắn. Như vậy, việc sử dụng chữ ký điện
tử và thực hiện những giao dịch điện tử cho phép tiết kiệm thời gian, sức lực và tăng


hiệu quả lao động.


- Ngăn chặn khả năng giả mạo chữ ký (theo nghĩa tạo ra một chữ ký điện tử y hệt
như chữ ký đang được sử dụng và có thể kiểm tra bằng cách thơng thường bởi mã khóa
cơng khai). Theo nghiên cứu của các chuyên gia, khả năng giả mạo chữ ký là 1/10, trong
khi đối với chữ ký tay, khả năng này có thể tăng đến 60-70%.


- Ngăn chặn khả năng làm giả tài liệu. Sauk hi tài liệu điện tử đã được ký bằng
chữ ký điện tử thì khơng thể thay đổi. Bất cứ sự thay đổi nào, dù nhỏ nhất, cũng có thể
bị phát hiện do chữ ký điện tử được tạo ra bởi cặp khóa bí mật và khóa cơng khai. Khi
nội dung tài liệu thay đổi, khóa cơng khai sẽ khơng cịn tương thích với khóa bí mật, hay
nói cách khác, người nhận sẽ khơng thể dùng khóa cơng khai để giải mã bí mật. Như
vậy, khi tài liệu đã được ký bằng chữ ký điện tử, người ta sẽ không thể thay đổi một
phần (giả mạo từng phần) hay toàn bộ (giả mạo toàn bộ) tài liệu mà vẫn dưới chữ ký đó.
- Cho phép xác định tác giả văn bản và tính nguyên gốc của văn bản. Về lý thuyết,
khi văn bản điện tử đã được ký bởi chữ ký điện tử thì không thể thay đổi. Nếu thay đổi
dù chỉ một ký tự trong văn bản, việc kiểm tra chữ ký sẽ không mang lại kết quả trùng
khớp, và văn bản đó, đương nhiên, sẽ khơng có hiệu lực. Như vậy. chữ ký số có thể là
cơng cụ xác định tác giả tài liệu điện tử cững như sự vẹn toàn của chúng và một văn bản
điện tử được ký bởi chữ ký số có thể là căn cứ pháp lý để bảo vệ quyền lợi hợp pháp
cho người tham gia giao dịch điện tử.


b) Những hạn chế khi sử dụng chữ ký điện tử trong giao dịch điện tử:


- Sự lệ thuộc vào máy móc và chương trình phần mềm: Như đã nói ở trên, chữ
ký điện tử là một chương trình phần mềm máy tính. Để kiểm tra tính xác thực cảu chữ
ký cần có hệ thống máy tính và phần mềm tương thích. Đây là hạn chế chung khi sử
dụng văn bản điện tử và chữ ký điện tử.


</div>
<span class='text_page_counter'>(59)</span><div class='page_container' data-page=59>

ký số chuyển giao cho người khác mật mã của mình. Như vậy, tính bảo mật của chữ ký


điện tử không cao.


- Vấn đề bản gốc, bản chính: Nếu đối với tài liệu giấy, chữ ký được ký một lần
và chỉ có một bản duy nhất (được coi là bản gốc). Bản gốc được ký bằng chữ ký sẽ
không thể cùng lúc ở hai chỗ khác nhau. Có thể tin tưởng rằng, nếu bản gốc duy nhất
mất đi thì sẽ khơng thể có bản thứ hai giống hệt như vậy. Nhưng với văn bản điện tử đã
được ký bằng chữ ký số, người ra có thể copy lại và bản copy từ bản chính và bản copy
từ bản copy khơng có gì khác biệt so với bản chính duy nhất được ký. Đây là một thách
thức đối với công tác văn bản và cả nền hành chính. Khái niệm bản gốc, bản chính trong
văn bản hành chính sẽ phải xem xét lại đối với văn bản điện tử.


- Sự có thời hạn của chữ ký điện tử. Chữ ký điện tử là chương trình phần mềm
được cấp có thời hạn cho người sử dụng. Về lý thuyết, văn bản sẽ có hiệu lực pháp lý
khi được ký trong thời hạn sử dụng của chữ ký. Tuy nhiên, thực tế hiệu lực pháp lý của
văn bản hồn tồn có thể bị nghi ngờ khi chữ ký số hết thời hạn sử dụng. Đây cũng là
một hạn chế và thách thức rất lớn đối với việc sử dụng chữ ký điện tử.


Như vậy, sự ra đời của chữ ký điện tử là cơ sở khẳng định giá trị pháp lý của văn
bản điện tử và cho phép thực hiện nhũng giao dịch điện tử. Tuy nhiên, để chữ ký điện
tử trở nên phổ biến, thông dụng tạo tiền đề cho việc văn bản điện tử phát huy những tính
năng vượt trội của mình và có thể thay thế tài liệu giấy, cần nghiên cứu và khắc phục
những hạn chế của chữ ký điện tử, đồng thời cần có thêm những công cụ khác để khẳng
định giá trị pháp lý của tài liệu điện tử. Điều này cần sự đầu tư nghiên cứu của các nhà
khoa học, các chuyên gia và sự hỗ trợ của các nhà quản lý.


<b>2.2. Chương trình ký điện tử </b>


Chương trình ký điện tử là chương trình máy tính được thiết lập để hoạt động
độc lập hoặc thông qua thiết bị, hệ thống thơng tin, chương trình máy tính khác nhằm
tạo ra một chữ ký điện tử đặc trưng cho người ký thông điệp dữ liệu (Luật giao dịch


điện tử năm 2005).


SignOffline là phần mềm hỗ trợ ký điện tử file PDF, tập tin tờ khai thuế, tránh
tình trạng quá tải khi ký online trên trang của Tổng cục Thuế. Với giao diện đơn giản,
rất dễ sử dụng lại gọn nhẹ, nên bạn sẽ không gặp bất kỳ trở ngại nào trong quá trình nộp
tờ khai thuế qua mạng.


</div>
<span class='text_page_counter'>(60)</span><div class='page_container' data-page=60>

Với SignOffline, bạn dễ dàng nộp tờ khai thuế trực tiếp qua mạng mà không cần
nút ký điện tử phải sáng.


</div>
<span class='text_page_counter'>(61)</span><div class='page_container' data-page=61>

<b>2.3. So sánh điểm khác biệt của chữ ký số và chữ ký điện tử </b>
<b>Yếu tố </b>


<b>so sánh </b> <b>Chữ ký điện tử </b> <b>Chữ ký số </b>


Tính
chất


Có thể là bất kỳ biểu tượng, hình
ảnh, quy trình nào được đính kèm
với tin nhắn hoặc tài liệu biểu thị
danh tính của người ký và hành
động đồng ý với nó.


Có thể được hình dung như một “dấu
vân tay” điện tử, được mã hóa và xác
định danh tính người thực sự ký nó.


Tiêu
chuẩn



Khơng phụ thuộc vào các tiêu
chuẩn, không sử dụng mã hóa.


Xác minh danh tính người ký thông
qua email, mã PIN điện thoại…


Tính


năng Xác minh một tài liệu Bảo mật một tài liệu
Cơ chế


xác
thực


Xác minh danh tính người ký
thông qua email, mã PIN
điện thoại…


ID kỹ thuật số dựa trên chứng chỉ


Xác
nhận


Khơng có q trình xác nhận cụ
thể.


Được thực hiện bởi các cơ quan chứng
nhận tin cậy hoặc nhà cung cấp dịch vụ
ủy thác.



Bảo


mật Dễ bị giả mạo.


Khó có thể được sao chép, giả mạo
hoặc thay đổi


Phần
mềm
độc
quyền


Có thể được xác nhận bởi bất cứ ai
mà không cần phần mềm xác minh
độc quyền


Trong nhiều trường hợp, chữ ký điện
tử không được ràng buộc về mặt pháp
lý và sẽ yêu cầu phần mềm độc quyền
để xác nhận chữ ký điện tử.


Như vậy, ta có thể thấy rằng hai khái niệm chữ ký số và chữ ký điện tử không có
cùng nghĩa. Chữ ký số chỉ là một tập con của chữ ký điện tử hay chữ ký điện tử bao hàm
chữ ký số.


<b>3. Vấn đề xác thực và chữ ký điện tử </b>


Người nhận có thể sử dụng chính phần mềm mà người ký dùng để ký số hoặc sử
dụng một số phần mềm đọc, soạn thảo văn bản phổ biến được xây dựng và phát triển


bởi các cơ quan, tổ chức tin cậy như Adobe Acrobat (của Adobe), Word, Excel, Power
Point (của Microsoft), vSignPDF (của Ban Cơ yếu Chính phủ) để kiểm tra chữ ký số
trên văn bản điện tử mà mình nhận được.


</div>
<span class='text_page_counter'>(62)</span><div class='page_container' data-page=62>

<b>4. Hoạt động của một hệ thống chữ ký điện tử </b>


Mỗi tài khoản sử dụng đều có một cặp khóa bao gồm: Khóa cơng khai và Khóa
bảo mật. Khóa cơng khai dùng để thẩm định chữ ký số, xác thực người dùng của chữ ký
số. Khóa bảo mật dùng để tạo chữ ký số. Hiện nay, các doanh nghiệp coi chữ ký số như
một công nghệ xác thực, đảm bảo an ninh, đảm bảo an toàn cho giao dịch qua Internet,
giúp giải quyết toàn vẹn dữ liệu và là bằng chứng chống chối bỏ trách nhiệm trên nội
dung đã ký, giúp doanh nghiệp yên tâm với giao dịch điện tử của mình.


Thiết bị thể hiện của chữ ký số điện tử là USB Token (với ký số riêng lẻ) hoặc
HSM (với ký số tập trung) - Thiết bị phần cứng để tạo ra cặp khóa cơng khai và bí mật
để mã hóa thơng tin của khách hàng. Chữ ký số điện tử USB Token được bảo mật bằng
mật khẩu được gọi là mã PIN.


<b>5. Phân loại các hệ thống chữ ký điện tử </b>


Chữ ký số điện tử có thể sử dụng thay thế chữ ký tay trong tất cả các trường hợp
giao dịch thương mại điện tử trong môi trường số:


- Sử dụng chữ ký điện tử trong các giao dịch thư điện tử, ký vào các email để các
đối tác, khách hàng của bạn biết có phải bạn là người gửi thư không.


- Sử dụng dụng chữ ký điện tử để đầu tư chứng khoán trực tuyến, mua bán hàng
trực tuyến, có thể dùng để thanh tốn online, chuyển tiền trực tuyến mà khơng sợ bị mất
cắp tiền như với đối với các tài khoản VISA, Master.



- Các đối tác có thể ký hợp đồng kinh tế hồn tồn trực tuyến khơng cần gặp mặt
trực tiếp với nhau, chỉ cần ký vào file hợp đồng và gửi qua e-mail.


- Dùng để kê khai, nộp thuế trực tuyến, khai báo hải quan và thông quan trực
tuyến mà không phải mất thời gian in các tờ khai, trình ký đóng dấu đỏ của công ty rồi
đến cơ quan thuế xếp hàng và ngồi đợi để nộp tờ khai này.


- Xác nhận đăng nhập vào một số Cổng giao dịch trực tuyến như:
của Bộ Kế hoạch đầu tư; của
Tổng cục Hải quan.


Bên cạnh đó, trong tương lai, các cơ quan chính phủ, nhà nước sẽ làm việc với
nhân dân hoàn toàn trực tuyến và một cửa. Việc sử dụng chữ ký số sẽ giúp các cá nhân,
tổ chức , doanh nghiệp dễ dàng sử dụng với các ứng dụng chính phủ điện tử, các cơ quan
nhà nước khi cần làm thủ tục hành chính hay xin một xác nhận của cơ quan nhà nước
để khai vào mẫu và ký số để gửi.


</div>
<span class='text_page_counter'>(63)</span><div class='page_container' data-page=63>

Thuật toán chữ ký số – Digital Signature Algorithm (DSA) – là 1 tiêu chuẩn xử
lý thông tin cơ bản (Federal Information Processing Standard – FIPS) cho các chữ ký
số. Nó được đề xuất bởi Học viện quốc giá về tiêu chuẩn và kỹ thuật – National Institute
of Standards and Technology (NIST) vào tháng 8/1991 để sử dụng cho các tiêu chuẩn
chữ ký số – Digital Signature Standard (DSS) và được thông qua như FIPS 186 (tiêu
chuẩn số 186) trong năm 1993. 4 sửa đổi với đặc điểm kỹ thuật ban đầu đã được phát
hành: FIPS 186-1 vào năm 1996, FIPS 186-2 vào năm 2000, FIPS 186-3 vào năm 2009
và FIPS 186-4 vào năm 2013.


DSA được bao hàm bên trong bằng sáng chế số 5.231.668 được chính phủ Hoa
Kỳ cấp vào ngày 26/7/1991 và được đóng góp bởi David W. Kravitz, 1 cựu nhân viên
của NSA. Bằng sáng chế này đã được trao cho chính phủ Hoa Kỳ, đại diện bởi Bộ
trưởng thương mại, tại thủ đô Washington, và NIST đã làm cho bằng sáng chế này trở


thành miễn phí trên tồn thế giới. Claus P. Schnorr cho rằng bằng sáng chế số 4.995.082
của ông đã bao hàm luôn DSA; tuyên bố này vẫn đang được tranh cãi. DSA là 1 biến
thể của sơ đồ chữ ký ElGamal.


<b>Phát sinh khóa </b>


Việc phát sinh khóa có 2 giai đoạn. Giai đoạn đầu là việc chọn các tham số thuật
tốn mà có thể chia sẻ giữa các người dùng khác nhau của hệ thống, trong khi giai đoạn
thứ 2 tính tốn các khóa cơng khai và bí mật cho 1 người dùng.


Phát sinh tham số


Chọn 1 hàm băm mật mã đã được phê duyệt H. Trong DSS ban đầu, H luôn luôn
<b>là SHA-1, nhưng các hàm băm mạnh hơn SHA-2 đã được cho phép sử dụng trong DSS </b>
gần đây. Kết quả xuất ra của hàm băm có thể được cắt lại bằng với kích thước của cặp
khóa.


<b>Quyết định 1 chiều dài khóa L và N. Đây là thước đó chính cho độ bảo mật của </b>
<b>khóa. DSS ban đầu giới hạn L là bội số của 64 sao cho 512 < L < 1024. NIST 800-57 </b>
đề nghị chiều dài là 2048 (hoặc 3072) cho các khóa với vịng đời bảo mật mở rộng vượt
<b>qua 2010 (hoặc 2030), sử dụng N dài hơn tương ứng. FIPS 186-3 chỉ rõ các cặp chiều </b>
<b>dài của L và N là (1024, 160), (2048, 224) và (3072, 256). </b>


<b>Chọn số nguyên tố q có độ lớn N bit. N phải nhỏ hơn hoặc bằng chiều dài kết </b>
quả băm ở trên.


<b>Chọn số nguyên tố p có độ lớn L bit sao cho (p-1) mod q = 0. </b>
Chọn g với công thức sau


</div>
<span class='text_page_counter'>(64)</span><div class='page_container' data-page=64>

<b>với h là 1 số bất kỳ thỏa 1< h <p-1. Nếu g = 1, thử lại với h khác. Đa số </b>


<b>các giá trị của h đều dẫn đến 1 giá trị g khả dụng; thường thì h=2 được sử dụng </b>
phổ biến.


<b>Các tham số thuật toán (p,q,g) có thể được chia sẻ giữa các người dùng khác </b>
nhau trong hệ thống.


<b>Tạo khóa </b>


Từ tập các tham số có được ở trên, giai đoạn 2 tính tốn các khóa bí mật và cơng
khai cho 1 người dùng:


<b>Chọn x ngẫu nhiên sao cho 0 < x < q </b>
<i><b>Tính y = g</b><b>x</b><b><sub> mod p </sub></b></i>


<b>Khóa cơng khai là (p, q, g, y). </b>
<b>Khóa bí mật là (p, q, g, x) </b>
<b>Ký </b>


<b>Gọi H là hàm băm và m là thông điệp: </b>


<b>Chọn số ngẫu nhiên cho từng thơng điệp có giá trị là k sao cho 0 < k < q. </b>
Tính


<b>Trong trường hợp r = 0, tính lại r với 1 giá trị k ngẫu nhiên khác. </b>
Tính


<b>Trong trường hợp s = 0, tính lại s với 1 giá trị k ngẫu nhiên khác. </b>
<b>Chữ ký số của chúng ta gồm (r,s). </b>


<b>Xác thực </b>



<b>Bỏ chữ ký nếu điều kiện 0 < r < q hoặc 0 < s < q khơng thỏa. </b>
Tính


Tính


</div>
<span class='text_page_counter'>(65)</span><div class='page_container' data-page=65>

Tính


Chữ ký hợp lệ nếu


<b>7. Giải thuật băm bảo mật SHA </b>
<b>7.1. Giới thiệu </b>


Một hàm băm nhận dữ liệu nhị phân, được gọi là thông điệp, và tạo ra một đại
diện thu gọn, được gọi là tóm lược thông điệp. Hàm băm mật mã là một hàm băm được
thiết kế để đạt được một số tính chất an tồn nào đó. Tiêu chuẩn hàm băm an tồn FIPS
180-2: Secure Hash Standard, chỉ ra các thuật toán để tính 5 hàm băm mật mã- SHA-1,
SHA-224, SHA-256, SHA-384 và SHA-512.


Năm 2005, giáo sư Xiaoyun Wang đã thông báo một tấn công lượng sai lên hàm
băm SHA-1. Cùng với những cải tiến tiếp theo của giáo sư Wang, tấn cơng này được
đánh giá là tìm được một va chạm băm (hai thơng báo có cùng giá trị băm) với khối
lượng cơng việc ước tính khoảng 263 phép toán, thay cho một cách lý tưởng là 280 phép
toán như người ta mong đợi cho SHA-1 hoặc một hàm băm tốt bất kỳ có độ dài đầu ra
bằng 160 bit. Đây là một khối lượng tính tốn lớn, nhưng 263 phép tốn rõ ràng là nằm
trong khả năng của một kẻ tấn công có nhiều tài ngun. NIST cơng nhận rằng giáo sư
Wang đã thực sự tìm được một tấn cơng va chạm thực hành lên SHA-1.


Trong các ngày 31/10 và 1/11/2005 tại Gaithersburg, NIST đã tổ chức Hội thảo
hàm băm lần thứ nhất để xem xét tình trạng của các hàm băm và đánh giá các tác động


của tấn công mà giáo sư Wang đã thực hiện. Trước hết, tấn công ảnh hưởng tới một số
ứng dụng chữ ký số, bao gồm các hoạt động ký chứng thư và tem thời gian, khi một bên
tham gia chuẩn bị thông điệp để cho bên thứ hai sinh ra chữ ký số và bên thứ ba sau đó
kiểm tra tính đúng đắn của chữ ký. Có một số ứng dụng mật mã khơng địi hỏi tính
kháng va chạm mạnh, ví dụ như: các ứng dụng băm có khố, Mã xác thực thơng điệp
dựa trên hàm hăm (Hash-based Message Authentication Code-HMAC) hoặc các ứng
dụng dẫn xuất khố của các hàm băm thì dường như khơng bị ảnh hưởng.


</div>
<span class='text_page_counter'>(66)</span><div class='page_container' data-page=66>

những ứng dụng này sau 2010. Sau 2010, các cơ quan liên bang chỉ có thể sử dụng
SHA-1 cho các ứng dụng sau: các Mã xác thực thông báo dựa trên hàm băm (HMAC); các
hàm dẫn xuất khoá (KDF); các bộ tạo số ngẫu nhiên (RNG). NIST khuyến khích những
người thiết kế giao thức và ứng dụng sử dụng các hàm băm thuộc họ SHA-2 cho tất cả
các giao thức và ứng dụng mới.”


Ngày 25/4/2006, NIST đã công bố kế hoạch 3 bước của mình để khắc phục các
tấn công mật mã lên SHA-1 như sau:


Trước hết là nhanh chóng chuyển sang họ các hàm băm SHA-2 mạnh hơn
(SHA-224, SHA-256, SHA-384 and SHA-512) đối với các ứng dụng chữ ký số. Các hàm băm
SHA-2 là một họ các hàm băm có nhiều điểm giống với SHA-1, nhưng chúng mạnh hơn
SHA-1 nhiều. Một cách tiềm năng, chúng có thể bị tấn cơng bởi cùng các kỹ thuật tương
tự, nhưng chắc không xảy ra cho tới 2015; và có thể khơng bao giờ được tìm thấy, ngoại
trừ sau nhiều thập kỷ nữa có sự gia tăng cấp luỹ thừa về năng lực tính tốn. Các hàm
băm SHA-2 đang ở trong q trình triển khai thương mại hố và có sẵn trong nhiều ứng
dụng và hệ thống mới hơn, nhưng không có trong phần lớn các hệ thống đã được triển
khai. Ràng buộc chính đối với việc sử dụng hiện nay của các hàm băm SHA-2 cho các
chữ ký là tính tương tác; trong nhiều hệ thống nó khơng được cài đặt và có thể như thế
trong nhiều năm nữa. NIST khuyến khích việc chấp nhận nhanh chóng các hàm băm
SHA-2 cho các chữ ký số, và trong trường hợp bất kỳ, cho đến cuối năm 2010, các Cơ
quan Liên bang cần phải dừng sử dụng các chữ ký dựa trên SHA-1.



Bước thứ hai là khuyến khích việc nghiên cứu hàm băm để nắm vững việc thiết
kế hàm băm và các tấn công trong công tác chuẩn bị cho việc lựa chọn các hàm băm.
Cộng đồng mật mã đang ở trong giai đoạn phát triển nhanh về lý thuyết của các hàm
băm và các tấn công mã thám chúng. Vào các ngày 24-25/8/2006, tại Santa Barbara
bang California đã diễn ra Hội thảo lần thứ hai về hàm băm mật mã.


Bước thứ ba là một cuộc tuyển chọn hàm băm, tương tự như quá trình tuyển chọn
AES đã rất thành cơng. Một lịch trình đã được đặt ra, bao hàm các yêu cầu về độ trưởng
thành và tính ổn định cần thiết trong công nghệ và lý thuyết hàm băm, các kết quả sẽ cải
tiến hoặc hoàn thiện các hàm băm SHA-2. NIST không ấn định trước về số lượng các
hàm băm sẽ được tuyển chọn từ cuộc thi này, vì một dải rất rộng các ứng dụng hàm băm
có thể cần đến hai hoặc nhiều hơn các hàm băm chuyên dụng.


<b>7.2. Hash là gì? </b>


</div>
<span class='text_page_counter'>(67)</span><div class='page_container' data-page=67>

Các dấu gạch ngang thuận tiện cho các tình huống mà máy tính có thể muốn xác
định, so sánh hoặc chạy các phép tính đối với các tệp và chuỗi dữ liệu. Nó dễ dàng hơn
cho máy tính để tính tốn một băm và sau đó so sánh chúng hơn nó sẽ là để so sánh các
tập tin gốc.


Một trong những thuộc tính chính của thuật tốn băm là tính xác định . Bất kỳ
máy tính nào trên thế giới hiểu thuật tốn băm mà bạn đã chọn đều có thể tính tốn hàm
băm cục bộ của câu ví dụ của chúng tôi và nhận được cùng một câu trả lời.


Các thuật tốn bẻ khóa được sử dụng theo mọi cách – chúng được sử dụng để lưu
trữ mật khẩu, trong vison máy tính, trong cơ sở dữ liệu.


Có hàng trăm thuật tốn băm ra khỏi đó và tất cả chúng đều có mục đích cụ thể
– một số được tối ưu hóa cho một số loại dữ liệu nhất định, một số khác là tốc độ, bảo


mật, v.v.


Hôm nay, tất cả chúng ta quan tâm là các thuật toán SHA. SHA là viết tắt của
Secure Hashing Algorithm – tên của nó đá nói lên cơng việc của nó- nó dành cho bảo
mật mật mã. Các yếu tố quan trọng nhất đối với thuật toán băm mật mã là chúng tạo ra
băm không thể đảo ngược và độc đáo . Không thể đảo ngược nếu bạn chỉ có dữ liệu băm
mà bạn khơng thể sử dụng để tìm ra phần dữ liệu ban đầu là gì, do đó cho phép dữ liệu
gốc vẫn an tồn và khơng xác định. Duy nhất để hai phần dữ liệu khác nhau không thể
tạo ra cùng một giá trị băm.


<b>7.3. SHA-1 và SHA-2 </b>


SHA-1 và SHA-2 là hai phiên bản khác nhau của thuật tốn đó. Chúng khác nhau
trong cả hai cơng trình xây dựng (cách băm kết quả được tạo ra từ dữ liệu gốc) và độ dài
bit của chữ ký. SHA-2 là người kế thừa SHA-1, vì nó là một sự cải tiến tổng thể. Chủ
yếu, mọi người tập trung vào chiều dài bit là sự khác biệt quan trọng. SHA-1 là băm 160
bit. SHA-2 thực sự là một “gia đình” của băm và có nhiều độ dài, phổ biến nhất là
256-bit.


Sự đa dạng của các băm SHA-2 có thể dẫn đến một chút nhầm lẫn, vì các trang
web và tác giả thể hiện chúng khác nhau. Nếu bạn thấy “SHA-2,” “SHA-256” hoặc
“SHA-256 bit”, những tên đó cũng chỉ là một. Nếu bạn thấy “SHA-224,” “SHA-384,”
hoặc “SHA-512,” chúng đề cập đến độ dài bit thay thế của SHA-2. Bạn cũng có thể thấy
một số trang web rõ ràng hơn và viết ra cả thuật toán và độ dài bit, chẳng hạn như
“SHA-2 384.”


</div>
<span class='text_page_counter'>(68)</span><div class='page_container' data-page=68>

SHA-2 là tiêu chuẩn mới. Nếu bạn đang nhận được chứng chỉ hôm nay, nó phải sử dụng
chữ ký đó ở mức tối thiểu.


Thỉnh thoảng bạn sẽ thấy các chứng chỉ sử dụng SHA-2 384-bit. Bạn sẽ hiếm khi


thấy định dạng 224-bit, không được chấp thuận để sử dụng với các chứng chỉ được tin
cậy công khai, hoặc giống 512 bit mà phần mềm ít được hỗ trợ rộng rãi hơn.


SHA-2 có thể sẽ vẫn được sử dụng trong ít nhất năm năm. Tuy nhiên, một số
cuộc tấn cơng bất ngờ chống lại các thuật tốn có thể được phát hiện mà sẽ nhắc nhở
một quá trình chuyển đổi trước đó.


Các dữ liệu băm bit lớn hơn có thể cung cấp bảo mật hơn vì có nhiều kết hợp có
thể hơn. Hãy nhớ rằng một trong những hàm quan trọng của thuật toán băm mật mã là
tạo ra các băm duy nhất . Nếu hai giá trị hoặc tệp khác nhau có thể tạo ra cùng một băm,
bạn tạo ra cái mà chúng ta gọi là xung đột .


Bảo mật của chữ ký số chỉ có thể được đảm bảo miễn là va chạm không xảy ra.
Va chạm cực kỳ nguy hiểm vì chúng cho phép hai tệp tạo cùng một chữ ký, do đó, khi
máy tính kiểm tra chữ ký, nó có vẻ hợp lệ mặc dù tệp đó chưa bao giờ thực sự được ký.


<b>Có bao nhiêu hàm băm? </b>


Nếu một thuật toán băm được cho là tạo ra các dữ liệu băm duy nhất cho mọi đầu
vào có thể, thì có bao nhiêu dữ liệu băm có thể có?


Một bit có hai giá trị có thể: 0 và 1. Số lượng băm duy nhất có thể được biểu thị
bằng số lượng giá trị có thể được nâng lên số bit. Đối với SHA-256 có 2 256 kết hợp có
thể. Vì vậy, 2256<sub> kết hợp đó là một con số khổng lồ. Số lượng băm có thể càng lớn, cơ </sub>


hội càng nhỏ thì hai giá trị sẽ tạo ra cùng một giá trị băm.


Về mặt kỹ thuật, một số lượng đầu vào có thể có vơ hạn , nhưng một số lượng
đầu ra hạn chế. Vì vậy, cuối cùng, mọi thuật toán băm, bao gồm cả thuật toán an tồn,
tạo ra xung đột. SHA-1 được coi là khơng an tồn bởi vì do cả kích thước và cấu trúc


của nó có thể tạo ra những sự va chạm.


Lưu ý rằng một chiều dài bit lớn không tự động có nghĩa là thuật tốn băm tạo ra
các băm an tồn. Việc xây dựng thuật tốn cũng vơ cùng quan trọng – đó là lý do tại sao
ngành cơng nghiệp SSL sử dụng các thuật tốn băm được thiết kế đặc biệt cho bảo mật
mã hóa.


<b>Mã hóa SHA-2 </b>


</div>
<span class='text_page_counter'>(69)</span><div class='page_container' data-page=69>

đáng tin cậy cơng khai hoạt động (có hàng tá trong số đó). Đúng như dự đốn, có một
số trục trặc.


Thời hạn cấp giấy chứng nhận SSL mới với SHA-1 băm là ngày 31 tháng 12 st
năm 2015. Đối với hầu hết các phần, ngành công nghiệp đã bị mắc kẹt bởi thời hạn đó.
Kể từ đó, một vài sai lầm đã được thực hiện, và một vài trường hợp đặc biệt đã được
cấp.


Nhưng trong vòng một hoặc hai năm tới, chúng ta sẽ thấy phần lớn các chứng chỉ
SHA-1 đáng tin cậy đều chết. Hiện nay, có khoảng 500.000 chứng chỉ SHA-1 vẫn cịn
tồn tại. Nếu bạn gặp chứng chỉ SHA-1, bạn sẽ thấy chỉ báo bảo mật bị suy giảm. Trong
Google Chrome, tất cả chứng chỉ SHA-1 hết hạn vào năm 2016 sẽ khơng hiển thị móc
khóa màu xanh lá cây trong kết nối an tồn và thay vào đó hiển thị biểu tượng giống
như kết nối HTTP không an tồn. Bạn có thể nhấp vào biểu tượng để có thêm thông tin
cụ thể về lý do tại sao nó được hiển thị, vì có những lý do khác không liên quan đến chữ
ký.


Nếu bạn đã thấy chứng chỉ SHA-1 trong trình duyệt của mình hơm nay, thì đây
là chứng chỉ của nó. Để xem trang này trơng như thế nào trong trình duyệt của bạn, hãy
truy cập



Các trình duyệt xử lý chứng chỉ đã ký SHA-1 hết hạn vào năm 2017 với cảnh báo
mạnh hơn . Điều này là do bảo mật của chữ ký có liên quan trực tiếp đến thời gian hợp
lệ.


<b>7.4. Giữ chữ ký an toàn </b>


Theo thời gian, các cuộc tấn công chống lại mật mã sẽ cải thiện, và sức mạnh xử
lý máy tính sẽ trở nên rẻ hơn. Điều này làm cho chữ ký SHA-2 hợp lệ kém an toàn hơn
vào năm 2020 so với năm 2016. Vì lý do này, việc lựa chọn thuật toán sẽ mạnh hơn
nhiều so với cần thiết ngay để cải thiện ngắn hạn không dẫn đến sự xâm phạm bảo mật.
Nó khơng phải là khơng thực tế cho một thuật tốn băm cụ thể để duy trì an tồn trong
một thập kỷ.


Các chuyên gia trong ngành và các nhà nghiên cứu bảo mật trên toàn thế giới
đang liên tục phân tích SHA-2 và các thuật tốn băm mật mã khác, vì vậy hãy yên tâm
rằng các chứng chỉ SSL hiện tại sẽ có chữ ký số đáng tin cậy và an toàn trong một thời
gian.


</div>
<span class='text_page_counter'>(70)</span><div class='page_container' data-page=70>

<b>8. Chứng chỉ số </b>


<b>8.1. Khái niệm Chứng chỉ số </b>


Chứng chỉ số là một tệp tin điện tử dùng để xác minh danh tính một cá nhân, một
máy chủ, một cơng ty... trên Internet. Nó giống như bằng lái xe, hộ chiếu, chứng minh
thư hay những giấy tờ xác minh cá nhân. Để có chứng minh thư, bạn phải được cơ quan
Công An sở tại cấp.


Chứng chỉ số cũng vậy, phải do một tổ chức đứng ra chứng nhận những thông tin
của bạn là chính xác, được gọi là Nhà cung cấp chứng thực số (CA - Certificate
Authority). CA phải đảm bảo về độ tin cậy, chịu trách nhiệm về độ chính xác của chứng


chỉ số mà mình cấp.


Trong chứng chỉ số có ba thành phần chính: dữ liệu cá nhân của người được cấp;
khố cơng khai (Public key) của người được cấp; chữ ký số của CA cấp chứng chỉ


<b>Dữ liệu cá nhân: bao gồm tên, quốc tịch, địa chỉ, điện thoại, email, tên tổ </b>
<b>chức,...Phần này giống như các thông tin trên chứng minh thư của mỗi người. </b>


<b>Khố cơng khai: </b>


Là một giá trị được nhà cung cấp chứng thực đưa ra như một khóa mã hố, kết
hợp cùng với một khố cá nhân duy nhất được tạo ra từ khố cơng khai để tạo thành cặp
mã khoá bất đối xứng.


Nguyên lý hoạt động của khố cơng khai trong chứng chỉ số là hai bên giao dịch
phải biết khố cơng khai của nhau. Bên A muốn gửi cho bên B thì phải dùng khố cơng
khai của bên B để mã hố thơng tin. Bên B sẽ dùng khố cá nhân của mình để mở thơng
tin đó ra.


Tính bất đối xứng trong mã hoá thể hiện ở chỗ khố cá nhân có thể giải mã dữ
liệu được mã hố bằng khóa cơng khai, nhưng khố cơng khai khơng có khả năng giải
mã lại thơng tin, kể cả những thơng tin do chính khố cơng khai đó đã mã hố.


Một cách hiểu nơm na, nếu chứng chỉ số là một chứng minh thư nhân dân, thì
khố cơng khai đóng vai trị như danh tính của bạn trên giấy chứng minh thư (gồm tên
địa chỉ, ảnh...), cịn khố cá nhân là gương mặt và dấu vân tay của bạn.


Nếu coi một bưu phẩm là thơng tin truyền đi, được "mã hố" bằng địa chỉ và tên
người nhận của bạn, thì dù ai đó có dùng chứng minh thư của bạn với mục đich lấy bưu
phẩm này, họ cũng không được nhân viên bưu điện giao bưu kiện vì ảnh mặt và dấu


vân tay khơng giống.


</div>
<span class='text_page_counter'>(71)</span><div class='page_container' data-page=71>

Cịn gọi là chứng chỉ gốc. Đây chính là sự xác nhận của CA, bảo đảm tính chính
xác và hợp lệ chứng chỉ. Muốn kiểm tra một chứng chỉ số, trước tiên phải kiểm tra chữ
ký số của CA có hợp lệ hay khơng. Trên chứng minh thư, đây chính là con dấu xác nhận
của Công An Tỉnh hoặc Thành phố mà bạn trực thuộc. Về nguyên tắc, khi kiểm tra
chứng minh thư, đúng ra đầu tiên phải là xem con dấu này, để biết chứng minh thư có
bị làm giả hay khơng.


<b>8.2. Lợi ích của chứng chỉ số </b>
<b>Mã hoá - Bảo mật: </b>


- Khi người gửi đã mã hố thơng tin bằng khố cơng khai của bạn, chắc chắn chỉ
có bạn mới giải mã được thơng tin để đọc. Trong q trình truyền qua Internet, dù có
đọc được các gói tin đã mã hố này, kẻ xấu cũng khơng thể biết được trong gói tin có
thơng tin gì.


- Đây là một tính năng rất quan trọng, giúp người sử dụng hoàn toàn tin cậy về
khả năng bảo mật thông tin. Những dữ liệu cần bảo mật cao, chẳng hạn giao dịch liên
ngân hàng, ngân hàng điện tử, thanh tốn bằng thẻ tín dụng, đều cần phải có chứng chỉ
số để đảm bảo an tồn.


<b>Chống giả mạo: </b>


<b>- Khi bạn gửi đi một thông tin, có thể là một dữ liệu hoặc một email, có sử dụng </b>
chứng chỉ số, người nhận sẽ kiểm tra được thơng tin của bạn có bị thay đổi hay không.
<b>Bất kỳ một sự sửa đổi hay thay thế nội dung của thông điệp gốc đều sẽ bị phát hiện. </b>


- Địa chỉ mail của bạn, tên domain... đều có thể bị kẻ xấu làm giả để đánh lừa
người nhận để lây lan virus, ăn cắp thông tin quan trọng. Chứng chỉ số thì khơng thể làm


giả, nên việc trao đổi thơng tin có kèm chứng chỉ số ln đảm bảo an tồn.


<b>Xác thực: </b>


<b>- Khi bạn gửi một thông tin kèm chứng chỉ số, người nhận sẽ xác định rõ được </b>
danh tính của bạn. Có nghĩa là dù khơng nhìn thấy bạn, nhưng qua hệ thống chứng chỉ
số mà bạn và người nhận cùng sử dụng, người nhận sẽ biết chắc chắn đó là bạn chứ
<b>khơng phải là một người khác. </b>


Xác thực là một tính năng rất quan trọng trong việc thực hiện các giao dịch điện
tử qua mạng, cũng như các thủ tục hành chính với cơ quan pháp quyền. Các hoạt động
này cần phải xác minh rõ người gửi thông tin để sử dụng tư cách pháp nhân.


</div>
<span class='text_page_counter'>(72)</span><div class='page_container' data-page=72>

<b>Chống chối cãi nguồn gốc: </b>


Khi sử dụng chứng chỉ số, bạn phải chịu trách nhiệm hồn tồn về những thơng
tin mà chứng chỉ số đi kèm. Trong trường hợp người gửi chối cãi, phủ nhận một thơng
tin nào đó khơng phải do mình gửi (chẳng hạn một đơn đặt hàng qua mạng), chứng chỉ
số mà người nhận có được sẽ là bằng chứng khẳng định người gửi là tác giả của thơng
tin đó. Trong trường hợp chối cãi, CA cung cấp chứng chỉ số cho hai bên sẽ chịu trách
nhiệm xác minh nguồn gốc thông tin, chứng tỏ nguồn gốc thông tin được gửi.


<b>Chữ ký điện tử: </b>


- Email đóng một vai trị khá quan trọng trong trao đổi thơng tin hàng ngày của
chúng ta vì ưu điểm nhanh, rẻ và dễ sử dụng. Tuy nhiên, email rất dễ bị tổn thương bởi
các hacker. Những thông điệp có thể bị đọc hay bị giả mạo trước khi đến người nhận.


Bằng việc sử dụng chứng chỉ số cá nhân, bạn sẽ ngăn ngừa được các nguy cơ này
mà vẫn không làm giảm những lợi thế của email. Với chứng chỉ số cá nhân, bạn có thể


tạo thêm một chữ ký điện tử vào email như một bằng chứng xác nhận của mình. Chữ ký
điện tử cũng có các tính năng xác thực thơng tin, toàn vẹn dữ liệu và chống chối cãi
nguồn gốc.


Chứng chỉ số cá nhân còn cho phép người dùng có thể chứng thực mình với một
web server thông qua giao thức bảo mật SSL. Phương pháp chứng thực dựa trên chứng
chỉ số được đánh giá là tốt, an toàn và bảo mật hơn phương pháp chứng thực truyền
thống dựa trên mật khẩu.


<b>Xác thực phần mềm </b>


Nếu bạn là một nhà sản xuất phần mềm, chắc chắn bạn sẽ cần những ''con tem
chống hàng giả'' cho sản phẩm của mình. Đây là một cơng cụ khơng thể thiếu trong việc
áp dụng hình thức sở hữu bản quyền.


</div>
<span class='text_page_counter'>(73)</span><div class='page_container' data-page=73>

<b>CÂU HỎI </b>



Câu 1: Chữ ký số và chữ ký điện tử giống nhau hay khác nhau? Vì sao?
Câu 2: Nêu khái niệm và lợi ích của Chứng chỉ số.


Câu 3: Nêu các bước thực hiện thuật toán DSA.


</div>
<span class='text_page_counter'>(74)</span><div class='page_container' data-page=74>

<b>CHƯƠNG 5: - ỨNG DỤNG BẢO MẬT </b>
<b>Giới thiệu: </b>


Chương 5 trình bày các giao thức, hệ thống xác thực, ứng dụng bảo mật trong
thanh toán điện tử, ứng dụng bảo mật trong SSL.


<b>Mục tiêu: </b>



- Mô tả chức năng và công dụng của các ứng dụng bảo mật hệ thống thông tin.
- Sử dụng các ứng dụng bảo mật trong thanh toán điện tử.


<b>1. Các giao thức </b>


-Giao thức bảo mật IP Security (IPSec) là một sự mở rộng của giao thức IP, cho
phép lớp mạng thực hiện các chức năng bảo mật và tòan vẹn cho dữ liệu truyền đi trên
mạng. IPSec là một chuẩn phức tạp, bao gồm đặc tả của nhiều chuẩn khác, được triển
hai dựa trên hai giao thức đóng gói cơ bản là ESP và AH. IPSec họat động ở hai chế độ
là chế độ vận chuyển (transport) và chế độ đường hầm (tunnel). Họat động của IPSec là
trong suốt đối với các giao thức ở lớp ứng dụng.


- Giao thức bảo mật SSL (Secure Sockets Layer) là một giao thức cộng thêm họat
động bên trên giao thức TCP. SSL cung cấp hai dịch vụ cơ bản là mật mã hóa và xác
thực dữ liệu / xác thực đầu cuối cho các ứng dụng Internet như web, e-mail, …. SSL
được sử dụng rất phổ biến hiện nay trên mạng Internet, đặt biệgt trong các thủ tục trao
đổi thơng tin bí mật giữa client và server như đăng nhập vào hộp thư điện tử, nhập số
thẻ tín dụng khi mua hàng, …


- Giao thức SET (Secure Electronic Transaction) là một giao thức bảo mật khá
toàn diện, sử dụng mật mã để cung cấp tính bảo mật cho thơng tin, đảm bảo tính tồn
vẹn trong thanh toán, và cho phép xác thực các thực thể với nhau. Để xác thực, những
người mua hàng và người bán háng được yêu cầu cần phải có các chứng chỉ số được cấp
bởi các tổ chức được đảm bảo.


<b>2. Hệ thống xác thực </b>
<b>2.1. Xác thực là gì? </b>


Xác thực là quá trình người dùng cung cấp bằng chứng là danh định đó là đúng
và phù hợp với mình.



</div>
<span class='text_page_counter'>(75)</span><div class='page_container' data-page=75>

<b>2.2. Các phương pháp xác thực: </b>


- Những gì bạn biết (Something you know): Ví dụ: Password; Số PIN (Personal
Identification Number). Ưu điểm: tiện lợi, chi phí thấp; Khuyết điểm: mức độ bảo mật
phụ thuộc vào độ phức tạp của password.


- Những gì bạn có (Something you have): thẻ thơng minh (smart card): có bộ nhớ
nhỏ và có khả năng thực hiện một vài tính tốn. Trong thẻ có lưu thơng tin về người
dùng và cả password, người dùng có thể chọn những password phức tạp và thay đổi khi
cần; địa chỉ MAC, địa chỉ IP.


- Những gì là chính bạn (Something you are): Sử dụng các yếu tố sinh trắc học
để xác thực như nhận dạng khn mặt; qt trịng mắt; hình học bàn tay; nhận dạng vân
tay; xác thực bằng sinh trắc học gồm 2 bước: đăng ký mẫu và nhận dạng. Ưu điểm: khó
tấn cơng, khuyết điểm là tốn kém: lưu trữ, xử lý. Các lỗi xảy ra khi xác thực bằng sinh
trắc học: Fraud rate, False accept rate. Tỷ lệ lỗi sinh trắc học:


+Fraud rate = Insult rate
+ Vân tay (5%)


+ Hình học bàn tay (0.1%)
+ Trịng mắt (0.001%)


Một phương pháp xác thực tốt là phương pháp mà không dễ bị đoán hoặc bị làm
giả. Phương pháp xác thực tốt thì tốn kém


- Xét về khả năng bị tấn công: Biometrics < Smartcard < Password
- Xét về chi phí: Password < Smartcard < Biometrics



Có thể kết hợp các phương pháp xác thực với nhau.
<b>3. Ứng dụng bảo mật trong thanh toán điện tử </b>


<b>3.1. Giao thức SSL </b>


Giao thức SSL, đã phát triển một cách rộng rãi trên Internet ngày này, được giúp
đỡ để tạo một chuẩn cơ bản về khả năng bảo mật cho website thương mại. Đa phần
người tiêu dùng sử dụng các trình duyệt web có SSL, cũng như phần mềm server bán
hàng. Hàm trăm triệu USD đã được dùng để mua bán khi khách hàng sử dụng số thẻ tín
dụng của họ trên các website bán hàng có sử dụng cơng nghệ bảo mật SSL.


</div>
<span class='text_page_counter'>(76)</span><div class='page_container' data-page=76>

- Người chủ thẻ được bảo vệ trước những kẻ nghe trộm nhưng không được bảo
vệ trước những người bán hàng. Một vài người bán hàng ko đáng tin cậy, và một trong
số họ là các hacker, những người có thể lập ra các website về thời trang của hãng XYZ
hay giả mạo website của hãng XYZ để thu thập thơng tin về thẻ tín dụng của khách
hàng.


- Người bán hàng không được bảo vệ trước những người mua hàng không tin
cậy, những người sử dụng các thẻ tín dụng khơng cịn giá trị sử dụng hoặc những người
bị ngân hàng trả lại tiền mà không cần bất kỳ lý do nào.


Cho dù SET là một giải pháp hồn hảo cho thanh tốn điện tử an toàn, một phiên
bản tương đối đơn giản của SSL đang được sử dụng rộng rãi hiện nay. Đó là vì giao thức
SET phức tạp và các chứng thực không được phân phối rộng rãi với một cách thức ổn
định. Về mặt lý thuyết, giao thức SSL (Netscape 1996) có thể sử dụng một chứng thực
song khơng bao gồm khái niệm một cổng nối thanh tốn. Những người kinh doanh cần
nhận được cả thông tin về việc đặt hàng lẫn thơng tin thẻ tín dụng bởi vì quá trình cầm
giữ được khởi phát bởi người kinh doanh.Giao thức SET, trái lại, giấu các thông tin về
thẻ tín dụng của khách hàng đối với người kinh doanh và cũng giấu cả thông tin về đơn
hàng đối với các ngân hàng để bảo vệ sự riêng tư. Thiết kế này được gọi là chữ ký kép


(dual signature). Cho đến khi SET trở nên thông dụng, một phiên bản đơn giản của SSL
là một sự lựa chọn rất đúng đắn.


<b>3.2. Giao thức SET </b>


Có 4 thực thể chính trong giao thức SET:


- Cardholder (người mua hàng, chủ thẻ): Một người tiêu dùng hay một công ty
mua hàng, người sử dụng thẻ tín dụng để trả tiền cho người bán (người kinh doanh).


- Merchant (người bán hàng): Một thực thể chấp nhận thẻ tín dụng và cung cấp
hàng hố hay dịch vụ để đổi lấy việc trả tiền.


- Merchant’s Bank (cổng thanh toán hay ngân hàng của người bán hàng): Một cơ
quan tài chính (thường là một ngân hàng) lập tài khoản cho người kinh doanh và có được
chứng từ của các phiếu bán hàng uỷ quyền.


- Issuer (ngân hàng của người chủ thẻ): Một cơ quan tài chính (thường là một
ngân hàng) lập tài khoản cho người chủ sở hữu thẻ và phát hành thẻ tín dụng.


Đầu tiên, cả hai bên chủ thẻ và người bán hàng cần phải đăng ký với một CA
(trung tâm xác thực) trước khi họ có thể mua hay bán hàng trên Internet. Sau khi đã đăng
ký thành công, chủ thẻ và người bán hàng có thể bắt đầu các giao dịch với nhau theo 9
bước trong giao thức SET, bao gồm:


</div>
<span class='text_page_counter'>(77)</span><div class='page_container' data-page=77>

2. Người mua hàng gửi yêu cầu mua hàng và thơng tin thanh tốn, bao gồm 2
phần trong 1 thông báo:


a. Thông tin về mặt hàng cần mua – phần này dành cho người bán hàng
b. Thơng tin về thẻ tín dụng – phần này chỉ dành cho ngân hàng



3. Người bán hàng chuyển thông tin của thẻ tín dụng (phần b) tới ngân hàng phía
cửa hàng


4. Ngân hàng thương mại (phía cửa hàng) kiểm tra tính xác thực của thanh tốn
với ngân hàng thương mại (phía chủ thẻ).


5. Ngân hàng thương mại (phía chủ thẻ) kiểm chứng thơng tin thanh toán từ cổng
thanh toán.


6. Ngân hàng thương mại gửi lại thông tin xác thực cho người bán hàng.
7. Người bán chấp nhận yêu cầu mua bán và gửi hàng cho phía khách hàng.
8. Người bán hàng nhận giao dịch thanh toán từ ngân hàng của họ.


9. Ngân hàng (phía chủ thẻ) gửi thơng tin về hóa đơn tới khách hàng.


Nó dựa vào mật mã và chứng chỉ số để đảm bảo tính bí mật và an tồn cho thơng
báo. Gói dữ liệu được mã hóa bằng một khóa được sinh ngẫu nhiên rồi sử dụng khóa
cơng khai của người nhận để mã hóa và được gửi đến cho người nhận với dạng một
thơng báo đã được mã hóa. Người nhận giải mã “digital envelope” bằng khóa riêng rồi
dùng khóa đối xứng để giải mã và thu được thông báo ban đầu.


Các chứng chỉ số, còn được gọi là các giấy ủy nhiệm điện tử hoặc là các ID, là
các tài liệu chứng thực số sử dụng một khóa cơng khai có ràng buộc với cá nhân hoặc
thực thể. Cả khách hàng và người bán hàng cần phải đăng ký một chứng chỉ xác thực
(CA) trước khi họ có thể thực hiên các giao dịch thanh tốn. Theo cách đó, khách hàng
sẽ có các giấy ủy nhiệm điện tử để chứng minh sự tin cậy của mình. Người bán hàng
cũng đăng ký và nhận các chứng chỉ số đó. Các chứng chỉ số này khơng chứa các thơng
tin nhạy cảm như số thẻ tín dụng . Cuối cùng, khi khách hàng muốn thực hiện một giao
dịch, anh ta và người bán hàng trao đổi các chứng chỉ số vói nhau. Nếu cả hai bên chấp


nhận thì họ có thể thực hiện ngay việc giao dịch. Các chứng chỉ số phải được cấp lại sau
vài năm, và tránh bị giả mạo.


<b>4. Ứng dụng bảo mật trong SSL </b>


</div>
<span class='text_page_counter'>(78)</span><div class='page_container' data-page=78>

Chứng thư số SSL cài trên website của doanh nghiệp cho phép khách hàng khi
truy cập có thể xác minh được tính xác thực, tin cậy của website, đảm bảo mọi dữ liệu,
thông tin trao đổi giữa website và khách hàng được mã hóa, tránh nguy cơ bị can thiệp.


<b>Hình 5. 1 Mơ hình giao thức SSL </b>


Cơng nghệ SSL có các tính năng nổi bật như: thực hiện mua bán bằng thẻ tín
dụng, bảo vệ những thông tin cá nhân nhạy cảm của khách hàng, đảm bảo hacker khơng
thể dị tìm được mật khẩu.


SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các
trình duyệt được mang tính riêng tư, tách rời. SSL là một chuẩn công nghiệp được sử
dụng bởi hàng triệu trang web trong việc bảo vệ các giao dịch trực tuyến với khách hàng
của họ.


<b>Hình 5.2 Các bước thực hiện giao thức SSL </b>


</div>
<span class='text_page_counter'>(79)</span><div class='page_container' data-page=79>

<b>Hình 5. 3 Sơ đồ thực hiện giao thức SSL giữa trình duyệt web với máy chủ </b>
<b>Tại sao nên sử dụng SSL? </b>


– Bạn đăng ký domain để sử dụng các dịch vụ website, email v.v… -> ln có
những lỗ hổng bảo mật -> hacker tấn công -> SSL bảo vệ website và khách hàng của
bạn


– Bảo mật dữ liệu: dữ liệu được mã hóa và chỉ người nhận đích thực mới có thể


giải mã.


– Tồn vẹn dữ liệu: dữ liệu khơng bị thay đổi bởi tin tặc.


– Chống chối bỏ: đối tượng thực hiện gửi dữ liệu không thể phủ nhận dữ liệu
của mình.


<b>Lợi ích khi sử dụng SSL ? </b>
– Xác thực website, giao dịch


– Nâng cao hình ảnh, thương hiệu và uy tín doanh nghiệp


– Bảo mật các giao dịch giữa khách hàng và doanh nghiệp, các dịch vụ truy nhập
hệ thống


– Bảo mật webmail và các ứng dụng như Outlook Web Access, Exchange, và
Office Communication Server;


– Bảo mật các ứng dụng ảo hó như Citrix Delivery Platform hoặc các ứng dụng
điện toán đám mây;


– Bảo mật dịch vụ FTP;


– Bảo mật truy cập control panel;


</div>
<span class='text_page_counter'>(80)</span><div class='page_container' data-page=80>

– Bảo mật VPN Access Servers, Citrix Access Gateway …


</div>
<span class='text_page_counter'>(81)</span><div class='page_container' data-page=81>

<b>CÂU HỎI </b>



Câu 1: Nêu 3 loại giao thức ứng dụng trong bảo mật hiện nay.


Câu 2: Tại sao nên dùng giao thức SSL.


Câu 3: Hãy nêu các phương pháp xác thực bằng sinh trắc học.


</div>
<span class='text_page_counter'>(82)</span><div class='page_container' data-page=82>

<b>TÀI LIỆU THAM KHẢO </b>



<i><b>1. TS. Lê Văn Phùng, “Sách An tồn thơng tin” Nhà xuất bản thơng tin và truyền thông, 2019. </b></i>
<i><b>2. Đặng Trường Sơn, “Giáo trình bảo mật thơng tin” Đại học Quốc gia TPHCM, 2012. </b></i>
<i><b>3. TS. Thái Văn Tùng, “Giáo trình mật mã và an tồn thơng tin” Nhà xuất bản thơng tin </b></i>
và truyền thông, 2011.


<i><b>4. Lê Trung Thành, Nguyễn Văn Hách, Bùi Thị Thùy, “Giáo trình An Tồn Và Bảo Mật </b></i>
<b>Thông Tin” Đại học tài nguyên môi trường Hà Nội, 2014. </b>


</div>
<span class='text_page_counter'>(83)</span><div class='page_container' data-page=83>

<b>DANH MỤC HÌNH ẢNH </b>



Hình 1. 1 Mơ hình hệ thống thơng tin ... 1


Hình 1. 2 Các yêu cầu trong bảo mật hệ thống thơng tin ... 2


Hình 1. 3 Các bước cơ bản trong bảo mật thơng tin ... 3


Hình 1.4 Mơ hình truyền tin bị tấn cơng ... 4


Hình 1. 5 Xem thời gian cập nhật bản gần nhất trên Microsoft Security Essentials ... 7


Hình 1. 6 Cài đặt tự động cập nhật theo thời gian trên Microsoft Security Essentials ... 7


Hình 2. 1 Mơ tả bảo mật mạng ... 20



Hình 3. 1 Sơ đồ một hệ thống mã hóa ... 26


Hình 3. 2 Bảng mã Ceasar ... 28


Hình 3. 3. Bảng mã Vigenere ... 29


Hình 3. 4 Bảng Tabula recta dùng trong Mã hóa Trithemius... 31


Hình 3. 5 Mơ hình phương pháp Mã hóa đối xứng ... 32


Hình 3. 6 Các vịng Feistel của mã DES ... 34


Hình 3. 7 Hốn vị khởi tạo của mã DES ... 34


Hình 3. 8 Hốn vị kết thúc của mã DES... 35


Hình 3. 9 Cấu trúc một vịng của mã DES ... 35


Hình 3. 10 Quy tắc mở rộng hàm Expand trong DES ... 36


Hình 3. 11 Hàm S-boxes của DES ... 36


Hình 4. 1 Phần mềm SignOffine ... 50


Hình 5. 1 Mơ hình giao thức SSL ... 68


Hình 5.2 Các bước thực hiện giao thức SSL ... 68


</div>
<span class='text_page_counter'>(84)</span><div class='page_container' data-page=84>

<b>DANH MỤC TỪ VIẾT TẮT </b>




<b>STT </b> <b>Ký hiệu, chữ viết tắt </b> <b>Chữ viết đầy đủ </b>


1 DES Division of Employment Security


2 RSA Rivest–Shamir–Adleman


3 CNTT Công nghệ thông tin


4 EFF Electronic Frontier Foundation


</div>

<!--links-->
An toàn bảo mật hệ thống
  • 16
  • 833
  • 10
  • ×