Cơ chế bảo mật mã thực thi trên linux

66 165 0
Cơ chế bảo mật mã thực thi trên linux

Đ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

TRIỆU MINH TUÂN BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - TRIỆU MINH TUÂN KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG CƠ CHẾ BẢO MẬT MÃ THỰC THI TRÊN LINUX LUẬN VĂN THẠC SĨ KỸ THUẬT KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG KHÓA 2011B HÀ NỘI - 2014 LỜI CAM ĐOAN Tôi xin cam đoan đề tài nghiên cứu của hoàn toàn tự làm dưới sự hướng dẫn của cô giáo Tiến sỹ Trương Thị Diệu Linh Các số liệu, kết quả trình bày luận văn là hoàn toàn trung thực và chưa từng được công bố bất cứ công trình nghiên cứu nào Các tài liệu tham khảo sử dụng luận văn đều được dẫn nguồn (có bảng thống kê tài liệu tham khảo) được sự đồng ý trực tiếp của tác giả Nếu xảy bất cứ điều không lời cam đoan trên, xin chịu hoàn toàn trách nhiệm trước Viện và Nhà trường Hà Nội, ngày 10 tháng năm 2014 Tác giả Triệu Minh Tuân LỜI CẢM ƠN Để hoàn thành khóa luận này, xin tỏ lòng biết ơn sâu sắc đến TS Trương Thị Diệu Linh tận tình hướng dẫn suốt trình viết khóa luận tốt nghiệp Tôi xin chân thành cảm ơn quý Thầy, Cô Viện Công nghệ Thông tin & Truyền thông, Trường Đại học Bách Khoa Hà Nội, đặc biệt thầy cô môn Truyền thông & Mạng máy tính tận tình truyền đạt kiến thức thời gian học tập nghiên cứu Với vốn kiến thức được tiếp thu trình học tập nghiên cứu không nền tảng cho trình nghiên cứu khóa luận mà hành trang quí báu để bước vào đời cách vững tự tin Tôi xin được gửi lời cảm ơn sự ủng hộ giúp đỡ nhiệt tình của anh chị em lớp người đồng nghiệp, gia đình và bạn bè – người thân yêu của tôi, người chỗ dựa vững cho tôi, để có nỗ lực tâm hoàn thành nghiên cứu Cuối cùng, xin kính chúc Quý Thầy cô, Đồng nghiệp, Gia đình dồi sức khỏe thành công đường sự nghiệp cao quý Tôi xin trân trọng cảm ơn! Học viên Triệu Minh Tuân MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH VẼ PHẦN MỞ ĐẦU CHƯƠNG - NHÂN LINUX VÀ CƠ CHẾ THỰC THI ỨNG DỤNG 1.1 TỔNG QUAN VỀ NHÂN LINUX 1.1.1 Định nghĩa nhân linux 1.1.2 Thiết kế thành phần Linux Kernel 10 1.1.3 Sự phát triển Linux Kernel 13 1.1.4 Mã nguồn linux kernel 17 1.2 TIẾN TRÌNH VÀ FILE THỰC THI TRONG LINUX 22 1.2.1 Tiến trình 22 1.2.2 Lời gọi hệ thống (System call) 23 1.2.3 Mã thực thi (Excutable code) 24 1.2.4 File thực thi (Executable File) 25 1.2.5 Thư viện hỗ trợ (Shared libraries) 25 1.2.6 Định dạng file thực thi 26 1.2.7 Quá trình thực thi file 28 CHƯƠNG - CODE SIGNING VÀ ĐỊNH HƯỚNG TÍCH HỢP 34 2.1 CODE SIGNING VÀ CÁC NGHIÊN CỨU LIÊN QUAN 34 2.1.1 Định nghĩa code signing 34 2.1.2 Các nghiên cứu code signing 40 2.2 PHÂN TÍCH VÀ ĐỊNH HƯỚNG GIẢI PHÁP 46 CHƯƠNG - TÍCH HỢP CODE SIGNING VÀO NHÂN LINUX 50 3.1 3.2 3.3 MÔ TẢ GIẢI PHÁP TÍCH HỢP 50 ĐÁNH GIÁ GIẢI PHÁP 59 ĐỊNH HƯỚNG PHÁT TRIỂN 61 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 DANH MỤC HÌNH VẼ Hình User space & Kernel space 10 Hình Tầng trung gian user & filesystem 12 Hình Kernel Subsystem 13 Hình Timeline of Linux kernel version 16 Hình The linux kernel archives website (www.kernel.org) 17 Hình Cấu trúc thư mục chứa mã nguồn linux kernel 18 Hình Cấu trúc thư mục linux kernel phiên bản v3.x 19 Hình Mã nguồn linux kernel 20 Hình Giao tiếp Application với Hardware qua lời gọi hệ thống 23 Hình 10 Mô tả lời gọi hệ thống 24 Hình 11 Định dạng ELF 27 Hình 12 Cơ chế fork-and-exec 30 Hình 13 Tạo tiến trình dưới góc độ hệ thống 31 Hình 14 Luồng khởi tạo cấu hình thực thi mới 32 Hình 15 Mô hình ký liệu 36 Hình 16 Mô hình xác minh chữ ký 37 Hình 17 Cảnh báo của Morilla cài đặt phần mềm 39 Hình 18 Xcode code signing 39 Hình 19 Mô hình sign-and-verify 48 Hình 20 Vị trí node thực xác minh chữ ký lộ trình thực thi file 49 Hình 21 Xác minh chữ ký xử lý do_execve_common 51 Hình 22 Xác minh chữ ký do_mmap_pgoff 52 Hình 23 Đặc tả cấu trúc chữ ký 53 PHẦN MỞ ĐẦU Hiện nay, sau chương trình ứng dụng được đưa và lưu hành mạng, rất khó tránh khỏi nguy bị hacker/cracker tấn công, chỉnh sửa, thay đổi nội dung nhằm lợi dụng cho mục đích xấu phát tán virus, cài đặt phần mềm theo dõi, botnet, đánh cắp liệu cá nhân… Các tình huống này thường xuyên gặp phải với người dùng hệ điều hành Microsoft Windows và gây thiệt hại nặng nề cho cả người dùng doanh nghiệp và ngoài nước Đặc biệt phải kể đến sự kiện đầu năm 2012, nhóm hacker có tên Sinh Tử Lệnh đính kèm mã độc vào cài đặt phần mềm gõ tiếng việt unikey, phần mềm phổ biến với cộng đồng người dùng Windows nước, từ đó, lợi dụng máy tính này tấn công từ chối dịch vụ website, diễn đàn doanh nghiệp nước, phải kể đến là vụ tấn công vào website báo điện tử Vietnamnet website công ty an ninh mạng Bkav, vòng chưa đầy 12 tiếng, cả hai website hoàn toàn tê liệt Rất nhiều nghiên cứu được đưa nhằm khắc phục tình trạng trên, có giải pháp code signing Code Signing là phương pháp “ký điện tử” vào mã thực thi để đảm bảo mã thực thi này chưa bị chỉnh sửa, thay đổi nội dung tính từ thời điểm được ký Code Signing được cài đặt nhiều nền tảng khác hệ thống định dạng file thực thi của Microsoft Windows, NET Framework, ứng dụng Java, extension của Firefox, phiên bản nhân linux cũ (2.6.x trở về trước)… với cập nhật nhân mới gần 3.x vẫn chưa có lời giải hợp lý cho toán Code signing hệ thống hệ điều hành này Đây lỗ hổng để hacker lợi dụng khai thác hệ thống hệ điều hành sử dụng phiên bản nhân mới Đây là lý do, tác giả lựa chọn đề tài “Cơ chế bảo mật mã thực thi Linux” nhằm mục đích nghiên cứu, bổ sung chế code signing lên phiên bản nhân linux mới từ hỗ trợ kiểm tra tính toàn vẹn nội dung thực thi Trong thời gian sáu tháng nghiên cứu tìm hiểu về mã nguồn linux kernel vấn đề có liên quan đến tiến trình file thực thi hệ điều hành linux, luận văn đưa được định hướng tích hợp thành công chế code signing lên phiên bản linux kernel 3.10.10 đó, có xử lý kiểm tra thư viện phụ thuộc có liên quan trực tiếp linux kernel CHƯƠNG - NHÂN LINUX VÀ CƠ CHẾ THỰC THI ỨNG DỤNG 1.1 Tổng quan nhân linux 1.1.1 Định nghĩa nhân linux Trong lĩnh vực khoa học máy tính, đặc biệt nghiên cứu liên quan đến hệ thống, hệ điều hành, thuật ngữ nhân (kernel) dùng để phần “lõi” của bất cứ hệ thống máy tính hay nói theo cách khác phần mềm hỗ trợ người dùng chia sẻ tài nguyên máy tính.Thuật ngữ kernel được biết đến là phần quan trọng nhất của hệ điều hành Nhân linux (linux kernel) phần nhân hệ thống hệ điều hành Unix, được sử dụng rất nhiều bản phân phối linux (Linux distribution) (các hệ điều hành phát triển từ nhân linux) Không hệ thống hệ điều hành Windows của Microsoft, nhân linux ví dụ bật của phần mềm tự mã nguồn mở (open source software) Phiên bản nhân linux được phát triển vào năm 1991 cậu sinh viên người Phần Lan học chuyên ngành khoa học máy tính trường Linus Tovards Trong ba năm sau đó, ông tiếp tục nghiên cứu và cho đời phiên bản Linux 1.0 vào năm 1994 Phiên bản này được tung thị trường dưới bản quyền của GNU General Public License, đó, mã nguồn của Linux hoàn toàn mở, bất cứ tải xem Khởi đầu, Linux kernel được phát triển người nhiệt huyết đam mê nghiên cứu Tuy nhiên với đóng góp từ cộng đồng và người dùng, Linux kernel ngày phát triển thu hút sự hỗ trợ đầu tư của công ty - argv cấu trúc chứa trỏ tham số truyền cho chương trình - envp cấu trúc chứa trỏ biến môi trường Hình 21 Xác minh chữ ký xử lý do_execve_common  Xác minh chữ ký được thực hàm do_mmap_pgoff: Các mã thực thi muốn được nạp lên vùng nhớ đều phải qua hệ thống hàm mmap để thực ánh xạ liệu filesystem vào nhớ trước liệu được chuyển tới trỏ thực thi Tương tự trên, thực Xác minh chữ ký hàm do_mmap_pgoff hàm xử lý thao tác ánh xạ liệu lên vùng nhớ Khai báo prototype của hàm này sau: unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long pgoff, unsigned long *populate); Trong đó: 51 - Con trỏ file trỏ tới cấu trúc file, chứa thông tin về chương trình được xử lý - Biến addr là địa để thực ánh xạ - Biến length pgoff định kích thước vị trí offset file (được mô tả trỏ file) được load vào vùng nhớ - Biến prot mô tả chế bảo vệ nhớ file cho việc ánh xạ bao gồm giá trị sau: PROT_EXEC vùng nhớ được thực thi; PROT_READ vùng nhớ đọc; PROT_WRITE vùng nhớ ghi; PROT_NONE vùng nhớ cấm truy cập - Biến flags mô tả thuộc tính chia sẻ vùng nhớ với tiến trình khác: MAP_SHARED vùng nhớ này được chia sẻ với tiến trình khác; MAP_PRIVATE vùng nhớ không được chia sẻ, tiến trình tạo mới có quyền truy cập tới vùng nhớ Hình 22 Xác minh chữ ký do_mmap_pgoff Thiết kế module ký (Usermode): 52 Từ phiên bản 2.5, linux kernel hỗ trợ ký xác minh chữ ký kernel module (Module Signing) Linux kernel ký vào modules trình cài đặt thực Xác minh chữ ký module này được nạp lên vùng nhớ Luận văn sử dụng lại script để ký lên kernel module để ký vào file thực thi Script được đặt thư mục scripts mã nguồn linux kernel Hình 23 Đặc tả cấu trúc chữ ký Khối thông tin đặc tả chữ ký được lưu cuối file gốc nên không làm thay đổi cấu trúc liệu file thực thi Khối thông tin đặc tả chữ ký bao gồm bốn trường theo thứ tự sau: 53  Signer’s name: Định danh tên người ký  KeyIdentifier: định danh key  Signature data: liệu chữ ký  Information block: khối thông tin chữ ký Trong đó, khối thông tin chữ ký bao gồm thông tin sau: Table 1: Bảng mô tả trường thông tin chữ ký STT Tên trường Kích thước algo bytes Giải thuật mã hóa public key sử dụng hash bytes Giải thuật băm sử dụng id_type bytes Kiểu định danh key signer_len bytes Độ dài chuỗi định danh người ký key_id_len bytes Độ dài định danh key padding 24 bytes Dự trữ sig_len 32 bytes Độ dài liệu chữ ký Mô tả Độ dài khối thông tin chữ ký cố định (96 bytes) nên dựa vào việc đọc phân tích cấu trúc file ta có được đầy đủ thông tin về chữ ký mà file sử dụng Thiết kế module Xác minh chữ ký (Kernelmode): 54 Để phục vụ cho thao tác xác minh chữ ký dưới kernelmode, luận văn thiết kế ba hàm chức tích hợp trực tiếp vào mã nguồn linux Khai báo hàm sau: int proc_verify_sig(const char* filename); Mô tả Hàm thực xác minh chữ ký file thực thi tương ứng với đường dẫn filename Đầu vào filename - Con trỏ chuỗi chứa đường dẫn file bool sha512_file(char * inFilename, int offset, char * oSha512); Mô tả Hàm thực tính giá trị băm SHA-512 cho phần liệu file đầu vào Đầu vào inFilename Là trỏ chứa đường dẫn file offset Kích thước liệu được tính băm tính từ đầu file oSha512 Là trỏ đệm chứa giá trị băm SHA512 tính toán được static struct public_key_signature *proc_make_digest(char * inFilename, int offset); Đầu vào inFilename Là trỏ chứa đường dẫn file offset Vị trí bắt đầu khối thông tin đặc tả chữ ký (vị trí bắt đầu 55 trường signer’s name) file đầu vào tính từ đầu file Cài đặt tích hợp: Xác minh chữ ký hàm do_execve_common: Hàm do_execve_common được đặt fs/exec.c mã nguồn linux kernel, luận văn thực cài đặt tích hợp xác minh chữ ký sau: static int do_execve_common(const char *filename, struct user_arg_ptr argv, struct user_arg_ptr envp) { struct linux_binprm *bprm; struct file *file; struct files_struct *displaced; bool clear_in_exec; int retval; const struct cred *cred = current_cred(); /* Check integrity for executable file */ if ((filename != NULL) && (strstr(filename, "tuantm_") != NULL)){ if (vrd_verify_signature(filename) != 0){ printk("\n[TuanTM] - %s is blocked for security policies!", filename); return -EPERM; } else{ printk("\n[TuanTM] - %s is passed with verify integrity checking!", filename); 56 } } /* End of check integrity for executable file */ Xác minh chữ ký hàm do_mmap_pgoff: Hàm do_mmap_pgoff được đặt mm/mmap.c mã nguồn linux kernel, luận văn thực cài đặt tích hợp xác minh chữ ký sau: unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long pgoff) { char* pname; struct path p; char* tmp; struct mm_struct * mm = current->mm; struct inode *inode; vm_flags_t vm_flags; ……… inode = file ? file->f_path.dentry->d_inode : NULL; if (file) { //begin check library p = file->f_path; path_get(&file->f_path); 57 tmp = (char*) get_free_page(GFP_TEMPORARY); if (tmp) { pname = d_path(&p, tmp, PAGE_SIZE); path_put(&p); if ((strstr(pname, "tuantm_") != NULL) && (prot & PROT_EXEC)){ int ret = vrd_verify_signature(pname); if (ret != 0){ printk("\n[TuanTM-mmap] - %s is blocked for security policies!", pname); return -EPERM; } else{ printk("\n[TuanTM-mmap] - %s is passed to vrd_verify_signature with result %d", pname, ret); } } } free_page((unsigned long)tmp); //end check library Cấu hình dịch mã nguồn linux kernel Sau tích hợp mã nguồn tren, cấu hình menuconfig config mã nguồn linux kernel để linux kernel hỗ trợ tính module signing (các hàm API hỗ trợ thao tác mã hóa xác minh chữ ký dưới kernelmode): 58 Hình 1: Cấu hình bật MODULE_SIG menuconfig Hay cấu hình file config (trong thư mục gốc của mã nguồn linux): CONFIG_MODULE_SIG=y Sau tiến hành dịch mã nguồn linux kernel thành file nhị phân với câu lệnh: tuan ~#sudo make –j16 Sau trình dịch hoàn tất, ta nhận được nhân linux kernel mới được tích hợp giải pháp code signing được thiết kế 3.2 Đánh giá giải pháp Kết đạt được: Tiến hành cập nhật linux kernel mới vào bootloader của hệ điều hành khởi động lại để tiến hành thử nghiệm giải pháp: Trong phiên bản linux kernel thử nghiệm, tất cả file được gọi thực thi từ đường dẫn có chứa chuỗi “tuantm_” được thực xác minh chữ ký: Thử nghiệm file thực thi được ký có tên tuantm_test có mã nguồn sau: #include int main(int argc, char* argv[]){ 59 printf(“Test CodeSigning \n\n”); return 0; } File có phụ thuộc thư viện sau: $ldd tuantm_test linux-gate.so.1 => (0xb773b000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb756d000) /lib/ld-linux.so.2 (0xb773c000) Như vậy, file phụ thuộc vào hai thư viện /lib/i386-linux-gnu/libc.so.6 /lib/ldlinux.so.2 Thử nghiệm giải pháp ký lên file tuantm_test: $sign-file sha512 signing_key.priv signing_key.x509 tuantm_test tuantm_signed Kết quả thực thi file nhân mới: $./tuantm_signed STT Hàm thử nghiệm do_mmap_pgoff Kết quả Log (dmesg) Chương trình bị [TuanTM-mmap] - /lib/i386-linuxtừ chối thực thi gnu/libc.so.6 is passed to vrd_verify_signature with result -22 [TuanTM-mmap] - /lib/i386-linuxgnu/libc.so.6 is passed to vrd_verify_signature with result -22 do_execve_common Chương trình [TuanTM] - /tuantm_test is passed with 60 chạy hiển thị: verify integrity checking! Test CodeSigning Đánh giá kết quả: Kết quả thu được thực thi file được ký từ giao diện shell hoàn toàn phù hợp với logic của thử nghiệm đặt ra: Trường hợp 1: thử nghiệm với hàm do_mmap_pgoff, linux kernel thực xác minh chữ ký với tất cả file được map lên vùng nhớ bao gồm cả file thư viện phụ thuộc, trường hợp này, hai file thư viện không được ký nên bị từ chối map lên vùng nhớ với mã lỗi trả về (-EPERM /* Operation not permitted */) nên chương trình được thực thi Trường hợp 2: thử nghiệm với hàm do_execve_common, linux kernel thực xác minh chữ ký với tất cả file được gọi thực thi (qua hệ thống hàm execve), trường hợp này, tuantm_signed được ký được xác minh chữ ký (file được ký rồi) nên file được thực thi bình thường Thử nghiệm cho thấy việc tích hợp xác minh chữ ký hàm do_mmap_pgoff ứng dụng để kiểm tra chữ ký của không file thực thi mà bao gồm cả file thư viện được sử dụng 3.3 Định hướng phát triển Hoàn thiện giải pháp code signing tại: 61  Tối ưu trình xác minh chữ ký linux kernel: Trong luồng thực thi file nhiều điểm hook cài đặt tích hợp xác minh chữ ký, bên cạnh đó, mã nguồn chưa tối ưu và chưa đảm bảo yêu cầu lập trình an toàn  Xây dựng lại định dạng khối thông tin chữ ký đơn giản  Nghiên cứu và cài đặt chế cache file thực thi được kiểm tra để giảm thiểu lần xác minh chữ ký không cần thiết  Tối ưu hóa thời gian dịch mã nguồn linux kernel để thuận tiện cho việc phát triển Hướng phát triển kế tiếp:  Nghiên cứu mở rộng tính code signing theo hướng kiểm soát phân quyền thực thi  Bổ sung công cụ hỗ trợ giao diện cấu hình ký Usermode 62 KẾT LUẬN Trong luận văn này, tác giả nghiên cứu lý thuyết code signing, đưa đánh giá về số nghiên cứu code signing linux Bên cạnh đó, thông qua việc nghiên cứu mã nguồn linux kernel phân tích luồng thực thi ứng dụng linux kernel, tác giả đưa định hướng tích hợp module xác minh chữ ký vào linux kernel phiên bản 3.10.10 So với số định hướng tương tự, tích hợp trực tiếp vào linux kernel(12), luận văn đưa được định hướng mới việc việc xác minh chữ ký file thư viện chia sẻ mà không cần dịch lại chương trình loader usermode Code signing vẫn rất nhiều ứng dụng linux, tác giả hy vọng luận văn này đóng góp phần nhỏ cho nghiên cứu bảo mật linux tương lai 63 TÀI LIỆU THAM KHẢO Code Signing, http://en.wikipedia.org/wiki/Code_signing Constantine Shulyupin (2010), Linux Kernel Map, http://www.makelinux.net/kernel_map/ Daniel P Bovet, Marco Cesati (2005), Understanding the linux kernel, O’Reilly Media Inc Dsafford, Kds_etu, mzohar, reinersailer, serge_hallyn (2014), Integrity Measurement Architecture Greg Kroah (2004), “Signed Kernel Modules”, Linux Journal 7130 Sven Vermeulen (2014), Integrity Measurement Architecture, Gentoo Wiki Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman (2005), Linux Device Drivers, O’reilly Inc Joseph A.Fox(2011), signelf – Digitally signing ELF binaries, http://blog.codenoise.com Kernel module signing facility, Linux kernel documentation 10 LAKSHMANAN GANAPATHY (2013), How to compile linux kernel from source to Build Custom Kernel, The geek stuff 11 Mac Developer Library (2012), Code Signing Guide, Apple Inc 12 M Tim Jones (2007), “Anatomy of the Linux kernel”, IBM developerWorks 13 Roberto Arcomano (2003), Kernel Analysis-How to, www.bertolinux.com 64 14 Robert Love (2010), Linux kernel development, Pearson Education 15 Signed Executables under Linux, http://stackoverflow.com/questions/1732927/signed-executables-under-linux 16 The digsig team (2005), The DigSig project 17 The linux kernel source code, http://www.linux.org/threads/the-linux-kernel-the-source-code.4204/ 18 The linux kernel archives, https://www.kernel.org/ 19 Wikipedia (2011), History of Linux Kernel, http://en.wikipedia.org 20 Wikipedia, Executable and Linkable Format, http://en.wikipedia.org/wiki/Executable_and_Linkable_Format 65 ... hoạt, thực tìm file tương ứng, kiểm tra định dạng file thực thi cập nhật lại cấu hình thực thi theo cấu hình mô tả file thực thi Khi lời gọi hệ thống thực thi xong, tiến trình thực thi mã thực thi. .. NHÂN LINUX VÀ CƠ CHẾ THỰC THI ỨNG DỤNG 1.1 TỔNG QUAN VỀ NHÂN LINUX 1.1.1 Định nghĩa nhân linux 1.1.2 Thi t kế thành phần Linux Kernel 10 1.1.3 Sự phát triển Linux. .. đề tài Cơ chế bảo mật mã thực thi Linux nhằm mục đích nghiên cứu, bổ sung chế code signing lên phiên bản nhân linux mới từ hỗ trợ kiểm tra tính toàn vẹn nội dung thực thi Trong thời

Ngày đăng: 25/07/2017, 21:34

Từ khóa liên quan

Mục lục

  • HÀ NỘI - 2014

  • LỜI CAM ĐOAN

  • LỜI CẢM ƠN

  • MỤC LỤC

  • DANH MỤC HÌNH VẼ

  • PHẦN MỞ ĐẦU

  • CHƯƠNG 1 - NHÂN LINUX VÀ CƠ CHẾ THỰC THI ỨNG DỤNG

  • CHƯƠNG 2 - CODE SIGNING VÀ ĐỊNH HƯỚNG TÍCH HỢP

  • CHƯƠNG 3 - TÍCH HỢP CODE SIGNING VÀO NHÂN LINUX

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan