Ngày nay, với sự phát triển nhanh chóng của các dịch vụ từ lưu trữ văn phòng cũng như những tính toán thông dụng khác,… và cả sự bùng nổ của các ứng dụng, việc khai thác thế mạnh của điện toán đám mây ngày càng trở nên thông dụng và thiết yếu hơn trong từng cá nhân, doanh nghiệp. Tuy nhiên, việc áp dụng điện toán đám mây rộng rãi vào trong thực tế vẫn còn là bài toán cần nhiều lời giải đáp xung quanh vấn đề về an toàn, an ninh hệ thống, đặc biệt người dùng luôn chú trọng đến vấn đề dữ liệu trong điện toán đám mây được bảo vệ ra sao? Nhận ra vấn đề quan trọng ở đây, chúng em đã lựa chọn đề tài: “Tìm hiểu các cơ chế mã hóa dữ liệu trên cloud” để làm rõ một phần nào về vấn đề này. Bản báo cáo này gồm 2 phần: Chương 1 Tổng quan về các thuật toán và khái niệm liên quan: Chương này sẽ giới thiệu một số khái niệm và các thuật toán được sử dụng trong mã hóa dữ liệu trên điện toán đám mây. Chương 2 – Các cơ chế mã hóa dữ liệu trên điện toán đám mây: Chương này sẽ nêu ra một số dạng mã hóa dữ liệu được sử dụng trên điện toán đám mây và cơ chế hoạt động của chúng
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
- -
BÀI TẬP LỚN
Đề tài: Tìm hiểu các cơ chế mã hóa dữ liệu trên
Cloud
Lớp: L01 Sinh viên thực hiện:
Nguyễn Thị Bích Phượng Nguyễn Thị Nga
Phạm Thị Quỳnh Phạm Bảo Yến
Giảng viên: Trần Anh Tú
Hà Nội, 9/2018
Trang 2LỜI MỞ ĐẦU
Ngày nay, với sự phát triển nhanh chóng của các dịch vụ từ lưu trữ văn phòng cũng như những tính toán thông dụng khác,… và cả sự bùng nổ của các ứng dụng, việc khai thác thế mạnh của điện toán đám mây ngày càng trở nên thông dụng và thiết yếu hơn trong từng cá nhân, doanh nghiệp Tuy nhiên, việc
áp dụng điện toán đám mây rộng rãi vào trong thực tế vẫn còn là bài toán cần nhiều lời giải đáp xung quanh vấn đề về an toàn, an ninh hệ thống, đặc biệt người dùng luôn chú trọng đến vấn đề dữ liệu trong điện toán đám mây được bảo
vệ ra sao?
Nhận ra vấn đề quan trọng ở đây, chúng em đã lựa chọn đề tài: “Tìm hiểu các cơ chế mã hóa dữ liệu trên cloud” để làm rõ một phần nào về vấn đề này Bản báo cáo này gồm 2 phần:
Chương 1 - Tổng quan về các thuật toán và khái niệm liên quan: Chương này sẽ giới thiệu một số khái niệm và các thuật toán được sử dụng trong mã hóa
dữ liệu trên điện toán đám mây
Chương 2 – Các cơ chế mã hóa dữ liệu trên điện toán đám mây: Chương này sẽ nêu ra một số dạng mã hóa dữ liệu được sử dụng trên điện toán đám mây
và cơ chế hoạt động của chúng
Mặc dù đã cố gắng nhưng do kiến thức có hạn và thời gian còn nhiều hạn chế nên chắc chắn bản báo cáo còn nhiều thiếu sót, chúng em rất mong nhận được những ý kiến đóng góp của thầy cô và các bạn sinh viên để chúng em có thể tìm hiểu sâu hơn về vấn đề này
Chúng em xin chân thành cảm ơn!
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 2
DANH SÁCH HÌNH ẢNH 4
Chương 1 – Tổng quan về các thuật toán và khái niệm liên quan 5
1.1 Các khái niệm 5
1.1.1 Thuật toán khóa đối xứng 5
1.2 Thuật toán 5
1.2.1 AES 5
1.2.1.1 Xây dựng thuật toán 6
1.2.1.1.1 Xây dựng bảng S-box 6
1.2.1.1.2 Giải thuật sinh khóa phụ 7
1.2.1.2 Quá trình mã hóa 8
1.2.1.3 Quá trình giải mã 9
1.2.2 SHA-2 (Thuật toán băm bảo mật 2) 10
Chương 2 – Các cơ chế mã hóa dữ liệu trong điện toán đám mây 12
2.1 Mã hóa toàn bộ ổ cứng chứa dữ liệu (Full Disk Encryption) 12
2.1.1 Công cụ mã hóa ổ cứng dành cho Windows – BitLocker: 13
2.1.2 Công cụ TrueCrypt 14
2.2 Mã hóa mức thư mục hoặc file hệ thống (Directory Level or File System) 14
2.2.1 Hệ thống EFS (Encrypting file system) 15
2.3 Mã hóa mức file (File level) 16
2.3.1 Công cụ AxCrypt 17
2.3.2 Công cụ 7-Zip 17
2.4 Mã hóa mức ứng dụng (Application Level) 18
TÀI LIỆU THAM KHẢO 20
Trang 4DANH SÁCH HÌNH ẢNH
Hình 1.1: Bảng S-box thuận 6
Hình 1.2: Bảng S-box nghịch đảo 7
Hình 1.3: Mô hình giải thuật sinh khóa phụ 8
Hình 1.4: Sơ đồ tổng quan của AES 8
Hình 1.5 : Các hàm trong AES 9
Hình 1.6: Thuật toán giải mã AES 10
Hình 2.1: Hình ảnh tượng trưng cho việc mã hóa của BitLocker 13
Hình 2.2: Hoạt động của EFS 15
Hình 2.3: Khu vực mã hóa mức file 16
Hình 2.4: Công cụ AxCrypt 17
Hình 2.5: Công cụ 7-Zip 18
Trang 5Chương 1 – Tổng quan về các thuật toán và khái niệm liên quan
1.1 Các khái niệm
1.1.1 Thuật toán khóa đối xứng
Thuật toán khóa đối xứng (symmetric-key algorithms) là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho việc mật mã hóa và giải mã có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được một khóa nếu biết khóa kia)
Mã khóa loại này không công khai
Thuật toán đối xứng có thể được chia ra làm hai thể loại, mật mã luồng (stream ciphers) và mật mã khối (block ciphers) Mật mã luồng mã hóa từng bit của thông điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng như một đơn vị Cỡ khối được dùng thường là các khối 64 bit Thuật toán tiêu chuẩn mã hóa tân tiến (Advanced Encryption Standard), được NIST công nhận tháng 12 năm 2001, sử dụng các khối gồm 128 bit
Các thuật toán đối xứng thường không được sử dụng độc lập Trong thiết kế của các hệ thống mật mã hiện đại, cả hai thuật toán bất đối xứng (asymmetric) (dùng chìa khóa công khai) và thuật toán đối xứng được sử dụng phối hợp để tận dụng các ưu điểm của cả hai
Các thuật toán đối xứng nói chung đòi hỏi công suất tính toán ít hơn các thuật toán khóa bất đối xứng (asymmetric key algorithms) Trên thực tế, một thuật toán khóa bất đối xứng có khối lượng tính toán nhiều hơn gấp hằng trăm, hằng ngàn lần một thuật toán khóa đối xứng (symmetric key algorithm) có chất lượng tương đương
Hạn chế của các thuật toán khóa đối xứng bắt nguồn từ yêu cầu về sự phân hưởng chìa khóa bí mật, mỗi bên phải có một bản sao của chìa Do khả năng các chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng thường phải được bảo
an trong khi phân phối và trong khi dùng Hậu quả của yêu cầu về việc lựa chọn, phân phối và lưu trữ các chìa khóa một cách không có lỗi, không bị mất mát là một việc làm khó khăn, khó có thể đạt được một cách đáng tin cậy
1.2 Thuật toán
1.2.1 AES
- AES (viết tắt của từ tiếng anh: Advanced Encryption Standard, hay Tiêu chuẩn mã hóa nâng cao) là một thuật toán mã hóa khối được chính phủ
Hoa Kỳ áp dụng làm tiêu chuẩn mã hóa
- Thuật toán được xây dựng dựa trên Rijndael Cipher phát triển bởi 2 nhà
mật mã học người Bỉ: Joan Daemen và Vincent Rijmen
Trang 6- AES làm việc với các khối dữ liệu 128bit và độ dài khóa 128bit, 192bit hoặc 256bit Các khóa mở rộng sử dụng trong chu trình được tạo ra bởi
thủ tục sinh khóa Rijndael
- Hầu hết các phép toán trong thuật toán AES đều thực hiện trong một trường hữu hạn của các byte Mỗi khối dữ liệu đầu vào 128bit được chia thành 16byte, có thể xếp thành 4 cột, mỗi cột 4 phần tử hay một ma trận
4x4 của các byte, nó gọi là ma trận trạng thái
- Tùy thuộc vào độ dài của khóa khi sử dụng 128bit, 192bit hay 256bit mà
thuật toán được thực hiện với số lần lặp khác nhau
1.2.1.1 Xây dựng thuật toán
1.2.1.1.1 Xây dựng bảng S-box
Bảng S-box thuận
- Bảng S-box thuận được sinh ra bằng việc xác định nghịch đảo cho một giá trị nhất định trên GF(28) = GF(2)[x] / (x8+x4+x3+x+1) (trường hữu hạn Rijindael) Giá trị 0 không có nghịch đảo thì được ánh xạ với 0 Những nghịch đảo được chuyển đổi thông qua phép biến đổi affine
- Công thức tính các giá trị bảng S-box và bảng S- box tương ứng:
Hình 1.1: Bảng S-box thuận
Trang 7Bảng S-box nghịch đảo
S-box nghịch đảo chỉ đơn giản là S-box chạy ngược Nó được tính bằng phép biến đổi affine nghịch đảo các giá trị đầu vào Phép biến đổi affine nghịch đảo được biểu diễn như sau:
Hình 1.2: Bảng S-box nghịch đảo
1.2.1.1.2 Giải thuật sinh khóa phụ
Quá trình sinh khóa gồm 4 bước:
- Rotword: quay trái 8 bít
- SubBytes
- Rcon: tính giá trị Rcon(i) Trong đó :
Rcon(i) = x( i - 1 ) mod (x8 + x4 + x3 + x +1)
- ShiftRow
Trang 8Hình 1.3: Mô hình giải thuật sinh khóa phụ
1.2.1.2 Quá trình mã hóa
Hình 1.4: Sơ đồ tổng quan của AES
Trang 9Bao gồm các bước:
1 Khởi động vòng lặp
1 AddRoundKey — Mỗi cột của trạng thái đầu tiên lần lượt được kết hợp với một khóa con theo thứ tự từ đầu dãy khóa
2 Vòng lặp
1 SubBytes — đây là phép thế (phi tuyến) trong đó mỗi byte trong trạng thái sẽ được thế bằng một byte khác theo bảng tra (Rijndael S-box)
2 ShiftRows — dịch chuyển, các hàng trong trạng thái được dịch vòng theo số bước khác nhau
3 MixColumns — quá trình trộn làm việc theo các cột trong khối theo một phép biến đổi tuyến tính
4 AddRoundKey
3 Vòng lặp cuối
1 SubBytes
2 ShiftRows
3 AddRoundKey
4 Tại chu trình cuối thì bước MixColumns không thực hiện
1.2.1.3 Quá trình giải mã
Thuật toán giải mã khá giống với thuật toán mã hóa về mặt cấu trúc nhưng 4 hàm sử dụng là 4 hàm ngược của quá trình mã hóa
Hình 1.5 : Các hàm trong AES
Trang 10Thuật toán giả mã:
Hình 1.6: Thuật toán giải mã AES
Trong đó :
- In[] : Mảng dự liệu đầu vào Input
- Out[] : Mảng dữ liệu đầu ra Output
- Nr : Số vòng lặp.(Nr = 10)
- Nb : Số cột(Nb = 4)
- W[] : Mảng các w[i] có độ dài 4 bytes
1.2.2 SHA-2 (Thuật toán băm bảo mật 2)
SHA-2 ( Thuật toán băm bảo mật 2 ) là tập hợp các hàm băm mật mã được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) Chúng được xây dựng bằng cách sử dụng cấu trúc Merkle – Damgård , từ một hàm nén một chiều được xây dựng bằng cách sử dụng cấu trúc Davies – Meyer từ một mật mã khối chuyên biệt (được phân loại)
Các hàm băm mật mã là các phép toán hoạt động trên dữ liệu số; bằng cách
so sánh "băm" tính toán (đầu ra từ việc thực hiện thuật toán) với giá trị băm đã biết và được mong đợi, một người có thể xác định tính toàn vẹn của dữ liệu Một khía cạnh quan trọng của hàm băm mật mã là khả năng chống va chạm của chúng : không ai có thể tìm thấy hai giá trị đầu vào khác nhau dẫn đến kết quả băm giống nhau
Trang 112 bao gồm những thay đổi đáng kể từ người tiền nhiệm của nó,
SHA-1
Gia đình SHA-2 bao gồm sáu hàm băm với các giá trị băm là 224, 256, 384 hoặc 512 bit: SHA224, SHA256, SHA384, SHA512, SHA512/224, SHA -512/256
SHA-256 và SHA-512 là các hàm băm mới được tính toán với các từ 32 bit
và 64 bit, tương ứng Chúng sử dụng các số lượng thay đổi khác nhau và các hằng số phụ gia, nhưng cấu trúc của chúng không giống hệt nhau, chỉ khác nhau
về số lượng vòng SHA-224 và SHA-384 chỉ đơn giản là các phiên bản rút gọn của SHA-256 và SHA-512, được tính toán với các giá trị ban đầu khác nhau SHA-512/224 và SHA-512/256 cũng được cắt ngắn các phiên bản của SHA-512, nhưng các giá trị ban đầu được tạo ra bằng cách sử dụng phương pháp được mô tả trong tiêu chuẩn xử lý thông tin liên bang (FIPS) PUB 180-4
Trang 12Chương 2 – Các cơ chế mã hóa dữ liệu trong điện toán đám mây
Mã hóa là phương pháp để biến thông tin (phim ảnh, hình ảnh, văn bản,…)
từ định dạng bình thường sang dạng thông tin không thể hiểu được nếu không có phương pháp giải mã
Trong điện toán đám mây, mã hóa là thành phần quan trọng được sử dụng
để bảo vệ dữ liệu Hiện nay có nhiều cách để thực hiện mã hóa dữ liệu lưu trữ trên điện toán đám mây Một số dạng mã hóa thường được sử dụng phổ biến bảo
vệ dữ liệu lưu trữ trên điện toán đám mây là:
- Mã hóa toàn bộ ổ cứng chứa dữ liệu (Full Disk Encryption)
- Mã hóa mức thư mục hoặc file hệ thống (Directory Level or File System)
- Mã hóa mức file (File level)
- Mã hóa mức ứng dụng (Application Level)
2.1 Mã hóa toàn bộ ổ cứng chứa dữ liệu (Full Disk Encryption)
Mã hóa toàn bộ ổ cứng chứa dữ liệu (FDE) là mã hóa tất cả các dữ liệu trên
ổ đĩa cứng FDE được thi hành bằng phần mềm mã hóa ổ đĩa hoặc phần cứng được cài đặt trên ổ đĩa trong quá trình sản xuất hoặc thông qua trình điều khiển phần mềm đặc biệt FDE chuyển đổi tất cả dữ liệu trên ổ đĩa cứng thành một dạng thông tin chỉ có thể hiểu được bởi một người có khóa để giải mã dữ liệu được mã hóa Nếu không có khóa xác thực thích hợp, ngay cả khi ổ cứng được lấy ra và được đặt trong một máy khác, dữ liệu vẫn không thể truy cập được
Dữ liệu và hệ điều hành được tự động mã hóa thông qua FDE
Lợi thế của FDE là nó không đòi hỏi sự chú ý đặc biệt nào từ người dùng cuối sau khi anh ta mở khóa máy tính lúc đầu Khi dữ liệu được ghi, dữ liệu được mã hóa tự động Khi nó được đọc, nó sẽ tự động được giải mã Bởi vì mọi thứ trên ổ cứng được mã hóa, bao gồm cả hệ điều hành, bất lợi của FDE là quá trình mã hóa / giải mã có thể làm chậm thời gian truy cập dữ liệu, đặc biệt khi bộ nhớ ảo đang được truy cập nhiều FDE rất hữu ích cho các thiết bị điện tử nhỏ dễ
bị trộm cắp hoặc mất mát, chẳng hạn như máy tính xách tay Trong môi trường mạng máy tính của công ty hoặc lớn, một chính sách tên người dùng và mật khẩu
an toàn là một yêu cầu quan trọng Dưới đây là những ưu điểm của FDE:
- Phần lớn dữ liệu được mã hóa, bao gồm cả không gian hoán đổi và các file tạm thời
- Người dùng không thể xác định mã hóa file
Trang 13- Ủy quyền được thiết lập trước khi khởi động máy tính (xác thực trước khi khởi động)
- Phá hủy các khóa xác thực / mã hóa cũng phá hủy dữ liệu
2.1.1 Công cụ mã hóa ổ cứng dành cho Windows – BitLocker:
Bitlocker là một chương trình mã hóa ổ đĩa của Microsoft Phần mềm này được tích hợp trong các bản Ultimate và Enterprise của hai hệ điều hành Windows Vista và Windows 7 Ngoài ra nó còn được tích hợp trong trong Windows Server 2008 Phần mềm này bảo vệ dữ liệu cho người dùng bằng cách
mã hóa các ổ đĩa Mặc định nó sử dụng giải thuật Advanced Encryption Standard (AES), cụ thể là 128 và 256 bit, đây là một giải thuật symmetric- key (khóa đối xứng) được phát triển bởi chính phủ Mỹ
Hình 2.1: Hình ảnh tượng trưng cho việc mã hóa của BitLocker
BitLocker sẽ làm hai việc chính sau :
- Mã hóa ổ đĩa chứa hệ điều hành windows và các ổ đĩa chứa dữ liệu khác
Trang 14- Kiểm tra tính toàn vẹn của các thành phần khởi động sớm và dữ liệu cấu hình khởiđộng
BitLocker dùng chíp TPM để thực hiện kiểm tra tính toàn vẹn của hệ thống trên các thành phần khởi động ban đầu TPM thu thập và lưu trữ các phép đo từ các thành phần khởi động sớm và dữ liệu cấu hình khởi động để tạo ra một hệ thống nhận diện cho máy tính (Giống như là hệ thống nhận diện dấu vân tay vậy) Nếu thành phần khởi động sớm có sự thay đổi , hoặc là làm giả Ví dụ như: Thay đổi BIOS, thay đổi MaterBoot record(MBR), hoặc chuyển ổ đĩa cứng qua máy tính khác… khi đó TPM sẻ ngăn BitLocker mở những ổ đĩa bị mã hóa và máy tình sẻ bị chuyển qua chế độ recovery mode Nếu TPM chấp nhận tính toàn vẹn của hệ thống , BitLocker sẽ mở khóa bảo vệ Khi đó hệ điều hành mới được nạp và lúc này trách nhiệm được trao lại cho người sử dụng và hệ điều hành
2.1.2 Công cụ TrueCrypt
TrueCrypt phát hành bởi TrueCrypt Foundation Với những ưu điểm là phần mềm hoàn toàn miễn phí, mã nguồn mở, bạn có thể tạo ổ đĩa ảo được mã hóa hoặc mã hóa toàn bộ đĩa cứng của mình (bao gồm cả ổ cài đặt Windows) Mật mã cá nhân được TrueCrypt hỗ trợ là AES, Serpent và Twofish Các hàm băm mật mã có sẵn để sử dụng trong TrueCrypt là RIPEMD-160 ,
SHA-512 và Whirlpool Cơ chế thiết lập và quản lý của TrueCrypt là mã hóa ổ đĩa trên đường đi (on-the-fly encryption) Nghĩa là dữ liệu tự động được mã hóa hoặc giải mã ngay khi được ghi xuống đĩa cứng hoặc ngay khi dữ liệu được nạp lên
mà không có bất kỳ sự can thiệp nào của người dùng Dữ liệu được lưu trữ trên một ổ đĩa đã được mã hóa (encryption volume) không thể đọc được nếu người dùng không cung cấp đúng khóa mã hóa bằng một trong ba hình thức là mật khẩu (password) hoặc tập tin có chứa khóa (keyfile) hoặc khóa mã hóa (encryption key) Toàn bộ dữ liệu trên ổ đĩa mã hóa đều được mã hóa (ví dụ như tên file, tên folder, nội dung của từng file,dung lượng còn trống, siêu dữ liệu )
Dữ liệu có thể được copy từ một ổ đĩa mã hóa của TrueCrypt sang một ổ đĩa bình thường không mã hóa trên Windows (và ngược lại) một cách bình thường
mà không có sự khác biệt nào cả, kể cả các thaotác kéo-thả
2.2 Mã hóa mức thư mục hoặc file hệ thống (Directory Level or File System)
Trong dạng mã hóa này, toàn bộ các thư mục dữ liệu hay file hệ thống được
mã hóa và giải mã Truy cập vào các file cần sử dụng các khóa mật mã Cách tiếp cận này cũng có thể được sử dụng để phân biệt dữ liệu nhạy cảm giống nhau