Tải bản đầy đủ (.doc) (23 trang)

an toàn và bảo mật trong Android

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 (465.07 KB, 23 trang )

TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT
KHOA CÔNG NGHỆ THÔNG TIN
o0o
Bài tập lớn môn học
NGUYÊN LÝ HỆ ĐIỀU HÀNH
Giảng viên hướng dẫn: Nguyễn Thị Hữu Phương
Người thực hiện: 1. Dương Thị Thảo
2. Trần Xuân Đức
3. Nguyễn Đẩu Hoàng
Lớp: Tin học Trắc Địa K55
Hà Nội , tháng 5/2012
ĐẶT VẤN ĐỀ
Hệ điều hành là một chương trình hay một hệ chương trình hoạt động giữa người sử
dụng (user) và phần cứng của máy tính . Mục tiêu của hệ điều hành là cung cấp một
môi trường để người sử dụng có thể thi hành các chương trình . Nó làm cho máy tính dễ
sử dụng hơn , thuận lợi hơn và hiệu quả hơn.
Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính . Một hệ
thống máy tính được chia làm bốn phần chính : phần cứng , hệ điều hành , các chương
trình ứng dụng và người sử dụng.
Hệ điều hành điều khiển và phối hợp việc sử dụng phần cứng cho những ứng dụng
khác nhau . Nó cung cấp môi trường mà các chương trình có thể làm việc hữu hiệu trên
đó. Hệ điều hành có thể được coi như là bộ phân phối tài nguyên của máy tính, hoạt
động như một bộ quản lý các tài nguyên và phân phối chúng cho các chương trình và
người sử dụng khi cần thiết.
Trong quá trình học, chúng em đã chọn đề tài :” An toàn và bảo mật trong hệ điều
hành Android”.
Với khoảng thời gian không nhiều nhưng với sự nỗ lực của bản thân và sự hướng
dẫn tận tình của cô giáo, chúng em đã hoàn thành bài tập. Tuy nhiên do thời gian còn
hạn chế nên phạm vi nghiên cứu và chương trình còn nhiều vấn đề chưa giải quyết được
triệt để. Em mong được sự chỉ bảo của cô để em hoàn thành tốt hơn bài tập của mình.
Em xin chân thành cám ơn cô giáo Nguyễn Thị Hữu Phương đã tận tình giảng dạy


và giúp chúng em hoàn thành bài tập lớn này.
2
NỘI DUNG BÁO CÁO
Phần I: Các khái niệm
1. Android là gì?
Android là một hệ điều hành dành cho các thiết bị di động như smartphone,
tablet hay netbook. Nó do Google phát triển dựa trên nền tảng Linux kernel và
các phần mềm mã nguồn mở. Android là hệ điều hành mã nguồn mở mã nguồn
chính duy nhất với 12 triệu dòng bao gồm 3 triệu dòng mã XML, 2,8 triệu dòng
mã C, 2,1 triệu dòng Java, và 1,75 triệu dòng C++.
2. An toàn là gì?
Hệ thống được gọi là an toàn nếu các tài nguyên được sử dụng đúng như quy ước
trong mọi hoàn cảnh. Kém may mắn là điều này hiếm khi đạt được trong thực tế. Thông
thường, an toàn bị vi phạm vì các nguyên nhân vô tình hay cố ý phá hoại. Việc chống
đỡ các phá hoại cố ý là rất khó khăn và gần như không thể đạt hiệu quả hoàn toàn. Bảo
đảm an toàn hệ thống ở cấp cao chống lại các tác hại từ môi trường ngoài như hỏa hoạn,
mất điện, phá hoại, cần được thực hiện ở 2 mức độ vật lý ( trang bị các thiết bị an toàn
cho vị trí đặt hệ thống) và nhân sự ( chọn lọc cẩn thận những nhân viên làm việc trong
hệ thống). Nếu an toàn môi trường được đảm bảo tốt, an toàn hệ thống sẽ được duy trì
tốt nhờ các cơ chế của hệ điều hành
3
3. Bảo mật là gì?
Bảo mật là bảo vệ an toàn những thông tin trước những "tay" chuyên rình mò thông
tin của người khác. Với hệ thống thông tin của doanh nghiệp, thông tin chính là tiền của
bạn. Với website của doanh nghiệp của bạn, việc có thể thay đổi thông tin trên đó sẽ
ảnh hưởng xấu đến thương hiệu của bạn. Nếu ứng dụng thương mại điện tử, thiệt hại sẽ
rất lớn nếu website bị hack, khách hàng sẽ không bao giờ tin tưởng để cung cấp những
thông tin cá nhân trên website nữa.
Phần II: Mục tiêu của việc an toàn và bảo mật hệ thống
I. Mục đích của an toàn

An toàn là rất cần thiết vì các hệ thống máy tính và mạng lưu giữ rất nhiều thông tin
và tài nguyênkhác nhau, Ví dụ: khi người mua hàng sử dụng thẻ tín dụng để thanh toán
trên mạng thì cần đến nhà cung cấp internet cung cấp một kênh an toàn để thực hiện
giao dịch và đảm bản rằng tất cả nhưng thông tin nhạy cảm không bị lộ.Mục đích của
của an toàn có thể chia thành các nhóm sau:
+ Bảo vệ thông tin và tài nguyên:
Các hệ thống máy tính lưu trữ rất nhiều thông tin và tài nguyêncần được bảo vệ.Vi
du: Trong một công ty những thông tin và tài nguyên này có thể là dữ liệu kếtoán,
thông tin nguồn nhân lực, thông tin quản lý, bán hàng,
+Bảo đảm tính riêng tư:
Các hệ thống máy tính lưu trữ rất nhiều thông tin cá nhân, tổ chức cần được giữ bí
mật. nhữngthông tin này bao gồm:- Số thẻ bảo hiểm xã hội- Số thẻ ngân hàng- Số thẻ
tín dụng- Thông tin về gia đình- Thông tin về sức khỏe- Thông tin về việc làm- Thông
tin về sinh viên- Thông tin về các khoản mục đầu tư- Thông tin về sổ hưu tríTính riêng
tư yêu cầu rất quan trọng mà các ngân hàng, các công ty tín dụng, các công ty đầu tưcần
phải đảm bảo để gửi đi các tài liệu thông tin chi tiết về cách họ sử dụng và chia sẻ thông
tin vềkhách hàng.
+ Kích thích luồng công việc:
Luồng công việc bao gồm một chuỗi các hoạt động cần thiết đểhoàn thành một tác
vụ nào đó. Sự an toàn là rất quan trọng trong từng công đoạn của luồng côngviệc. Nếu
một công đoạn bị lộ do một vấn đề an toàn nào đó. khi đó một tổ chức có thể bị mất
tiền,mất dữ liệu hoặc cả hai.

4
+Phát hiện các lỗ hổng an toàn và gỡ rối phần mềm:
các sản phẩm phần cứng và phần mềmthường gặp phải rất nhiều áp lực khi đưa ra
thị trường tiêu thụ. Các sản phẩm này thường chứa cáclỗ hổng an toàn hoặc không ổn
định do chúng chưa được kiểm tra, đánh giá một cách kỹ lưỡng.Do vậy mà khi chúng ta
mua một OS mới, phần mềm, phần cứng mới chúng ta nên có kế hoạchkiểm tra một
cách nghiêm ngặt chúng để bảo đảm an toàn và tin cậy. Và đặc biệt là phải

thườngxuyên cập nhật các bản vá lỗ hổng nhằm tránh kẻ tấn công lợi dụng những lỗ
hổng này để xâmnhập vào máy tính.
+Tổn thất vì lỗi hay sự bất cẩn của con người:
Các tính năng an toàn của OS cũng chưa quyếtđịnh nếu thiếu người biết cách cấu
hình và sử dụng chứng. Một OS có nhiều tính năng an toàn,nhưng những tính năng này
sẽ trở nên vô ích nếu người dùng không biết cách thực hiện hoặc sửdụng chúng một
cách tối ưu. Có rất nhiều lý do dẫn đến việc không sử dụng đầy đủ các tính năngan
toàn, bao gồm các lý do sau:- Thiếu đào tạo, hiểu biết về những tính năng này Chọn
sự tiện lợi, và dễ sử dụng hơn là an toàn Thiếu thời gian,- Do chính sách của các cơ
quan, tổ chức Không kiểm tra đánh giá thường xuyên Thói quen làm việc theo một
cách nhất định.Một số cách khăc phục: Cài đặt và cấu hình các tính năng an toàn trên
hệ thống. Triển khai cáctính năng an toàn bằng văn bản. Đào tạo người dùng nhằm
nâng cao năng lực và sự lơ đẳng củangười dùng.
II. Mục đích của bảo mật
Bảo vệ chống lỗi của tiến trình: khi có nhiều tiến trình cùng hoạt động,lỗi của một
tiến trình phải được ngăn chặn không cho lan truyền trên hệ thống làm ảnh hưởng đến
các tiến trình khác. Đặc biệt, qua việc phát hiện các lỗi tiềm ẩn trong các thành phần
của hệ thống có thể tăng cường độ tin cậy hệ thống.
Chống sự truy xuất bất hợp lệ: Bảo đảm các bộ phận tiến trình sử dụng tài nguyên
theo một cách thức hợp lệ được quy định cho nó trong việc khai thác các tài nguyên
này.
Phần III: Cơ chế an toàn và bảo mật trong Android
I. Tổng quan về chương trình an ninh Android
Ban đầu trong giai đoạn phát triển, đội ngũ phát triển cốt lõi Android được công
nhận là một mô hình an ninh vững chắc, cần thiết để cho phép
một hệ sinh thái mạnh mẽ của các ứng dụngvà các thiết bị được xây dựng trên và xung
5
quanh nền tảng Android và hỗ trợ bởi dịch vụ đám mây. Kết quả là, thông
qua toàn bộ vòng đời phát triển của nó, Android đã có được một chương trình bảo
mật chuyên nghiệp. Nhóm nghiên cứu Android đã có cơ hội đểquan

sát điện thoại di động khác, máy tính để bàn, và các nền tảng máy chủ đã ngăn
cản và phản ứng với vấn đề an ninh và xây dựng một chương trình bảo mật để giải
quyết các điểm yếu quan sát thấy trong các dịch vụ khác.
Các thành phần chính của Chương trình An toàn Android bao gồm:
• Thiết kế Đánh giá : Quá trình bảo mật Android bắt đầu sớm trong vòng
đời phát triểnvới việc tạo ra một mô hình cấu hình bảo mật và phong
phú.Mỗi tính năng chínhcủa nền tảng này được xem xét bởi kỹ thuật và các
nguồn lực an ninh, với kiểm soát an ninh thích hợp tích hợp
vào kiến trúc của hệ thống.
• Kiểm tra thâm nhập và xem xét lại mã : Trong sự phát triển của nền tảng này,
Android được tạo ra và các thành phần mã nguồn mở có thể đánh giá là có an
ninh vững chắc. Những đánh giá này được thực hiện bởi đội an ninh
Android, đội ngũ an ninh thông tin kỹ thuật của Google, và các chuyên gia tư
vấn an ninh độc lập. Mục tiêu của những đánh giá này là để xác
định các điểm yếu và lỗ hổng có thể có trước khi nền tảng là mã nguồn
mở, và để mô phỏng các loại phân tích sẽ được thực hiện bởi các chuyên
gia an ninh bên ngoài khi phát hành.
• Mã nguồn mở và đánh giá cộng đồng : Dự án mã nguồn
mở Android cho phép mở rộng an ninh xem xét lại bởi bất kỳ bên nào quan
tâm đến dự án này. Android cũng sử dụng công nghệ mã nguồn mở đã trải
qua nhiều cuộc rà soát an ninh từ bên ngoài, chẳng hạn như hạt
nhân Linux. Các thị trường Android cung cấp một diễn đàn cho người sử
dụng và các công ty cung cấp thông tin về các ứng dụng cụ thể, trực tiếp
đến người sử dụng.
• Trả lời sự cố : Ngay cả với tất cả các biện pháp phòng ngừa, vấn đề an
ninh có thể xảy ra sau khi vận chuyển, đó là lý do tại sao các dự
án Android đã tạo ra một quá trình phản hồi an ninh toàn diện. Toàn bộ thời
gian đội an ninh Android liên tục giám sát Android và cộng
đồng an ninh chung của các cuộc thảo luận về các lỗ
6

hổng tiềm ẩn.Khi phát hiện các vấn đề hợp pháp, nhóm nghiên
cứu Android có một quá trình phản ứng cho phép giảm thiểu nhanh chóng
các lỗ hổng để đảm bảo rằng rủi ro tiềm ẩn cho tất
cả người sử dụng Android được giảm thiểu. Những phản ứng hỗ trợ điện toán
đám mây có thể bao gồm cập nhật nền tảng Android, loại bỏ các ứng dụng từ
Android Market, và loại bỏ các ứng dụng từ các thiết bị trong lĩnh vực này.
II- Bảo mật thông tin trong Android
2.1- Giới thiệu
 Android trở thành mục tiêu của các phần mềm độc hại
Các chuyên gia bảo mật ở McAfee vừa đưa ra bản báo cáo về bảo mật Q3 năm 2011
cho biết số lượng phần mềm và mã độc hại ngày càng tập trung vào nền tảng Android
và có dấu hiệu phát triển.
Theo McAfee năm 2011 được xem là năm của phần mềm độc hại trên nền tảng di
động, riêng nền tảng Android tỉ lệ này tăng trưởng 37% chỉ trong Q2. Hiện có khoảng
75 triệu mã độc hại tấn công người dùng di động trong đó Trojan chiếm chủ yếu, các
7
Hacker sử dụng phương thức này để đánh cắp tin nhắn, thông tin tài khoản, chuyển tiền
và gởi tin nhắn.
Android là nền tảng mở, các Hacker có thể lấy mã nguồn và khai thác những lỗi bảo
mật chưa trong hệ điều hành này nhưng một phần do hệ thống phân phối ứng dụng
Android Market của Google không có tính năng kiểm duyệt các phần mềm được đăng
tải nghiêm ngặt như App Store của Apple, đây cũng là lý do khiến Android Market trở
thành công cụ tiếp tế mã độc tới tay người dùng.
 Các bài báo liên quan tới sự bùng nổ phần mềm độc hại trên Android
Bùng nổ phần mềm độc hại trên Android:
Theo nghiên cứu công bố ngày 14/3 của Kaspersky Lab, các phần mềm độc hại hay
còn gọi là Malware trên Android đang phát triển với một tốc độ đáng báo động.
Từ tháng 1 năm 2011 các Malware đã phát triển với tốc độ lên đến 200%. Đến tháng
12 năm 2011, các chuyên gia bảo mật Internet đã phát hiện ra 82.000 các loại Malware
khác nhau tấn công vào Android. Và trong hai tuần đầu tiên của năm 2012 đã phát hiện

ra số lượng khổng lồ là 360.000 Malware.
Các Malware tấn công vào thiết bị chạy trên nền tảng Android xuất hiện ở nhiều
dạng khác nhau.Một số malware sử dụng cách tiếp cận backdoor để tấn công vào điện
8
thoại hoặc máy tính bảng.Kế tiếp chúng truy cập trái phép vào một thiết bị trong đó có
các thông tin cá nhân của người dùng như chi tiết tài khoản ngân hàng hoặc các hình
ảnh cá nhân.
Một phương pháp tiếp cận khác của các Malware lấy cắp tài khoản là chúng sẽ tự
động gửi đi từ điện thoại của bạn một khối lượng lớn các tin nhắn văn bản đến các số
điện thoại tính phí. Chủ tài khoản phải chi trả hóa đơn với con số khổng lồ còn các tay
Hacker sẽ ung dung lấy được số tiền trong tài khoản đó.
Bên cạnh đó, các hacker còn sử dụng một số thủ thuật khác như cài đặt những công
cụ tự động tải về và khởi động chương trình độc hại trên thiết bị của người dùng.
Chuyên gia bảo mật tại Kaspersky Lab, Timothy Armstrong, cho rằng “Malware
trên Android được phát hiện nhiều hơn hầu như mỗi ngày. Thời gian gần đây, chúng tôi
đã phát hiện ra ba nhà phát triển ứng dụng (mà có khi là từ cùng 1 người) với tên gọi
MYOURNET, Kingmall2010, we20092020 đã cung cấp các ứng dụng để tải về miễn
phí trên Android Market, mà hầu hết các ứng dụng đó đều chứa mã độc”.
Đây là một phát hiện cực kỳ quan trọng, bởi vì cho đến bây giờ, hầu hết các
Malware tìm được đều không nằm trong Android Market, nó yêu cầu một số bước thực
hiện đặc biệt thì mới lây nhiễm được sang các thiết bị. Thế nhưng hiện nay, người dùng
hoàn toàn có thể cài đặt các ứng dụng mới trực tiếp từ web thông qua Android Market
phiên bản mới.
Kaspersky Lab khuyến cáo người dùng nên kiểm tra lại tất cả các yêu cầu cài đặt từ
các ứng dụng trên Tablet hay điện thoại của bạn trước khi cho phép chúng thực hiện
việc cài đặt tự động.
2.2- Các cách bảo mật thông tin trong Android
Hình ảnh bảo mật thông tin trong Android
 Mã độc ồ ạt tấn công Android:
9

• Kho ứng dụng Android Market: thật giả lẫn lộn
• Bạn cần lưu ý rằng những phản hồi nhận xét về ứng dụng trên Android Market
không phải lúc nào cũng đáng tin cậy, đó có thể là một trò đánh lừa từ chính chủ nhân
của ứng dụng để tạo ra vỏ bọc an toàn xây dựng lòng tin nơi người dùng.
• Ứng dụng có chèn mã độc và cung cấp miễn phí, các nạn nhân tha hồ tải về mà
không biết dữ liệu của mình đã bị chạm tới.
Bức ảnh hấp dẫn nhưng thực ra là một tập tin chứa mã độc:
 Luôn kiểm tra quyền hạn của ứng dụng:
• Bất cứ khi nào bạn tải về hay cập nhật một ứng dụng, bạn sẽ nhìn thấy một
danh sách quyền hạn (permissions) mà ứng dụng đó yêu cầu được cấp phép để hoạt
động. Một ứng dụng báo thức thì hiển nhiên là không cần tọc mạch trong danh bạ. Do
10
đó, bạn nên loại bớt những yêu cầu "quá đáng" của các ứng dụng khichúng muốn truy
xuất đến nhiều thành phần, nội dung dữ liệu trên thiết bị của mình.
• Một ứng dụng miễn phí có thể nhờ cậy đến là WhisperCore. Đây là ứng dụng
đa chức năng và trong đó có khả năng kiểm tra quyền hạn của ứng dụng.
WhisperCore có phần nổi hơn CyanogenMod vì nó không làm ứng dụng bị treo khi
gỡ bỏ bớt quyền hạn truy xuất tài nguyên của chúng. Tiếc là WhisperCore chỉ mới
thân thiện với hai dòng smartphone Nexus S (3G) và Nexus One, hỗ trợ cả
Linux/Windows và Mac OS X.
 Đừng cài trực tiếp tập tin APK
• Bạn không nên tải và cài đặt ứng dụng bằng cách sử dụng một tập tin APK
(Android Package), nhất là từ các website chưa được kiểm chứng. Đó có thể là những
ứng dụng có kèm "món quà" không mong đợi. Sử dụng công cụ diệt mã độc
• Các loại virus và biến thể mã độc đã tràn ngập khắp nơi, đặc biệt là từ
Android Market. Do đó, việc tậu một chương trình Antivirus cho Smartphone hay
Tablet dùng Android không phải là thừa.
• Hiện có nhiều chọn lựa đáng tin cậy miễn phí và có phí bao gồm:
Kaspersky Mobile Security: Phiên bản 9 đã hỗ trợ Android 1.6 - 2.3, hỗ trợ khá
nhiều chức năng mở rộng của một chương trình bảo mật cho thiết bị di động ngoài

chức năng tìm và diệt mã độc.
Lookout Mobile Security: Ứng dụng đang rất được ưa chuộng bởi khả năng bảo vệ tốt,
kèm theo chức năng sao lưu và khôi phục dữ liệu, tìm kiếm thiết bị thất lạc phòng khi
mất cắp. Lookout Mobile Security hoàn toàn miễn phí.
 Giải pháp bảo mật của ESET Mobile Security
• Cuối cùng là một ứng dụng không nên bỏ qua PermissionDog.
11
• Khả năng quét của ứng dụng này cho phép quét toàn bộ thiết bị để tìm xem ứng
dụng nào đang "gây rối", đánh dấu nó theo mức độ nguy hiểm để bạn xử lý.
PermissionDog còn giúp theo dõi trong thời gian thực và cảnh báo bạn về các ứng dụng
đang chạy nền trong hệ thống và quyền hạn đang sử dụng.
2.3. Các hộp cát, các tiến trình và các quyền hạn
Android sử dụng khái niệm về hộp cát để bắt buộc tách riêng giữa ứng dụng với nhau
và các quyền hạn để cho phép hoặc ngăn không cho một ứng dụng truy cập vào các tài
nguyên của thiết bị như các tệp và các thư mục, các mạng, các cảm biến và các API
(Application program interface - Giao diện lập trình ứng dụng. nói chung.) Về việc
này, Android sử dụng các phương tiện của Linux như bảo mật cấp-xử lý, các ID của
người dùng và của nhóm có liên quan đến ứng dụng và các quyền hạn để bắt tuân thủ
những hoạt động nào mà một ứng dụng được phép thực hiện.
Về khái niệm, một hộp cát có thể được thể hiện như trong hình 1
Hình 1. Hai ứng dụng Android, mỗi ứng dụng ở trong hộp cát hoặc tiến
trình cơ sở riêng của mình
12
Các ứng dụng Android chạy trên tiến trình Linux riêng của mình và được gán cho một
ID của người dùng duy nhất. Theo mặc định, các ứng dụng chạy trong một tiến trình
của hộp cát cơ sở không được gán cho các quyền hạn, do đó ngăn không cho các ứng
dụng như vậy được truy cập vào hệ thống hoặc các tài nguyên. Tuy nhiên, các ứng dụng
Android có thể yêu cầu các quyền hạn thông qua các tệp bản kê (manifest) của ứng
dụng.
Các ứng dụng Android có thể cho phép các ứng dụng khác truy cập vào tài nguyên

của chúng bằng cách:
• Khai báo các quyền hạn-bản kê thích hợp.
• Chạy trong cùng tiến trình với các ứng dụng tin cậy khác, do đó chia sẻ quyền
truy cập vào dữ liệu và mã của chúng.
Cách sau được minh họa trong Hình 2.
Hình 2. Hai ứng dụng Android, chạy trên cùng một tiến trình
13
Các ứng dụng khác nhau có thể chạy trong cùng tiến trình này. Đối với cách tiếp cận
này, trước tiên bạn phải ký các ứng dụng đó bằng cách sử dụng cùng một khóa riêng và
sau đó bạn phải gán cho chúng cùng một ID người dùng Linux khi sử dụng tệp bản kê,
bằng cách định nghĩa thuộc tính bản kê android:sharedUserId với cùng một giá trị/tên.
Các trường hợp sử dụng của nhà phát triển
Hình 3 minh họa một số các trường hợp sử dụng (use case) có liên quan đến bảo mật
được tìm thấy khi bạn phát triển các ứng dụng Android.
14
• Việc ký ứng dụng hoặc mã là quá trình tạo các khóa riêng và khóa công khai và các
chứng chỉ khóa-công khai, ký và tối ưu hóa ứng dụng.
• Các quyền hạn là một cơ chế bảo mật của nền tảng Android cho phép hoặc hạn chế
ứng dụng truy cập vào các API( Application program interface - Giao diện lập trình ứng
dụng.) và các tài nguyên hạn chế. Theo mặc định, các ứng dụng Android không được
cấp các quyền hạn nào, làm cho chúng an toàn nhờ không cho phép chúng truy cập vào
các API hoặc các tài nguyên được bảo vệ trên thiết bị. Các quyền hạn phải cần thiết, các
quyền hạn tùy chỉnh được định nghĩa và các nhà cung cấp nội dung và tệp được bảo vệ.
Hãy chắc chắn rằng bạn kiểm tra, tuân thủ và thu hồi các quyền hạn trong thời gian
chạy.
Tiếp theo, hãy xem xét từng lĩnh vực bảo mật cụ thể hơn.
Việc ký ứng dụng
Tất cả các ứng dụng Android phải được ký. Việc ký ứng dụng hoặc mã là quá trình ký
số một ứng dụng cụ thể bằng cách sử dụng một khóa riêng để:
Xác định tác giả của mã.

Phát hiện ra nếu các ứng dụng đã thay đổi.
Xây dựng sự tin cậy giữa các ứng dụng.
15
Căn cứ vào mối quan hệ tin cậy này, các ứng dụng có thể chia sẻ mã và dữ liệu theo
cách an toàn.
Các ứng dụng đã ký bằng cách sử dụng cùng một chữ ký số có thể cho phép lẫn nhau
các quyền hạn khác để truy cập các API(Application program interface - Giao diện lập
trình ứng dụng.) dựa trên chữ ký và cũng có thể chạy trong cùng một tiến trình nếu
chúng chia sẻ các ID người dùng, cho phép truy cập vào mã và dữ liệu của nhau.
Việc ký ứng dụng bắt đầu bằng cách tạo ra một cặp khóa riêng và khóa công khai và
một chứng chỉ khóa-công khai có liên quan, cũng được biết là một chứng chỉ khoá-công
khai.
Khi làm việc với các ứng dụng Android, bạn có thể xây dựng các ứng dụng trong chế
độ chế độ gỡ lỗi (debug) và chế độ phát hành (release-mode):
Các ứng dụng được xây dựng khi sử dụng các công cụ xây dựng Android (dòng lệnh
và ADT (Android Development Tools - Các công cụ phát triển Android) của Eclipse)
được tự động ký bằng cách sử dụng một khóa riêng gỡ lỗi; các ứng dụng này được gọi
là các ứng dụng chế độ gỡ lỗi. Các ứng dụng chế độ gỡ lỗi được sử dụng để thử nghiệm
và không nên được phân phối. Lưu ý rằng các ứng dụng chưa được ký hoặc các ứng
dụng đã ký bằng cách sử dụng một khóa riêng gỡ lỗi không thể được phân phối thông
qua Thị trường Android.
Khi bạn đã sẵn sàng để phát hành ứng dụng của mình, bạn phải xây dựng một phiên
bản chế độ phát hành của nó, có nghĩa là ký ứng dụng đó bằng khóa riêng của bạn.
Việc ký mã trong Android được thực hiện theo một cách đơn giản hơn nhiều so với
các nền tảng di động khác. Trong Android, chứng chỉ này có thể tự ký, có nghĩa là,
không cần phải có người có thẩm quyền chứng nhận. Cách tiếp cận này làm đơn giản
hóa quá trình xuất bản và các chi phí liên quan.
Sử dụng các quyền hạn
Các quyền hạn là một cơ chế bảo mật của nền tảng Android để cho phép hoặc hạn chế
ứng dụng truy cập đến các API và các tài nguyên bị hạn chế. Theo mặc định, các ứng

dụng Android không được cấp các quyền hạn nào, làm cho chúng an toàn bằng cách
không cho phép chúng truy cập vào các API được bảo vệ hoặc các tài nguyên trên thiết
bị. Ứng dụng phải yêu cầu các quyền hạn thông qua tệp bản kê và người dùng cấp hoặc
không cấp các quyền hạn trong khi cài đặt.
16
Android định nghĩa một danh sách dài các quyền hạn qua bản kê, bảo vệ các khía
cạnh khác nhau của hệ thống hoặc các ứng dụng khác. Để yêu cầu cấp quyền hạn, hãy
khai báo một thuộc tính
<user-permission> trong tệp bản kê:
<uses-permission android:name="string" />
Ở đây android:name xác định tên của quyền hạn này.
Để biết một danh sách tất cả các quyền hạn qua bản kê do Android định nghĩa, hãy
xem trang Manifest.permisson. Liệt kê 2 là một ví dụ của một tệp bản kê yêu cầu cấp
quyền sử dụng Internet và quyền ghi vào bộ nhớ ngoài:
Liệt kê 2. Khai báo (yêu cầu cấp) một quyền hạn
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" /> android:versionCode="1"
android:versionName="1.0"
package="com.cenriqueortiz.tutorials.datastore"
android:installLocation="auto">
<application
:
:
:
</application>
<uses-permission
android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>

17
Các ứng dụng có thể định nghĩa các quyền hạn tùy chỉnh riêng của mình để bảo vệ tài
nguyên của ứng dụng. Các ứng dụng khác muốn truy cập vào tài nguyên được bảo vệ
của một ứng dụng phải yêu cầu có các quyền hạn thích hợp thông qua tệp bản kê riêng
của mình. Liệt kê 3 chỉ ra một ví dụ về cách định nghĩa các quyền hạn.
Liệt kê 3. Khai báo một quyền hạn tùy chỉnh
<permission
xmlns:android=" /> android:name="com.cenriqueortiz.android.ACCESS_FRIENDS_LIST"
android:description="@string/permission_description"
android:label="@string/permission_label"
android:protectionLevel="normal"
>
</permission>
Trong Liệt kê 3, một quyền hạn khách hàng được định nghĩa bằng cách xác định các
thuộc tính tối thiểu name (tên),description (mô tả), label (nhãn)
và protectionLevel (mức bảo vệ). Các thuộc tính khác có thể được định nghĩa thêm,
nhưng chúng không được trình bày ở đây.
Một thuộc tính cần quan tâm đặc biệt là android:protectionLevel, biểu thị phương
thức mà hệ thống phải tuân theo khi cấp (hoặc không cấp) một quyền hạn cho một ứng
dụng đang yêu cầu. Các mức bảo vệ gồm có normal (bình thường), nghĩa là tự động cấp
các quyền này (mặc dù người sử dụng luôn có thể xem xét lại trước khi cài đặt), việc
cấp các quyền hạn dựa trên chữ ký (có nghĩa là, nếu ứng dụng đang yêu cầu đã được ký
với cùng một chứng chỉ) và dangerous (nguy hiểm), biểu thị các quyền hạn truy cập
đến dữ liệu riêng hoặc có tác động tiêu cực tiềm năng khác.
Các ứng dụng có thể hạn chế truy cập vào ứng dụng và các thành phần hệ thống mà
nó sử dụng như là Activity (Hoạt động), Service (Dịch vụ), Content Provider (Nhà cung
18
cấp nội dung) và Broadcast Receiver (Máy thu quảng bá). Sự hạn chế này dễ dàng thực
hiện bằng cách định nghĩa thuộc tính android:permission như trong Liệt kê 4. Mức bảo vệ
này để cho ứng dụng đó cho phép hoặc hạn chế các ứng dụng khác truy cập vào tài

nguyên hệ thống.
Liệt kê 4. Định nghĩa một quyền hạn cho một hoạt động
<activity
android:name=".FriendsListActivity"
android:label="Friends List">
android:permission="com.cenriqueortiz.android.ACCESS_FRIENDS_LIST"
<intent-filter>
:
:
</intent-filter>
</activity>
Các quyền hạn của các nhà cung cấp nội dung và của tệp
Các nhà cung cấp nội dung trưng ra một URI chung là URI duy nhất xác định dữ liệu
của họ .Để bảo vệ các nhà cung cấp nội dung như vậy, khi bắt đầu một hoạt động hoặc
trả về một kết quả hoạt động của mình, người gọi có thể thiết lập
Intent.FLAG_GRANT_READ_URI_PERMISSION và Intent.FLAG_GRANT_WRIT
E_URI_PERMISSION, để cấp quyền cho hoạt động thu nhận truy cập vào URI của dữ
liệu cụ thể theo ý đích này.
Theo mặc định, các tệp của ứng dụng được bảo vệ. Các tệp được bảo vệ dựa trên các
ID người dùng và do đó chỉ người chủ sở hữu của ứng dụng, có cùng ID người dùng,
mới có thể truy cập được. Như đã trình bày ở trên, các ứng dụng chia sẻ ID người dùng
giống nhau (và được ký bằng cách sử dụng cùng một chứng chỉ số) chạy trên cùng một
tiến trình và vì thế chia sẻ quyền truy cập các ứng dụng của chúng.
Các ứng dụng có thể cho phép các ứng dụng hoặc các tiến trình khác có quyền truy
cập tới các tệp của mình. Sự cho phép này được thực hiện bằng cách chỉ ra chế độ hoạt
động MODE_WORLD_READABLE và MODE_WORLD_WRITEABLE thích hợp để cho phép
19
quyền truy cập đọc hoặc viết vào tệp, hoặc MODE_PRIVATE để mở tệp trong chế độ riêng
tư. Bạn có thể xác định một chế độ hoạt động bằng các phương thức sau khi bạn tạo
hoặc mở các tệp:

getSharedPreferences(filename, operatingMode)
openFileOutput(filename, operatingMode)
openOrCreateDatabase(filename, operatingMode, SQLiteDatabase.CursorFactory)
Các API Permission thời gian chạy
Android cung cấp các API để kiểm tra, bắt tuân thủ, cấp và thu hồi các quyền hạn
trong thời gian chạy. Các API này là một phần của lớp android.content.Context, cung
cấp toàn bộ thông tin về một môi trường ứng dụng. Ví dụ, nếu bạn muốn xử lý các
quyền hạn một cách trang nhã, bạn có thể xác định xem ứng dụng của bạn đã được cấp
quyền truy cập vào Internet chưa (xemLiệt kê 5).
Liệt kê 5. Sử dụng một API Permission thời gian chạy để kiểm tra, bắt tuân thủ,
cấp và thu hồi các quyền hạn trong thời gian chạy
if (context.checkCallingOrSelfPermission(Manifest.permission.INTERNET)
!= PackageManager.PERMISSION_GRANTED) {
// The Application requires permission to access the
// Internet");
} else {
// OK to access the Internet
}
Đối với các API quyền hạn khác để kiểm tra, bắt tuân thủ, cấp và thu hồi các quyền
hạn trong thời gian chạy, hãy xem lớp ngữ cảnh.
20
Phần IV: Kết luận
Trên đây là báo cáo của chúng em về đề tài :” An toàn và bảo mật trong hệ điều hành
Android ”. So với các hệ điều hành thông dụng khác hiện nay như IOS, Blackberry
OS, symbian OS thì Android là hệ điều hành có độ an toàn và bảo mật kém nhất,
nhưng nhờ vào việc phát triển các ứng dụng bảo mật ngày càng mạnh đã phần nào
giảm đi sự nguy hiểm cho người dùng. Hy vọng rằng qua phần chúng em đã trình bày
ở trên, các bạn có thể hiểu được phần nào đó về độ an toàn và cách bảo mật trong hệ
điều hành android. Ngoài ra các bạn có thể đọc thêm nhiều tài liệu liên quan đến lĩnh
vực này để hiểu hơn về nó.

21
Tư liệu tham khảo:
1.
2.
%81u_h%C3%A0nh)
3. Giáo trình hệ điều hành ( đại học Mỏ Địa Chất).
4. Và một số trang chuyên ngành khác.
22
Mục Lục
Đặt vấn đề………………………………………………………… 2
Phần I: Các khái niệm …………………………………………….3
Phần II: Mục tiêu của việc an toàn và bảo mật hệ thống …………4
Phần III: Cơ chế an toàn và bảo mật trong android ………………4
Phần IV: Kết luận ……………………………………………… 20
Tư liệu tham khảo……………………………….……………….21
23

×