Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
3,52 MB
Nội dung
ỨNG DỤNG BẢO MẬT DỮ LIỆU TỪ XA CHO THIẾT BỊ ANDROID Niên khóa: 2011 – 2015 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ĐẶNG XUÂN BÁCH ĐINH NGỌC TÂN XÂY DỰNG ỨNG DỤNG BẢO MẬT DỮ LIỆU TỪ XA CHO THIẾT BỊ ANDROID Chuyên ngành: Công Nghệ Thông Tin ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2014 VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ĐẶNG XUÂN BÁCH ĐINH NGỌC TÂN XÂY DỰNG ỨNG DỤNG BẢO MẬT DỮ LIỆU TỪ XA CHO THIẾT BỊ ANDROID Chuyên ngành: Công Nghệ Thơng Tin Giảng viên hướng dẫn: ThS Phạm Cơng Hịa ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2014 VIỆN ĐẠI HỌC MỞ HÀ NỘI CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN Độc lập – Tự – Hạnh phúc - Hà Nội, ngày tháng năm 2014 NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP Họ tên: Đặng Xuân Bách Ngày, tháng, năm sinh: 15/08/1989 Giới tính: Nam Nơi sinh: Nam Định Chuyên ngành: Công nghệ thông tin Mã SV: 11A100259 Họ tên: Đinh Ngọc Tân Giới tính: Nam Ngày, tháng, năm sinh: 29/10/1993 Nơi sinh: Quảng Ninh Chuyên ngành: Mã SV: 11A100298 Công nghệ thông tin TÊN ĐỀ TÀI Xây dựng ứng dụng bảo mật liệu từ xa cho thiết bị Android NHIỆM VỤ VÀ NỘI DUNG Nghiên cứu, tìm hiểu hệ điều hành Android công nghệ Google Cloud Messaging Xây dựng ứng dụng bảo mật liệu từ xa cho thiết bị Android NGÀY GIAO NHIỆM VỤ: 01/10/2014 NGÀY HOÀN THÀNH NHIỆM VỤ: 24/12/2014 CÁN BỘ HƢỚNG DẪN: ThS Phạm Cơng Hịa Nội dung đề cương Đồ án Hội đồng chuyên ngành thông qua Ngày tháng năm 2014 CÁN BỘ HƢỚNG DẪN KHOA CÔNG NGHỆ THÔNG TIN NHIỆM VỤ ĐƢỢC GIAO Đặng Xuân Bách Đinh Ngọc Tân - Phân tích thiết kế hệ thống - Nghiên cứu lý Google Cloud Messaging - Nghiên cứu lý thuyết JSON dùng JSON kết nối thao tác - Xây dựng giao diện ứng dụng Xây dựng ứng dụng phía server bên thiết bị chạy website - - Khảo sát thực tiễn Xây dựng sở liệu lưu trữ thiết bị Android với server cho hệ thống - thuyết - - Lập trình chức đồng Lập trình chức điều lưu liệu ứng dụng khiển thiết bị từ xa cho ứng dụng (sử dụng GCM SMS) đồ án Tổng hợp xây dựng báo cáo LỜI NÓI ĐẦU Lời chúng em xin gửi đến thầy Phạm Cơng Hịa, người trực tiếp hướng dẫn nhóm em suốt q trình thực đồ án Những nhận xét, đánh giá chia sẻ kinh nghiệm làm việc thầy thơng tin vơ hữu ích cho việc hồn thành dự án nhóm em Chúng em xin trân trọng cảm ơn thầy, chúc thầy gia đình ln ln mạnh khỏe đạt thành cơng sống Bên cạnh chúng em xin đặc biệt gửi lời cảm ơn đến thầy cô khoa Công nghệ thông tin, Viện Đại học Mở Hà Nội không trực tiếp hướng dẫn chúng em trình làm đồ án, kiến thức thầy cô truyền thụ giúp chúng em nhiều việc hoàn thành đồ án Cụ thể: - Thầy Trương Cơng Đồn – Người truyền thụ kiến thức lập trình Android người gợi ý ban đầu cho chúng em đề tài đồ án - Thầy Trần Tiến Dũng – Nhờ có dạy thầy dự án Công nghệ thông tin, chúng em xếp cơng việc hợp lý để hồn thành đồ án cách tốt - Cơ Nguyễn Hồi Anh – Các kiến thức phân tích thiết kế hệ thống cô định hướng cho chúng em nhiều ứng dụng xây dựng - Các thầy Dương Thăng Long, Nguyễn Thành Huy cô Trịnh Thị Xuân – Những nhận xét, đánh giá thầy cô buổi báo cáo tiến độ giúp đỡ cho chúng em nhiều việc nhìn nhận lại chương trình, từ xây dựng ứng dụng cách tốt thực tiễn Chúng em xin kính chúc thầy cô mạnh khỏe, luôn người lái đị ân cần dìu dắt hệ FITHOU trưởng thành Cuối chúng xin gửi lời cảm ơn sâu sắc tới bố mẹ, gia đình tạo điều kiện tốt để chúng chun tâm hồn thành đồ án Đặng Xuân Bách, Đinh Ngọc Tân Hà Nội, tháng 12/2014 MỤC LỤC Trang Trang bìa…………………………………………………………………… Mục lục……………………………………………………………………… Chƣơng KHẢO SÁT HỆ THỐNG 1.1 Khảo sát thực tế 1.2 Nhiệm vụ 1.3 Quy trình sử dụng Chƣơng PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG 2.1 Sơ đồ phân rã chức 2.1.1 Xác định chức 2.1.2 Gom nhóm chức 2.1.3 Sơ đồ phân rã chức hệ thống 2.2 Sơ đồ luồng liệu 2.2.1 Ký hiệu sử dụng 2.2.2 DFD mức khung cảnh 2.2.3 DFD mức đỉnh 10 2.2.4 DFD mức đỉnh 10 2.3 Đặc tả chức chi tiết 12 Chƣơng 22 PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU 22 3.1 ER mở rộng 22 3.1.1 Xác định kiểu thực thể, kiểu thuộc tính 22 3.1.2 Xác định kiểu liên kết 23 3.1.3 Mơ hình ER mở rộng 23 3.2 Chuẩn hóa liệu 24 3.2.1 Chuyển đổi từ ER mở rộng ER kinh điển 24 3.2.2 Chuyển đổi từ ER kinh điển ER hạn chế 26 3.2.3 Chuyển đổi từ ER hạn chế mơ hình quan hệ 28 3.3 Đặc tả bảng liệu mơ hình quan hệ 30 3.4 Hồn thiện q trình phân tích 33 Chƣơng 35 THIẾT KẾ HỆ THỐNG 35 4.1 Thiết kế tổng thể 35 4.1.1 Phân định công việc người máy 35 4.1.2 Thiết kế tiến trình hệ thống 39 4.2 Thiết kế kiểm soát 43 4.2.1 Xác định nhóm người dùng 43 4.2.2 Phân định quyền hạn nhóm người dùng 43 4.3 Thiết kế CSDL vật lý 45 4.3.1 Mơ hình liệu hệ thống 45 4.3.2 Đặc tả bảng liệu 45 4.4 Thiết kế kiến trúc chương trình giao diện 50 4.4.1 Thiết kế kiến trúc 50 4.4.2 Thiết kế hệ thống đơn chọn 51 4.4.3 Thiết kế hình giao diện 52 Chƣơng 67 LẬP TRÌNH 67 5.1 Cơ sở lý thuyết 67 5.1.1 JSON ứng dụng 67 5.1.2 Sử dụng Google Cloud Messaging 72 5.2 Lập trình ứng dụng xử lý phía Server 77 5.2.1 Cơ sở liệu hệ thống 77 5.2.2 Lập trình Website hệ thống 77 5.3 Lập trình ứng dụng xử lý phía thiết bị 80 Chƣơng 83 TỔNG KẾT VÀ ĐÁNH GIÁ 83 6.1 Cấu hình yêu cầu 83 6.2 Kết đạt 83 6.3 Các mặt hạn chế 83 6.4 Hướng phát triển tương lai 84 TÀI LIỆU THAM KHẢO 85 TÓM TẮT ĐỒ ÁN - Họ tên: Đặng Xuân Bách, Đinh Ngọc Tân - Chun ngành: Cơng nghệ thơng tin Khóa: 11 - Cán hướng dẫn: ThS Phạm Cơng Hịa - Tên đề tài: Xây dựng ứng dụng bảo mật từ xa cho thiết bị Android - Tóm tắt: Thực đồ án lần giúp chúng em có thêm kiến thức lập trình Android nâng cao, sử dụng JSON để thao tác với Web server dùng Google Cloud Messaging để gửi tin nhắn lệnh đến với thiết bị đăng ký Bên cạnh việc xây dựng ứng dụng có tính bảo mật, điều khiển thiết bị cho chúng em nhiều kiến thức việc xây dựng triển khai ứng dụng Android thực tế 71 }, … ] } Hàm đọc chuỗi JSON trả list chứa liệu ban đầu, đầu vào chuỗi “respone” server trả về, kết quả, thơng báo lỗi: JSONObject obj = new JSONObject(respone); String MAC = obj.get("device_id").toString(); JSONArray arr = obj.getJSONArray("list"); for (int i = 0; i < arr.length(); i++) { JSONObject data = arr.getJSONObject(i); String sTen = data.get("name").toString(); String sSdt = data.get("number").toString(); ContactDetails objContact = new ContactDetails(); objContact.setName(name); objContact.setPhoneNo(number); contactsReturn.add(objContact); 72 5.1.2 Sử dụng Google Cloud Messaging Hình 5.2 Google Cloud Messaging logo Google Cloud Messaging for Android (GCM) dịch vụ miễn phí giúp nhà phát triển gửi liệu từ máy chủ tới thiết bị sử dụng ứng dụng Android họ, đồng thời nhận tin nhắn từ thiết bị kết nối Dịch vụ tin nhắn dung lượng thấp cho ứng dụng Android biết có liệu cần tìm nạp từ máy chủ (ví dụ: cập nhật phầm mềm mới, có email mới…) Đặc điểm Google Cloud Messaging (GCM) - Nó cho phép máy chủ ứng dụng bên thứ ba gửi tin nhắn đến ứng dụng Android họ - Sử dụng server kết nối Google Cloud Messaging, nhà phát triển nhận tin nhắn từ thiết bị phía người dùng - Ứng dụng thiết bị Android không cần phải chạy để nhận tin nhắn GCM Hệ thống tự động kích hoạt ứng dụng 73 thơng qua Intents broadcast tin nhắn đến, miễn ứng dụng thiết lập với trình thơng báo kiện (Broadcast Receivers) cho phép - Nó khơng cung cấp giao diện hiển thị hay thư viện xử lý thông tin mà đơn gửi thông tin đến thiết bị kèm theo quyền kiểm sốt hồn tồn cách thức để xử lý Ví dụ, ứng dụng gửi thơng báo, hiển thị giao diện người dùng tùy chỉnh, âm thầm đồng liệu - Nó địi hỏi thiết bị chạy Android 2.2 cao có cài đặt Google Play Store, trình giả lập chạy Android 2.2 với API Google - Google Cloud Messaging sử dụng kết nối với dịch vụ Google Đối với thiết bị chạy Android 3.0, yêu cầu người dùng thiết lập tài khoản Google thiết bị Đối với thiết bị Android 4.0 cao hơn, việc thiết lập tài khoản Google thiết bị không cần thiết để sử dụng GCM Thành phần cấu tạo Các ứng dụng Android GCM kích hoạt chạy thiết bị Đây phải thiết bị Android 2.2 cài đặt Google Play Store, phải có tài khoản Client App đăng nhập Google thiết bị chạy phiên thấp so với Android 4.0.4 Ngoài ra, để thử nghiệm, bạn sử dụng trình giả lập chạy Android 2.2 với API Google 3rd-party Application Server GCM Connection Các máy chủ ứng dụng bên thứ ba gửi liệu đến ứng dụng Android thiết bị thông qua máy chủ kết nối GCM Các máy chủ Google cung cấp liên quan đến việc 74 Server tin nhắn từ máy chủ ứng dụng bên thứ ba gửi chúng đến thiết bị Các chứng ID bên gửi sử dụng trình đăng ký Sender ID để xác định máy chủ ứng dụng bên thứ ba phép gửi tin nhắn đến điện thoại Các ứng dụng Android đăng ký để nhận tin Application ID nhắn Các ứng dụng Android xác định thông tin manifest Điều đảm bảo thơng điệp gửi xác đến thiết bị Android ID máy chủ GCM cung cấp để ứng dụng Android phép nhận tin nhắn Khi ứng dụng có ID đăng ký, gửi đến máy chủ ứng dụng bên Registration ID thứ 3, xác định thiết bị đăng ký để nhận tin nhắn cho ứng dụng Android Nói cách khác, ID đăng ký gắn với ứng dụng Android đặc biệt chạy thiết bị cụ thể Để GCM làm việc, thiết bị di động phải bao gồm Google User Account tài khoản Google thiết bị chạy phiên thấp Android 4.0.4 Một khóa API lưu máy chủ ứng dụng Sender Auth Token bên thứ ba, cung cấp cho ứng dụng máy chủ ủy quyền truy cập vào dịch vụ Google Kiến trúc tổng quan 75 Hình 5.3 Kiến trúc tổng quan hoạt động GCM Tƣơng tác thành phần - Google cung cấp máy chủ kết nối GCM lấy tin nhắn từ máy chủ ứng dụng bên thứ ba gửi tin nhắn đến ứng dụng Android GCM chạy thiết bị - Máy chủ ứng dụng hãng thứ ba thành phần làm việc với máy chủ kết nôi GCM bạn chọn Các máy chủ ứng dụng gửi tin nhắn đến máy chủ kết nối GCM, hàng đợi máy chủ kết nối lưu trữ tin nhắn, sau gửi đến thiết bị thiết bị trực tuyến - Client App ứng dụng Android GCM kích hoạt thiết bị Để nhận tin GCM, ứng dụng phải đăng ký với GCM mà có Registration ID Nếu bạn sử dụng giao thức XMPP (CCS) để kết nối server, client app gửi tin nhắn ngược lại cho máy chủ kết nối Hoạt động Enable GCM Lần ứng dụng Android cần sử dụng dịch vụ nhắn tin, gọi GoogleCloudMessaging phương thức register() Phương thức register() trả Registration ID Ứng dụng Android nên lưu trữ ID để sử dụng vệ sau 76 Gửi tin nhắn Khi máy chủ ứng dụng gửi thông điệp, chuỗi kiện sau xảy ra: - Các máy chủ ứng dụng gửi tin nhắn đến máy chủ GCM - Google xếp hàng lưu trữ tin nhắn trường hợp thiết bị nhận trạng thái ẩn - Khi thiết bị trực tuyến, Google gửi tin nhắn đến thiết bị - Trên thiết bị, hệ thống gửi thông điệp đến ứng dụng Chỉ có ứng dụng quy định nhận thơng điệp Ứng dụng Android không cần phải chạy trước để nhận thơng báo, thơng báo gửi đến, ứng dụng tự động “đánh thức” - Các ứng dụng xử lý thông báo - Một ứng dụng hủy đăng ký GCM không muốn nhận thông báo Nhận tin nhắn Tương tự, sau chuỗi kiện xảy thiết bị nhận tin nhắn: - Hệ thống nhận tin nhắn đến, lấy cặp key/value từ tin nhắn có - Hệ thống chuyển cặp key/value cho ứng dụng Android xác định intent com.google.android.c2dm.intent.RECEIVE Ứng dụng Android lấy liệu key xử lý liệu 77 5.2 Lập trình ứng dụng xử lý phía Server 5.2.1 Cơ sở liệu hệ thống Hệ quản trị sử dụng: MySQL Hình 5.4 Mơ hình CSDL server 5.2.2 Lập trình Website hệ thống Ngơn ngữ lập trình sử dụng: PHP Hình 5.5 Cấu trúc thư mục gốc Website Trong đó: - Thư mục api chứa mã lệnh xử lý liệu gửi lên server từ thiết bị Android - Thư mục contacts chứa file backup danh bạ thiết bị gửi lên - Thư mục css chứa file css tùy chỉnh giao diện Web 78 - Thư mục images chứa hình ảnh phục vụ cho giao diện Website - Thư mục include chứa file mã lệnh dùng chung cho site hệ thống - Thư mục js chứa file javascript xử lý chức mà Website cung cấp bao gồm gửi tin nhắn lệnh thiết bị, xử lý giao diện Website,… - Trang changepassword.php xử lý chức đổi mật - Trang delete.php xử lý chức xóa thiết bị đăng ký - Trang index.php trang chủ, đồng thời trang cho phép thực thao tác điều khiển thiết bị từ xa - Trang login.php xử lý chức đăng nhập Web - Trang logout.php xử lý chức đăng xuất tài khoản Web - Trang Message.php xử lý chức kiểm tra lịch sử kết chức định vị thiết bị - Trang send_messages.php xử lý chức gửi command điều khiển thiết bị Hình 5.6 Cấu trúc thư mục api Trong đó: - File checkdevice.php xử lý chức kiểm tra thiết bị ứng dụng thiết bị gửi lên, trả kết thiết bị đăng ký chưa, thiết bị có đăng ký vào tài khoản đăng nhập hay không 79 - File checklogin.php xử lý chức đăng nhập ứng dụng thiết bị - File contact.php xử lý chức lưu danh bạ thiết bị gửi lên - File details.php xử lý lưu thông tin chi tiết danh bạ gửi lên (bao gồm tên liên lạc số điện thoại) - File file.php xử lý file backup vcf danh bạ thiết bị gửi lên - File getcontacts.php thực chức phục vụ đồng danh bạ - File message.php xử lý kết định vị thiết bị gửi lên nhận command - File register.php xử lý chức đăng ký thiết bị Hình 5.7 Cấu trúc thư mục include Trong đó: - File checklogin kiểm tra tài khoản đăng nhập cho trang giao diện Web tương tác với người dùng - File checkprelogin dùng để kiểm tra tài khoản mật thiết bị gửi lên trước sử dụng file thư mục api - File config.php chứa tham số dùng chung Web chuỗi kết nối CSDL, Sender ID ứng dụng (để sử dụng Google Cloud Messaging) - File db.php chứa hàm xử lý liên quan đến CSDL - File footer.php chứa giao diện hiển thị đồ Web 80 - File gcm.php chứa hàm gửi command thiết bị Google Cloud Messaging - File header.php chứa phần giao diện banner Website - File crypt.php chứa hàm mã hóa liệu (đang phát triển) 5.3 Lập trình ứng dụng xử lý phía thiết bị Hình 5.8 Cấu trúc mã lệnh chương trình Mã lệnh ứng dụng chia làm package chính: - Com.fithou.safeyourphone: chứa activity fragment xử lý giao diện ứng dụng - Data: chứa service, broadcast chạy ngầm xử lý liệu ứng dụng - Entity: chứa hàm xử lý dùng chung ứng dụng đối tượng liệu chung Trong package com.fithou.safeyourphone: Hình 5.9 Cấu trúc package com.fithou.safeyourphone - BackupFragment.java xử lý chức lưu danh bạ 81 - CheckDeviceActivity.java kiểm tra phân quyền cho tài khoản đăng nhập vào ứng dụng - ContactFragment.java xử lý chức đồng danh bạ - ContentActivity.java chứa giao diện khung hiển thị fragment - DetailFragment.java hiển thị chi tiết thông tin danh bạ lưu tài khoản (gọi qua ContactFragment.java) - DrawerItemCustomAdapter.java xử lý giao diện slider menu chương trình - GetAdminFragment.java xử lý giao diện cho phép người dùng kích hoạt vơ hiệu hóa quyền admin ứng dụng - ListContact.java xử lý giao diện hiển thị danh sách chứa tên liên lạc số liên lạc danh bạ - ListDevice.java xử lý giao diện hiển thị danh sách chứa thiết bị đăng ký tài khoản - LoginActivity.java xử lý giao diện đăng nhập ứng dụng - RegisterFragment.java xử lý giao diện chức đăng ký thiết bị Trong package data: Hình 5.10 Cấu trúc package data - GcmBroadcastReceiver.java nhận message Google Cloud Messaging gửi thiết bị 82 - GetAdminReceiver.java xử lý tính kích hoạt quyền admin ứng dụng - HelperIntentService.java phân tích xử lý message GcmBroadcastReceiver gửi sang - LocationService.java gọi phương thức lấy vị trí gửi lên server - RingService.java xử lý rung chuông tắt chuông có command - SMSReceiver.java xử lý tin nhắn sms theo cú pháp quy định - WakeLocker.java đánh thức ứng dụng có message sms nhận Trong package entity Hình 5.11 Cấu trúc package entity - AlertDialogManager.java cung cấp phương thức hiển thị cảnh báo người dùng - ConnectionDetector.java cung cấp phương thức kiểm tra kết nối Internet - ContactDetails.java đối tượng danh bạ (tên liên lạc số điện thoại) - DeviceDetails.java đối tượng liệu thiết bị (bao gồm ID, tên thiết bị, ngày đăng ký) - GetLocation.java cung cấp phương thức lấy vị trí thiết bị - GlobalFunction.java cung cấp phương thức dùng chung khác (gồm upload file, download file, …) - ObjectDrawerItem.java đối tượng liệu phục vụ cho slider menu 83 Chƣơng TỔNG KẾT VÀ ĐÁNH GIÁ 6.1 Cấu hình yêu cầu - Thiết bị sử dụng hệ điều hành Android 2.2 trở lên - Được cài đặt Google Play Store - Đối với phiên Android từ 2.2 đến 4.0.4 cần đăng nhập tài khoản Google - Đối với máy ảo cần giả lập Android 2.2 với API Google - Kết nối Internet ổn định 6.2 Kết đạt đƣợc - Nhìn chung ứng dụng đáp ứng nhiệm vụ đề q trình phân tích - Làm quen với việc thực dự án CNTT theo quy trình kế hoạch - Nắm bắt thêm kiến thức lập trình Android nâng cao như: xử lý đa luồng, kết nối server, sử dụng GCM, … - Các chức Web ứng dụng điều hướng hợp lý, dễ sử dụng vài thao tác - Có thể triển khai ứng dụng mà khơng cần tốn chi phí 6.3 Các mặt hạn chế - Công nghệ GCM thu hẹp khả phát triển ứng dụng tảng Android - Bảo mật quản lý liệu server yếu - Giao diện ứng dụng Website dễ sử dụng thực chưa hấp dẫn người dùng 84 6.4 Hƣớng phát triển tƣơng lai - Khắc phục điểm yếu hệ thống - Phát triển thêm tính điều khiển khác cho phép sử dụng camera, chụp ảnh có unlock trái phép… - Phát triển thêm tính giúp bảo mật, mã hóa liệu lưu trữ điện thoại 85 TÀI LIỆU THAM KHẢO Tiếng Anh Donn Felker, Android Application Development For Dummies, 2010 Jason Morris, Android User Interface Development Beginner’s Guider, 2011 Reto Meier, Professional Android Application Development, 2011 Shane Conder, Lauren Darcey, Android Wireless Application Development, Upper Saddle River, 2010