a. Kiến trúc tổng quan UI View Contact Cert Store WebService
PKCS#11 Wrapper Crypto Libs
Hình 3.9: Kiến trúc tổng quan của Secured SMS
Vì phải dùng Token (Soft và Hard) để đăng nhập vào phần mềm và để lấy khóa bí mật thực hiện việc giải mã nội dung, do đó SecureSMS yêu cầu phải có lớp PKCS#11 Wrapper.
Crypto Libs thực hiện các công việc như: sinh cặp khóa đối xứng, mã hóa tin nhắn SMS với chứng thư số của người nhận, giải mã nội dung với khóa bí mật của người sử dụng.
Lớp Contact thực hiện việc đồng bộ hóa danh bạ, lấy chứng thư số của những người đang sử dụng SecureSMS. Các chứng thư số này được lưu trữ trong Cert Store và cả trên hệ thống máy chủ của VDC.
b. Quy trình giải mã và mã hóa SMS
• Mã hóa
63
Compos e SMS
Hình 3.10: Quy trình mã hóa
Qúa trình mã hóa SMS yêu cầu người dùng cung cấp đầy đủ: Nội dung SMS và số điện thoại của người nhận. Ứng dụng sẽ kiểm tra và lấy chứng thư số tương ứng với số điện thoại đã cung cấp từ Cert Store và máy chủ qua các Web-service. Nếu không có chứng thư số tương ứng, quá trình mã hóa không thể thực hiện, người dùng chỉ có thể gửi SMS bình thường.
• Giải mã
Encrypted Encrypted Send Clear
SMS Content SMS Content
Get User s
PIN code Private Private
key Key
Hình 3.11: Quy trình giải mã
Quá trình giải mã cần đến khóa bí mật của người dùng, do đó cần cung cấp chính xác mã PIN của Token cho ứng dụng. Để đảm bảo tính bảo mật, mỗi lần đọc nội dung đã
mã hóa đều cần nhập mã PIN, kể cả nội dung đã giải mã trước đó.
c. Các chuẩn và thư viện áp dụng
- PKCS#11: bộ API giao tiếp với Token và SmartCard.
- OpenSSL: thư viện mã hóa mã nguồn mở thực thi các giao thức SSL/TLS, được viết bằng ngôn ngữ C.
- Bouncy Castle: thư viện mã hóa mã nguồn mở được viết bằng ngôn ngữ
Java.
- DroidSMS: ứng dụng quản lý SMS mã nguồn mở cho Android.