You are on page 1of 47

Lương Đức Trọng - 20215489

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI


VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
*

BÁO CÁO
HỌC PHẦN: NGUYÊN LÝ HỆ ĐIỀU HÀNH
(Mã học phần IT3070)

Đề tài:
CƠ CHẾ BẢO MẬT TRONG HỆ
ĐIỀU HÀNH WINDOWS

Sinh viên thực hiện : Lương Đức Trọng


Mã số sinh viên : 20215489
Lớp : 141296
Giảng viên hướng dẫn : Ths. Đỗ Tuấn Anh

Hà Nội, tháng 6 năm 2023

1
Lương Đức Trọng - 20215489

Mục lục
TỔNG QUAN.............................................................................................................................4
1. Vấn đề bảo mật.................................................................................................................4
2. Các mối đe dọa chương trình............................................................................................7
2.1. Trojan Horse..............................................................................................................7
2.2. Trap Door...................................................................................................................9
2.3. Logic Bomb.................................................................................................................9
2.4 Stack and Buffer Overflow........................................................................................10
2.5. Virus.........................................................................................................................10
3. Các mối đe dọa hệ thống và mạng..................................................................................12
3.1. Sâu máy tính (worm)................................................................................................13
3.2 Quét cổng (port scanning)........................................................................................15
3.3. Từ chối dịch vụ (DOS)...............................................................................................16
4. Mật mã như một công cụ bảo mật.................................................................................18
4.1. Mã hóa (Encryption)................................................................................................19
4.2. Triển khai mã hoá....................................................................................................25
4.3 Một ví dụ: SSL...........................................................................................................26
5. Xác thực người dùng.......................................................................................................30
5.1. Mật khẩu..................................................................................................................30
5.2. Lỗ hổng bảo mật......................................................................................................31
5.3. Bảo vệ mật khẩu......................................................................................................31
5.4. Mật khẩu một lần sử dụng.......................................................................................32
5.5. Sinh trắc học............................................................................................................33
6. Triển khai phòng thủ bảo mật.........................................................................................34
6.1. Chính sách bảo mật..................................................................................................34
6.2. Đánh giá lỗ hổng......................................................................................................35
6.3. Phát hiện xâm nhập.................................................................................................36
6.4. Bảo vệ chống virus...................................................................................................38
6.5. Kiểm toán, kế toán và ghi nhật ký............................................................................38
7. Bảo vệ hệ thống và mạng bằng tường lửa......................................................................39
8. Phân loại bảo mật máy tính............................................................................................41
9. Ví dụ: WINDOWS 7..........................................................................................................43

2
Lương Đức Trọng - 20215489

Danh mục tham khảo..............................................................................................................47

3
Lương Đức Trọng - 20215489

TỔNG QUAN

Bảo mật hệ điều hành (Operating System Security) là quá trình bảo
vệ và đảm bảo tính toàn vẹn, sẵn sàng, và an toàn của một hệ điều hành
(OS) trước các mối đe dọa bảo mật. Mục tiêu của bảo mật hệ điều hành là
ngăn chặn việc truy cập trái phép, thay đổi hoặc hủy diệt dữ liệu, xâm
nhập và vi phạm quyền riêng tư của người dùng, và đảm bảo sự tin cậy và
khả dụng của hệ thống.
Các tài nguyên máy tính phải được bảo vệ chống lại việc truy cập trái
phép, phá hủy hoặc thay đổi và bất đồng bộ. Những tài nguyên này bao
gồm thông tin được lưu trữ trong hệ thống (bao gồm cả dữ liệu và các
lệnh), cũng như CPU, bộ nhớ, ổ đĩa và mạng.
Chúng ta bắt đầu bằng việc xem xét các cách tài nguyên có thể bị lạm
dụng vô tình hoặc cố ý sử dụng sai. Sau đó, chúng ta khám phá một công
cụ quan trọng để bảo mật - mật mã học. Cuối cùng, chúng ta xem xét các
cơ chế để bảo vệ hoặc phát hiện các cuộc tấn công.
1. Vấn đề bảo mật
Trong nhiều ứng dụng, việc đảm bảo tính bảo mật của hệ thống máy
tính đòi hỏi sự nỗ lực đáng kể. Các công ty lớn chính là con mồi béo bở
dành cho các kẻ cắp thông tin. Các hệ thống chứa dữ liệu liên quan đến
hoạt động doanh nghiệp có thể gây chú ý cho những đối thủ cạnh tranh
không lành mạnh. Ngoài ra, rò rỉ dữ liệu bởi sự cố hoặc do tấn công có
thể làm ảnh hưởng nghiêm trọng đến khả năng hoạt động của công ty.
Các cơ chế bảo vệ chỉ hoạt động tốt khi người dùng tuân theo mục
đích sử dụng và quyền truy cập vào các tài nguyên của họ, bao gồm
chương trình và dữ liệu, phần lơn cơ chế đó chỉ bảo vệ việc mất mát do
sựu cố. Chúng ta nói rằng một hệ thống an toàn nếu các tài nguyên của nó
được sử dụng và truy cập như dự kiến trong mọi trường hợp. Thật không
may, không hệ thống nào là hoàn hảo. Tuy nhiên, chúng ta phải có các cơ
chế để làm cho giảm tần suất vi phạm bảo mật, thay vì xảy ra thường
xuyên. Các dạng vi phạm bảo mật do vô tình hay cố ý có thể kể đến như:
- Vi phạm tính bảo mật. Loại vi phạm này liên quan đến việc đọc dữ
liệu (hoặc đánh cắp thông tin) trái phép. Thông thường, vi phạm tính
bảo mật là mục tiêu của kẻ xâm nhập. Đánh cắp bí mật từ hệ thống
hoặc luồng dữ liệu, chẳng hạn như thông tin thẻ tín dụng hoặc thông

4
Lương Đức Trọng - 20215489

tin danh tính để lừa đảo danh tính, điều đó có thể trực tiếp đem lại tiền
cho kẻ xâm nhập.
- Vi phạm tính toàn vẹn. Vi phạm này liên quan đến việc sửa đổi dữ liệu
trái phép. Ví dụ, các cuộc tấn công như vậy có thể dẫn đến việc
chuyển giao trách nhiệm pháp lý cho bên vô tội hoặc sửa đổi mã
nguồn của một ứng dụng thương mại quan trọng.
- Vi phạm tính khả dụng. Vi phạm này liên quan đến việc phá hủy dữ
liệu trái phép. Một số kẻ xâm nhập thích phá hoại và khoe khoang hơn
là kiếm được tiền. Phá huỷ trang web là một ví dụ phổ biến của loại vi
phạm bảo mật này.
- Trộm cắp dịch vụ. Vi phạm này liên quan đến việc sử dụng trái phép
tài nguyên. Ví dụ: kẻ xâm nhập (hoặc chương trình xâm nhập) có thể
cài đặt trình nền trên một hệ thống hoạt động với máy chủ tệp.
- Từ chối dịch vụ. Vi phạm này liên quan đến việc ngăn chặn việc sử
dụng hợp pháp hệ thống. Các cuộc tấn công từ chối dịch vụ (DOS) đôi
khi chỉ là vô tình.
Những kẻ tấn công sử dụng một số phương pháp để cố gắng vi phạm
bảo mật. Phổ biến nhất là giả mạo, trong đó một người tham gia giao tiếp
giả làm một người khác. Bằng cách giả mạo, kẻ tấn công vi phạm trình
xác thực, tính chính xác của nhận dạng; sau đó họ có thể có được quyền
truy cập mà thông thường họ không được phép hoặc vượt quá các đặc
quyền của họ — có được các đặc quyền mà bình thường họ không được
hưởng.
Một cuộc tấn công lặp lại bao gồm việc lặp lại việc truyền dữ liệu
hợp lệ một cách độc hại hoặc lừa đảo. Đôi khi, việc phát lại bao gồm toàn
bộ cuộc tấn công—ví dụ trong quá trình lặp lại yêu cầu chuyển tiền, kẻ
tấn công có thể sửa đổi tin nhắn để có thể sở hữu những lợi nhuận khác.
Và còn một kiểu tấn công khác là tấn công trung gian, trong đó
những kẻ tấn công nằm trong luồng dữ liệu của một cuộc trò chuyện, giả
dạng là người gửi đối với người nhận và ngược lại. Trong giao tiếp mạng,
một cuộc tấn công trung gian có thể được bắt đầu bằng cách chiếm
quyền điều khiển phiên, trong đó phiên giao tiếp đang hoạt động bị
chặn.

5
Lương Đức Trọng - 20215489

Như chúng ta đã đề xuất, việc bảo vệ tuyệt đối hệ thống khỏi sự lạm
dụng ác ý là không thể, nhưng cái giá phải trả cho kẻ xâm nhập có thể
khiến hắn chùn bước. Trong một số trường hợp, chẳng hạn như tấn công
từ chối dịch vụ, tốt hơn hết là ngăn chặn cuộc tấn công nhưng đủ để phát
hiện cuộc tấn công để có thể thực hiện các biện pháp đối phó.
Để bảo vệ một hệ thống, chúng ta phải thực hiện các biện pháp bảo
mật ở bốn cấp độ:
1. Vật lý. Địa điểm hoặc các địa điểm chứa hệ thống máy tính phải
được bảo vệ về mặt vật lý chống lại sự xâm nhập có vũ trang hoặc lén
lút của những kẻ xâm nhập. Cả phòng máy và thiết bị đầu cuối hoặc
máy trạm có quyền truy cập vào máy đều phải được bảo vệ.

6
Lương Đức Trọng - 20215489

2. Con người. Việc ủy quyền phải được thực hiện cẩn thận để đảm bảo
rằng chỉ những người dùng phù hợp mới có quyền truy cập vào hệ
thống.
3. Hệ điều hành. Hệ thống phải tự bảo vệ mình khỏi các vi phạm an
ninh vô tình hoặc hữu ý.
4. Mạng. Nhiều dữ liệu máy tính trong các hệ thống hiện đại truyền qua
các đường dây thuê riêng, đường dây dùng chung như Internet, kết
nối không dây hoặc đường dây quay số. Việc chặn những dữ liệu này
có thể gây hại như xâm nhập vào máy tính và việc gián đoạn liên lạc
có thể cấu thành một cuộc tấn công từ chối dịch vụ từ xa, làm giảm
việc sử dụng và tin tưởng của người dùng vào hệ thống.
Bảo mật ở hai cấp độ đầu tiên phải luôn duy trì nếu muốn đảm bảo an
ninh hệ thống. Một điểm yếu bảo mật ở cấp độ cao( Vật lý hoặc con
người) cho phép ta vượt qua bảo mật cấp độ thấp. Do vậy, phải luôn bảo
vệ tất cả các khía cạnh trên để có thể tạo ra một hệ thống vững mạnh.
2. Các mối đe dọa chương trình
Các tiến trình, cùng với nhân, là thiết yếu để thực hiện các công việc
trên máy tính. Do đó, việc viết một chương trình tạo ra lỗ hổng bảo mật,
hoặc khiến tác vụ bình thường thay đổi hoạt động của nó và tạo ra lỗ
hổng, là mục tiêu phổ biến của những kẻ xâm nhập.
Trên thực tế, hầu hết các sự kiện bảo mật phi chương trình đều có
mục tiêu là gây ra mối đe dọa cho chương trình. Ví dụ, mặc dù rất khả
hữu khi đăng nhập vào một hệ thống mà không cần xác minh, nhưng sẽ
hữu ích hơn rất nhiều nếu để lại một tiến trình nền( back-door) đằng sau
cung cấp thông tin hoặc cho phép truy cập dễ dàng ngay cả khi việc khai
thác ban đầu bị chặn.
Các phương pháp phổ biến mà các chương trình gây ra lỗ hổng bảo
mật:
2.1. Trojan Horse
Nhiều hệ thống có cơ chế cho phép các chương trình do người dùng
này viết được thực thi bởi người dùng khác. Nếu các chương trình này
được thực thi trong một miền cung cấp quyền truy cập của người dùng
đang thực thi, thì những người dùng khác có thể lạm dụng các quyền này.
Ví dụ, một chương trình soạn thảo văn bản có thể bao gồm mã để tìm
kiếm tệp cần chỉnh sửa cho các từ khóa nhất định. Nếu bất kỳ tệp nào
được tìm thấy, toàn bộ tệp có thể được sao chép vào một khu vực đặc biệt
mà người tạo trình soạn thảo văn bản có thể truy cập được. Đoạn mã sử

7
Lương Đức Trọng - 20215489

dụng sai môi trường công việc được gọi là Trojan Horse. Đường dẫn tìm
kiếm dài, chẳng hạn như phổ biến trên các hệ thống UNIX, làm trầm
trọng thêm Trojan Horse. Đường dẫn tìm kiếm liệt kê tập hợp các thư
mục để tìm kiếm khi tên chương trình không rõ ràng được đưa ra. Đường
dẫn được tìm kiếm cho một tệp có tên đó và tệp được thực thi. Tất cả các
thư mục trong một đường dẫn tìm kiếm như vậy phải được bảo mật, nếu
không một Trojan Horse nào có thể lọt vào đường dẫn của người dùng và
thực thi một cách vô tình.
Ví dụ như việc sử dụng ký tự "." trong đường dẫn tìm kiếm. Ký tự "."
thông báo cho shell bao gồm thư mục hiện tại trong quá trình tìm kiếm.
Do đó, nếu một người dùng có ký tự "." trong đường dẫn tìm kiếm, đă đặt
thư mục hiện tại của mình là thư mục của một người bạn và nhập tên một
lệnh hệ thống bình thường, lệnh đó có thể được thực thi từ thư mục của
người bạn. Chương trình sẽ chạy trong miền của người dùng, cho phép
chương trình thực hiện bất cứ điều gì mà người dùng được phép làm, bao
gồm xóa các tệp tin của người dùng.
Một biến thể của con Trojan house là một chương trình giả mạo đăng
nhập. Một người dùng không nghi ngờ bắt đầu đăng nhập vào một thiết bị
đầu cuối và nhận ra rằng anh ta đã gõ sai mật khẩu của mình. Anh ta thử
lại và thành công. Điều đã xảy ra là khóa xác thực và mật khẩu của anh ta
đã bị đánh cắp bởi chương trình giả lập đăng nhập, mà kẻ trộm đã để lại
chạy trên thiết bị đầu cuối. Chương trình giả lập đã lưu mật khẩu, in ra
một thông báo lỗi đăng nhập và thoát; sau đó, người dùng được cung cấp
một thông báo đăng nhập chính xác. Loại tấn công này có thể được khắc
phục bằng cách hệ điều hành in một thông báo sử dụng vào cuối một
phiên tương tác hoặc bằng một chuỗi phím không thể thu thập, ví dụ như
tổ hợp Ctrl-Alt-Delete được sử dụng bởi tất cả các hệ điều hành Windows
hiện đại.

Một biến thể khác nữa của Trojan Horse là phần mềm gián điệp. Phần
mềm gián điệp đôi khi đi kèm với một chương trình mà người dùng đã
chọn để cài đặt. Thông thường, nó đi kèm với các chương trình phần
mềm miễn phí hoặc phần mềm chia sẻ, nhưng đôi khi nó đi kèm với phần
mềm thương mại. Mục tiêu của phần mềm gián điệp là tải quảng cáo
xuống để hiển thị trên hệ thống của người dùng, tạo cửa sổ trình duyệt bật
lên khi một số trang nhất định được truy cập hoặc thu thập thông tin từ hệ
thống của người dùng và gửi lại cho trang trung tâm.
Ví dụ: việc cài đặt một chương trình có vẻ vô hại trên hệ thống
Windows có thể dẫn đến việc tải một chương trình nền là phần mềm gián
điệp. Phần mềm gián điệp có thể liên hệ với một trang trung tâm, nhận
8
Lương Đức Trọng - 20215489

được một tin nhắn và danh sách địa chỉ người nhận, đồng thời gửi một tin
nhắn rác đến những người dùng đó từ máy Windows. Quá trình này tiếp
tục cho đến khi người dùng phát hiện ra phần mềm gián điệp. Thông
thường, phần mềm gián điệp không bị phát hiện. Trong năm 2010, người
ta ước tính rằng 90 phần trăm thư rác đã được gửi bằng phương pháp này.
Hành vi trộm cắp dịch vụ này thậm chí không bị coi là phạm tội ở hầu hết
các quốc gia! Phần mềm gián điệp là một ví dụ vi mô về một vấn đề vĩ
mô: vi phạm nguyên tắc đặc quyền tối thiểu.
Đây là trường hợp do lỗi của con người — một điểm yếu an ninh
thông thường. Thứ hai, theo mặc định, một hệ điều hành có thể cho phép
nhiều đặc quyền hơn nhu cầu của một người dùng bình thường. Đây là
một trường hợp quyết định thiết kế hệ điều hành kém. Một hệ điều hành
(và thực tế là phần mềm nói chung) nên cho phép kiểm soát chi tiết quyền
truy cập và bảo mật, nhưng nó cũng phải dễ quản lý và dễ hiểu. Các biện
pháp bảo mật không thuận tiện hoặc không đầy đủ chắc chắn sẽ bị phá
vỡ, gây ra sự suy yếu tổng thể về bảo mật mà chúng được thiết kế để thực
hiện.
2.2. Trap Door
Người thiết kế một chương trình hoặc hệ thống có thể để lại một lỗ
hổng trong phần mềm mà chỉ họ mới có khả năng sử dụng.
Ví dụ, các lập trình viên đã bị bắt vì biển thủ tiền từ các ngân hàng
bằng cách đưa vào các lỗi làm tròn trong mã của họ và thỉnh thoảng ghi
có nửa xu từ việc làm tròn vào tài khoản của họ. Việc ghi vào tài khoản
này có thể cộng lại thành một số tiền lớn, nếu xét đến số lượng giao dịch
mà một ngân hàng lớn thực hiện.
Một Trap Door thông minh có thể được bao gồm trong trình biên
dịch. Trình biên dịch có thể tạo mã đối tượng tiêu chuẩn cũng như Trap
Door, bất kể mã nguồn được biên dịch. Hoạt động này đặc biệt bất chính,
vì việc tìm kiếm mã nguồn của chương trình sẽ không phát hiện ra bất kỳ
vấn đề nào. Chỉ mã nguồn của trình biên dịch mới chứa thông tin. Trap
Door đặt ra một vấn đề khó khăn bởi vì để phát hiện ra chúng, chúng ta
phải phân tích tất cả mã nguồn cho tất cả các thành phần của hệ thống.
Các hệ thống phần mềm có thể bao gồm hàng triệu dòng mã, phân tích
này không được thực hiện thường xuyên và thường thì nó không được
thực hiện.

2.3. Logic Bomb


Hãy xem xét một chương trình chỉ khởi tạo một sự cố bảo mật trong
một số trường hợp nhất định. Sẽ khó bị phát hiện vì trong điều kiện hoạt

9
Lương Đức Trọng - 20215489

động bình thường sẽ không có lỗ hổng bảo mật. Tuy nhiên, khi đáp ứng
một bộ tham số được xác định trước, lỗ hổng bảo mật sẽ được tạo ra.
Kịch bản này được gọi là Logic Bomb. Ví dụ, một lập trình viên có
thể viết mã để phát hiện xem liệu anh ta có còn được tuyển dụng hay
không; nếu việc kiểm tra đó không thành công, một trình nền có thể được
sinh ra để cho phép truy cập từ xa hoặc mã có thể được khởi chạy để gây
thiệt hại cho trang web.
2.4 Stack and Buffer Overflow
Stack and Buffer Overflow là cách phổ biến nhất để kẻ tấn công bên
ngoài hệ thống, trên mạng hoặc kết nối quay số, để giành quyền truy cập
trái phép vào hệ thống đích. Người dùng được ủy quyền của hệ thống
cũng có thể sử dụng cách khai thác này để vượt qua đặc quyền.
Về cơ bản, cuộc tấn công khai thác một lỗi trong chương trình. Lỗi
này có thể là một trường hợp đơn giản của việc lập trình kém, trong đó
lập trình viên đã bỏ qua việc kiểm tra giới hạn mã trên một trường đầu
vào. Trong trường hợp này, kẻ tấn công gửi nhiều dữ liệu hơn chương
trình mong đợi. Bằng cách sử dụng thử và sai hoặc bằng cách kiểm tra
mã nguồn của chương trình bị tấn công nếu có, kẻ tấn công xác định lỗ
hổng và viết chương trình để thực hiện những việc sau:
- Làm tràn trường đầu vào, đối số dòng lệnh hoặc bộ đệm đầu vào
— ví dụ: trên trình nền mạng — cho đến khi nó ghi vào ngăn xếp.
- Ghi đè địa chỉ trả về hiện tại trên ngăn xếp bằng địa chỉ của mã
khai thác được tải ở bước dưới
- Viết một bộ mã đơn giản cho khoảng trống tiếp theo trong ngăn
xếp bao gồm các lệnh mà kẻ tấn công muốn thực thi — ví dụ:
spawnashell..
Kết quả của việc thực thi chương trình tấn công này sẽ là một trình
bao gốc hoặc thực thi lệnh đặc quyền khác.
2.5. Virus
Một hình thức đe dọa chương trình khác là vi-rút. Vi-rút là đoạn mã
được nhúng trong một chương trình hợp pháp. Vi-rút tự sao chép và được
thiết kế để “lây nhiễm” các chương trình khác. Chúng có thể tàn phá hệ
thống bằng cách sửa đổi hoặc phá hủy các tệp và gây ra sự cố hệ thống
cũng như trục trặc chương trình. Như với hầu hết các cuộc tấn công xâm
nhập, vi-rút được thiết kế cụ thể đối với các kiến trúc, hệ điều hành và
ứng dụng. Virus là một vấn đề đặc biệt đối với người dùng máy tính cá
nhân. UNIX và các hệ điều hành đa người dùng khác nói chung không dễ
bị nhiễm vi-rút vì các chương trình thực thi được bảo vệ khỏi việc ghi bởi

10
Lương Đức Trọng - 20215489

hệ điều hành. Ngay cả khi vi-rút lây nhiễm một chương trình như vậy, sức
mạnh của nó thường bị hạn chế vì các khía cạnh khác của hệ thống được
bảo vệ.
Vi-rút thường lây lan qua e-mail, trong đó phổ biến nhất là thư rác.
Chúng cũng có thể lây lan khi người dùng tải xuống các chương trình vi-
rút từ các dịch vụ chia sẻ tệp trên Internet hoặc trao đổi các bộ nhớ bị
nhiễm vi-rút.
Vi-rút hoạt động như thế nào? Một khi vi-rút tiếp cận máy mục tiêu,
một chương trình được gọi là trình chứa vi-rút sẽ chèn vi-rút vào hệ
thống. Trình chứa vi-rút thường là một loại Trojan, được thực thi với mục
đích khác nhưng cài đặt vi-rút là hoạt động chính của nó. Sau khi cài đặt,
vi-rút có thể thực hiện một số hoạt động khác nhau. Có hàng ngàn loại vi-
rút, nhưng chúng thuộc vào một số danh mục chính. Lưu ý rằng nhiều vi-
rút có thể thuộc nhiều danh mục cùng một lúc.

- File. Một vi-rút tệp tiêu chuẩn xâm nhập vào hệ thống bằng cách
thêm chính nó vào một tệp. Nó thay đổi điểm bắt đầu của chương trình để
thực thi nhảy vào mã của nó. Sau khi thực thi, nó trả lại quyền kiểm soát
cho chương trình để không bị nhận ra. Vi-rút tệp đôi khi được gọi là vi-
rút ký sinh, vì chúng không để lại các tệp đầy đủ và để cho chương trình
chủ vẫn hoạt động bình thường.
- Boot. Một loại vi-rút khởi động xâm nhập vào phân vùng khởi động
của hệ thống, thực thi mỗi khi hệ thống được khởi động và trước khi hệ
điều hành được tải. Nó theo dõi các phương tiện khởi động khác và xâm
nhập vào chúng. Những vi-rút này cũng được biết đến là vi-rút bộ nhớ, vì
chúng không xuất hiện trong hệ thống tệp.

11
Lương Đức Trọng - 20215489

- Macro. Hầu hết các vi-rút được viết bằng ngôn ngữ cấp thấp, như
ngôn ngữ lắp ráp hoặc C. Vi-rút macro được viết bằng ngôn ngữ cấp cao,
chẳng hạn như Visual Basic. Những vi-rút này được kích hoạt khi chạy
một chương trình có khả năng thực thi macro. Ví dụ, một vi-rút macro có
thể được chứa trong một tệp bảng tính.
- Source code. Một vi-rút mã nguồn tìm kiếm mã nguồn và sửa đổi nó
để bao gồm vi-rút và giúp vi-rút lây lan.
- Polymorphic. Một vi-rút đa dạng thay đổi mỗi khi được cài đặt để
tránh bị phát hiện bởi phần mềm chống vi-rút. Những thay đổi không ảnh
hưởng đến tính năng của vi-rút, mà thay đổi chữ ký của vi-rút. Chữ ký vi-
rút là một mẫu được sử dụng để xác định một vi-rút, thường là một chuỗi
các byte tạo nên mã vi-rút.
- Encrypted. Một vi-rút được mã hóa bao gồm mã giải mã cùng với
vi-rút đã được mã hóa, một lần nữa để tránh bị phát hiện. Vi-rút trước tiên
giải mã và sau đó thực thi.
- Stealth. Vi-rút gian trá này cố gắng tránh bị phát hiện bằng cách sửa
đổi các phần của hệ thống có thể được sử dụng để phát hiện nó. Ví dụ, nó
có thể sửa đổi lệnh gọi hệ thống đọc sao cho nếu tệp mà nó đã sửa đổi
được đọc, hình dạng ban đầu của mã sẽ được trả lại thay vì mã đã bị
nhiễm.
- Tunneling. Vi-rút này cố gắng bypass sự phát hiện bởi một công cụ
quét chống vi-rút bằng cách cài đặt nó trong chuỗi xử lý ngắt. Các vi-rút
tương tự cũng tự cài đặt trong các trình điều khiển thiết bị.
- Multipartite. Một loại vi-rút này có khả năng xâm nhập vào nhiều
phần khác nhau của hệ thống, bao gồm các phân vùng khởi động, bộ nhớ
và tệp tin. Điều này làm cho việc phát hiện và kiểm soát nó trở nên khó
khăn.
- Armored. Một vi-rút được mã hóa để làm cho nó khó để những nhà
nghiên cứu chống vi-rút hiểu và giải mã. Nó cũng có thể được nén để
tránh bị phát hiện và diệt vi-rút. Ngoài ra, trình cài đặt vi-rút và các tệp
tin đầy đủ khác mà là một phần của sự lây nhiễm vi-rút thường được ẩn
thông qua thuộc tính tệp tin hoặc tên tệp tin không thể xem được.
Nhìn chung, vi-rút là những cuộc tấn công an ninh gây nhiều rối loạn
nhất, và vì chúng hiệu quả, chúng sẽ tiếp tục được viết và lan truyền.

3. Các mối đe dọa hệ thống và mạng

Ngày nay với sự phát triển bùng nổ của công nghệ thông tin, hầu hết
các thông tin của các tổ chức, cá nhân đều được lưu trữ trên hệ thống máy
12
Lương Đức Trọng - 20215489

tính. Cùng với sự phát triển của tổ chức là những đòi hỏi ngày càng cao
của môi trường hoạt động cần phải chia sẻ thông tin của mình cho nhiều
đối tượng khác nhau qua mạng. Việc mất mát, rò rỉ thông tin có thể ảnh
hưởng nghiêm trọng đến tài nguyên thông tin, tài chính, danh tiếng của tổ
chức, cá nhân. Các phương thức tấn công thông qua mạng ngày càng tinh
vi, phức tạp có thể dẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ
hoàn toàn hệ thống thông tin của tổ chức. Vì vậy an toàn thông tin là
nhiệm vụ quan trọng, nặng nề và khó đoán trước đối với các hệ thống
thông tin.
Các mối đe dọa chương trình thường sử dụng sự cố trong cơ chế bảo
vệ của hệ thống để tấn công các chương trình. Ngược lại, các mối đe dọa
hệ thống và mạng liên quan đến việc lạm dụng các dịch vụ và kết nối
mạng. Các mối đe dọa hệ thống và mạnnmg tạo ra tình trạng mà ở đó tài
nguyên hệ điều hành và tệp người dùng bị lạm dụng. Đôi khi, một cuộc
tấn công mạng và hệ thống được sử dụng để khởi động một cuộc tấn công
chương trình và ngược lại.
Trong phần còn lại của phần này, chúng tôi thảo luận về một số ví dụ
và các mối đe dọa hệ thống và mạng, gồm worms (sâu máy tính), quét
cổng và từ chối dịch vụ. Trên thực tế, những cuộc tấn công hiệu quả hơn
và khó chống lại hơn khi có nhiều hệ thống tham gia. Ví dụ, trong một
máy tính, hệ điều hành thường có thể xác định được người gửi và người
nhận của một tin nhắn. Ngay cả việc người gửi chuyển sang địa chỉ ID
của một người khác cũng được lưu lại trong một bản ghi. Khi có nhiều hệ
thống tham gia, đặc biệt là hệ thống được điều khiển bởi những kẻ tấn
công, thì việc truy tìm như vậy gặp nhiều khó khăn hơn.
3.1. Sâu máy tính (worm)

Sâu máy tính là một chương trình máy tính chứa phần mềm độc hại độc lập tự
sao chép để lây lan sang các máy tính khác. Nó thường sử dụng mạng máy
tính để tự lây lan, dựa vào các lỗi bảo mật trên máy tính mục tiêu để truy
cập. Nó sẽ sử dụng máy này làm máy chủ để quét và lây nhiễm cho các
máy tính khác. Khi các máy tính bị sâu mới này kiểm soát, sâu sẽ tiếp tục
quét và lây nhiễm các máy tính khác sử dụng các máy tính này làm máy
chủ và hành vi lây lan này sẽ tiếp tục. Sâu máy tính sử dụng phương pháp
đệ quy để tự sao chép mà không cần chương trình chủ và tự phân phối
dựa trên quy luật tăng trưởng theo cấp số nhân, sau đó điều khiển và lây
nhiễm ngày càng nhiều máy tính trong thời gian ngắn. Sâu hầu như luôn

13
Lương Đức Trọng - 20215489

gây ra ít nhất một số tác hại cho mạng, ngay cả khi chỉ bằng cách tiêu
tốn băng thông
Vào ngày 02 tháng 11 năm 1988, Robert Tappan Morris một sinh viên tốt
nghiệp ngành khoa học máy tính tại Đại học Cornell, đã tung ra "sâu" đầu tiên và
được gọi là Sâu Morris. Nó đã thâm nhập và lây lan trên một lượng lớn các
máy tính trên internet, ước tính vào thời điểm đó chiếm một phần mười
tất cả máy tính kết nối trên internet. Khi Morris bị kiện ra tòa án, tòa phúc
thẩm chính phủ Hoa Kỳ ước tính chi phí của việc loại bỏ "sâu" này vào
khoảng $ 200-53,000 cho mỗi lần cài đặt và làm sạch trên mỗi máy tính.
Đặc điểm của sâu:
- Độc lập và chủ động: Sâu không cần chương trình chủ vì nó là một
chương trình độc lập hoặc đoạn mã độc lập. Do đó, nó không bị hạn
chế bởi chương trình chủ mà có thể chạy độc lập và chủ động thực hiện
các cuộc tấn công lợi dụng vào lỗ hổng của hệ điều hành.
- Tính phức tạp: Một số sâu được kết hợp với các tập lệnh trang web
và được ẩn trong các trang HTML bằng VBScript, ActiveX và các công
nghệ khác. Khi người dùng truy cập một trang web có chứa vi rút,
vi rút sẽ tự động cư trú trong bộ nhớ và chờ được kích hoạt. Cũng
có một số sâu được kết hợp với các chương trình
Backdoor hoặc Trojan, chẳng hạn như "Code Red"
- Tính lây nhiễm: Sâu có khả năng lây nhiễm cao hơn các loại virus
truyền thống. Chúng không chỉ lây nhiễm vào các máy tính cục bộ
mà còn lây nhiễm sang tất cả các máy chủ và máy khách trên mạng
dựa trên máy tính cục bộ. Sâu có thể dễ dàng lây lan qua các thư mục
chia sẻ, e-mail, các trang web độc hại và các máy chủ có nhiều lỗ hổng
trong mạng.

Hiện nay, các chuyên gia bảo mật chia worm máy tính ra làm các loại
như sau:

 Email worms: Loại sâu máy tính này hoạt động bằng cách tạo và
gửi thư đi đến tất cả các địa chỉ trong danh sách liên hệ của người
dùng. Các tin nhắn bao gồm một tập tin chứa chương trình độc hại
để lây nhiễm vào hệ thống máy tính khi người nhận mở nó.
 File-sharing worms: Đây là loại sâu máy tính được ngụy trang dưới
dạng các tập tin đa phương tiện. Stuxnet là một trong những "File-
sharing worms" khét tiếng nhất cho tới nay. Nó phát tán chương

14
Lương Đức Trọng - 20215489

trình độc hại thông qua các thiết bị USB bị nhiễm và tấn công vào
hệ thống kiểm soát giám sát để thu thập dữ liệu.
 Cryptoworms: Worm máy tính này hoạt động bằng cách mã hóa dữ
liệu trên hệ thống máy tính của nạn nhân. Nó có thể được sử dụng
trong các cuộc tấn công ransomware, trong đó thủ phạm theo dõi
nạn nhân và yêu cầu thanh toán để đổi lấy chìa khóa giải mã các dữ
liệu của họ.
 Internet worms: Một số worm máy tính nhắm mục tiêu vào các
trang web thứ hạng cao nhưng có bảo mật kém. Chúng có thể lây
nhiễm sang máy tính đang truy cập trang web đó và lây lan sang
các thiết bị khác thông qua kết nối internet hoặc trong một mạng
LAN.
 Instant messaging worm: Giống như email worms, loại worm này
thường ẩn bên trong các tập tin đính kèm hoặc liên kết. Chúng lây
lan thông qua danh sách liên hệ của người dùng bị nhiễm. Sự khác
biệt duy nhất là thay vì tới từ email, nó đến dưới dạng một tin nhắn
"bất ngờ" trên một dịch vụ trò chuyện.
3.2 Quét cổng (port scanning)
Cổng là một điểm trên máy tính nơi diễn ra quá trình trao đổi thông
tin giữa nhiều chương trình và internet với các thiết bị hoặc máy tính
khác. Để đảm bảo tính nhất quán và đơn giản hóa quá trình lập trình, các
cổng được gán số cổng. Điều này, cùng với địa chỉ IP, tạo thành thông tin
quan trọng mà mỗi nhà cung cấp dịch vụ internet (ISP) sử dụng để thực
hiện các yêu cầu.

Các cổng thường được quản lý bởi giao thức điều khiển truyền dẫn
(TCP) , giao thức này xác định cách thiết lập và duy trì hội thoại mạng
giữa các ứng dụng và giao thức gói dữ liệu người dùng (UDP) , chủ yếu được
sử dụng để thiết lập các kết nối có độ trễ thấp và chịu được mất mát giữa
các ứng dụng . Một số cổng phổ biến nhất và được sử dụng thường xuyên
nhất bao gồm:

 Cổng 20 (UDP): Giao thức truyền tệp (FTP) được sử dụng để truyền dữ
liệu
 Cổng 22 (TCP): Giao thức Secure Shell (SSH) được sử dụng cho
FTP, chuyển tiếp cổng và đăng nhập an toàn
 Cổng 23 (TCP): Giao thức Telnet được sử dụng cho giao tiếp
không được mã hóa
 Cổng 53 (UDP): Hệ thống tên miền (DNS) , dịch tên miền internet thành
địa chỉ IP có thể đọc được bằng máy
15
Lương Đức Trọng - 20215489

 Cổng 80 (TCP): Giao thức truyền siêu văn bản World Wide
Web (HTTP)

Quét cổng không phải là một cuộc tấn công mà thực tế là một phương
pháp để kẻ xâm nhập phát hiện các lỗ hổng của hệ thống để tấn công.
Quét cổng thường được tự động hóa, bằng cách sử dụng một công cụ để
cố gắng thiết lập kết nối TCP/IP tới một cổng cụ thể hoặc một dải cổng.
Ví dụ, giả sử có một lỗ hổng (hoặc bug) đã biết trong sendmail. Một kẻ
xâm nhập có thể sử dụng công cụ quét cổng để thử kết nối tới cổng 25
của một hệ thống cụ thể hoặc một loạt hệ thống. Nếu kết nối thành công,
kẻ xâm nhập (hoặc công cụ) có thể cố gắng giao tiếp với dịch vụ đang
chạy trên cổng đó để xác định xem đó có thực sự là sendmail và nếu phải,
liệu đó có phải là phiên bản có lỗi hay không.

3.3. Từ chối dịch vụ (DOS)

DOS tên đầy đủ là Denial Of Service là một hình thức tấn công từ
chối dịch vụ. Đây là hình thức tấn công khá phổ biến hiện nay, mục đích
là làm sập một máy chủ hoặc mạng. Kẻ tấn công thực hiện điều này bằng
cách "tuồn" ồ ạt traffic hoặc gửi thông tin có thể kích hoạt sự cố đến máy
chủ, hệ thống hoặc mạng mục tiêu, từ đó khiến người dùng hợp pháp
(nhân viên, thành viên, chủ tài khoản) không thể truy cập dịch vụ, tài
nguyên họ mong đợi.Các cuộc tấn công DOS này thường nhằm vào các
máy chủ ảo (VPS) hay Web Server của các doanh nghiệp lớn như ngân
hàng, chính phủ hay là các trang thương mại điện tử.
Tấn công DOS thường chỉ được tấn công từ một điểm duy nhất, tức
là nó sẽ xuất phát tại một điểm và chỉ có một dải IP thôi. Ta có thể phát
hiện và ngăn chặn được.

16
Lương Đức Trọng - 20215489

DDOS tên đầy đủ là Distributed Denial Of Service là nỗ lực làm sập một
dịch vụ trực tuyến bằng cách làm tràn ngập nó với traffic từ nhiều nguồn.
Các cuộc tấn công DDoS được thực hiện với mạng các máy kết nối
Internet. Các mạng này bao gồm máy tính và những thiết bị khác (chẳng
hạn như thiết bị IoT) đã bị nhiễm phần mềm độc hại, cho phép kẻ tấn
công điều khiển chúng từ xa. Các thiết bị riêng lẻ này được gọi là bot
(hoặc zombie) và một nhóm bot được gọi là botnet. Khi mạng botnet đã
được thiết lập, kẻ tấn công có thể chỉ đạo một cuộc tấn công bằng cách
gửi các hướng dẫn từ xa đến từng bot.
Khi máy chủ hoặc mạng của nạn nhân bị botnet nhắm mục tiêu, mỗi
bot sẽ gửi yêu cầu đến địa chỉ IP của mục tiêu, có khả năng khiến máy
chủ hoặc mạng bị quá tải, dẫn đến việc từ chối dịch vụ đối với lưu lượng
truy cập bình thường. Bởi vì mỗi bot là một thiết bị Internet hợp pháp,
việc tách lưu lượng tấn công khỏi lưu lượng truy cập thông thường sẽ rất
khó khăn.
Do đó tấn công DDOS mạnh hơn DOS rất nhiều vì điểm mạng của
hình thức này đó là nó được phân tán từ nhiều dải IP khác nhau khiến cho
người bị tấn công sẽ rất khó phát hiện để ngăn chặn được.

Lý do hacker có thể điều khiển được hàng triệu máy tính trên khắp
thế giới là vì rất nhiều người đang dùng các phần mềm crack, hay phần
mềm lậu được chia sẻ tràn lan trên mạng bị chèn mã độc, virus…Hay
bằng cách lợi dụng những lỗ hổng về bảo mật cũng như sự không hiểu
biết, kẻ này có thể giành quyền điều khiển máy tính của bạn

17
Lương Đức Trọng - 20215489

Một số kiểu tấn công mà Hacker hay sử dụng là:


 Đánh vào băng thông (Bandwidth)
 Tấn công vào giao thức
 Tấn công bằng các gói tin bất thường
 Tấn công qua phần mềm trung gian
 Các công cụ tấn công dùng Proxy như: Trinoo, Flood Network,
Trinity, Knight, Kaiten…
4. Mật mã như một công cụ bảo mật
Trong thời đại công nghệ thông tin, hầu hết thông tin đều được số
hóa, vì thế việc truyền đạt chúng trở nên nhanh gọn và thuận tiện hơn bao
giờ hết. Tuy nhiên, nguy cơ những luồng thông tin này bị tấn công cũng
sẽ cao, khi đã có mặt những thiết bị tấn công công nghệ cao. Để dữ liệu
không bị chỉnh sửa, thiệt hại hay bị mất đi, chúng sẽ được mã hóa, để
những kẻ tấn công không thể đọc được thông tin trong dữ liệu. Đó chính
là công việc của mật mã.
Mật mã học (cryptography) là một lĩnh vực liên quan đến các kỹ
thuật ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể là
trong thông tin liên lạc. Mật mã gắn liền với quá trình mã hóa
(encryption) và giải mã (decryption); điều này có nghĩa là nó gắn với các
cách thức để chuyển đổi từ dạng thông tin có thể nhận thức được thành
dạng không nhận thức được và ngược lại, làm cho thông tin trở thành
dạng không thể đọc được nếu như không có các kiến thức bí mật.
Các thuộc tính của mật mã là:

1. Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung
của thông tin chứa đựng trong dạng đã mật mã hóa của nó. Nói khác
đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể
nào về nội dung của thông điệp.
2. Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có
bị thay đổi trong quá trình truyền thông hay không.
3. Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm
tra xem người gửi đó có thực sự gửi thông tin đi hay không.
4. Không từ chối: Người gửi không thể từ chối việc mình đã gửi thông
tin đi.
5. Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi
nhiều lần đến người nhận mà người gửi không hề hay biết.

18
Lương Đức Trọng - 20215489

Cốt lõi mật mã ngày nay áp dụng toán học, cụ thể là toán học rời rạc
bảo gồm các vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ
phức tạp tính toán, thống kê và tổ hợp. Mật mã cũng gắn liền với công
nghệ nhằm củng cố và phát triển những thuộc tính trên cũng như tốc độ
mã hóa thông tin.
Mật mã hiện đại được ứng dụng nhiều trong:
 Lưu trữ mật khẩu và dữ liệu: Ngăn chặn dữ liệu bị rò rỉ thiệt hại nếu
ổ cứng bị đánh cắp.
 Giao tiếp bảo mật: Thường thấy trong giao tiếp giữa người dùng
(client) và máy chủ (server).
 Thương mại điện tử: Bao gồm thanh toán điện tử, tiền tệ điện tử, v.v.
 Chữ ký điện tử (digital signature) và nhiều loại dấu vết điện tử khác
(digital footprint).

4.1. Mã hóa (Encryption)

Mã hóa thực chất là một phương pháp biến đổi thông tin dưới
dạng bình thường trở nên không thể hiểu được nếu không có phương tiện
giải mã. Về mặt kỹ thuật, mã hóa là quá trình chuyển đổi cấu trúc văn bản
thuần túy (plaintext) mà con người có thể dễ dàng đọc được nhưng không
thể hiểu được nội dung là gì. Cấu trúc này nếu hiểu theo thuật ngữ kỹ
thuật gọi là bản mã (ciphertext). Lúc này toàn bộ thông tin văn bản ban
đầu sẽ chuyển sang một dạng ngôn ngữ khác không giống với văn bản
ban đầu.
Một hệ thống mã hóa bao gồm các thành phần:

1. thông tin trước khi mã hóa, ký hiệu là P (Plaintext).


2. thông tin sau khi mã hóa, ký hiệu là C (Ciphertext).
3. chìa khóa, ký hiệu là K (Key).
4. Phương pháp mã hóa, ký hiệu là E (Encryption).
5. Phương pháp giải mã, ký hiệu là D (Decryption).
Quá trình mã hóa được tiến hành bằng cách áp dụng hàm toán
học E lên thông tin P, vốn được biểu diễn dưới dạng số, để trở thành
thông tin đã mã hóa C. Quá trình giải mã được tiến hành ngược lại: áp
dụng hàm D lên thông tin C để được thông tin giải mã P.
Có 2 loại mã hóa được triển khai phổ biến hiện nay là mã hóa đối
xứng mà mã hóa bất đối xứng. Phần tiếp theo của bài viết sẽ giải thích
sâu hơn về 2 loại mã hóa này.

19
Lương Đức Trọng - 20215489

4.1.1 Mã hóa đối xứng (Symmetric Encryption)

Chúng ta bắt đầu đi tìm hiểu về việc bảo mật có dùng khóa. Khóa ở
đây được gọi là “key”, nó là mấu chốt để thuật toán có thể nhìn vào mà
biết đường mã hóa và giải mã dữ liệu. Ở phương pháp mã hóa đối xứng,
chìa khóa để mã hóa và giải mã là như nhau nên người ta mới gọi là đối
xứng.
Cơ chế hoạt động khá đơn giản:

 Người gửi sử dụng khóa chung (Ks) để mã hóa thông tin rồi gửi cho
ngời nhận. C=E(P,K)
 Người nhận nhận được thông tin đó sẽ dùng chính khóa chung (Ks)
để giải mã. P=D(C,K)

*Lưu ý rằng khóa (Ks): là giá trị ngẫu nhiên và bí mật được chia sẻ
giữa các bên trao đổi thông tin và được tạo ra từ: bên thứ 3 được tin cậy
tạo và phân phối tới bên gửi và bên nhận; hoặc, bên gửi tạo ra và chuyển
cho bên nhận.
Các loại mã hóa đối xứng phổ biến hiện nay đó là DES (Data
Encryption Standard) và AES (Advanced Encryption Standard). Trong
đó, AES phổ biến trong thế giới hiện đại hơn và nó dùng để thay thế cho
DES vốn đã xuất hiện từ năm 1977. Lý do là AES dùng kích thước ô nhớ
lớn hơn DES để mã hóa dữ liệu, thường thấy là 128-bit và 256-bit, có một

20
Lương Đức Trọng - 20215489

số lên tới 512-bit và 1024-bit còn của DES có kích thước 64-bit hoặc ít
hơn. Kích thước ô nhớ càng lớn thì càng khó phá mã hơn, bù lại việc giải
mã và mã hóa cũng cần nhiều năng lực xử lý hơn.

Cơ chế mã hóa của hệ điều hành Windows cũng dùng AES và


dùng key tạo ra bằng password kết hợp thêm SHA.

Mặt hạn chế của mã hóa đối xứng:

 Do dùng chung khóa để mã hóa và giải mã => nếu bị mất hoặc bị


đánh cắp bởi hacker sẽ bị lộ thông tin, bảo mật không cao.
 Cần kênh mật để chia sẻ khóa bí mật giữa các bên => Làm sao để
chia sẻ một cách an toàn ở lần đầu tiên.
 Để đảm bảo liên lạc an toàn cho tất cả mọi người trong một nhóm
gồm n người => cần tổng số lượng lớn khóa là n(n-1)/2
 Khó ứng dụng trong các hệ thống mở.
 Không thể dùng cho mục đích xác thực hay mục đích chống thoái
thác được.

Và để khắc phục những nhược điểm đó thì hệ mật mã khóa bất đối
xứng (hay còn gọi là hệ mật mã khóa công khai) đã ra đời.

21
Lương Đức Trọng - 20215489

4.1.2. Mã hóa bất đối xứng

Ở đây thay vì người dùng dùng chung 1 khóa như ở hệ mật mã khóa
đối xứng thì ở đây sẽ dùng 1 cặp khóa có tên là public key và private key.

Bên nhận có 1 cặp khóa:


22
Lương Đức Trọng - 20215489

 Khóa công khai (Kub) : công bố cho tất cả mọi người biết (kể cả
hacker)
 Khóa riêng (Krb) : bên nhận giữ bí mật, không chia sẻ cho bất kỳ ai

*Yêu cầu đối với cặp khóa (Kub, Krb) là:

 Hoàn toàn ngẫu nhiên


 Có quan hệ về mặt toán học 1-1.
 Nếu chỉ có giá trị của Kub không thể tính được Krb.
 Krb phải được giữ mật hoàn toàn.

Cơ chế hoạt động của mã hóa bất đối xứng:

 Người gửi gửi thông tin đã được mã hóa bằng khóa công khai
(Kub) của người nhận thông qua kênh truyền tin không bí mật
 Người nhận nhận được thông tin đó sẽ giải mã bằng khóa riêng
(Krb) của mình.
 Hacker cũng sẽ biết khóa công khai (Kub) của người nhận tuy
nhiên do không có khóa riêng (Krb) nên Hacker không thể xem
được thông tin gửi
Ưu điểm của loại mã hóa này:

 Không cần chia sẻ khóa mã hóa (khóa công khai) một cách bí mật
=> Dễ dàng ứng dụng trong các hệ thống mở.
 Khóa giải mã (khóa riêng) chỉ có B biết => An toàn hơn, có thể xác
thực nguồn gốc thông tin
 n phần tử chỉ cần n cặp khóa.
Thuật toán mã hóa bất đối xứng được sử dụng nhiều nhất là RSA.
RSA được đặt theo tên của 3 nhà toán học đã công bố thuật toán này là
Rivest, Shamir và Adleman. Bản chất của RSA đó là đi tìm ba số nguyên
dương rất lớn e,n và d thỏa mãn:
d
(m¿¿ e) ≡ m ( mod n ) ∀ 0 ≤ m<n ¿

Trong đó khóa chung được biểu thị bằng các số n và e còn khóa riêng
được biểu thị bằng số d.
RSA là một thuật toán tương đối chậm. Do đó, nó không được sử
dụng phổ biến để mã hóa trực tiếp dữ liệu người dùng. Thường xuyên

23
Lương Đức Trọng - 20215489

hơn, RSA được sử dụng để truyền các khóa dùng chung cho mật mã khóa
bất đối xứng , sau đó được sử dụng để mã hóa-giải mã hàng loạt.

4.1.3. Xác thực

Giống như có hai loại thuật toán mã hóa, có hai loại thuật toán xác
thực. để biết thêm về hai thuật toán này thì trước tiên ta cùng tìm hiểu về
hàm băm (hash function). Một hàm băm H (m) tạo ra một khối dữ liệu nhỏ
có kích thước cố định, được gọi là các giá trị băm, từ m . Hàm băm hoạt
động bằng cách lấy một thông điệp, chia nó thành các khối và xử lý các
khối để tạo ra hàm băm n bit. Hàm băm H phải có cơ chế chống xung đột
(collision) tức là không tồn tại m ≠m ' thỏa mãn H ( m )=H (m' ) hay nếu
H ( m )=H (m ) thì suy ra m=m' . Ở đây, thông điệp không bị sửa đổi. Các
'

hàm băm thông dụng có thể biết đến là MD5 và SHA-1 hiện được coi là
không an toàn. Tóm tắt thông điệp rất hữu ích trong việc phát hiện các
thông điệp bị thay đổi nhưng nó không hữu ích trong việc xác thực. Ví
dụ, H (m) có thể được gửi dùng với một thông điệp, nhưng nếu H đã biết,
thì ai đó có thể sửa đổi m thành m ' và tính toán lại H (m) và việc sửa đổi
thông điệp sẽ không bị phát hiện. Do đó, chúng ta cần xác thực H (m).
Loại thuật toán xác thực chính đầu tiên được đề cập sử dụng mã hóa
đối xứng. Mã xác thực thông điệp (message-authentication code - MAC)
lấy một thông điệp và một khóa bí mật, và tạo ra một "thẻ MAC" (MAC
tag), sao cho kẻ tấn công khó có thể tạo một cặp (thông điệp, thẻ) hiệu lực
khớp với thẻ được biết; ngoài các ứng dụng khác, loại mã hóa này dùng
để ngăn chặn những kẻ tấn công tạo các thông điệp giả. Tuy đôi khi được
gọi là "hàm băm có khóa" (keyed hash function), MAC phục vụ một mục
đích rất khác và có các tính chất rất khác với một hàm băm mật mã học;
ví dụ, nếu một người biết khóa MAC có thể dễ dàng tạo 2 thông điệp có
cùng MAC.
Thuật toán thứ 2 là giải thuật ký số (digital signature algorithm –
DSA). Thuật toán này hữu ích ở chỗ nó cho phép tất cả mọi người xác
minh tính xác thực của thông điệp. DSA hoạt động trong khuôn khổ của
các hệ thống mật mã khóa công khai và dựa trên các thuộc tính đại số của
lũy thừa, mô-đun, các bài toán rời rạc, được coi là khó tính toán. Thuật
toán sử dụng một cặp khóa là public key và secret key. Secret key được
sử dụng để tạo chữ ký số cho tin nhắn và nó có thể được xác minh bằng
cách sử dụng public key tương ứng.

24
Lương Đức Trọng - 20215489

4.1.4. Phân phối khóa


Chắc chắn, một phần của cuộc chiến giữa các nhà mật mã học
(người tạo ra mật mã) và các nhà phân tích mật mã (người cố gắng phá vỡ
chúng) liên quan đến khóa. Với thuật toán mã hóa đối xứng, cả hai bên
đều cần khóa và không ai khác nên có nó. Việc cung cấp khóa đối xứng là
một thách thức lớn. đôi khi nó được thực hiện ngoài dải tần số viễn thông.
Đây chính là lý do để tạo ra thuật toán khóa bất đối xứng. Không chỉ
các khóa được trao đổi công khai mà một người dùng nhất định chỉ cần
một khóa riêng, bất kể người đó muốn liên lạc với bao nhiêu người khác.
Việc quản lý khóa công khai cho từng người trong cuộc giao tiếp vẫn còn
là một vấn đề nhưng vì các khóa công khai không cần bảo mật nên việc
lưu trữ đơn giản có thể sử dụng cho những khóa đó.
Không may ngay cả việc phân phối khóa công khai cũng cần được
quan tâm. Cái chúng ta cần là bằng chứng về việc ai hay cái gì sở hữu
khóa công khai. Một cách để giải quyết vấn đề đó là sử dụng chứng chỉ
kỹ thuật số hay chứng chỉ nhận dạng. Chứng chỉ là một tài liệu điện
tử được sử dụng để chứng minh tính hợp lệ của khóa công khai . Chứng
chỉ bao gồm thông tin về khóa, thông tin về danh tính của chủ sở hữu
(được gọi là chủ thể) và chữ ký điện tử của một thực thể đã xác minh nội
dung của chứng chỉ (được gọi là tổ chức phát hành). Nếu chữ ký hợp lệ
và phần mềm kiểm tra chứng chỉ tin tưởng nhà phát hành thì phần mềm
có thể sử dụng khóa đó để giao tiếp an toàn với chủ thể của chứng chỉ
4.2. Triển khai mã hoá
Các giao thức mạng thường được tổ chức theo từng tầng, với mỗi
tầng hoạt động như một khách hàng của tầng phía dưới. Nghĩa là, khi một
giao thức tạo ra một thông điệp để gửi đến giao thức đồng nghiệp của nó
trên máy tính khác, nó truyền thông điệp của mình cho giao thức ở tầng
phía dưới trong ngăn xếp giao thức mạng để chuyển đến giao thức đồng
nghiệp trên máy tính đó. Ví dụ, trong một mạng IP, TCP (một giao thức
tầng giao vận) hoạt động như một khách hàng của IP (một giao thức tầng
mạng): các gói TCP được chuyển xuống IP để được chuyển đến giao thức
IP đồng nghiệp ở đầu kết nối khác. IP bao gói gói TCP trong một gói IP,
và tương tự, nó truyền xuống tầng liên kết dữ liệu để được truyền qua
mạng đến giao thức đồng nghiệp trên máy tính đích. Giao thức IP này sau
đó chuyển gói TCP lên đến giao thức TCP đồng nghiệp trên máy tính đó.
Mật mã có thể được áp dụng ở gần như mọi tầng trong mô hình OSI.
Vậy nơi nào trong ngăn xếp giao thức là lý tưởng để đặt bảo vệ mật mã?
Nói chung, không có câu trả lời chính xác. Một mặt, nhiều giao thức

25
Lương Đức Trọng - 20215489

được hưởng lợi từ việc đặt bảo vệ ở tầng thấp hơn trong ngăn xếp. Ví dụ,
vì các gói IP bao gồm các gói TCP, việc mã hóa các gói IP (ví dụ sử dụng
IPSec) cũng ẩn đi nội dung của các gói TCP đã được bao gói. Tương tự,
các trình xác thực trên các gói IP phát hiện sự thay đổi thông tin tiêu đề
TCP chứa trong đó.
Mặt khác, việc bảo vệ ở các tầng thấp trong ngăn xếp giao thức có
thể không đủ bảo vệ cho các giao thức ở các tầng cao hơn. Ví dụ, một
máy chủ ứng dụng chấp nhận các kết nối được mã hóa bằng IPSec có thể
xác thực các máy tính khách từ đó nhận yêu cầu. Tuy nhiên, để xác thực
người dùng trên máy tính khách, máy chủ có thể cần sử dụng một giao
thức cấp ứng dụng - người dùng có thể được yêu cầu nhập mật khẩu.
4.3 Một ví dụ: SSL

SSL là viết tắt của từ Secure Sockets Layer. SSL là tiêu chuẩn của công nghệ
bảo mật, truyền thông mã hoá giữa máy chủ Web server và trình duyệt. Tiêu chuẩn
này hoạt động và đảm bảo rằng các dữ liệu truyền tải giữa máy chủ và
trình duyệt của người dùng đều riêng tư và toàn vẹn.

4.3.1. Truyền dữ liệu qua SSL

SSL 3.0 là một giao thức mật mã cho phép hai máy tính giao tiếp an toàn
- nghĩa là, mỗi máy tính có thể giới hạn người gửi và người nhận tin nhắn
cho nhau. Đây có thể là giao thức mật mã phổ biến nhất trên Internet hiện
nay, vì nó là giao thức tiêu chuẩn mà trình duyệt web và máy chủ web sử
dụng để giao tiếp an toàn. Để đầy đủ, chúng ta nên nhắc rằng SSL được
thiết kế bởi

Nets
cape và đã phát triển thành giao thức TLS, tiêu chuẩn của ngành công

26
Lương Đức Trọng - 20215489

nghiệp. Trong cuộc thảo luận này, chúng ta sử dụng thuật ngữ SSL để ám
chỉ cả SSL và TLS.

Có thể thấy trong hình trên, giao tiếp SSL giữa trình duyệt và máy
chủ web (hoặc bất kỳ hai hệ thống nào khác) chủ yếu được chia thành hai
bước: SSL handshake và truyền dữ liệu thực tế.

4.3.2. SSL Handshake


Giao tiếp qua SSL luôn bắt đầu bằng SSL Handshake. Handshake
SSL là một mật mã không đối xứng cho phép trình duyệt xác minh máy
chủ web, lấy khóa công khai và thiết lập kết nối an toàn trước khi bắt đầu
truyền dữ liệu thực tế. Hình sau minh họa các bước liên quan đến quá
trình SSL Handshake.

1. Máy khách gửi thông báo "client hello". Điều này bao gồm số
phiên bản SSL của máy khách, cài đặt mật mã, dữ liệu theo phiên
cụ thể và thông tin khác mà máy chủ cần giao tiếp với máy khách
bằng SSL.
2. Máy chủ phản hồi bằng một thông báo "server hello". Điều này bao
gồm số phiên bản SSL của máy chủ, cài đặt mật mã, dữ liệu theo
phiên cụ thể, chứng chỉ SSL có khóa công khai và thông tin khác
mà máy khách cần để giao tiếp với máy chủ qua SSL.
3. Máy khách xác minh chứng chỉ SSL của máy chủ từ CA
(Certificate Authority) và xác thực máy chủ. Nếu xác thực không
thành công, thì máy khách từ chối kết nối SSL và ném một ngoại
lệ. Nếu xác thực thành công, hãy chuyển sang bước 4.
4. Máy khách tạo một session key, mã hóa nó bằng khóa công khai
của máy chủ và gửi đến máy chủ. Nếu máy chủ đã yêu cầu xác

27
Lương Đức Trọng - 20215489

thực máy khách (chủ yếu là trong giao tiếp máy chủ với máy chủ),
thì máy khách sẽ gửi chứng chỉ của chính mình đến máy chủ.
5. Máy chủ giải mã khóa phiên bằng khóa riêng của nó và gửi xác
nhận đến máy khách được mã hóa bằng khóa phiên.

Do đó, khi kết thúc quá trình bắt tay SSL, cả máy khách và máy chủ
đều có khóa phiên hợp lệ mà họ sẽ sử dụng để mã hóa hoặc giải mã dữ
liệu thực tế. Khóa công khai và khóa cá nhân sẽ không được sử dụng nữa
sau đó.

4.3.3. Truyền dữ liệu thực tế

Máy khách và máy chủ hiện sử dụng khóa phiên dùng chung để mã
hóa và giải mã dữ liệu thực tế và chuyển dữ liệu đó. Điều này được thực
hiện bằng cách sử dụng cùng một khóa phiên ở cả hai đầu và do đó, nó là
một mật mã đối xứng. Việc truyền dữ liệu SSL thực tế sử dụng mật mã đối
xứng vì nó dễ dàng và tốn ít CUP hơn so với mật mã bất đối xứng.

Do đó, về cơ bản SSL hoạt động bằng cách sử dụng mật mã bất đối
xứng và mật mã đối xứng. Có một số cơ sở hạ tầng liên quan đến việc đạt
được giao tiếp SSL trong cuộc sống thực, được gọi là Public Key
Infrastructure

4.3.4. Public Key Infrastructure

Public Key Infrastructure – PKI là một tập hợp các vai trò, chính
sách và thủ tục cần thiết để tạo, quản lý, phân phối, sử dụng, lưu trữ và thu
hồi chứng chỉ số và quản lý mã hóa khóa công khai. PKI bao gồm các yếu
tố sau:

28
Lương Đức Trọng - 20215489

 Cơ quan cấp chứng chỉ: Cơ quan xác thực danh tính của các cá
nhân, máy tính và các thực thể khác.
 Cơ quan đăng ký: CA cấp dưới phát hành chứng chỉ thay mặt cho
CA gốc cho các mục đích sử dụng cụ thể.
 Chứng chỉ SSL: Tệp dữ liệu bao gồm khóa công khai và các thông
tin khác.
 Hệ thống quản lý chứng chỉ: Hệ thống lưu trữ, xác nhận và thu hồi
chứng chỉ.

29
Lương Đức Trọng - 20215489

5. Xác thực người dùng


Trong phần trước, chúng ta đã thảo luận về xác thực liên quan đến
các thông điệp và phiên làm việc. Nhưng điều gì về người dùng? Nếu hệ
thống không thể xác thực được người dùng, thì việc xác thực một thông
điệp đến từ người dùng đó là vô nghĩa. Do đó, một vấn đề bảo mật lớn
đối với các hệ điều hành là xác thực người dùng. Hệ thống bảo vệ phụ
thuộc vào khả năng xác định các chương trình và tiến trình đang chạy
hiện tại, phụ thuộc vào khả năng xác định mỗi người dùng của hệ thống.
Người dùng thường tự xác định chính mình. Làm thế nào chúng ta
xác định xem danh tính người dùng có chính xác hay không? Thông
thường, xác thực người dùng dựa trên một hoặc nhiều trong ba điều: sự
sở hữu của người dùng (một chìa khóa hoặc thẻ), kiến thức của người
dùng (một định danh người dùng và mật khẩu) hoặc một thuộc tính của
người dùng (vân tay, mẫu võng mạc hoặc chữ ký).
5.1. Mật khẩu
Phương pháp phổ biến nhất để xác thực danh tính người dùng là sử
dụng mật khẩu. Khi người dùng xác định chính mình bằng ID người dùng
hoặc tên tài khoản, họ sẽ được yêu cầu cung cấp mật khẩu. Nếu mật khẩu
được cung cấp bởi người dùng phù hợp với mật khẩu được lưu trữ trong
hệ thống, hệ thống sẽ cho rằng tài khoản đó đang được truy cập bởi chủ
sở hữu của tài khoản đó.
Mật khẩu thường được sử dụng để bảo vệ các đối tượng trong hệ
thống máy tính, trong trường hợp không có các phương án bảo vệ hoàn
chỉnh hơn. Chúng có thể được coi là một trường hợp đặc biệt của các
khóa hoặc khả năng. Ví dụ, một mật khẩu có thể được liên kết với mỗi tài
nguyên (như một tệp). Mỗi khi yêu cầu sử dụng tài nguyên được thực
hiện, mật khẩu phải được cung cấp. Nếu mật khẩu đúng, quyền truy cập
được cấp. Các mật khẩu khác nhau có thể được liên kết với các quyền
truy cập khác nhau. Ví dụ, các mật khẩu khác nhau có thể được sử dụng
để đọc tệp, thêm vào tệp và cập nhật tệp.
Trong thực tế, hầu hết các hệ thống chỉ yêu cầu một mật khẩu cho
người dùng để có đầy đủ quyền truy cập. Mặc dù lý thuyết, nhiều mật
khẩu sẽ bảo mật hơn, nhưng các hệ thống như vậy thường không được
triển khai do sự đánh đổi giữa bảo mật và tiện lợi. Nếu bảo mật làm cho
điều gì đó bất tiện, thì bảo mật thường được bỏ qua hoặc vượt qua bằng
cách khác.

30
Lương Đức Trọng - 20215489

5.2. Lỗ hổng bảo mật


Mật khẩu rất phổ biến vì chúng dễ hiểu và sử dụng. Tuy nhiên, mật
khẩu thường bị đoán được, vô tình bị tiết lộ, bị nghe trộm hoặc chuyển
giao trái phép từ một người dùng được ủy quyền đến một người không
được ủy quyền, như chúng tôi sẽ chỉ ra ở dưới đây.
Có hai cách thông thường để đoán mật khẩu. Một cách là kẻ xâm
nhập (hoặc là người hoặc là chương trình) biết người dùng hoặc có thông
tin về người dùng. Quá nhiều lần, con người sử dụng thông tin rõ ràng
(như tên của mèo hoặc vợ/chồng của họ) làm mật khẩu. Cách khác là sử
dụng kiểu tấn công dò mật khẩu (brute force), thử từng kết hợp có thể có
của các ký tự mật khẩu hợp lệ (chữ cái, số và dấu chấm câu trên một số
hệ thống) cho đến khi tìm thấy mật khẩu đúng. Mật khẩu ngắn đặc biệt dễ
bị tấn công bằng phương pháp này. Ví dụ, mật khẩu bốn ký tự có 10.000
biến thể. Trung bình, đoán 5.000 lần sẽ tìm được mật khẩu đúng. Một
chương trình có thể thử mật khẩu mỗi mili giây thì chỉ mất khoảng 5 giây
để đoán mật khẩu bốn ký tự. Dò tất cả các kết hợp ít thành công hơn trên
các hệ thống cho phép mật khẩu dài hơn, bao gồm cả các chữ cái in hoa
và in thường, cùng với các số và tất cả các ký tự dấu câu. Tất nhiên,
người dùng phải sử dụng không gian mật khẩu lớn và không được sử
dụng chỉ các chữ cái in thường.
Mật khẩu có thể được tạo ra bởi hệ thống hoặc được lựa chọn bởi
người dùng. Mật khẩu do hệ thống tạo ra có thể khó để nhớ, do đó người
dùng có thể ghi chú chúng. Tuy nhiên, như đã đề cập, mật khẩu do người
dùng lựa chọn thường dễ đoán (ví dụ như tên của người dùng hoặc chiếc
xe yêu thích). Một số hệ thống sẽ kiểm tra mật khẩu được đề xuất để xem
có dễ đoán hoặc bẻ khóa không trước khi chấp nhận nó. Một số hệ thống
cũng sẽ giới hạn thời hạn sử dụng mật khẩu, buộc người dùng phải thay
đổi mật khẩu của họ vào các khoảng thời gian đều đặn (ví dụ như mỗi ba
tháng). Tuy nhiên, phương pháp này không hoàn toàn đảm bảo, bởi vì
người dùng có thể dễ dàng chuyển đổi giữa hai mật khẩu. Giải pháp, như
được triển khai trên một số hệ thống, là ghi lại lịch sử mật khẩu cho mỗi
người dùng. Ví dụ, hệ thống có thể ghi lại N mật khẩu cuối cùng và
không cho phép sử dụng lại chúng.
5.3. Bảo vệ mật khẩu

Một vấn đề với tất cả các phương pháp này là khó khăn để giữ mật
khẩu bí mật trong máy tính. Hệ thống làm thế nào để lưu trữ mật khẩu
một cách an toàn nhưng cho phép sử dụng nó cho xác thực khi người

31
Lương Đức Trọng - 20215489

dùng nhập mật khẩu của mình? Hệ thống UNIX sử dụng bảo mật băm
(hashing) để tránh việc cần phải giữ danh sách mật khẩu bí mật. Vì danh
sách được băm thay vì được mã hóa, nên không thể giải mã giá trị được
lưu trữ và xác định mật khẩu ban đầu.
Đây là cách thức hệ thống này hoạt động. Mỗi người dùng có một
mật khẩu. Hệ thống chứa một hàm rất khó - các nhà thiết kế hy vọng là
không thể đảo ngược nhưng lại đơn giản để tính toán. Tức là, cho một giá
trị x, dễ dàng tính toán được giá trị hàm băm f(x). Tuy nhiên, với giá trị
hàm f(x) đã cho, không thể tính được giá trị x. Hàm này được sử dụng để
mã hóa tất cả các mật khẩu. Chỉ có các mật khẩu đã mã hóa được lưu trữ.
Khi người dùng nhập mật khẩu, nó được băm và so sánh với mật khẩu đã
được mã hóa lưu trữ. Ngay cả khi mật khẩu đã được mã hóa được nhìn
thấy, nó cũng không thể được giải mã, vì vậy mật khẩu không thể được
xác định. Do đó, tệp mật khẩu không cần được giữ bí mật.
5.4. Mật khẩu một lần sử dụng
Để tránh các vấn đề liên quan đến password sniffing (một kỹ thuật
tấn công, trong đó tin tặc cố gắng bắt và giải mã mật khẩu khi chúng đi
qua trên một mạng không được bảo vệ, điều này thường xảy ra khi mật
khẩu được truyền qua mạng mà không được mã hóa, cho phép kẻ tấn
công sử dụng các công cụ để bắt gói dữ liệu và đọc thông tin đăng nhập)
và shoulder surfing (một kỹ thuật tấn công bằng cách quan sát và ghi nhớ
mật khẩu của người dùng thông qua việc đứng gần hoặc xem “qua vai”
người dùng khi họ nhập thông tin), một hệ thống có thể sử dụng một bộ
mật khẩu được ghép cặp. Khi một phiên bắt đầu, hệ thống ngẫu nhiên
chọn và hiển thị một phần của một cặp mật khẩu; người dùng phải cung
cấp phần còn lại. Trong hệ thống này, người dùng nhận thử thách và phải
trả lời đúng với thử thách đó.
Phương pháp này có thể được tổng quát hóa để sử dụng một thuật
toán như một mật khẩu. Những mật khẩu thuật toán không dễ bị tái sử
dụng. Nghĩa là, người dùng có thể nhập mật khẩu và không có bất kỳ
thực thể nào chặn được mật khẩu đó có thể sử dụng lại nó. Trong hệ
thống này, hệ thống và người dùng chia sẻ một mật khẩu đối xứng. Mật
khẩu pw không bao giờ được truyền qua một phương tiện có thể tiếp xúc
với bên thứ ba. Thay vào đó, mật khẩu được sử dụng làm đầu vào cho
hàm, cùng với một thách thức ch được đưa ra bởi hệ thống. Người dùng
sau đó tính toán hàm H(pw, ch). Kết quả của hàm này được truyền như
xác thực cho máy tính. Vì máy tính cũng biết pw và ch, nó có thể thực
hiện cùng một phép tính. Nếu kết quả khớp nhau, người dùng đã được

32
Lương Đức Trọng - 20215489

xác thực. Lần tiếp theo người dùng cần được xác thực, một ch khác được
tạo ra, và các bước tương tự diễn ra. Lần này, xác thực khác biệt. Hệ
thống mật khẩu một lần này là một trong số ít cách để ngăn chặn xác thực
không đúng do mật khẩu bị lộ.
Hệ thống mật khẩu một lần được triển khai theo nhiều cách khác
nhau. Các phiên bản thương mại sử dụng các thiết bị tính toán phần cứng
có màn hình hoặc màn hình và bàn phím số. Những thiết bị tính toán này
thường có hình dạng của một thẻ tín dụng, một dongle móc chìa khóa
hoặc một thiết bị USB. Phần mềm chạy trên máy tính hoặc điện thoại
thông minh cung cấp người dùng với H(pw, ch); pw có thể được người
dùng nhập hoặc được máy tính và thiết bị tính toán đồng bộ hóa tạo ra.
Đôi khi, pw chỉ đơn giản là một mã số cá nhân (PIN). Kết quả của bất kỳ
hệ thống nào trong số này hiển thị mật khẩu một lần sử dụng. Một bộ tạo
mật khẩu một lần yêu cầu người dùng nhập vào liên quan đến xác thực
hai yếu tố. Trong trường hợp này, cần hai loại thành phần khác nhau - ví
dụ, một bộ tạo mật khẩu một lần sử dụng chỉ đúng nếu PIN hợp lệ. Xác
thực hai yếu tố cung cấp bảo mật xác thực tốt hơn nhiều so với xác thực
một yếu tố vì nó yêu cầu "một cái bạn có" cùng với "một cái bạn biết".
Biến thể khác của mật khẩu một lần sử dụng một cuốn mã hoặc sổ
mã một lần, đó là một danh sách các mật khẩu chỉ sử dụng một lần. Mỗi
mật khẩu trên danh sách được sử dụng một lần và sau đó bị gạch chéo
hoặc xóa bỏ. Hệ thống S/Key được sử dụng phổ biến sử dụng một bộ tạo
mật khẩu một lần sử dụng phần mềm hoặc sổ mã dựa trên những tính
toán này. Tất nhiên, người dùng phải bảo vệ sổ mã của mình và có ích
nếu sổ mã không xác định hệ thống mà mã được sử dụng là xác thực.
5.5. Sinh trắc học
Một cách khác của xác thực mật khẩu liên quan đến việc sử dụng các
biện pháp sinh trắc học. Các máy quét lòng bàn tay hoặc cánh tay thường
được sử dụng để bảo vệ quyền truy cập vật lý, ví dụ như truy cập vào
trung tâm dữ liệu. Các máy quét này so khớp các tham số được lưu trữ
với những gì được quét từ máy.
Các tham số có thể bao gồm bản đồ nhiệt độ, cũng như chiều dài
ngón tay, độ rộng ngón tay và các mẫu đường vân tay. Những thiết bị này
hiện tại quá lớn và đắt tiền để sử dụng cho xác thực máy tính thông
thường.
Đầu đọc vân tay đã trở nên chính xác và có hiệu quả về chi phí và
nên trở nên phổ biến hơn trong tương lai. Những thiết bị này đọc các mẫu

33
Lương Đức Trọng - 20215489

đường vân tay và chuyển đổi chúng thành một chuỗi số. Theo thời gian,
chúng có thể lưu trữ một tập hợp các chuỗi để điều chỉnh cho vị trí ngón
tay trên bản đệm đọc và các yếu tố khác. Phần mềm sau đó có thể quét
một ngón tay trên bản đệm và so sánh các tính năng của nó với các chuỗi
được lưu trữ này để xác định liệu chúng có khớp hay không. Tất nhiên,
nhiều người dùng có thể có các hồ sơ được lưu trữ và máy quét có thể
phân biệt được giữa chúng.
Sử dụng xác thực đa yếu tố là một ý tưởng tốt. Hãy xem xét mức độ
mạnh mẽ của việc xác thực với một thiết bị USB phải được cắm vào hệ
thống, một mã PIN và quét vân tay. Ngoại trừ việc đặt ngón tay lên bề
mặt và cắm USB vào hệ thống, phương pháp xác thực này không kém
tiện lợi so với việc sử dụng mật khẩu thông thường. Tuy nhiên, hãy nhớ
rằng xác thực mạnh mẽ không đủ để đảm bảo danh tính của người dùng.
Một phiên xác thực có thể bị chiếm đoạt nếu nó không được mã hóa.
6. Triển khai phòng thủ bảo mật
Giống như có vô số các mối đe dọa đối với bảo mật hệ thống và
mạng, cũng có nhiều giải pháp bảo mật. Những giải pháp này phân ra từ
việc nâng cao giáo dục cho người dùng, thông qua công nghệ, đến việc
viết phần mềm không lỗi. Hầu hết các chuyên gia bảo mật đăng ký lý
thuyết phòng thủ sâu, nghĩa là nhiều lớp phòng thủ hơn là ít lớp hơn. Tất
nhiên, lý thuyết này áp dụng cho bất kỳ loại an ninh nào. Hãy xem xét an
ninh của một ngôi nhà không có khóa cửa, có khóa cửa, và có khóa cửa
và báo động. Ở phần này, chúng ta sẽ xem xét các phương pháp, công cụ
và kỹ thuật chính có thể được sử dụng để cải thiện khả năng chống đỡ các
mối đe dọa.
6.1. Chính sách bảo mật
Bước đầu tiên để cải thiện bảo mật của bất kỳ khía cạnh nào của máy
tính là có một chính sách bảo mật. Chính sách có nhiều biến thể nhưng
nói chung bao gồm một tuyên bố về những gì đang được bảo mật. Ví dụ,
một chính sách có thể nêu rõ rằng tất cả các ứng dụng có thể truy cập từ
bên ngoài phải được xem xét mã trước khi triển khai, hoặc người dùng
không nên chia sẻ mật khẩu của họ, hoặc tất cả các điểm kết nối giữa một
công ty và bên ngoài phải chạy quét cổng mỗi sáu tháng một lần. Nếu
không có chính sách, người dùng và quản trị viên sẽ không biết được điều
gì là được phép, điều gì là bắt buộc và điều gì không được phép. Chính
sách là một bản đồ đường để đảm bảo an ninh, và nếu một trang web
đang cố gắng di chuyển từ an ninh kém sang an ninh cao hơn, nó cần một
bản đồ để biết làm thế nào để đến đó.

34
Lương Đức Trọng - 20215489

Sau khi chính sách bảo mật được thiết lập, những người liên quan
đến nó nên hiểu rõ về nó. Nó nên là hướng dẫn của họ. Chính sách cũng
nên là một tài liệu sống động được xem xét và cập nhật định kỳ để đảm
bảo rằng nó vẫn liên quan và vẫn được tuân thủ.
6.2. Đánh giá lỗ hổng

Làm thế nào để xác định liệu một chính sách bảo mật đã được triển
khai đúng cách hay không? Cách tốt nhất là thực hiện một đánh giá lỗ
hổng. Các đánh giá này có thể bao phủ nhiều lĩnh vực, từ kỹ nghệ xã hội
đến đánh giá rủi ro và quét cổng. Ví dụ, đánh giá rủi ro cố gắng đánh giá
giá trị các tài sản của thực thể (một chương trình, một nhóm quản lý, một
hệ thống hoặc một cơ sở) và xác định khả năng một sự cố bảo mật sẽ ảnh
hưởng đến thực thể đó và giảm giá trị của nó. Khi khả năng gặp phải mất
mát và mức độ mất mát tiềm năng được biết đến, có thể đặt giá trị cho
việc cố gắng bảo vệ thực thể đó.
Hoạt động cốt lõi của hầu hết các đánh giá lỗ hổng là kiểm tra xâm
nhập, trong đó thực thể được quét để tìm các lỗ hổng đã biết. Vì cuốn
sách này liên quan đến các hệ thống hoạt động và phần mềm chạy trên
chúng, chúng tôi tập trung vào những khía cạnh đó của đánh giá lỗ hổng.
Một quét trên một hệ thống cá nhân có thể kiểm tra nhiều khía cạnh
của hệ thống:
• Mật khẩu ngắn hoặc dễ đoán
• Chương trình có đặc quyền trái phép, chẳng hạn như các chương
trình setuid
• Các chương trình trái phép trong các thư mục hệ thống
• Các tiến trình chạy lâu không mong đợi
• Các bảo vệ thư mục không đúng trên các thư mục người dùng và
hệ thống
• Các bảo vệ không đúng trên các tệp dữ liệu hệ thống, chẳng hạn
như tệp mật khẩu, các trình điều khiển thiết bị hoặc kernel hệ điều hành
• Các mục nguy hiểm trong đường tìm kiếm chương trình (ví dụ:
Trojan horse)
• Các thay đổi trong các chương trình hệ thống được phát hiện với
các giá trị kiểm tra tổng kiểm tra (checksum)

35
Lương Đức Trọng - 20215489

• Các tiến trình phục vụ mạng bất ngờ hoặc ẩn


6.3. Phát hiện xâm nhập

Bảo vệ hệ thống và các cơ sở là một phần không thể thiếu của phát
hiện xâm nhập. Phát hiện xâm nhập, như tên gọi của nó, nhằm phát hiện
các cuộc tấn công hoặc việc xâm nhập thành công vào các hệ thống máy
tính và khởi động các phản ứng phù hợp đối với các cuộc xâm nhập. Phát
hiện xâm nhập bao gồm một loạt các kỹ thuật khác nhau có độ khác nhau
trên một số trục, bao gồm các trục sau:
• Thời điểm phát hiện. Phát hiện có thể xảy ra trong thời gian thực
(trong khi xâm nhập đang diễn ra) hoặc sau khi xâm nhập đã xảy ra.

• Các loại đầu vào được kiểm tra để phát hiện hoạt động xâm nhập.
Các loại đầu vào này có thể bao gồm các lệnh người dùng, các lệnh gọi
hệ thống tiến trình (process system calls) và tiêu đề hoặc nội dung gói
mạng. Một số hình thức xâm nhập có thể chỉ được phát hiện bằng cách
tương quan thông tin từ nhiều nguồn như vậy.
• Phạm vi của khả năng phản ứng. Các dạng phản ứng đơn giản bao
gồm cảnh báo cho quản trị viên về sự xâm nhập tiềm ẩn hoặc ngừng hoạt
động có khả năng xâm nhập - ví dụ như kết thúc một tiến trình đang thực
hiện hoạt động như vậy. Trong một dạng phản ứng tinh vi hơn, hệ thống
có thể chuyển hướng hoạt động của kẻ xâm nhập đến một honeypot - một
tài nguyên giả mạo được tiết lộ cho kẻ tấn công. Tài nguyên này có vẻ
như là thật đối với kẻ tấn công và cho phép hệ thống giám sát và thu thập
thông tin về cuộc tấn công.
Những mức tự do trong không gian thiết kế để phát hiện xâm nhập
đã cho ra đời một loạt các giải pháp rộng, được biết đến như các hệ thống
phát hiện xâm nhập (IDS) và các hệ thống ngăn chặn xâm nhập (IDPs).
Hệ thống IDS đưa ra cảnh báo khi phát hiện xâm nhập, trong khi các hệ
thống IDP hoạt động như các bộ định tuyến, chuyển tiếp lưu lượng truy
cập trừ khi phát hiện xâm nhập (lúc đó lưu lượng truy cập đó sẽ bị chặn).
Để minh họa tác động của tỷ lệ cảnh báo sai thậm chí còn hơi cao,
xem xét một cài đặt bao gồm một trăm máy trạm UNIX mà từ đó các sự
kiện liên quan đến bảo mật được ghi lại cho mục đích phát hiện xâm
nhập. Cài đặt nhỏ như thế này có thể dễ dàng tạo ra một triệu bản ghi
kiểm tra mỗi ngày. Chỉ một hoặc hai có thể đáng để quản trị viên điều tra.
Nếu chúng ta giả sử một cách lạc quan rằng mỗi cuộc tấn công thực tế

36
Lương Đức Trọng - 20215489

được phản ánh trong mười bản ghi (record) kiểm tra, chúng ta có thể tính
toán sơ bộ tỷ lệ xuất hiện của hồ sơ kiểm toán phản ánh thực sự hoạt
động xâm nhập như sau:

Giải thích điều này là “xác suất xuất hiện của các bản ghi xâm nhập”, ký
hiệu nó là P(I); nghĩa là biến cố I là sự xuất hiện của bản ghi phản ánh
trung thực hành vi xâm nhập. Vì P(I) = 0,00002, nên chúng ta cũng biết
rằng P(¬I) = 1−P(I) = 0,99998. Bây giờ chúng ta để Adenote tăng cảnh
báo bằng IDS. IDS chính xác nên cực đại hóa cả P(I|A) và P(¬I|¬A)—
nghĩa là xác suất mà một báo động cho biết có xâm nhập và không có báo
động cho biết không có xâm nhập. Chú ý rằng P(I|A) tại thời điểm này,
chúng ta có thể tính toán nó bằng định lý Bayes:

Bây giờ hãy xem xét tác động của tỷ lệ báo động sai P(A|¬I) đến P(I|
A). Ngay cả khi có tỷ lệ báo động đúng rất tốt P(A|I) = 0,8, tỷ lệ báo động
sai dường như tốt P(A|¬I) = 0,0001 cũng cho kết quả P(I|A) ≈ 0,14. Tức
là, ít hơn một trong số bảy lần báo động cho thấy có xâm nhập thực sự!
Trong các hệ thống mà mỗi lần báo động, một nhân viên quản trị an ninh
sẽ điều tra, tỷ lệ cao các báo động sai gọi là "hiệu ứng cây thông Noel" sẽ
rất lãng phí và sẽ nhanh chóng dạy cho nhân viên quản trị bỏ qua các
cảnh báo.
Ví dụ này minh họa một nguyên tắc chung cho các hệ thống phát
hiện xâm nhập (IDS) và phòng chống xâm nhập (IDPs): để sử dụng được,
chúng phải cung cấp tỷ lệ báo động sai rất thấp. Đạt được tỷ lệ báo động
sai đủ thấp là một thách thức đặc biệt nghiêm trọng đối với các hệ thống
phát hiện bất thường, như đã đề cập, do khó khăn trong việc đánh giá đầy
đủ hành vi bình thường của hệ thống. Tuy nhiên, nghiên cứu vẫn tiếp tục
cải tiến các kỹ thuật phát hiện bất thường. Phần mềm phát hiện xâm nhập
đang tiến hóa để triển khai chữ ký, các thuật toán bất thường và các thuật

37
Lương Đức Trọng - 20215489

toán khác, và kết hợp kết quả để đạt được tỷ lệ phát hiện bất thường chính
xác hơn.
6.4. Bảo vệ chống virus
Như chúng ta đã thấy, virus có thể gây ra sự hỗn loạn trên hệ thống.
Bảo vệ chống virus do đó là một vấn đề bảo mật quan trọng. Chương
trình diệt virus thường được sử dụng để cung cấp bảo vệ này. Một số
chương trình này có hiệu quả đối với chỉ những loại virus cụ thể đã biết.
Chúng hoạt động bằng cách tìm kiếm tất cả các chương trình trên hệ
thống để tìm kiếm mẫu chỉ dẫn cụ thể đã biết tạo thành virus. Khi chúng
tìm thấy một mẫu đã biết, chúng sẽ loại bỏ các chỉ dẫn đó và khử trùng
chương trình. Chương trình diệt virus có thể có hàng ngàn virus trong
danh mục tìm kiếm.
Cả virus và phần mềm diệt virus tiếp tục trở nên phức tạp hơn. Một
số virus tự thay đổi khi lây nhiễm vào phần mềm khác để tránh phương
pháp so khớp mẫu cơ bản của các chương trình diệt virus. Ngược lại, các
chương trình diệt virus hiện nay tìm kiếm các nhóm mẫu màu thay vì một
mẫu đơn lẻ để xác định một loại virus. Thực tế, một số chương trình diệt
virus thực hiện nhiều thuật toán phát hiện khác nhau. Chúng có thể giải
nén các virus được nén trước khi kiểm tra chữ ký. Một số chương trình
cũng tìm kiếm những không bình thường trong quá trình xử lý. Một quy
trình mở một tệp tin thực thi để ghi là đáng ngờ, ví dụ, trừ khi nó là một
trình biên dịch. Một kỹ thuật phổ biến khác là chạy một chương trình
trong một hộp cát, đó là một phần được kiểm soát hoặc mô phỏng của hệ
thống. Phần mềm diệt virus phân tích hành vi của mã trong hộp cát trước
khi cho phép chạy mà không có giám sát. Một số chương trình diệt virus
cũng tạo ra một màn che hoàn chỉnh thay vì chỉ quét các tệp tin trong hệ
thống tệp. Chúng tìm kiếm trong các khu vực khởi động, bộ nhớ, email đi
và đến, các tệp tin được tải xuống, các tệp tin trên thiết bị di động hoặc
phương tiện lưu trữ và nhiều hơn nữa.
6.5. Kiểm toán, kế toán và ghi nhật ký
Kiểm toán, kế toán và ghi nhật ký có thể làm giảm hiệu suất hệ
thống, nhưng chúng rất hữu ích trong nhiều lĩnh vực, bao gồm bảo mật.
Ghi nhật ký có thể là tổng quát hoặc cụ thể. Tất cả các thực thi cuộc gọi
hệ thống có thể được ghi nhật ký để phân tích hành vi chương trình (hoặc
hành vi không đúng). Thông thường, các sự kiện đáng ngờ sẽ được ghi
nhật ký. Những lỗi xác thực và lỗi phân quyền có thể cho chúng ta biết rất
nhiều về các cố gắng xâm nhập.

38
Lương Đức Trọng - 20215489

Kế toán (accounting) là một công cụ tiềm năng khác trong bộ công


cụ của một quản trị bảo mật. Nó có thể được sử dụng để tìm thay đổi hiệu
suất, từ đó có thể phát hiện các vấn đề bảo mật. Một trong những cuộc tấn
công máy tính UNIX đầu tiên được phát hiện bởi Cliff Stoll khi ông xem
xét các nhật ký kế toán và phát hiện một sự bất thường.

7. Bảo vệ hệ thống và mạng bằng tường lửa


Chúng ta sẽ đến với câu hỏi tiếp theo là “Làm thế nào để một máy
tính đáng tin cậy có thể kết nối với một mạng không đáng tin cậy một
cách an toàn?”. Có một giải pháp chính là sử dụng “tường lửa” để chia hệ
thống ra làm hai loại là đáng tin cậy và không đáng tin cậy. Tường lửa là
một máy tính, thiết bị hay là một bộ định tuyến nằm giữa đáng tin cậy và
không đáng tin cậy. (Có thể hình dung nó như một rào chắn để ngăn cách
những phần mềm, hệ thống đáng tin cậy và không đáng tin cậy). Hệ
thống tường lửa trên mạng giúp giới hạn truy cập giữa hai miền bảo mật,
hai màn hình và ghi lại mọi kết nối. Nó cũng có thể giới hạn kết nối dựa
trên nguồn hoặc đích đến của địa chỉ, hay dựa trên nguồn, đích đến của
cổng, hoặc hướng kết nối. Ví dụ, máy chủ web sử dụng HTTP để giao
tiếp với trình duyệt web. Do đó tường lửa có thể chỉ cho phép HTTP
truyền thông tin từ tất cả các máy chủ nằm bên ngoài tường lửa tới các
máy chủ web nằm bên trong tường lửa. Hay một ví dụ khác là con sâu
“Morris Internet” đã sử dụng giao thức “finger” để đột nhập vào máy
tính, vì thế nên “finger” sẽ không được phép thông qua.

39
Lương Đức Trọng - 20215489

Internet được phép kết nối tới máy tính DMZ và từ máy tính công ty
cũng có thể kết nối tới Internet, thế nhưng không được kết nối từ Internet
hay từ máy tính DMZ tới máy tính công ty. Chúng ta có thể kiếm soát
giao tiếp giữa máy tính DMZ và 1 hay nhiều máy tính công ty tùy theo
vào mục đích. Chẳng hạn, một máy chủ web trên DMZ có thể cần truy
vấn cơ sở dữ liệu trên mạng công ty. Tuy nhiên, tường lửa đã bao gồm
quyền truy cập này và bất kì hệ thống DMZ nào bị đột nhập đều không
thể truy cập tới hệ thống máy tính công ty.
Tất nhiên, chính bản thân tường lửa phải tự bảo vệ bản thân nó và
tránh bị tấn công. Mặt khác, khả năng bảo mật các kết nối vẫn có thể bị
xâm phạm. Hơn nữa, tường lửa không ngăn chặn các tấn công ngầm,
hoặc di chuyển trong các giao thức kết nối mà tường lửa cho phép. Tường
lửa cũng không thể ngăn cản những tấn công tràn bộ nhớ đệm tới một
máy chủ web, ví dụ, vì kết nối HTTP được cho phép; thì chính những nội
dung của kết nối HTTP đã bao gồm những tấn công ấy. Tương tự, những
tấn công từ chối dịch vụ có thể ảnh hưởng đến tường lửa nhiều như các
máy móc khác. Các lỗ hổng các của tường lửa chính là spoofing – giả
mạo, trong đó những máy chủ trái phép đã vờ như một máy chủ hợp pháp
bằng cách đáp ứng một số tiêu chí ủy quyền. Có thể ví dụ, nếu những quy
tắc của tường lửa cho phép kết nối từ một máy chủ và xác định máy chủ
đó bằng địa chỉ IP, sau đó máy chủ khác có thể gửi các gói bằng cách sử
dụng địa chỉ tương tự, thế nên đã được thông qua tường lửa.

40
Lương Đức Trọng - 20215489

Ngoài các hệ thống tường lửa trên mạng nổi tiếng, còn có những loại
tường lửa mới hơn, với những ưu nhược điểm khác nhau. Tường lửa cá
nhân là một lớp phần mềm nằm trong hệ điều hành hoặc được thêm vào
dưới dạng ứng dụng. Thay vì hạn chế giao tiếp giữa các miền bảo mật,
tường lửa cá nhân hạn chế giao tiếp với một máy chủ nhất định và ngược
lại. Ví dụ, người sử dụng có thể thêm tường lửa cá nhân vào PC của
mình, nhờ đó mà con ngựa “Trojan” sẽ bị từ chối truy cập vào các mạng
mà PC đó đã kết nối. Ngoài ra còn có tường lửa “application proxy”,
được hiểu như là một giao thức mà các ứng dụng đã nói trên mạng. Có
thể kể đến như SMTP được sử dụng để gửi thư. “Application proxy” chỉ
chấp nhận kết nối giống máy chủ SMTP và sau đó bắt đầu kết nối tới máy
chủ SMTP ban đầu. Nó có thể giám sát lưu lượng khi nó chuyển tiếp các
tin nhắn, theo dõi và vô hiệu hóa các lệnh bất hợp phát, cố gắng khai thác
các lỗi, … Một vài tường lửa được thiết kế cho một giao thức cụ thể. Ví
dụ, tường lửa XML có mục đích cụ thể là phân tích lưu lượng XML và
ngăn những những XML không được phép hoặc không đúng định dạng.
Còn có tường lửa cuộc gọi hệ thống, giữa ứng dụng và kernel, với mục
đích giám sát các cuộc gọi hệ thống. Ví dụ, trong Solaris 10, tính năng
“least privilege” thực hiện danh sách hơn 50 cuộc gọi hệ thống, mà quá
trình này có thể được hoặc không được phép thực hiện. Hay là một quá
trình mà không tạo ra các quá trình khác thì có khả năng bị lấy đi.
8. Phân loại bảo mật máy tính
Tiêu chí đánh giá hệ thống đáng tin cậy của Bộ quốc phòng Hoa Kỳ
đã chỉ ra 4 loại bảo mật hệ thống: A,B,C và D. Thông số này được sử
dụng rộng rãi để xác định tính bảo mật của một cơ sở và một mô hình giải
pháp bảo mật, ta sẽ khám phá nó tại đây. Mức phân loại thấp nhất là D,
hay nói cách khác là mức bảo vệ tối thiểu. Mức D chỉ bao gồm một lớp

41
Lương Đức Trọng - 20215489

và được sử dụng cho những hệ thống không đáp ứng được yêu cầu của
bất kì lớp bảo mật nào còn lại. Ví dụ, mức D bao gồm hệ điều hành MS-
DOS và Windows 3.1
Cấp độ bảo mật tiếp theo là cấp độ C. Ở mức độ này cung cấp khả
năng tùy ý bảo vệ, trách nhiệm giải trình của người dung và hành động
của họ thông qua việc sử dụng các chức năng kiểm định. Mức C được
chia thành 2 lớp: C1 và C2. Những hệ thống ở lớp C1 đã kết hợp một số
hình thức kiểm soát, điều này giúp người dung bảo vệ thông tin cá nhân
và tránh được việc bị người khác đọc trộm hoặc phá hủy dữ liệu. Môi
trường C1 là một môi trường mà ở đó người dung có thể truy cập dữ liệu
ở cũng mức độ nhạy cảm. Hầu hết các phiên bản của UNIX đều ở lớp C1.
Tất cả các hệ thống bảo vệ trong một hệ thống máy tính (phần cứng,
phần mềm, phần lõi) đều phải tuân thủ chính xác những chính sách bảo
mật, gọi chung là “Trust computer base” (TCB). TCB của hệ thống C1
kiểm soát quyền truy cập giữa người dung và các files thông qua việc cho
phép người dùng chỉ định hoặc kiểm soát các đối tượng mình muốn chia
sẻ bằng cách đặt tên cho các cá nhân hay là xác định rõ các nhóm mình
muốn cho phép. Hơn nữa, TCB yêu cầu người dùng chứng minh thân
phận của họ trước khi bắt đầu bất kì một hành động nào đó. Hành động
nhận dạng này được thực hiện thông qua một cơ chế bảo vệ hoặc là qua
mật khẩu. TCB cũng giúp bảo vệ dữ liệu xác thực, do đó mà người dùng
trái phép không thể nào truy cập được.
Các hệ thống trong lớp C2 bổ sung thêm kiểm soát truy cập ở cấp độ
cá nhân so với lớp C1. Ví dụ, chỉ một lớp người dùng có thể truy cập đến
một tệp nhất định, hay quản trị viên của hệ thống có thể kiểm tra bất kì
hành động nào của một hay nhiều cá nhân một cách chọn lọc dựa trên
việc định danh. TCB cũng bảo vệ chính nó khỏi việc bị sửa mã nguồn hay
cấu trúc dữ liệu. Ngoài ra, người dùng không thể nào truy cập được thông
tin được lưu trữ trong máy do người dùng trước tạo ra. Một số phiên bản
đặc biệt và an toàn hơn của UNIX được xếp ở lớp C2.
Đến với các hệ thống ở mức B, các hệ thống này có đầy đủ các tính
năng của lớp C2. Ngoài ra, nó còn gắn nhãn độ nhạy cho từng đối tượng
trong hệ thống. TCB của lớp B1 duy trì những nhãn này và sử dụng
chúng cho việc kiểm soát truy cập. Ví dụ, người dùng ở mức bảo mật này
thì sẽ không thể truy cập được những dữ liệu ở mức bảo mật cao hơn.
TCB cũng biểu thị mức độ nhạy cảm ở đầu và cuối mỗi trang đầu ra bất
kì mà người dùng đọc được. Ngoài tên và mật khẩu của người dùng, TCB
cũng duy trì những yêu cầu và ủy quyền của mỗi cá nhân, với việc cung

42
Lương Đức Trọng - 20215489

cấp ít nhất hai mức độ bảo vệ. Ta phân cấp các mức này để người dùng có
thể truy cập vào bất kì đối tượng nào có mức độ nhạy cảm bằng hoặc thấp
hơn với mức độ an toàn của họ. Ví dụ, một người dùng ở mức độ bảo mật
này có thể truy cập vào một tệp bí mật ở mức độ đó vô điều kiện. Các quá
trình này cũng độc lập với nhau thông qua việc sử dụng các không gian
địa chỉ riêng biệt.
Các hệ thống ở lớp B2 mở rộng các nhãn nhạy cảm cho từng tài
nguyên hệ thống, chẳng hạn như các đối tượng lưu trữ. Các thiết bị được
cần chỉ ra các mức bảo mật tối thiểu và tối đa mà hệ thống sử dụng để
thực thi các yêu cầu trong môi trường thiết bị đó hoạt động. Ngoài ra, hệ
thống ở lớp B2 cung cấp các kênh bí mật và kiểm tra các sự kiện có thể
dẫn tới việc truy cập vào các kênh bí mật đó.
Các hệ thống ở lớp B3 cho phép tạo danh sách người dùng có quyền
truy cập vào một đối tượng nhất định. TCB cũng chứa một cơ chế giám
sát giúp chỉ ra những hành động vi phạm chính sách bảo mật. Cơ chế này
sẽ thông báo cho quản trị viên bảo mật, nếu cần, sẽ chấm dứt những hành
động này mà ít làm gián đoạn đến những hành động khác.
Mức bảo mật cao nhất là mức A. Về cấu trúc, mức A tương đương
với lớp B3, nhưng nó sử dụng những thống số kĩ thuật chính thức và
những kĩ thuật xác định, mang lại độ bảo đảm cao rằng TCB đang hoạt
động chính xác. Hệ thống ngoài lớp A1 có thể được thiết kế và phát triển
bởi những cơ sở và kĩ sư đáng tin cậy.
Việc sử dụng TCB chỉ đảm bảo rằng hệ thống đang thực thi các
chính sách bảo mật, TCB không thể chỉ định được cụ thể chính sách bảo
mật đó là gì. Thông thường, một môi trường máy tính nhất định sẽ phát
triển những chính sách bảo mật để được cơ quan bảo mật chứng nhận,
chẳng hạn như Trung tâm giám sát an toàn không gian mạng Quốc gia.
Một số môi trường máy tính nhất định đòi hỏi những chứng nhận khác
như là những chứng nhận cung cấp bởi TEMPEST, trong việc chống nghe
lén. Ví dụ, một hệ thống được chứng nhận bởi TEMPEST có các thiết bị
bảo vệ để ngăn trường điện từ thoát ra ngoài môi trường xung quanh.
Việc này đảm bảo rằng các thiết bị bên ngoài phòng hoặc tòa nhà đặt
terminal sẽ không thể biết được những thông tin mà terminal đang hiển
thị.
9. Ví dụ: WINDOWS 7

43
Lương Đức Trọng - 20215489

Microsoft windows 7 là một hệ điều hành được thiết kế để hỗ trợ


nhiều tính năng và phương thức bảo mật. Trong phần này, ta sẽ đi vào các
tính năng mà Windows 7 sử dụng để thực hiện các chứng năng bảo mật.
Mô hình bảo mật trên Windows 7 dựa trên khái niệm “user
accounts”. Windows 7 cho phép tạo ra bất kì một số lượng tài khoản
người dùng, có thể tạo nhóm theo bất kì cách nào. Sau đó, quyền truy cập
tới các đối tượng hệ thống được cho phép hoặc từ chối tùy ý. Người dùng
được hệ thống xác định bằng một ID bảo mật duy nhất. Khi người dùng
đăng nhập, Windows 7 sẽ tạo một “security access token” nao gồm ID
bảo mật cho người dùng, ID bảo mật cho bất kì nhóm nào mà người đó là
thành viên, và danh sách các đặc quyền mà người dùng có. Ví dụ về các
đặc quyền bao gồm sao lưu tệp và thư mục, tắt máy tính, đăng nhập
tương tác và thay đổi giờ hệ thống. Mọi quá trình chạy trong Windows 7
thay mặt cho người dùng sẽ nhận được bản copy của “access token”. Hệ
thống sẽ sử dụng những ID bảo mật trong “access token” để cho phép
hoặc từ chối các truy cập vào các đối tượng hệ thống bất kì khi nào người
dùng hoặc đại diện người dùng cố gắng truy cập đối tượng đó. Việc xác
thực tài khoản người dùng thường được thông qua tên đăng nhập và mật
khẩu, mặc dù thiết kế của Windows 7 cho phép các xác thực tùy ý. Ví dụ,
như xác thực qua “face ID”.
Windows 7 sử dụng ý tưởng là đảm bảo rằng các chương trình người
dùng cài đặt sẽ không thể truy cập vào các đối tượng ở mức độ bảo mật
cao hơn trong hệ thống. Một chủ thể được sử dụng để theo dõi và quản lí
quyền truy cập cho từng chương trình mà người dùng cài đặt. Nó bao
gồm “access token” và chương trình hoạt động thay mặt người dùng. Vì
Windows 7 hoạt động với mô hình khách-máy chủ, nên hai lớp đối tượng
được sử dụng để kiểm soát quyền truy cập: đối tượng đơn giản và máy
chủ. Ví dụ về đối tượng đơn giản là chương trình mà người dùng thực
hiện sau khi đăng nhập. Đối tượng đơn giản sẽ được chỉ định bảo mật dựa
trên “access token” của người dùng. Đối tượng máy chủ là quy trình được
triển khai dưới dạng máy chủ được bảo vệ, sử dụng bảo mật của khách
khi đang hoạt động dưới dạng đại diện cho khách.
Như đã đề cập đến, kiểm soát truy cập là một phương thức bảo mật
hữu ích. Windows 7 có tính năng tích hợp kiểm tra, cho phép giám sát
nhiều mối đe dọa bảo mật phổ biến. Ta có thể ví dụ như kiểm tra đăng
nhập, đăng xuất để phát hiện việc nhập bừa mật khẩu, kiểm tra được
những đăng nhập ở thời gian, địa điểm lạ, ghi lại quá trình bùng phát
virus và kiểm tra truy cập vào các tệp nhạy cảm.

44
Lương Đức Trọng - 20215489

Windows đã thêm tính năng kiểm soát tính toàn vẹn bắt buộc, tính
năng này hoạt động bằng cách gán nhãn tính toàn vẹn cho từng đối tượng
và chủ thể có thể bảo mật. Để một chủ thể nhất định có quyền truy cập
vào một đối tượng, nó phải có quyền truy cập được yêu cầu trong danh
sách kiểm soát truy cập tùy ý và nhãn toàn vẹn của nó phải bằng hoặc cao
hơn nhãn của đối tượng được bảo mật (đối với thao tác đã cho). Các nhãn
toàn vẹn trong Windows 7 là (theo thứ tự tăng dần): không đáng tin cậy,
thấp, trung bình, cao và hệ thống. Ngoài ra, ba “access mask” được phép
cho các nhãn toàn vẹn: NoReadUp, NoWriteUp và NoExecuteUp.
NoWriteUp được thực thi tự động, vì vậy chủ thể có tính toàn vẹn thấp
hơn không thể thực hiện thao tác ghi trên đối tượng có tính toàn vẹn cao
hơn. Tuy nhiên, trừ khi bị chặn cụ thể bởi bộ mô tả bảo mật, nó vẫn có
thể thực hiện các thao tác đọc hoặc thực thi.
Đối với các đối tượng bảo mật không có nhãn toàn vẹn rõ ràng, nó sẽ
được gắn nhãn mặc định. Nhãn cho một chủ đề nhất định được chỉ định
trong quá trình đăng nhập. Chẳng hạn, người dùng không phải quản trị
viên sẽ có nhãn toàn vẹn của phương tiện. Ngoài các nhãn toàn vẹn,
Windows Vista còn bổ sung thêm “Uses Account Control” (UAC), đại
diện cho tài khoản quản trị (không phải tài khoản Quản trị viên tích hợp)
với hai mã thông báo riêng biệt. Thứ nhất, để sử dụng bình thường, đã tắt
nhóm Quản trị viên tích hợp và có nhãn toàn vẹn của phương tiện. Cái
còn lại, để sử dụng nâng cao, đã bật nhóm Quản trị viên tích hợp và nhãn
toàn vẹn cao
Thuộc tính bảo mật của đối tượng trong Windows 7 được mô tả bằng
bộ mô tả bảo mật. Bộ mô tả bảo mật chứa ID bảo mật của chủ sở hữu đối
tượng (người có thể thay đổi quyền truy cập), ID bảo mật nhóm chỉ được
sử dụng bởi hệ thống con POSIX, danh sách kiểm soát truy cập tùy ý xác
định người dùng hoặc nhóm nào được phép (và bị từ chối rõ ràng) quyền
truy cập và danh sách kiểm soát truy cập hệ thống kiểm soát thông báo
kiểm tra nào mà hệ thống sẽ tạo. Theo tùy chọn, danh sách kiểm soát truy
cập hệ thống có thể đặt tính toàn vẹn của đối tượng và xác định các thao
tác cần chặn từ các đối tượng có tính toàn vẹn thấp hơn: đọc, ghi (luôn
được thực thi) hoặc thực thi. Ví dụ: bộ mô tả bảo mật của tệp foo.bar có
thể có chủ sở hữu avi và danh sách kiểm soát quyền truy cập tùy ý này:
• avi—all access
• group cs—read–write access
• user cliff—no access

45
Lương Đức Trọng - 20215489

Ngoài ra, nó có một danh sách kiểm soát truy cập hệ thống yêu cầu
hệ thống kiểm tra việc viết của mọi người cùng với nhãn toàn vẹn của
phương tiện, từ chối đọc, viết và thực thi đối với các đối tượng có tính
toàn vẹn thấp hơn.
Danh sách kiểm soát truy cập bao gồm các mục kiểm soát truy cập
chứa ID bảo mật của cá nhân và mặt nạ truy cập, xác định tất cả các hành
động có thể thực hiện trên đối tượng, với giá trị AccessAllowed hoặc
AccessDenied cho mỗi hành động. Trong Windows 7, các tệp tin có thể
được phân quyền với các loại truy cập như: Read Data, Write Data,
Append Data, Execute, Read Extended Attribute, Write Extended
Attribute, Read Attributes và Write Attributes. Qua đó, chúng ta có thể
nhận thấy cách này cung cấp một mức độ kiểm soát tốt đối với việc truy
cập vào các đối tượng.
Hệ điều hành Windows 7 phân loại các đối tượng thành đối tượng
chứa và đối tượng không chứa. Các đối tượng vùng chứa, ví dụ như thư
mục, có thể chứa các đối tượng khác bên trong. Mặc định, khi một đối
tượng mới được tạo trong một đối tượng vùng chứa, nó sẽ kế thừa các
quyền từ đối tượng cha. Tương tự, khi người dùng sao chép một tệp tin từ
một thư mục sang một thư mục mới, tệp tin đó sẽ kế thừa các quyền từ
thư mục đích. Các đối tượng không phải vùng chứa sẽ không thừa kế các
quyền khác. Hơn nữa, nếu một quyền được thay đổi trên một thư mục,
các quyền mới sẽ không áp dụng tự động cho các tệp tin và thư mục con
hiện có; người dùng có thể áp dụng chúng một cách rõ ràng nếu cần thiết.
Quản trị viên hệ thống có thể áp dụng hạn chế in ấn trên máy in
trong suốt cả ngày hoặc tại những thời điểm cụ thể, và sử dụng Windows
7 Performance Monitor để giúp người dùng phát hiện sớm các vấn đề
tiềm ẩn. Nhìn chung, Windows 7 thực hiện một công việc tốt trong việc
cung cấp các tính năng giúp bảo vệ môi trường máy tính an toàn. Tuy
nhiên, nhiều tính năng trong số này không được kích hoạt mặc định, điều
này có thể gây ra nhiều vi phạm bảo mật trên hệ thống Windows 7. Ngoài
ra, một nguyên nhân khác là sự tồn tại của số lượng lớn các tính năng
Windows 7 được khởi động cùng với hệ thống và sự cài đặt đồng thời của
nhiều ứng dụng trên hệ thống Windows 7. Trong môi trường đa người
dùng, quản trị viên hệ thống cần xây dựng một kế hoạch bảo mật chi tiết
và triển khai nó, sử dụng tận dụng các tính năng được cung cấp bởi
Windows 7 cũng như các công cụ bảo mật khác.

46
Lương Đức Trọng - 20215489

Danh mục tham khảo

[1] Abraham Silberschatz, Operating System Concepts, 2013.

47

You might also like