1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo Đồ án mã hóa dữ liệu âm thanh trên nền tảng truyền thông Đa phương tiện encrypt audio on multimedia product service platform

16 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Đồ Án Mã Hóa Dữ Liệu Âm Thanh Trên Nền Tảng Truyền Thông Đa Phương Tiện
Tác giả Nguyễn Tài Hiếu, Trần Hữu Hiếu
Người hướng dẫn Nguyễn Ngọc Tự
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Mật Mã Học
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 1,87 MB

Nội dung

Vai trò của các thành phần: Nền tảng số: nhận yêu cau của người dùng, truy xuất đến cơ sở đữ liệu, truyền và đảm bảo tính an toàn và toàn vẹn của dữ liệu Người dùng: là đối tượng trực ti

Trang 1

DAI HOC QUOC GIA TP HO CHi MINH

TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG

FACULTY OF COMPUTER NETWORK AND COMMUNICATIONS

&` %

MÔN HỌC: MẬT MÃ HỌC

BAO CAO DO AN

MA HOA DU LIEU AM THANH TREN NEN TANG

TRUYEN THONG DA PHUONG TIEN

Encrypt Audio on Multimedia Product Service Platform

Giảng viên hưỡng dẫn: Nguyễn Ngọc Tự

Thực hiện:

Nguyễn Tài Hiếu - 22520442

Trần Hữu Hiếu - 22520444

TP HÒ CHÍ MINH, 2024

Trang 2

MỤC LỤC: ;

II TÀI SẢN, CÁC RỦI RO, CÁC YÊU CẦU BẢO MẬT -

II CHI TIẾT GIẢI PHÁP

a - Sử dụng thuật toán mã hóa AES-256 mode GCM

b Dữ liệu được phân mảnh trước khi truyền đến người dùng:

c Bảo vỆ khóa: ««<5.csS2 x11 HH11000111.001100.1.1 1x30,

IV Phân tích kiến trúc hệ thống:

a _ Phân tích chức năng của các bên liên quan: -.-. se

1 Phía nhà sáng tạo nội dung:

2 _ Phía máy chủ của nền tảng: 222i c22srrrrrrree

3 _ Phía người dùng nền tảng:

b Cấu trúc cœsở dữ liỆu: ©-c«ssccceeeerressrrrkeesrresee

c Ngôn ngữ lập trình và thư viện được sử dụng trong hệ thống:

11 .12

Trang 3

L CÁC THÀNH PHẢN LIÊN QUAN VÀ VAI TRÒ:

1.1 Các thành phan:

Nền tảng truyền thông đa phương tiện (các trang web cung cấp dịch vụ xem phim, nghe nhạc trực tuyến như spotify, netflix, apple music )

Người dùng dịch vụ

Nhà sáng tạo nội dung

1.2 Vai trò của các thành phần:

Nền tảng số: nhận yêu cau của người dùng, truy xuất đến cơ sở đữ liệu, truyền và đảm bảo tính an toàn và toàn vẹn của dữ liệu

Người dùng: là đối tượng trực tiếp sử dụng, giao dịch trên các nên tảng số Nhà sáng tạo nội dung: tạo ra và có quyên sở hữu trí tuệ đối với các sản phẩm số của họ, hợp tác với các nền tảng số để đưa các sản phẩm của họ lên các nền tảng phục vụ người dùng

1.3 Tương tác giữa các thành phần:

Phía nền tảng truyền thông đa phương tiện:

© Tạo môi trường, xây dựng server và cơ sở dữ liệu lưu trữ các sản phẩm âm nhạc từ nhà sáng tạo nội dung

o_ Nhận resquest của người dùng với tên bài hát, tìm kiếm bên trong cơ

sở đữ liệu và trả về cho người sử dụng dịch vụ

©_ Xây dung giao diện để người sử dụng dịch vụ tương tác

o_ Đảm bảo an toàn dữ liệu trong lúc lưu trữ và lúc truyền tải đến người

sử dụng dịch vụ Sử dụng thuật toán mã hóa AES256 — GCM mã hóa

đữ liệu âm thanh

Phía người dùng dịch vụ: tương tác với giao diện của nền tảng, tìm kiếm bài hát bằng tên sau đó nhận respone từ server

Phía nhà sáng tạo nội dung: tải bài hát từ phía nhà sáng tạo nội dung lên nền tảng, cung cấp tên bài hát và đữ liệu âm thanh

Trang 4

Il TÀI SẢN, CÁC RỦI RO, CÁC YÊU CAU BAO MAT

a

b

Cc

Tai san:

Dữ liệu âm thanh là những file nhạc được nhà sáng tạo nội dung tải lên nền tảng

Rủi ro

Dữ liệu có thé bị can thiệp, đánh cắp khi đang truyền

Dữ liệu có thê bị lay cap, can thiệp, rò rỉ trên cơ sở dữ liệu Các yêu cầu bảo mật

Yêu cầu đữ liệu phải được mã hóa bằng thuật toán có độ hiệu quả cao nhằm phòng ngừa bị chỉnh sửa hoặc đánh cắp

Sử dụng thuật toán mã hóa đường truyền để bảo vệ đữ liệu khỏi việc bị can

thiệp, đánh cắp khi truyền

a Sử dụng thuật toán mã hóa AES-256 mode GCM

Thuật toán mã hóa AES với khóa 256 bịt là một thuật toán mã hóa mạnh mẽ nhất hiện nay Nó được sử dụng rộng rãi và được khuyén khích bởi các chuyên gia và tô chức bảo mật thế giới

Mode GCM: cung cấp cả tính bảo mật và toàn vẹn đữ liệu Nó đảm bảo đữ liệu không bị thay đôi trong quá trình truyền

Mã hóa xác thực: GCM cung cấp mã hóa xác thực, nghĩa là nó không chỉ mã hóa dữ liệu mà còn tạo ra một thẻ xác thực Thẻ này có thể được sử dụng để xác minh tính toàn vẹn và xác thực của dữ liệu khi giải mã Nếu đữ liệu bị thay đổi theo bat ky cach nao, quá trình giải mã sẽ thất bại, cho thấy một nỗ lực g14 mao tiêm năng

Trang 5

® - Mã hóa tệp âm thanh: Mã hóa tệp âm thanh có thé tao ra lượng dữ liệu lớn Tính hiệu quả và khả năng xử lý dữ liệu lớn một cách hiệu quả của AES- 256-GCM khiến nó trở nên lý tưởng

® Lưu trữ và truyền tải an toàn: Các tệp âm thanh được mã hóa cần được lưu trữ an toàn trong cơ sở dữ liệu và truyền tải an toàn đến khách hàng AES- 256-GCM dam bảo cả tính bảo mật và toan ven trong cac quá trình nảy

b Dữ liệu được phân mảnh trước khi truyền đến người dùng:

¢ Giảm tải bộ nhớ: Bằng cách truyền tải dữ liệu theo từng mảnh nhỏ

(chunks), hệ thông không cần phải tải toàn bộ tệp vào bộ nhớ một lúc Điều

này giúp tránh tình trạng thiếu bộ nhớ khi xử lý các tệp lớn

® Xac minh từng mảnh: Mỗi mảnh dữ liệu có thể được xác minh độc lập

giúp phát hiện lỗi hoặc giả mạo ở từng phần nhỏ thay vì phải kiểm tra toàn

bộ tệp Điều nảy giúp tăng cường độ tin cậy và toàn vẹn của đữ liệu truyền tải

e Phân tán dữ liệu: Dữ liệu được phân mảnh và truyền tải thành từng phần nhỏ làm tăng độ khó cho kẻ tấn công muốn chặn và tái tạo lại toàn bộ tệp Ngay cả khi một mảnh bị đánh cắp, kẻ tấn công cũng khó có thé tai tao lai dit liệu gốc mả không có tất cả các mảnh còn lại

e Phat trực tiếp: Khi phát âm thanh, người dùng có thê bắt đầu nghe ngay sau khi nhận được các mảnh đầu tiên, thay vì phải chờ đợi toàn bộ tệp được tải xuông

Trang 6

IV

c Bảo vệ khóa:

® Việc mã hóa dữ liệu được thực hiện khi nhà sáng tạo nội dụng đăng tải lên nền tảng, lúc đây sẽ tạo ra khóa đề mã hóa dữ liệu

e©_ Giảm nguy cơ rò rỉ thông tin: Nếu khóa mã hóa không được mã hóa trước khi lưu, bất kỳ ai truy cập vào cơ sở đữ liệu đều có thể đễ dàng lấy được khóa này và sử dụng nó để giải mã đữ liệu Mã hóa khóa bảo vệ nó ngay cả khi cơ sở dữ liệu bị xâm nhập

©_ Bảo vệ khỏi nội tấn công: Ngay cả nhân viên hoặc người quản trị có quyền truy cập vào cơ sở đữ liệu cũng không thê đễ dàng lấy được khóa mã hóa nếu

nó đã được mã hóa

¢ An toàn khi sao lưu: Cơ sở dữ liệu thường được sao lưu để phòng ngừa mat mát dữ liệu Mã hóa khóa đảm bảo rằng ngay cả khi bản sao lưu bị rơi vào tay kẻ xấu, khóa mã hóa vẫn được bảo vệ

©_ Chống lại tấn công vật lý: Trong trường hợp cơ sở dữ liệu bị đánh cắp vật

lý (như ô cứng chứa cơ sở đữ liệu), mã hóa khóa giúp bảo vệ thông tin quan trọng

Phân tích kiến trúc hệ thống:

Decrypt

| Phan manh )

ý \ | ‘Audio ?

_ Audo

Pome | | ?

\ 4 Database

\ ae ?

Audio | conn | ÿ

? koy đã được mã hóa

li key chưa được mã hóa Audio| file audio da ma hoa FPT le audio chưa mã hỏa

Hình 1: Kiến trúc hệ thống

Trang 7

a Phân tích chức năng của các bên liên quan:

1 Phía nhà sáng tạo nội dung:

> Nhà sáng tạo nội dung thực hiện đăng tải nội dung lên nền tảng bằng việc điền tên bài hát và tải bài nhạc từ thư mục lên bảng mẫu đã thiết kế trên nên tảng

> Sau dé 4n nut “Submit”, hé thống sẽ gửi file nhạc và tên bài hát đến phía máy chủ của nền tang đê thực hiện bước tiệp theo

) NỘI DUNG:

submit

nge={handleFilecha

Hình 3: Mã giao diện và gán sự kiện

Trang 8

2 Phía máy chủ của nền táng:

> Phía máy chủ cĩ 2 chức năng nhập và gửi ở các thời điểm khác nhau

> Khi nhận được tên bài hát và file đữ liệu từ phía nhà sáng tạo nội dung,

máy chủ thực hiện gọi đến hàm mã hĩa AES256-GCM để tạo ngẫu nhiêu

key, Iv, auth_tà và mã hĩa file dữ liệu

> Tiếp theo, gọi hàm mã hĩa key để mã hĩa key vừa tạo ở trên Key được mã hĩa bằng thuật tốn AES256-ECB với masterkey được cung cấp trong file mơi trường

> Cuối củng sẽ thực hiện truy van đến cơ sở đữ liệu đề lưu trữ các dữ liệu trên

cryptAES256GCM

= randomBytes (3

= randomBytes(12) ;

reateCipheriv

Hinh 5: Ham mé héa file Gm thanh

Trang 9

Hình 6: Hàm nhận dữ liệu từ nhà sáng tạo nội dung và truy vẫn đến database

- _ Khi nhận được yêu cầu từ người dùng muốn tìm kiếm và phát 1 bài nhạc

> Đầu tiên máy chủ nhận được tên bài hát mà người dùng muốn phát, sau

đó truy xuất xuống cơ sở dữ liệu đề lay những đữ liệu cần thiết

> Máy chủ thực hiện giải mã key bằng masterkey được lấy trong file môi trường , sau đó giải mã file âm thanh ứng với tên bài hát mà người dùng yêu cầu phát

> Sau khi đã giải mã thành công, máy chủ sẽ thực hiện phân mảnh file audio đã giải mã và gửi lần lượt đên người dùng nên tảng

Trang 10

const { filename } = req.body;

db.query( » [filename], (error, results, fields

f (error) { console.e „ error);

Do A return;

Gee Cue)

res status (4¢

Ù const { encrypted_data, key: encryptedKey, iv, auth tag } = results[9];

aa const key = decryptke terkey(encryptedkey, masterkey);

const decryptedData ecryptAES25 M(encrypted data, key, iv, auth tag);

res setHeader( yr

const chunkSize = 5

(42) )00(06 109/0) () Cc (decryptedData length / chunkS1ze) ; D2 lt oe ; totalChunks);

let start = 0;

let end = chunksize;

for (let i = i < totalchunks; i++) { const chunk = decryptedData.stiee(start, end);

res.write(chunk);

start = end;

end = Math.min(start + chunkSize, decryptedData length);

i res end() ; tch (error) {

» error);

ie eee) a s );

Hình 7,8: Truy vấn cơ sở sữliệu, giải mã key,đữ liệu và truyền đến người dùng

3 Phía người dùng nền tang:

> Nhap tén bai nhac muốn phát và ấn “Search”

> Gửi yêu cầu đến server và chờ đợi phản hồi

> Nhận được phản hồi sau đó phat bai nhạc

Trang 11

ax1os(

method:

url:

data: { filename: searchFilename },

responseType:

en(response =>

const audioContext = new AudioContext();

const source = audioContext.createBufferSource() ; audioContext decodeAudioData(response.data, function(buffer) { source.buffer = buffer;

source.connect(audioContext.destination) ; source.start(@);

De

ch(error =>

console.error(

Hình 9: Hàm gửi yêu cầu và nhận phản hồi, phát nhạc

div className=

h2›PHÍA NGƯỜI DÙNG: h2 div className=

table className=

tbody

tr

td 1nput

ID PC placeholder=

cÌassName=

value={ sear'chFï lename}

onChange={(e) => setSearchFilename(e target value)}

td

td button onClick={ fet ata}><i className= CC va,

td

tr tbody table div div className=

div

Hình 10: Mã giao diện phía người dùng

i

button

Trang 12

10

b Cấu trúc cơ sở dữ liệu:

- _ Kiến trúc sử dụng Mysql đề lưu trữ đữ liệu

Sử dụng dịch vụ của clevercloud để lưu trữ dữ liệu

TYPE PLN CLUSTER VERSION REGION STATUS CREAIONOATE ID

5 \ 202 4 8-46fe-alx49-Df8(98

BB ot Sener pazystiqantibysktoza mysql senaces Cever-Chud.com:3306 ÔN ẤT T1 TT 7 S1 0001077 EU KV 7

FT | phpMyAdmin

7 Rea Ve

: -v/ Showing (ows 0 - 0 (f total, Query took 0.0171 seconds.) | SELECT * FROM *suđie

Profiting [ Edit inline }f Eat) | Explain SQL } | Create PHP code )[ Refresh ]

" Show alt Number of rows * mer ro

KG

đouixet, V _ld filename encrypteđ data key + h £Edt © De Bex

Query results operations

BP Fe Copyto cipboard — LY Expert (uDisplaychaet % Create view

` 2 ~ aA ? a x

Hình 10: Cơ sở dữ liệu của hệ thông

a

——

8 tát Dita foe aun_ta9 WARBNARN - o

Hình 11: Minh họa dữ liệu được lưu dưới database

Trang 13

11

c Ngôn ngữ lập trình và thư viện được sử dụng trong hệ thống:

- _ Ngôn ngữ lập trình:

> Giao diện: HTML,CS8

>» May chu: Javascript

> Cơ sở dữ liệu: SQL

- - Thư viện:

® - Phía người dung va nha sang tạo nội dung:

> react: Xây dựng giao diện người dùng

> axios: Gui va nhan cac yéu cau HTTP tr frontend dén backend

¢ Phia may chu nén tang:

> express: Xây dựng server và định tuyén cac API endpoint

> mysql2: Kết nối và tương tác với cơ sở dữ liệu MySQL

> body-parser: Phân tích dữ liệu từ các yêu cầu HTTP (chủ yếu là JSON)

crypto: Ma hoa va giải mã dữ liệu để bảo mật

cors: Cho phép các yêu cầu từ các domain khác nhau

multer: Xử lý việc tải lên các file

doteny: Quan lý các biên môi trường

Trang 14

12

V.DEMO HỆ THÓNG:

B1: Chay terminal vào thư mục my-app và chạy câu lệnh “npm start”

TERMINAL

D: \HK2_2024\Matmaho Sweb> my-app D: \HK2_2024\Matmahoc \AESweb \my -app> sta at |

TERMINAL

You can now view my-app in the browser

Rotor TẾ http: //1ocalhost: 3088

On Your Network: http://172.16.0.2:3000 Note that the development build is not optimized

To create a production build, use webpack compiled

Trang web khởi chạy thành công

PHIA NGUOI DUNG: PHIA NHA SANG TAO NOI DUNG:

<a

Giao diện của trang web

Trang 15

13

B2: khởi chạy server bằng lénh ‘node server.js’

TERMINAL

: \HK2_2024\Matmahoc \AESweb\my-app> Server" JS server đang lắng nghe tại cống 3001

PHÍA NGƯỜI DỪNG:

B4: Phía nhà sáng tạo nội dung:

làn ˆ_ PHÍA NHÀ SÁNG TẠO NOI DUNG:

demc2

& Choose File |No file chosen

Bie

Trang 16

14

Link code:

https:/ /drive.google.com/ drive/folders/1Xzvq4KGgj8yu60HjKy9bhkGxn 4R5cGnR?usp=sharing

Ngày đăng: 11/02/2025, 16:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN