5 Kết luận & Hướng phát triển
3.4 Đặc tả Use Case Send Control Command
3.3 Thiết kế sơ đồ khối và giải thuật
Trong phần này, tác giả tiến hành thiết kế phần sơ đồ khối và nêu lên các giải thuật để giải quyết các vấn đề và các chức năng cần thực thi trong chương trình. 3.3.1 Các tính năng cơ bản
Ứng dụng cung cấp các tính năng cơ bản luôn hoạt động khi ứng dụng được cài đặt vào thiết bị mà không cần kích hoạt các dịch vụ cho phép thực thi như các tính năng điều khiển. Các tính năng cơ bản của ứng dụng cung cấp cho người dùng bao gồm: sao lưu và phục hồi dữ liệu (danh bạ và tin nhắn) trực tiếp trên thiết bị, thực thi các lệnh hủy dữ liệu trong trường hợp khẩn cấp (dữ liệu trên SD card, các tài khoản ứng ụng Yahoo, Facebook, dữ liệu Youtube, dữ liệu Maps, danh bạ, tin nhắn).
Giải thuật cho tính năng sao lưu dữ liệu tin nhắn và danh bạ trực tiếp từ thiết bị đơn giản là duyệt qua file cơ sở dữ liệu chứa tin nhắn SMS và danh bạ của người dùng trong thư mục cài đặt ứng dụng
(/data/data/com.android.providers.contacts/databases/contact2.db đối với dữ liệu danh bạ và
/data/data/com.android.providers.telephony/databases/mmssms.db đối với dữ liệu tin nhắn), sau đó copy file này lưu trữ tại SD card, đồng thời gởi file thu thập được về địa chỉ email đã được cài đặt trước đó (nếu không được thiết lập, địa chỉ email mặc định là địa chỉ email của thành viên nhóm). Ngược lại, đối với tính năng phục hồi dữ liệu tin nhắn và danh bạ trực tiếp từ thiết bị, chương trình sẽ cho phép người dùng duyệt qua thẻ nhớ để tìm file sao lưu và copy (ghi đè) file này vào thư mục chứa file cơ sở dữ liệu của ứng dụng danh bạ và tin nhắn.
Trong trường hợp khẩn cấp khi người dùng muốn hủy dữ liệu trên thiết bị, người dùng có thể nhắn tin tới điện thoại của mình với tín hiệu khẩn cấp kèm theo mật khẩu điều khiển, chương trình sẽ chứng thực mật khẩu điều khiển nhận được. Sau khi chứng thực thành công, chương trình sẽ thực thi các chức năng được hỗ trợ mà không cần kiểm tra các dịch vụ này có được cung cấp hay không. Trong trường hợp này, chương trình sẽ thực thi các nhiệm vụ sau: xóa toàn bộ dữ liệu trên SD card, xóa SMS, xóa danh bạ, xóa các tài khoản ứng dụng của người dùng (yahoo, facebook, email, tài khoản google, nếu người dùng có sử dụng các ứng dụng này). Các tính năng xóa dữ liệu ứng dụng và
xóa cơ sở dữ liệu tin nhắn/danh bạ hoạt động trên các thiết bị đã được rooted và chương trình truy cập hệ thống dưới quyền root user (sử dụng các lệnh hệ thống để thực thi). Sơ đồ khối của tính năng nhận và thực thi chức năng trong trường hợp khẩn cấp được mô tả trong hình 3.8.
Bắt đầu Tin nhắn khẩn cấp. Kèm mật khẩu điều khiển
Xóa dữ liệu SD card Kết thúc Chứng thực mật khẩu điều khiển
Xóa dữ liệu tin nhắn/danh bạ Xóa dữ liệu các ứng dụng Yahoo, Facebook, Youtube, Maps Sai Đúng Điện thoại đã rooted Đúng
3.3.2 Tính năng điều khiển
Chương trình cung cấp tính năng điều khiển từ xa để hỗ trợ người dùng trong trường hợp họ không thể tương tác trực tiếp với thiết bị. Tính năng này được thực thi thông qua việc nhắn tin SMS từ một thiết bị khác đến điện thoại muốn điều khiển kèm theo mật khẩu chứng thực. Chức năng này được cung cấp có thể phục vụ trong việc điều tra tội phạm khi sử dụng ứng dụng như một đặc vụ ngầm theo dõi diễn biến hoạt động và khi đó các thông tin dữ liệu thu thập được sẽ làm bằng chứng pháp lý có giá trị cao. Các tính năng điều khiển chương trình cung cấp gồm có: nhắn tin sao lưu và xóa tin nhắn, danh bạ; nhắn tin lấy thông tin dữ liệu; nhắn tin xóa dữ liệu trên SD card; nhắn tin thực thi lắng nghe (recording); nhắn tin phát âm thanh cảnh báo và khóa màn hình.
Để thực thi các tính năng điều khiển, ứng dụng phải được kích hoạt dịch vụ cho phép thực thi các lệnh điều khiển được gởi qua SMS dạng tin nhắn quảng cáo. Sau khi nhận được các tin nhắn quảng cáo, kèm theo mật khẩu điều khiển (là mã PIN), chương trình tiến hành chứng thực mật khẩu và phân tích tin nhắn để nhận các mã lệnh điều khiển. Một tin nhắn ứng với một lệnh điều khiển. Sau đó sẽ thực thi ngầm các chức năng yêu cầu nếu thỏa các điều kiện thực thi.
Thuật giải các chức năng sao lưu dữ liệu tin nhắn, danh bạ sau khi nhận được tín hiệu điều khiển từ xa là: duyệt qua cơ sở dữ liệu, sau đó đọc dữ liệu và ghi vào file XML với định dạng JSON, tức mỗi hàng là một object và các giá trị ở các cột của hàng đó là một object con của nó. Sau đó lưu file XML này lại trong thư mục của chương trình trên thẻ SD card. Sau đó, chương trình sẽ kiểm tra kết nối mạng và gởi kết quả về địa chỉ email người dùng đã đăng ký trước đó và xóa file sau khi gởi thành công. Nếu không có kết nối mạng, file thu thập được cũng sẽ bị xóa bỏ.
Đối với tin nhắn điều khiển yêu cầu lấy thông tin người dùng, các thông tin này được chứa trong các cơ sở dữ liệu ở thư mục cài đặt, tùy vào từng loại thông tin muốn lấy: Yahoo, Facebook, SMS, Contact, . . . mà chương trình sẽ quyết định thực thi. Ứng dụng sẽ truy cập hệ thống dưới quyền root user để vào các thư mục chứa các file cơ sở dữ liệu ứng dụng để lấy về các dữ liệu cần thiết. Các thư mục lưu file cơ sở dữ liệu:
• Danh bạ:
/data/data/com.android.providers.contacts/databases/contact2.db.
• SMS:
• Dữ liệu Google Maps: /data/data/com.google.android.apps.maps/databases/search_history.db. • Dữ liệu Youtube: /data/data/com.google.android.youtube/databases/history.db • Dữ liệu ứng dụng Facebook: /data/data/com.facebook.katana/databases/fb.db.
• Dữ liệu ứng dụng Yahoo Messenger:
/data/data/com.yahoo.mobile.client.android.im/databases/mesenger.db.
• Calendar:
/data/data/com.android.providers.calendar/databases/calendar.db.
• Thông tin tài khoản: /data/system/accounts.db
Sơ đồ khối xử lý khi nhận tin nhắn điều khiển lấy thông tin dữ liệu ứng dụng hoặc xóa dữ liệu trên SD card được mô tả như trong hình 3.9.
Làm sao biết những gì đang diễn ra xung quanh thiết bị khi không mang bên mình? Hoặc khi muốn dùng thiết bị để chia sẻ âm thanh thực cho người khác. Người dùng có thể sử dụng tính năng lắng nghe chương trình cung cấp bằng cách gởi tin nhắn với lệnh điều khiển thực thi việc lắng nghe âm thanh và gởi kết quả về email để theo dõi. Thuật giải cho chức năng lắng nghe được xây dựng dựa trên việc kích hoạt dịch vụ chạy ngầm tương tác phần cứng thiết bị là microphone để lắng nghe những âm thanh xung quanh thiết bị. File kết quả sẽ được lưu lại sau khoảng thời gian được người dùng cài đặt trước đó và nó sẽ được gởi về email để người dùng có thể theo dõi nếu có kết nối mạng. Có 2 cách để kết thúc hành động lắng nghe của thiết bị là:
• Sau khi được kích hoạt lắng nghe, cảm biến gia tốc được kích hoạt để lắng nghe sự tương tác trên thiết bị. Nếu sự tương tác này lớn hơn độ nhiễu cho phép của ứng dụng và nó xảy ra lớn hơn khoảng thời gian giới hạn, hành động lắng nghe sẽ được kết thúc.
• Hành vi lắng nghe sẽ được kết thúc sau khi hết thời gian lắng nghe mà người dùng đã cài đặt trước.
Bắt đầu
Nhận SMS điều khiển. Kèm mật khẩu điều khiển
Chứng thực mật khẩu
Điện thoại đã rooted Sao lưu tin nhắn/danh
bạ Xóa dữ liệu SD card
Truy cập hệ thống lấy dữ liệu ứng dụng
Kết nối mạng
Gởi email (có đính kèm file thu thập được)
Kết thúc Xóa file thu thập được Sai Đúng Không Có Đúng Sai
Hình 3.9: Sơ đồ khối xử lý khi nhận tin nhắn điều khiển lấy thông tin trên thiếtbị bị
Sơ đồ khối xử lý khi nhận tin nhắn thực thi lắng nghe và điều kiện kết thúc lắng nghe được mô tả trong hình 3.10 và hình 3.11.
Theo hình 3.10, sau khi chứng thực và kiểm tra dịch vụ được kích hoạt hay chưa? Nếu không thỏa sẽ kết thúc; ngược lại, nếu thỏa sẽ tiến hành bật microphone và lắng nghe. Kết quả được ghi vào file có định dạng .3gp. Chương trình sẽ kiểm tra điều kiện kết thúc (được mô tả trong sơ đồ khối 3.11) để kết
Bắt đầu Nhận tin nhắn điều khiển. Kèm mật khẩu chứng thực
Chứng thực mật khẩu
Bật microphone và thực thi lắng nghe
Kết thúc lắng nghe Kết nối mạng Kết thúc Xóa file Gởi email (có file đính kèm)
Sau thời gian phân
đoạn Lưu file với định dạng .3gp
Không Sai
Sai
Đúng
Đúng
Ghi file mới
Đúng Dịch vụ được kích hoạt Đúng Sai Tín hiệu kết thúc Có Sai Đúng
Hình 3.10: Sơ đồ khối xử lý khi nhận tin nhắn điều khiển thực thi lắng nghe
thúc quá trình lắng nghe. Nếu vẫn còn trong điều kiện cho phép, sau khoản thời gian phân đoạn được cài đặt trước, kết quả mỗi phân đoạn này sẽ được gởi về email sau khi kiểm tra kết nối mạng thành công. Đồng thời, sẽ tiến hành ghi kết quả lắng nghe vào một file mới và quay lại vòng lặp trên. Sau khi nhận tín hiệu kết thúc, tức điều kiện kết thúc lắng nghe có kết quả trả về đúng, chương trình sẽ kết thúc hành động lắng nghe.
Bắt đầu
Kết thúc lắng nghe khi có tương
tác với thiết bị Có tương tác với thiết bị Độ nhiễu cho phép Kết thúc sau khi hết thời gian
lắng nghe Kết thúc lắng nghe Kết thúc Sai Đúng Đúng Đúng Đúng Sai Sai Hết thời gian lắng nghe Đúng Sai
Hình 3.11: Sơ đồ khối mô tả điều kiện để kết thúc việc lắng nghe trên thiết bị
Theo sơ đồ khối trong hình 3.11, có hai điều kiện kết thúc lắng nghe, các điều kiện này sẽ được gởi kèm theo sự lựa chọn của người điều khiển lúc nhấn vào nút điều khiển thực thi lắng nghe. Đó là tự động kết thúc khi có tương tác với thiết bị, hoặc là kết thúc khi hết thời gian được cài đặt. Trong điều kiện thứ nhất, chương trình sử dụng hệ cảm biến gia tốc của thiết bị để xác định thiết bị có tương tác hay không và lọc đi các giá trị nhiễu cho phép. Nếu vượt qua các giá trị nhiễu này hoặc điều kiện thứ hai xảy ra, thì tín hiệu kết thúc lắng nghe lập tức được bật lên.
Khi người dùng muốn biết điện thoại của mình đang ở đâu đó quanh họ, hoặc muốn tạm thời ngăn chặn sự tương tác từ người khác, người dùng sẽ nhắn tin điều khiển với lệnh khóa màn hình và phát âm thanh cảnh báo. Giải thuật cho
tính năng này là sau khi nhận SMS và xác thực, chương trình sẽ tiến hành sinh một Activity và hiển thị ra màn hình dạng lock với các ô mã PIN, đồng thời kích hoạt khởi chạy một file nhạc. Vì lý do bảo mật, nên từ phiên bản Android 4.0 trở đi, nút Home trên thiết bị sẽ không được ghi đè lên, vì vậy người dùng có thể sử dụng phím Home để tắt màn hình lock, nhưng âm chuông cảnh báo vẫn còn. Để tắt màn hình lock này và tắt âm cảnh báo, người dùng phải nhập đúng mã PIN vào các ô xác thực trên màn hình hoặc đăng nhập ứng dụng. Sơ đồ khối cho giải thuật này được mô tả như trong hình 3.12.
3.3.3 Tính năng tìm thông tin vị trí thiết bị
Tính năng này được thực thi khi người dùng muốn biết vị trí hiện tại của thiết bị (khi không mang bên mình) và các thông tin về thuê bao của số điện thoại hiện tại.
Để yêu cầu vị trí thiết bị, người dùng nhắn tin có mã lệnh yêu cầu vị trí kèm mật khẩu chứng thực. Sau khi bên nhận nhận và xử lý, kết quả thu được sẽ được gởi về email thiết lập, đồng thời gởi một yêu cầu lên server (kèm thông tin username, password, thông tin vị trí thu thập) để tổng đài số gởi tin nhắn phản hồi về cho bên yêu cầu. Đối với bên nhận SMS yêu cầu, muốn có được vị trí chính xác của thiết bị, chương trình cần sự hỗ trợ từ người dùng bằng cách bật chế độ định vị toàn cầu GPS. Nếu không bật GPS, thì chương trình sẽ lấy vị trí theo thông tin kết nối mạng 3G.
Bên nhận yêu cầu thông tin thuê bao xử lý bằng cách gởi tin nhắn đến tổng đài 1414 để lấy về thông tin thuê bao. Sau khi lấy được các thông tin sẽ gởi kết quả về email cũng như yêu cầu lên server để tổng đài phản hồi về cho bên gởi yêu cầu.
Sơ đồ khối bên nhận SMS và đáp ứng yêu cầu được mô tả trong hình 3.13.
3.3.4 Bảo mật
Phần này chúng tôi sẽ trình bày giải thuật cho 2 phần: bảo mật ứng dụng và bảo mật cho người dùng.
Tính năng bảo mật ứng dụng nhằm ẩn mình và tránh lại việc gỡ cài đặt của người dùng (không dùng các ứng dụng gỡ cài đặt có quyền root user, hoặc không truy cập vào hệ thống thiết bị).
Tính năng bảo mật người dùng cung cấp các chức năng phát chuông cảnh báo khi số lần nhập sai mã PIN đăng nhập lớn hơn n lần (với n được người
Bắt đầu Nhận SMS điều khiển. Kèm mật khẩu chứng thực
Chứng thực mật khẩu điều khiển
Dịch vụ kích hoạt
Hiển thị màn hình khóa và bật âm thanh cảnh báo
Nhập đúng mã PIN ở màn
hình khóa
Tắt âm thanh cảnh báo và tắt màn hình khóa Tắt màn hình khóa (bấm nút Home) Icon ứng dụng ẩn Tin nhắn hiển thị icon ứng dụng Truy cập ứng dụng Kết thúc Nhập đúng mã PIN
Tắt âm thanh cảnh báo Đúng Sai Sai Đúng Có Đúng Có Không Đúng Sai Đúng
Hình 3.12: Sơ đồ khối xử lý khi có tin nhắn điều khiển khóa màn hình và phát âm thanh cảnh báo
dùng cài đặt, mặc định là 3 lần). Hoặc khi điện thoại thay SIM, ứng dụng sẽ tạm khóa màn hình và rung chuông cảnh báo, sau đó ứng dụng lấy vị trí hiện tại, thông tin SIM mới và gởi một cảnh báo lên server để server thực thi nhắn tin cảnh báo về phía số “điện thoại bạn” được thiết lập. Và đặc biệt là tính năng chống trộm sử dụng cảm biến gia tốc của thiết bị. Khi người dùng bật chế độ
Bắt đầu Nhận SMS Password Yêu cầu vị trí/ thông tin thuê bao Phonefinder service enabled Kết thúc Lấy thông tin thuê
bao Gởi email GPS enabled 3G enabled Lấy vị trí thiết bị Sai Sai Sai Đúng Đúng Đúng
Gởi yêu cầu send SMS lên server
Đúng Đúng
Sai Sai
Hình 3.13: Sơ đồ khối bên nhận yêu cầu lấy vị trí thiết bị và thông tin thuê bao
này, nếu có tương tác với thiết bị thì chương trình sẽ phát âm thanh cảnh báo và khóa màn hình.
Giải pháp cho tính năng bảo mật ứng dụng là ẩn icon ứng dụng ngoài màn hình điện thoại hoặc chuyển ứng dụng vào ứng dụng hệ thống nhằm tránh việc gỡ cài đặt thông thường. Để ẩn icon ứng dụng, chỉ cần thực thi chuyển ứng dụng vào trạng thái “disable” mà ứng dụng vẫn tiếp tục hoạt động. Khi hiển thị lại icon, chỉ cần chuyển lại trạng thái về “enable” là ứng dụng sẽ xuất hiện icon trên màn hình điện thoại.
3.3.5 Tương tác service
Người dùng muốn sử dụng ứng dụng phải thực thi các thao tác đăng ký, đăng nhập để hệ thống kiểm soát. Service được xây dựng để cung cấp các cơ
chế cho người dùng đăng ký, đăng nhập để quản lý sau này. Và trong tương lai chúng tôi sẽ tiếp tục phát triển các chức năng điều khiển, quản lý từ giao diện web và người dùng có thể điều khiển điện thoại của mình thông qua web.
Phương thức giao tiếp giữa client và server là HTTP. Web service sử dụng giao thức HTTP cung cấp 4 phương thức GET, POST, PUT, DELETE. Trong