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

TRIỂN KHAI THỬ NGHIỆM GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN MỀM NGUỒN MỞ VERACRYPT

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.95 MB, 78 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI

ĐỒ ÁN TỐT NGHIỆP

TÌM HIỂU VÀ TRIỂN KHAI THỬ NGHIỆM GIẢI
PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN
MỀM NGUỒN MỞ VERACRYPT

Sinh viên thực hiện:
Nguyễn Văn Sơn

Hà Nội – 2023


MỤC LỤC
MỤC LỤC .......................................................................................................... i
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................... iii
DANH MỤC BẢNG BIỂU ............................................................................... iv
DANH MỤC HÌNH VẼ ................... Lỗi! Thẻ đánh dấu khơng được xác định.
LỜI NĨI ĐẦU ................................................................................................... v
CHƯƠNG I: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU ...................................... 1
1.1 Dữ liệu máy tính ........................................................................................... 1
1.1.1 Khái niệm dữ liệu máy tính ....................................................................... 1
1.1.2 Cách biểu diễn dữ liệu trong thiết bị lưu trữ .............................................. 1
1.1.3 Đặc điểm của dữ liệu lưu trữ ..................................................................... 2
1.1.4 Các trạng thái của dữ liệu .......................................................................... 3
1.2 Lưu trữ dữ liệu ............................................................................................. 5
1.2.1 Phân cấp các thiết bị lưu trữ ...................................................................... 5
1.2.2 Đặc tính thiết bị lưu trữ ............................................................................. 7
1.2.3 Thiết bị lưu trữ trong thực tế ...................................................................... 9
1.3 Nguy cơ mất an toàn dữ liệu ....................................................................... 13


1.3.1 Nguyên nhân do nhận thức, kiến thức của người dùng ............................ 13
1.3.2 Nguyên nhân do sự bất cẩn của người quản trị cơ sở hạ tầng ................... 13
1.3.3. Nguyên nhân mất dữ liệu do trộm cắp máy tính...................................... 14
1.3.4 Một số tấn cơng điển hình ....................................................................... 15
1.4 Các giải pháp bảo mật ................................................................................ 16
1.4.1 Mã hóa file, hệ thống tệp ......................................................................... 16
1.4.2 Mã hóa ổ đĩa ( Disk Encryption) .............................................................. 19
1.5 Kết luận chương ......................................................................................... 27
CHƯƠNG II: GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN
MỀM VERACRYPT........................................................................................ 29
2.1 Giới thiệu chuẩn IEEE P1619 ..................................................................... 29
2.1.1 Thuật toán AES ....................................................................................... 29
2.1.2 Các chế độ mã hóa dữ liệu lưu trữ ........................................................... 33
2.2 Giới thiệu phần mềm VeraCrypt ................................................................. 46


2.2.1 Giới thiệu ................................................................................................ 46
2.2.2 Quy trình xử lý dữ liệu trong VeraCrypt .................................................. 46
2.2.3 Quy trình xử lý khóa trong VeraCrypt ..................................................... 51
2.3 Kết luận chương ......................................................................................... 53
CHƯƠNG III: PHÁT TRIỂN ỨNG DỤNG MÃ HÓA DỮ LIỆU DỰA TRÊN
MÃ NGUỒN MỞ VERACRYPT .................................................................... 54
3.1 Tùy biến mã nguồn VeraCrypt ................................................................... 54
3.2 Biên dịch và triển khai ứng dụng VeraCrypt ............................................... 61
3.2.1 Cài đặt môi trường phát triển ................................................................... 61
3.2.2 Biên dịch mã nguồn VeraCrypt ............................................................... 63
3.2.3 Triển khai ứng dụng VeraCrypt ............................................................... 65
3.3 Kết luận chương ......................................................................................... 68
KẾT LUẬN ...................................................................................................... 69
TÀI LIỆU THAM KHẢO ................................................................................ 70



DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt
AES

Tiếng Anh

Tiếng Việt

Advanced Encryption Standard

Tiêu chuẩn mã hóa nâng
cao

DES

Data Encryption Standard

Tiêu chuẩn mã hóa

CTR

Counter

Chế độ bộ đếm

ECB

Electronic Codebook


Chế độ sách điện tử

EFS

Encrypted File-System

Mã hóa hệ thống tệp

DRAM

Dynamic

Random

Access Bộ nhớ truy cập ngẫu

Memory

nhiên động

HHD

Hybrid Hard Drive

Ổ cứng lai

IEEE

Institute


of

Electrical

and Tổ chức phi lợi nhuận về

Electromics Engineers
NIST

điện điện tử

National Institute of Standards Viện Tiêu chuẩn và Kỹ
and Technology

thuật quốc gia

ROM

Read-Only Memory

Bộ nhớ chỉ đọc

RAM

Random Access Memory

Bộ nhớ truy cập ngẫu
nhiên


SRAM

Static Random Access Memory Bộ nhớ truy cập ngẫu
nhiên tĩnh

SSD

Solid State Drive

Ổ cứng lưu trữ thể rắn

USB

Universal Serial Bus

Chuẩn kết nối tuần tự đa
dụng
Xor mã hóa Xor

XEX

Xor Encrypt Xor

XTS

XEX-based tweaked-codebook Chế độ dựa trên XEX và
mode with ciphertext stealing

“lấy” bản mã



DANH MỤC BẢNG BIỂU
Bảng 1.1 So sánh SRAM và DRAM. ................................................................. 5
Bảng 2.1 Bảng biểu diễn trạng thái đầu vào, đầu ra .......................................... 30
Bảng 2.2 Độ dài khóa, độ dài khối và số vòng của AES ................................... 31
Bảng 2.3 Cấu trúc volume header ..................................................................... 50


LỜI NĨI ĐẦU
Trong xã hội cơng nghệ thơng tin hiện nay, tất cả những thông tin cá nhân
của chúng ta có thể được lưu trữ trên những thiết bị nhỏ gọn, giá thành rẻ, dễ sử
dụng như USB, DVD,... Các thiết bị lưu trữ này có tính phổ biến cao, kéo theo đó
là những nguy cơ về mất an tồn dữ liệu, lộ lọt thông tin khi các thiết bị bị thất
lạc hoặc mất cắp,... Vì vậy, chúng ta thực sự cần có các biện pháp để bảo vệ dữ
liệu trước các nguy cơ này. Rất nhiều giải pháp bảo vệ đã được đưa ra như kiểm
soát người dùng truy cập vào dữ liệu, hệ thống, dùng các phần mềm đặt mật khẩu
cho các file,... trong đó bảo mật dữ liệu là một giải pháp quan trọng và cần thiết.
Giải pháp bảo mật dữ liệu dùng các thuật toán mật mã cho phép mã hóa dữ liệu
cần bảo vệ. Mã hóa dữ liệu là việc chuyển đổi dữ liệu từ dạng đọc hiểu được sang
dạng không đọc hiểu được thông qua q trình mã hóa. Vì vậy, ngay cả khi kẻ tấn
cơng có được thiết bị lưu trữ mà ở đó dữ liệu của bạn đã được mã hóa thì cũng rất
khó có thể thu được thơng tin như ban đầu. Xuất phát từ thực tế đó, tơi đã chọn
đề tài “Tìm hiểu và triển khai thử nghiệm giải pháp mã hóa dữ liệu lưu trữ
dựa trên phần mềm nguồn mở VeraCrypt” làm nội dung nghiên cứu cho đồ án
tốt nghiệp của mình.
Nội dung của đề tài nghiên cứu được chia làm 3 chương:
CHƯƠNG 1: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU
Chương này trình bày các nội dung tìm hiểu dữ liệu lưu trữ, thiết bị lưu trữ,
các nguy cơ mất an toàn đối với dữ liệu lưu trữ và một số giải pháp bảo mật dữ
liệu lưu trữ.

CHƯƠNG 2: GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN
PHẦN MỀM VERACRYPT
Chương này trình bày về thuật tốn được ứng dụng trong mã hóa ổ đĩa, các
chế độ mã hóa ổ đĩa và giải pháp mã hóa dữ liệu lưu trữ trong phần mềm
VeraCrypt.


CHƯƠNG 3: THỬ NGHIỆM GIẢI PHÁP MÃ HÓA SỬ DỤNG MÃ
NGUỒN VERACRYPT
Chương này trình bày cấu trúc logic cơ bản của mã nguồn VeraCrypt, các
tùy biến đối với mã nguồn và cách thức triển khai sử dụng ổ đĩa ảo để bảo mật dữ
liệu lưu trữ.


CHƯƠNG I: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU
1.1 Dữ liệu máy tính
1.1.1 Khái niệm dữ liệu máy tính
Dữ liệu máy tính là thơng tin được xử lý hoặc lưu trữ bởi máy tính. Thơng
tin này có thể ở dạng tài liệu văn bản, hình ảnh, clip âm thanh, chương trình phần
mềm hoặc các loại dữ liệu khác. Dữ liệu máy tính có thể được xử lý bởi CPU của
máy tính và được lưu trữ trong các tệp và thư mục trên đĩa cứng của máy tính.
Ở cấp độ thơ sơ nhất của nó, dữ liệu máy tính là một loạt các bit 0 và bit 1,
được gọi là dữ liệu nhị phân. Bởi vì tất cả dữ liệu máy tính ở định dạng nhị phân
nên nó có thể được tạo, xử lý, lưu và lưu trữ bằng kỹ thuật số. Điều này cho phép
dữ liệu được truyền từ máy tính này sang máy tính khác bằng các kết nối mạng
hoặc các thiết bị đa phương tiện khác nhau, đồng thời dữ liệu cũng không bị suy
giảm theo thời gian hoặc mất chất lượng sau khi được sử dụng nhiều lần.
1.1.2 Cách biểu diễn dữ liệu trong thiết bị lưu trữ
Tất cả dữ liệu âm thanh, hình ảnh, số,... trong thế giới thực mà chúng ta muốn
lưu trữ trong máy tính đều được chuyển đổi thành dữ liệu được biểu thị bởi các

bit 0, 1 như trong Hình 1.1.
Dữ liệu đời thực

abc

1 2 3
text

Dữ liệu trong máy tính
01110101011010101
10100101011010101
01010101010110101
01000101011010101
01101010101001100
00101011101100111
10101001010101010
10101010101010101
01010101011000100

Hình 1.1 Dữ liệu đời thực và dữ liệu máy tính.
Mỗi loại dữ liệu lại có cách quy ước để chuyển đổi thành các bit 0, 1 khác
nhau. Có thể chia tín hiệu đời thực thành một số loại chính như sau: ký tự, hình
ảnh - đồ họa, âm thanh,...


- Ký tự được biểu diễn dưới dạng ASCII, ASCII được chính phủ Hoa Kì áp
dụng làm tiêu chuẩn để biểu diễn ký tự trong máy tính. Ví dụ: khi nhập chữ C trên
bàn phím, máy tính sẽ chuyển đổi thành byte ở dạng 01000011.
- Hình ảnh – đồ họa: dữ liệu hình ảnh – đồ họa được biểu diễn thành các
pixel, 1 byte biểu diễn 1 pixel. Trong thang độ xám, mỗi pixel là một màu xám từ

đen ở cực này sang cực khác.
- Âm thanh: xuất hiện tự nhiên ở dạng tín hiệu tương tự. Khi đưa vào máy
tính, tín hiệu tương tự này được chuyển thành tín hiệu số qua các giai đoạn: lấy
mẫu, lượng tử hóa, trung bình hóa và mã hóa. Cần lấy mẫu độ cao của sóng âm
thanh trong khoảng thời gian đều nhau. Các độ cao này đại diện cho mức độ
decibel của âm thanh.
1.1.3 Đặc điểm của dữ liệu lưu trữ
Do dữ liệu lưu trữ được lưu trữ trong các thiết bị lưu trữ dưới dạng thơng tin
số nên nó có đầy đủ các đặc điểm của thơng tin số.
Tính đồng bộ
Vì thông tin kỹ thuật số được truyền tuần tự trong đó các ký hiệu được sắp
xếp nên tất cả các sơ đồ kỹ thuật số đều có một số phương pháp để xác định điểm
bắt đầu của một chuỗi. Trong ngơn ngữ viết hoặc nói của con người, đồng bộ hóa
thường được cung cấp bởi tạm dừng (dấu cách), viết hoa và chấm câu. Thông tin
liên lạc máy thường sử dụng trình tự đồng bộ hóa đặc biệt.
Tính ngơn ngữ
Trong tất cả các giao tiếp kỹ thuật số, các dữ liệu được trình bày theo các
ngơn ngữ được người gửi và người nhận thống nhất từ trước. Nói chung việc chọn
ngôn ngữ là tùy ý nhằm chỉ định ý nghĩa được gán cho các chuỗi ký hiệu cụ thể,
phạm vi giá trị được phép,...
Tính sao chép được
Do sự hiện diện không thể tránh khỏi của nhiễu nên việc tạo ra nhiều bản sao
liên tiếp của một truyền thông tương tự là khơng thể thực hiện được vì mỗi bản
sao làm tăng độ nhiễu. Bởi vì thơng tin liên lạc kỹ thuật số thường khơng có lỗi
nên các bản sao của bản sao có thể được tạo vơ thời hạn.


Tính nén được
Theo Miller, "Dữ liệu số khơng được nén sẽ rất lớn và ở dạng thơ, nó thực
sự sẽ tạo ra tín hiệu lớn hơn (do đó khó truyền hơn) so với dữ liệu tương tự. Tuy

nhiên, dữ liệu số có thể được nén. Lượng khơng gian băng thơng cần thiết để gửi
thơng tin. Dữ liệu có thể được nén, gửi và sau đó được giải nén tại vị trí người
nhận. Điều này cho phép gửi nhiều thơng tin hơn và kết quả là, ví dụ, tín hiệu
truyền hình kỹ thuật số cung cấp nhiều chỗ hơn trên phổ sóng khơng khí cho nhiều
kênh truyền hình hơn”.
1.1.4 Các trạng thái của dữ liệu
Dữ liệu có 3 trạng thái: dữ liệu ở trạng thái lưu trữ, dữ liệu trong lưu thơng
và dữ liệu trong trạng thái sử dụng. Hình 1.2 dưới đây đưa ra cái nhìn tổng thể về
3 trạng thái của dữ liệu.
Dữ liệu trong lưu thông

Dữ liệu đang sử dụng
Dữ liệu hoạt động được
lưu bằng phương pháp vật
lý trong cơ sở dữ liệu hoặc
các thiết bị lưu trữ

Dữ liệu
đang
được sử
dụng

Dữ liệu
trong
lưu
thông

Dữ liệu được truyền qua
mạng hoặc được lưu trữ
tạm thời trong máy tính để

đươc đọc hoặc sửa đổi.

Dữ liệu trong
trạng thái lưu
trữ

Dữ liệu trong trạng thái lưu trữ
Dữ liệu được lưu trong cơ sở dữ
liệu hoặc các thiết bị lưu trữ

Hình 1.2 Trạng thái của dữ liệu.
1.1.4.1 Dữ liệu ở trạng thái lưu trữ
Dữ liệu ở trạng thái lưu trữ là một thuật ngữ chỉ dữ liệu được lưu trữ trên
thiết bị hoặc phương tiện sao lưu dưới mọi hình thức. Nó có thể là dữ liệu được
lưu trữ trên ổ đĩa cứng, băng dự phòng, trong sao lưu đám mây ngoại vi hoặc thậm
chí trên các thiết bị di động. Dữ liệu ở trạng thái lưu trữ thường ở trạng thái ổn


định, nó khơng di chuyển trong hệ thống hoặc mạng và nó khơng bị tác động bởi
bất kỳ ứng dụng hoặc CPU nào.
Dữ liệu ở trạng thái lưu trữ là dữ liệu đã đến đích (ngay cả khi chỉ là tạm
thời). Tại điểm đến này, dữ liệu có thể có thêm các lớp bảo mật, chẳng hạn như
mã hóa, xác thực đa yếu tố và cả điều khiển truy cập vật lý và kỹ thuật số. Khi đã
mã hóa, dữ liệu ln ở trạng thái mã hóa.
1.1.4.2 Dữ liệu trong trạng thái lưu thông:
Giai đoạn thứ hai của dữ liệu là dữ liệu trong lưu thông. Dữ liệu trong lưu
thông là dữ liệu hiện đang truyền qua mạng hoặc đang trong RAM của máy tính
sẵn sàng được đọc, cập nhật hoặc xử lý. Dữ liệu truyền qua mạng từ lưu trữ cục
bộ sang lưu trữ đám mây hoặc từ máy tính lớn trung tâm đến thiết bị đầu cuối từ
xa cần được mã hóa để kẻ tấn cơng giữa nguồn và đích của dữ liệu khơng thể đọc

hoặc thao tác trên dữ liệu. Dữ liệu trong lưu thông này bao gồm dữ liệu truyền
qua cáp mạng và qua mạng không dây. Nó có thể là email hoặc tập tin được truyền
qua FTP hoặc SSH.
1.1.4.3 Dữ liệu trong trạng thái sử dụng:
Dữ liệu trong trạng thái sử dụng là dữ liệu đang được xử lý bởi một hoặc
nhiều ứng dụng, hiện đang trong quá trình được tạo, cập nhật, nối thêm hoặc xóa.
Nó cũng bao gồm dữ liệu được xem bởi người dùng truy cập nó thơng qua các
điểm đầu cuối khác nhau. Dữ liệu trong trạng thái sử dụng dễ gặp phải các loại
mối đe dọa khác nhau tùy thuộc vào vị trí của hệ thống lưu trữ dữ liệu và ai có thể
sử dụng dữ liệu đó. Điểm dễ bị tổn thương nhất đối với dữ liệu trong trạng thái sử
dụng là tại các điểm đầu cuối nơi người dùng có thể truy cập và tương tác với nó.
Một bộ dữ liệu có thể có nhiều người dùng làm việc với nó từ nhiều điểm
đầu cuối. Số lượng lớn hệ thống, thiết bị và nhân viên nội bộ truy cập dữ liệu máy
tính lớn từ thiết bị cá nhân có nghĩa là dữ liệu này cần được bảo vệ thơng qua xác
thực người dùng, quản lý danh tính và quyền hồ sơ. Với sự phát triển của công
nghệ hiện nay, gần như khơng thể ngăn chặn rị rỉ dữ liệu từ các điểm đầu cuối,
hầu hết người dùng được yêu cầu không chia sẻ dữ liệu riêng tư với bất kỳ ai
không được phép.


1.2 Lưu trữ dữ liệu
1.2.1 Phân cấp các thiết bị lưu trữ
Thiết bị lưu trữ có thể chia ra làm 4 phân cấp chính như sau: Lưu trữ sơ cấp,
lưu trữ thứ cấp, lưu trữ cấp ba và lưu trữ ngoại tuyến. Lưu trữ càng thấp trong cấu
trúc phân cấp, băng thơng của nó càng nhỏ và độ trễ truy cập từ CPU của nó càng
lớn. Dưới đây sẽ trình bày chi tiết hơn về từng phân cấp.
1.2.1.1 Thiết bị lưu trữ sơ cấp
Các thiết bị lưu trữ sơ cấp (cịn được gọi là bộ nhớ chính hoặc bộ nhớ trong),
là bộ nhớ duy nhất có thể truy cập trực tiếp vào CPU. CPU liên tục đọc các lệnh
được lưu trữ ở đó và thực thi chúng theo yêu cầu. Ví dụ như: RAM, ROM, Cache.

Bộ nhớ truy cập ngẫu nhiên (RAM) có kích thước nhỏ, nhẹ, nhưng khá đắt
tiền. Có hai loại RAM: DRAM (Dynamic Random Access Memory) được gọi là
RAM động và SRAM (Static Random Access Memory) được gọi là RAM tĩnh.
Bảng 1.1 So sánh SRAM và DRAM.
SRAM

DRAM

Đắt hơn, Nhanh hơn

Rẻ hơn, Chậm hơn,

Tiêu thụ nhiều năng lượng hơn

Tiêu thụ ít năng lượng hơn

Khơng cần phải làm “tươi” (refresh)

Cần được làm “tươi” (refresh) hàng
ngàn lần mỗi giây

Bộ nhớ chỉ đọc (ROM) được sử dụng khi máy tính bắt đầu khởi động. Các
chương trình nhỏ được gọi là phần sụn (firmware) thường được lưu trữ trong chip
ROM và chúng chứa các lệnh mà máy tính có thể sử dụng để thực thi một số hoạt
động cơ bản nhất cần có để vận hành các thiết bị phần cứng. Bộ nhớ ROM không
thể ghi đè hoặc sửa đổi một cách dễ dàng hoặc nhanh chóng.


1.2.1.2 Thiết bị lưu trữ thứ cấp
Các thiết bị lưu trữ thứ cấp (cịn được gọi là bộ nhớ ngồi hoặc bộ nhớ phụ),

khác với bộ lưu trữ sơ cấp ở chỗ CPU không thể truy cập trực tiếp. Máy tính
thường sử dụng các kênh đầu vào/ đầu ra của nó để truy cập vào bộ lưu trữ thứ
cấp và chuyển đến dữ liệu mong muốn bằng cách sử dụng vùng trung gian trong
bộ lưu trữ sơ cấp. Lưu trữ thứ cấp không làm mất dữ liệu khi thiết bị được tắt
nguồn. Các hệ thống máy tính hiện đại thường có hai cấp độ, lưu trữ thứ cấp lớn
hơn lưu trữ sơ cấp và dữ liệu được lưu giữ trong thời gian dài hơn ở đó. Trong các
máy tính hiện đại, ổ đĩa cứng thường được sử dụng làm bộ lưu trữ thứ cấp.
Ổ đĩa cứng là thiết bị lưu trữ dữ liệu chính và thường là thiết bị lớn nhất trong
máy tính. Đến năm 2019 dung lượng lưu trữ của ổ đĩa cứng là rất lớn, lên đến vài
TB, cá biệt có ổ cứng lên đến 100TB. Tốc độ đĩa cứng là tốc độ mà nội dung có
thể được đọc và ghi trên đĩa cứng. Thời gian truy cập ổ đĩa được đo bằng ms. Có
hai loại ổ cứng: ổ cứng ngoài (External Hard Disk) và ổ cứng trong (Internal Hard
Disk).
1.2.1.3 Thiết bị lưu trữ cấp ba
Thông thường thiết bị lưu trữ cấp ba bao gồm một cơ chế robot sẽ gắn (chèn)
và tháo phương tiện lưu trữ khối lớn có thể tháo rời vào một thiết bị lưu trữ theo
yêu cầu của hệ thống; dữ liệu đó thường được sao chép vào bộ lưu trữ thứ cấp
trước khi sử dụng. Thiết bị lưu trữ này chủ yếu được sử dụng để lưu trữ thông tin
hiếm khi được truy cập vì tốc độ truy cập của nó chậm hơn nhiều so với các thiết
bị lưu trữ thứ cấp (ví dụ 5-60 giây so với 1-10 ms).
1.2.1.4 Thiết bị lưu trữ ngoại tuyến
Lưu trữ ngoại tuyến là hình thức lưu trữ dữ liệu máy tính trên phương tiện
hoặc thiết bị khơng thuộc quyền kiểm sốt của đơn vị xử lý. Phương tiện được ghi
lại, thường là trong thiết bị lưu trữ thứ cấp hoặc cấp ba, sau đó được gỡ bỏ hoặc
ngắt kết nối vật lý. Nó phải được chèn hoặc kết nối bởi một nhà điều hành con
người trước khi máy tính có thể truy cập lại. Khơng giống như lưu trữ cấp ba, nó
khơng thể được truy cập mà khơng có sự tương tác của con người.


Trong các máy tính cá nhân hiện đại, hầu hết các phương tiện lưu trữ thứ cấp

và cấp ba cũng được sử dụng để lưu trữ ngoại tuyến. Ví dụ như đĩa mềm, đĩa Zip,
USB, thẻ nhớ. USB là thẻ nhớ flash nhỏ, di động cắm vào cổng USB của máy tính
và hoạt động như một ổ cứng di động. Ổ đĩa flash có các kích cỡ như 4GB, 16GB,
32GB, 64GB và là một cách dễ dàng để chuyển và lưu trữ thơng tin.
1.2.2 Đặc tính thiết bị lưu trữ
Tính biến động
Bộ nhớ bất khả biến (non–volatile memory) giữ lại thông tin được lưu trữ
ngay cả khi không được cung cấp nguồn điện liên tục. Nó phù hợp để lưu trữ
thông tin lâu dài.
Bộ nhớ khả biến (volatile memory) yêu cầu nguồn điện liên tục để duy trì
thơng tin được lưu trữ. Các công nghệ bộ nhớ nhanh nhất là những cơng nghệ khả
biến, mặc dù đó khơng phải là quy tắc phổ biến.
Bộ nhớ truy cập ngẫu nhiên động (DRAM) là một dạng bộ nhớ khả biến
cũng yêu cầu thông tin được lưu trữ phải được đọc lại và viết lại định kỳ hoặc làm
mới, nếu khơng nó sẽ biến mất. Bộ nhớ truy cập ngẫu nhiên tĩnh (SRAM) là một
dạng bộ nhớ khả biến tương tự DRAM với ngoại lệ là nó khơng bao giờ cần được
làm mới miễn là nó được cấp nguồn; và nội dung của nó sẽ bị mất khi ngắt nguồn
điện.
Tính biến đổi
+ Lưu trữ đọc/ ghi hoặc lưu trữ có thể thay đổi: Cho phép thông tin được ghi
đè bất cứ lúc nào. Một máy tính khơng có dung lượng lưu trữ đọc/ ghi cho mục
đích lưu trữ chính sẽ vơ dụng đối với nhiều tác vụ. Các máy tính hiện đại thường
sử dụng lưu trữ đọc/ ghi cũng cho cách thức lưu trữ thứ cấp.
+ Lưu trữ chỉ đọc: Giữ lại thông tin được lưu trữ tại thời điểm nó được tạo
ra, thông tin chỉ được ghi lại một lần tại một thời điểm sau khi được tạo ra (ghi
một lần đọc nhiều lần). Chúng được gọi là lưu trữ bất biến (không thay đổi). Lưu
trữ bất biến được sử dụng cho lưu trữ cấp ba và lưu trữ ngoại tuyến.
+ Lưu trữ viết chậm, đọc nhanh: Lưu trữ đọc/ ghi cho phép ghi đè thông tin
nhiều lần, nhưng thao tác ghi chậm hơn nhiều so với thao tác đọc.



Tính truy cập
Đề cập đến đọc hoặc ghi các bản ghi dữ liệu. Có hai loại khả năng truy cập
là truy cập ngẫu nhiên và truy cập tuần tự.
+ Truy cập ngẫu nhiên: Trong cùng một khoảng thời gian, bất kỳ vị trí nào
trong thiết bị lưu trữ đều có thể được truy cập bất cứ lúc nào. Đặc tính như vậy
phù hợp cho lưu trữ sơ cấp và lưu trữ thứ cấp. Hầu hết các bộ nhớ bán dẫn và ổ
đĩa đều cung cấp tính truy cập ngẫu nhiên.
+ Truy cập tuần tự: Truy cập các mẩu thông tin theo thứ tự nối tiếp nhau,
từng cái một; do đó thời gian để truy cập một phần thông tin cụ thể phụ thuộc vào
phần thông tin nào được truy cập lần cuối. Đây là đặc tính điển hình của lưu trữ
ngoại tuyến.
Tính định vị
Tính định vị được chia thành ba loại: định vị địa chỉ, định vị tập tin và định
vị nội dung.
+ Định vị địa chỉ: mỗi đơn vị thơng tin có thể truy cập riêng lẻ trong bộ lưu
trữ được chọn với địa chỉ bộ nhớ số.
+ Định vị tập tin: thông tin được chia thành các tệp có độ dài thay đổi, mỗi
tệp có 1 tên và nằm trong 1 thư mục cụ thể mà con người có thể đọc được.
+ Định vị nội dung: mỗi đơn vị thơng tin có thể truy cập riêng lẻ được chọn
dựa trên cơ sở (một phần) nội dung được lưu trữ ở đó. Có thể thực thi lưu trữ theo
địa chỉ nội dung bằng phần mềm (chương trình máy tính) hoặc phần cứng (thiết
bị máy tính), phần cứng là lựa chọn nhanh hơn nhưng đắt hơn. Bộ nhớ địa chỉ nội
dung phần cứng thường được sử dụng trong cache CPU của máy tính.


Tính hiệu suất
+ Độ trễ: là khoảng thời gian cần thiết để truy cập vào một vị trí cụ thể trong
thiết bị lưu trữ. Đơn vị đo lường có liên quan thường là nano giây cho lưu trữ sơ
cấp, mili giây cho lưu trữ thứ cấp và giây cho lưu trữ phân cấp thứ ba.

+ Thông lượng: là tốc độ mà thơng tin có thể được đọc hoặc ghi vào bộ lưu
trữ trong 1 đơn vị thời gian. Trong lưu trữ dữ liệu máy tính, thơng lượng thường
được biểu thị bằng megabyte mỗi giây (MBps), tốc độ bit cũng có thể được sử
dụng.
+ Độ tin cậy: là xác suất thay đổi giá trị bit tự phát trong các điều kiện khác
nhau, hoặc tỷ lệ thất bại tổng thể. Các tiện ích như hdparm và sar có thể được sử
dụng để đo hiệu suất I/O trong Linux.
1.2.3 Thiết bị lưu trữ trong thực tế
1.2.3.1 HDD
Ổ đĩa cứng (HDD) là phương tiện lưu trữ bất khả biến, lưu trữ dữ liệu trên
một đĩa quay có bề mặt từ tính. HDD có lẽ là thiết bị phát triển nhanh nhất được
sử dụng trong máy tính về chi phí và dung lượng. Các mơ hình ban đầu rất lớn,
nặng, đắt tiền, dễ vỡ và chỉ có cơng suất 4,4 megabyte và nặng hơn một tấn.
+ Cấu tạo ổ đĩa cứng HDD
Một thiết kế điển hình của ổ cứng HDD bao gồm một trục chính chứa một
hoặc nhiều đĩa, trên đó dữ liệu được ghi lại. Các đĩa được làm từ vật liệu khơng
từ tính như thủy tinh hoặc nhôm và được phủ một lớp màng từ mỏng. Dữ liệu
được ghi và đọc với đầu đọc-ghi khi các đĩa được quay ở tốc độ cao. Vị trí của
các đầu đọc ghi được điều khiển bởi “cần di chuyển đầu đọc”.
Dữ liệu được sắp xếp trên một đĩa trong các rãnh từ được căn chỉnh theo
vòng trịn từ trung tâm đĩa. Mỗi rãnh từ có một số khối dữ liệu. Kích thước phổ
biến cho khối dữ liệu là 512 byte.


Hình 1.3 Ổ cứng HDD.
+ Cách thức hoạt động của HDD
Trong ổ cứng máy tính, chỉ có một "tấm" vật liệu từ tính sáng bóng lớn gọi
là đĩa, được chia thành hàng tỷ khu vực nhỏ. Mỗi khu vực đó có thể được từ hóa
độc lập (để lưu trữ 1) hoặc khơng từ hóa (để lưu trữ 0).
Các đĩa là phần quan trọng nhất của ổ cứng. Như trên cho thấy, chúng là

những chiếc đĩa được làm từ vật liệu cứng như thủy tinh, gốm hoặc nhôm, được
phủ một lớp kim loại mỏng có thể từ hóa hoặc khử từ. Một ổ cứng nhỏ thường chỉ
có một đĩa, nhưng mỗi mặt của nó có một lớp phủ từ tính. Các ổ đĩa lớn hơn có
một loạt các đĩa xếp chồng lên nhau trên một trục chính giữa, với một khoảng
cách nhỏ ở giữa chúng. Các đĩa quay với tốc độ lên tới 10.000 vòng/ phút (vòng/
phút) để các đầu đọc ghi có thể truy cập vào bất kỳ phần nào của chúng.
+ Đọc và ghi dữ liệu
Các bit dữ liệu được sắp xếp theo các đường tròn, đồng tâm gọi là rãnh
từ. Mỗi rãnh từ được chia thành các khu vực nhỏ hơn được gọi là các sector. Một
sector của ổ cứng lưu trữ bản đồ của các lĩnh vực đã được sử dụng hết và các phần
khác vẫn còn trống (trong Windows, bản đồ này được gọi là Bảng phân bổ
tệp hoặc FAT). Khi máy tính muốn lưu trữ thơng tin mới, nó sẽ xem “bản đồ” để
tìm một số khu vực trống. Sau đó, nó ra lệnh cho đầu đọc ghi di chuyển qua đĩa
để đến đúng vị trí và lưu trữ dữ liệu ở đó. Để đọc thơng tin, q trình tương tự
chạy ngược lại.
Một bộ phận trong ổ đĩa cứng góp phần tìm kiếm dữ liệu đó là Volume
Header. Về mặt khái niệm thì Volume Header là chỉ mục của mọi volume có sẵn
trên ổ cứng đó. Mỗi ổ đĩa cứng chứa một volume header riêng lẻ hoặc một nhóm.


Trước khi đi vào chi tiết về volume header, 2 điều phải được xóa: volume và
header.
Header giống như một chỉ mục của một cuốn sách. Bất cứ khi nào quá trình
quét được chạy bởi BIOS hoặc bởi hệ điều hành, các con trỏ chỉ mục sẽ xem xét
MBR – Master Boot Record, liên quan đến số lượng ổ đĩa. Và sau đó, MBR sẽ
chỉ đến Volume Header.
Dữ liệu của ổ đĩa cứng được tạo thành từ các byte nhỏ, các byte này nhóm
lại tạo thành sectors and tracks. Thậm chí lưu trữ một dữ liệu rất nhỏ sẽ mất rất
nhiều byte. Và dữ liệu đó sẽ khơng được sắp xếp và nhóm lại ở các vị trí riêng
biệt. Chúng được lưu trữ ở nơi có khoảng trống và thơng tin này sẽ được lưu trữ

dưới dạng bảng băm trên ổ cứng của bạn. Volume header chỉ đạo các chương trình
con trỏ tìm nạp dữ liệu chính xác trong ổ đĩa cứng cụ thể đó.
Kích thước Volume Header sẽ nhỏ hơn 1000 kilo byte. Vì chúng chỉ có thơng
tin liên quan đến cấu trúc ổ đĩa cứng, kích thước sẽ khơng đáng kể. Một số loại
thông tin Volume Header bên dưới:
- Thông tin hệ thống tập tin.
- Volume size.
- Volume ID.
- Khơng gian sử dụng và khơng gian trống có sẵn.
- Thông tin tổng hợp về chỉ mục của các bảng băm chính cuối cùng có thơng
tin về dữ liệu được lưu trữ trên Volume .
Thơng tin có thể thay đổi tương ứng dựa trên hệ điều hành và hệ thống tệp.
Vậy làm thế nào để một máy tính điện tử thao tác với tất cả các hạt cứng cơ
học trong một ổ cứng? Có một giao diện (một phần kết nối của thiết bị) giữa chúng
được gọi là bộ điều khiển. Đây là một mạch nhỏ vận hành các bộ truyền động,
chọn các rãnh từ cụ thể để đọc và ghi và chuyển đổi các luồng dữ liệu song song
từ máy tính thành các luồng dữ liệu nối tiếp được ghi vào đĩa (và ngược lại). Bộ
điều khiển được tích hợp vào bảng mạch riêng của ổ đĩa hoặc một phần của bo
mạch chính (bo mạch chủ) của máy tính.


Với rất nhiều thông tin được lưu trữ trong một không gian nhỏ bé như vậy,
ổ cứng là một thành tựu kỹ thuật đáng chú ý. Ổ cứng có thể bị hỏng nếu chúng
dính bụi bẩn bên trong. Một mảnh bụi nhỏ có thể làm cho đầu đọc ghi nảy lên
xuống, đâm vào đĩa và làm hỏng vật liệu từ tính của nó. Điều này được gọi là
sự cố đĩa và nó có thể gây mất tất cả thơng tin trên ổ cứng.
1.2.3.2 SSD
Ổ đĩa thể rắn (SSD, còn được gọi là Solid State Drive) là một thiết bị lưu trữ
dữ liệu sử dụng chất bán dẫn để lưu trữ dữ liệu thay vì quay đĩa từ. Khơng có bộ
phận chuyển động, SSD loại bỏ các tắc nghẽn về hiệu suất như thời gian tìm kiếm

và độ trễ cùng với các độ trễ và lỗi cơ học khác liên quan đến ổ cứng HDD thông
thường.
SSD dựa trên SDRAM khả biến được biết đến với thời gian truy cập siêu
nhanh, nhanh hơn nhiều lần so với ổ cứng HDD nhanh nhất hiện nay. Do tính khả
biến của chúng, chúng thường chứa pin và hệ thống đĩa dự phòng. Nếu mất điện,
thời lượng pin đủ để ghi dữ liệu vào đĩa sao lưu để giữ an toàn. Khi nguồn được
phục hồi, dữ liệu được đọc từ đĩa vào SDRAM và hoạt động bình thường được
nối lại.
SSD dựa trên flash bất khả biến và khơng u cầu hệ thống dự phịng trong
trường hợp mất điện. Mặc dù chúng không cung cấp khả năng truy cập nhanh như
SDRAM- SSD nhưng chúng nhanh hơn đáng kể so với các ổ cứng HDD truyền
thống.

Hình 1.4 Ổ cứng SSD.


1.2.3.3 Ổ USB Flash
Ổ USB Flash, ổ cứng di động USB, ổ cứng flash USB là thiết bị lưu trữ dữ
liệu sử dụng bộ nhớ flash tích hợp với giao tiếp USB (Universal Serial Bus).
Chúng có kích thước nhỏ, nhẹ, có thể tháo lắp và ghi lại được. Dung lượng của
các ổ USB flash trên thị trường có thể từ 512 MB đến tận 512GB hoặc hàng TB.
Ổ USB flash có nhiều ưu điểm hơn hẳn các thiết bị lưu trữ tháo lắp khác, đặc
biệt là đĩa mềm. Chúng nhỏ hơn, nhanh hơn, có dung lượng lớn hơn và tin cậy
hơn đĩa mềm, do đó ngày nay ổ USB flash đã hoàn toàn thay thế cho các ổ đĩa
mềm trong các máy tính cá nhân được sản xuất trong những năm gần đây.
1.3 Nguy cơ mất an toàn dữ liệu
1.3.1 Nguyên nhân do nhận thức, kiến thức của người dùng
Các vấn đề liển quan đến nhận thức là nguy cơ bản nhất dẫn tới các sự cố
mất an tồn thơng tin tăng cao. Có thể liệt kê ra một số sai lầm hay mắc phải do
sự thiếu hiểu biết của người dùng như sau: sử dụng USB mà khơng có thói quen

diệt virus, truy cập đến những đường liên kết nghi ngờ,… gây ra những nguy cơ
mất an toàn cho dữ liệu được lưu trữ trong máy tính.
1.3.2 Nguyên nhân do sự bất cẩn của người quản trị cơ sở hạ tầng
Người quản trị hệ thống có thể mắc phải sai lầm nếu như không cẩn thận và
không kiểm tra kĩ lưỡng. Một số ví dụ có thể nêu ra được như:
Phân quyền không rõ ràng
Người quản trị không phân quyền rõ ràng cho thành viên. Lợi dụng điều này,
nhân viên nội bộ có thể đánh cắp, tráo đổi, thay đổi thông tin của cơ quan, tổ chức.
Sử dụng các thiết bị và hệ thống có lỗ hổng
Các phần mềm ứng dụng luôn tồn tại những lổ hổng bảo mật và nguy cơ tấn
cơng. Hệ thống có thể là hệ thống website, hệ thống mạng, hệ thống các ứng dụng,
thiết bị, phần mềm. Ngun nhân làm mất an tồn thơng tin trong trường hợp này
là do các đơn vị không thường xuyên rà quét lỗ hổng, đánh giá bảo mật cho hệ
thống dẫn tới những nguy cơ thiệt hại hiện hữu và rõ ràng.


Nguyễn nhân liên quan đến việc cấu hình máy chủ
Các nguy cơ mất an toàn liên quan đến máy chủ có thể do nhiều nguyên
nhân, chẳng hạn như cơ chế xác thực yếu, tham chiếu các đối tượng khơng an
tồn, thiếu chức năng kiểm soát truy cập, và sử dụng các thành phần có lỗi bảo
mật.
Cơ chế xác thực yếu (Poor Authorization and Authentication) xảy ra chủ yếu
do thiếu hoặc khơng kiểm sốt xác thực. Một số ứng dụng tại Việt Nam thường
sử dụng các giá trị không đổi như IMEI, UUID làm phương thức xác thực duy
nhất. Ví dụ như việc một ứng dụng sử dụng UUID để làm phương thức xác thực,
và một vài trường hợp việc ứng dụng phân các API ra thành các lớp theo mức độ
bảo mật khác nhau (Low Security, Medium Security, High Security).
Tham chiếu các đối tượng khơng an tồn (Insecure Direct Object Reference)
xảy ra khi lập trình viên để lộ tham chiếu tới các đối tượng trong hệ thống (file,
thư mục, các khóa trong cơ sở dữ liệu) mà khơng kiểm sốt sự truy cập. Kẻ tấn

cơng có thể truy cập tới các dữ liệu trái phép. Đây là một trong những chủ đề được
chú ý đến nhất bởi mức độ nguy hiểm của nó. Cách phịng chống được đưa ra là
sử dụng Access Reference Map và Access Modal Diagram.
Thiếu chức năng kiểm soát truy cập (Missing Function Level Access
Control) xảy ra khi server khơng kiểm sốt user khi sử dụng hàm này có quyền
thực thi hay khơng. Điều này dẫn đến kẻ tấn cơng có thể sử dụng các quyền khơng
được phép.
Sử dụng thuật tốn mã hóa yếu (Broken Cryptography): người lập trình sử
dụng các thuật tốn mã hóa yếu gây ảnh hưởng đến tính bí mật của dữ liệu cần
mã hóa. Một số ứng dụng hardcode mật khẩu mã hóa trong tệp tin, sử dụng mã
hóa base64 khơng an tồn, …
1.3.3. Nguyên nhân mất dữ liệu do trộm cắp máy tính.
Theo thống kê, một máy tính xách tay bị đánh cắp chỉ trong vòng 53 giây.
Vậy nên đây là vấn đề cực kỳ nghiêm trọng. Nên mã hóa tồn bộ ổ đĩa hoặc cài
đặt khả năng xóa một máy tính từ xa cho máy tính xách tay có chứa dữ liệu quan
trọng.


1.3.4 Một số tấn cơng điển hình
1.3.4.1 Tấn cơng rị rỉ dữ liệu
Rò rỉ dữ liệu xảy ra khi tội phạm mạng xâm nhập thành cơng nguồn dữ liệu
và trích xuất thơng tin nhạy cảm. Điều này có thể được thực hiện bằng cách truy
cập vào máy tính hoặc mạng để lấy cắp các tệp cục bộ hoặc bằng cách vượt qua
hệ thống bảo mật của máy tính nạn nhân. Sau đây là các bước thường liên quan
đến hoạt động vi phạm điển hình:
- Nghiên cứu: Kẻ tần cơng nghiên cứu mạng xã hội tìm kiếm những điểm
yếu trong bảo mật của tổ chức (con người, hệ thống hoặc mạng).
- Tấn công mạng/ xã hội: Bước đầu tội phạm mạng sử dụng mạng hoặc các
kỹ thuật xã hội để thu thập các thông tin và điểm yếu của nạn nhân. Từ các thông
tin đã thu thập được tội phạm mạng sẽ sử dụng để xâm nhập vào mạng của tổ

chức.
- Trích xuất: Một khi tội phạm mạng xâm nhập vào một máy tính, anh ta/ cơ
ta có thể tấn cơng mạng và tìm cách truy cập đến dữ liệu của cơ quan tổ chức của
nạn nhân từ đó đánh cắp dữ liệu. Một khi kẻ tấn cơng trích xuất được dữ liệu, cuộc
tấn công được coi là thành công.
1.3.4.2 Tấn công Cut and Paste
Tấn công cắt và dán (Cut and Paste) là một cuộc tấn cơng vào tính tồn vẹn
của hệ thống bảo mật, trong đó kẻ tấn cơng thay thế một phần của bản mã (văn
bản được mã hóa) bằng một phần khác trơng giống (nhưng khơng giống hồn
tồn). Phần được thay thế được giải mã bình thường cùng với các phần xác thực,
nhưng cho ra văn bản được giải mã phục vụ mục đích cụ thể cho kẻ tấn công. Về
cơ bản, kẻ tấn công cắt một hoặc nhiều phần từ bản mã và tập hợp lại các phần
này để dữ liệu được giải mã sẽ dẫn đến thông tin mạch lạc nhưng không hợp lệ.
Cắt và dán là một loại sửa đổi thông điệp tấn công: kẻ tấn cơng xóa một thơng
điệp khỏi lưu lượng mạng, thay đổi nó và cài đặt lại nó. Đây được gọi là tấn cơng
chủ động, bởi vì nó liên quan đến việc thay đổi thông tin, so sánh.
Khi dữ liệu được sửa đổi trong tấn công liên quan đến thông tin cá nhân,tổ
chức, tấn cơng Cut and Paste có thể gây ra mối đe dọa nghiêm trọng đối với an


ninh, an tồn thơng tin. Một ví dụ điển hình cho tấn công Cut and Paste là sửa đổi
thông tin trên mẫu đơn đặt hàng của khách hàng để mua hàng hóa hoặc dịch vụ
qua Web. Kẻ tấn cơng sửa đổi biểu mẫu để số thẻ tín dụng của nạn nhân được gửi
cho nhà cung cấp nhưng một số thông tin khác - chẳng hạn như địa chỉ giao hàng,
loại hoặc số lượng hàng hóa được đặt hàng mà kẻ tấn công đã chọn sẽ được "dán"
vào mẫu mà thông tin hợp lệ của khách hàng đã bị "cắt". Các hình thức rõ ràng
khơng thay đổi, được tập hợp từ một sự kết hợp " Cut and Paste " của dữ liệu hợp
lệ và không hợp lệ, được gửi cho nhà cung cấp.
1.4 Các giải pháp bảo mật
1.4.1 Mã hóa file, hệ thống tệp

Từ những nguy cơ như trên thì một biện pháp để khắc phục những vấn đề
trên là điều cần thiết. Giải pháp mã hóa dữ liệu là một biện pháp được áp dụng
nhiều trong thực tế và cũng khá dễ dàng trong việc triển khai. Phần này của bài
nghiên cứu sẽ đi sâu về mã hóa file, hệ thống tệp.
1.4.1.1 Phân loại
Có một số cách tiếp cận việc mã hóa hệ thống tệp. Chúng được phân loại
khác nhau từ bộ mã hóa khối đến bộ mã hóa hệ thống tệp đến bộ mã hóa tệp. Mỗi
cách tiếp cận này đều có ưu cũng như nhược điểm của nó.
+ Mã hóa khối (Volume Encryptor)
Kể từ thời Windows NT, hệ điều hành Windows cho phép người dùng tạo
các khối đa phân vùng. Windows có thể kết hợp một số phân vùng (thậm chí được
lưu trữ trên các ổ cứng vật lý khác nhau) thành một "phân vùng" lớn có tên là
Volume. Đây là một bước tiến đáng kể, ít nhất là vì khối lượng như vậy cho phép
người dùng như: Tạo một đơn vị logic đơn lớn hơn để lưu trữ tệp; Có được cách
đáng tin cậy hơn để lưu trữ dữ liệu nhạy cảm; Có hiệu suất tổng thể cao hơn của
các hoạt động IO.
Bộ mã hóa khối (Volume Encryptor) sử dụng lớp trình điều khiển thiết bị để
mã hóa và giải mã thơng tin đến và từ một đĩa vật lý. Các hệ thống này bao gồm
các hệ thống như PGPDisk, Hệ thống tệp bảo mật (SFS), Linux CryptoAPI và


ScramDisk. Tuy nhiên, bộ mã hóa khối (Volume Encryptor) khơng cung cấp kiểm
soát truy cập chi tiết cho các thư mục hoặc tệp riêng lẻ.
+ Mã hóa tệp (File Encryptors)
Bộ mã hóa tệp hoạt động ở tầng ứng dụng (Application Layer) hoặc tầngtrình
diễn (Presentation Layer) để cung cấp mã hóa tệp, file theo tiến trình đầu cuối
thực sự. Để có được tính “trong suốt” cho những người dùng cuối, các nhà mã
hóa thường yêu cầu một số biện pháp viết lại ứng dụng để hỗ trợ mã hóa. Hệ thống
mã hóa tệp bao gồm các cơng cụ như PGP Encrypt File. Đối với các tệp nhỏ, các
loại mã hóa này là tốt nhưng chúng không dành cho các hệ thống lưu trữ lớn.

+ Mã hóa hệ thống tệp (File System Encryptor)
Bộ mã hóa hệ thống tệp cho phép mã hóa các tệp trên mỗi tệp hoặc trên cơ
sở mỗi thư mục bằng một khóa duy nhất. Các hệ thống như hệ thống này bao gồm
Mã hóa hệ thống tệp (CFS) được phát triển bởi Matt Blaze, Hệ thống tệp mã hóa
“trong suốt” (TCFS) được hỗ trợ trong Linux và BSD, CryptFS, cũng như EFS
của Microsoft trong Windows 2000.
1.4.1.2 Phần mềm mã hóa tệp Microsoft's Encrypted FileSystem (EFS)
EFS của Microsoft được triển khai dựa trên sử dụng sơ đồ dựa trên khóa
cơng khai. Dữ liệu tệp được mã hóa bằng thuật tốn khóa đối xứng với khóa mã
hóa tệp được tạo ngẫu nhiên. Khóa này được mã hóa bằng cách sử dụng một hoặc
nhiều khóa chung thu được từ chứng chỉ X.509 của người dùng. Phần bí mật của
cụm khóa bí mật - công khai được sử dụng để giải mã khóa đã được sử dụng để
mã hóa tệp, sau đó chính khóa đã được giải mã này được sử dụng để giải mã tệp
đã được mã hóa. EFS của Microsoft khơng hỗ trợ sử dụng thuật tốn đối xứng
bằng khóa dựa trên mật khẩu vì lo ngại rằng các lược đồ dựa trên mật khẩu này
yếu hơn do dễ bị tổn thương đối với các cuộc tấn công từ điển. EFS cũng cung
cấp khóa mã hóa tệp bằng một hoặc nhiều khóa cơng khai của khóa khơi phục,
điều này cho phép khả năng phục hồi dữ liệu tệp nếu một cá nhân rời khỏi một tổ
chức hoặc mất khóa của họ.
EFS được thiết kế “trong suốt” cho người dùng cuối trong các trường hợp
thông thường. Khi người dùng cố gắng truy cập vào một trong các tệp được mã


hóa của họ, EFS sẽ định vị khóa bí mật đã được sử dụng để mã hóa khóa mã hóa
tệp được dùng để mã hóa tệp. Nếu một nỗ lực được thực hiện để truy cập một tệp
được mã hóa bởi người dùng khác, EFS sẽ khơng tìm thấy khóa riêng đã được sử
dụng để giải mã khóa đã dùng mã hóa tệp và người dùng sẽ được cung cấp "Truy
cập bị từ chối" (Acceses denied).
Tôi thấy hoa vàng trên
cỏ xanh


Thuật tốn mã hóa file
(DES)

#*(&(*&@)$&)&)!&)
@*$&

Trường sinh giải mã
dữ liệu (RSA)

Trường dữ liệu
giải mã

Bộ sinh số ngẫu
nhiên

Trường sinh khôi
phục dữ liệu
(RSA)

Trường dữ liệu
phục hồi

Bộ sinh khóa mã
hóa file ngẫu
nhiên

Khóa khơi
phục cơng khai


Khóa cơng
khai của
người dùng

#*(&(*&@)$&)&)!
&)@*$&

Thuật tốn giải mã
(DES)

Tơi thấy hoa vàng
trên cỏ xanh

Khóa
mã hóa

Khóa riêng
của người
dùng

Trường giải mã
dữ liệu

Trường dữ liệu
giải mã

Hình 1.5 Mã hóa và giải mã của Microsoft EFS.
Kiến trúc này được chia thành bốn khối chính: trình điều khiển EFS, thư viện
thời gian chạy FileSystem (FileSystem Run-Time Library), dịch vụ EFS và các
API Win32 khác nhau. Trình điều khiển được xếp lớp trên cùng của hệ thống tệp

NTFS. Nó giao tiếp với dịch vụ EFS để yêu cầu khóa mã hóa tệp và các dịch vụ
khác. Trình điều khiển chuyển thông tin này đến thư viện thời gian chạy
(FileSystem Run-Time Library) để thực hiện các hoạt động hệ thống tệp khác


×