Công nghệ này cho phép các nhà khai thác mạng di động phát triển và cung cấp các dịch vụ giá trị gia tăng, các ứng dụng thương mại điện tử cho các thuê bao của họ một cách mềm dẻo và hiệ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
Trường Đại học Công nghệ ––––––––––oOo––––––––––
Người hướng dẫn khoa học:
PGS.TS Đoàn Văn Ban
Hà Nội - 2006
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, các số liệu và kết quả nghiên cứu nêu trong luận văn là trung thực!
Hà Nội, tháng 10 năm 2006
Phạm Văn Chiến
Trang 3LỜI CẢM ƠN
Tôi muốn gửi lời cám ơn chân thành tới tất cả những ng-ời đã
hỗ trợ và giúp đỡ tôi trong quá trình hoàn thành quyển luận văn này
Tôi muốn gửi lời cám ơn đặc biệt tới PGS TS Đoàn Văn Ban, ng-ời đã gợi ý cho tôi h-ớng nghiên cứu của đề tài, ng-ời
đã đ-a ra những nhận xét quý giá và trực tiếp h-ớng dẫn tôi trong quá trình nghiên cứu
Tôi xin cám ơn toàn thể đồng nghiệp tại Trung tâm Công nghệ Thông tin - Học Viện Công nghệ B-u chính Viễn thông, đơn
vị mà tôi đang công tác, đã có những giúp đỡ cho tôi trong quá trình công tác và học tập
Cuối cùng, tôi xin gửi những lời cám ơn chân thành nhất tới cha
mẹ, anh em và bè bạn của tôi, những ng-ời đã có nhiều động viên, khuyến khích tôi trong cuộc sống cũng nh- trong học tập
Hà nội 10 -2006
phạm Văn chiến
Trang 4MỤC LỤC
MỞ ĐẦU 9
Chương 1 - CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG 10
1.1 Tổng quan về thị trường di động 10
1.1.1 Sự tăng trưởng thuê bao di động trên thế giới 10
1.1.2 Bùng nổ mạng di động tại Việt Nam 12
1.1.3 Nhu cầu sử dụng dịch vụ của các thuê bao di động 13
1.2 Tổng quan về các công nghệ phát triển dịch vụ cho thiết bị di động 13
1.2.1 WAP (Wireless Application Protocol) 14
1.2.2 J2ME (Java 2 Mobile Edition) 14
1.2.3 Mobile AppForge 15
1.2.4 SIM Toolkit 15
1.3 Kết luận 16
Chương 2 - KIẾN TRÚC VÀ GIẢI PHÁP TRÊN NỀN CÔNG NGHỆ SIM TOOLKIT 17
2.1 SIM Toolkit 17
2.1.1 Khái niệm về SIM Toolkit 17
2.1.2 Các chức năng của SIM Toolkit 17
2.1.3 Nguyên lý hoạt động của thẻ SIM 18
2.1.4 Kiến trúc SIM Toolkit Framework 20
2.1.5 Các cơ chế của SIM Toolkit 22
2.1.6 Công nghệ OTA và ứng dụng trong SIM Toolkit 25
2.1.7 File dữ liệu GSM 27
2.1.8 Tính bảo mật trong SIM Toolkit 29
2.1.9 Các công cụ lập trình cho SIM 31
2.2 Java Card 32
2.2.1 Định nghĩa 32
2.2.2 Các thành phần của Java Card [1] 33
2.2.3 Mô hình chuyển đổi từ file nguồn Java sang Applet trong SIM 34
2.2.4 Java Card Applet và Java Card Runtime Environment 35
2.2.5 Các hàm chuẩn của Java Card 37
2.2.6 Java Card RMI 40
2.3 SIM Toolkit Applet 41
2.3.1 Định nghĩa 41
2.3.2 Cấu trúc SIM Toolkit Applet 41
2.4 Mô hình phát triển ứng dụng SIM Toolkit 43
2.4.1 Mô hình phát triển ứng dụng 43
2.4.2 Các bước xây dựng phần mềm 45
2.5 Lập trình với các hàm giao diện của SIM Toolkit 47
2.5.1 Tạo và gửi lệnh Proactive Command 47
2.5.2 Các lệnh quản lý sự kiện 48
2.5.3 Đọc nội dung file GSM 48
2.5.4 Nhận và gửi bản tin SMS 48
2.5.5 Mã hoá và giải mã dữ liệu 49
2.6 Kết luận 50
Chương 3 - XÂY DỰNG HỆ THỐNG THANH TOÁN ĐIỆN TỬ VÀ TRA CỨU THÔNG TIN TÀI KHOẢN QUA NGÂN HÀNG NGOẠI THƯƠNG VIỆT NAM 51
3.1 Giới thiệu bài toán 51
Trang 53.1.1 Yêu cầu bài toán 52
3.1.2 Chức năng của hệ thống 52
3.2 Phân tích thiết kế hệ thống 52
3.2.1 Mô hình kiến trúc hệ thống 52
3.2.2 Mô hình chức năng 54
3.2.3 Lưu đồ hoạt động của một phiên thực hiện thanh toán cước 55
3.3 Thiết kế giao diện trên điện thoại di động 55
3.4 Xây dựng chương trình thử nghiệm 56
3.4.1 Xây dựng các mô đun ứng dụng trong SIM 56
3.4.2 Các mô đun của ứng dụng trên STK Gateway 57
3.5 Một số giao diện chương trình ứng dụng trên điện thoại 60
3.5.1 Giao diện chính của ứng dụng 60
3.5.2 Giao diện truy vấn thông tin tài khoản VCB 61
3.5.3 Giao diện xem thông tin cước của thuê bao MobiFone 62
3.5.4 Giao diện thanh toán cước thuê bao MobiFone qua VCB 63
3.6 Triển khai thử nghiệm 64
3.7 Kết luận 64
KẾT LUẬN 65
TÀI LIỆU THAM KHẢO 67
PHỤ LỤC 68
Phụ lục A – Danh sách tham số trong lệnh Proactive Command 68
Phụ lục B – Cấu trúc thông tin trong Terminal Profile 70
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
BER-TLV Basic Encoding Rules-Tag Length Value
EEPROM Electrically Erasable Programmable Read-Only Memory
ETSI European Telecommunications Standards Institute
Trang 7LSA Localised Service Area
SMS-PP Short Message Service – Point to Point SoLSA Support of Localised Service Area
USSD Unstructured Supplementary Service Data
Trang 8DANH MỤC CÁC HÌNH VẼ
Hình 1 Biểu đồ về tốc độ tăng trưởng thuê bao di động 10
Hình 2 Chia sẻ thị trường di động trên thế giới 11
Hình 3 Tỷ lệ phân chia thị phần mạng di động Việt Nam năm 2005 12
Hình 4 Kiến trúc thẻ SIM trên điện thoại di động 19
Hình 5 Hoạt động của ứng dụng trên thẻ SIM 19
Hình 6 Giao tiếp giữa thẻ SIM và thiết bị di động 20
Hình 7 Kiến trúc và mô hình hoạt động trên nền SIM Toolkit 20
Hình 8 Kiến trúc của Applet Triggerring 21
Hình 9 Cấu trúc BER-TLV theo chuẩn 3GPP-TS 03.48 22
Hình 10 Kiến trúc hệ thống OTA 26
Hình 11 Cấu trúc file dữ liệu GSM 28
Hình 12 Mô hình bảo mật trong SIM Toolkit 29
Hình 13 Cấu trúc tổng thể của nền Java 32
Hình 14 Kiến trúc tổng quan của Java Card 33
Hình 15 Quá trình biến đổi file Java thành Applet trong Smart Card 34
Hình 16 Đặc tính bảo mật trong Java Card 36
Hình 17 Cấu trúc APDU điều khiển 37
Hình 18 Kiến trúc Java Card RMI 40
Hình 19 Mô hình hệ thống ứng dụng trên nền SIM Toolkit 43
Hình 20 Qui trình xây dựng ứng dụng SIM Toolkit 45
Hình 21 Kiến trúc tổng thể của hệ thống 53
Hình 22 Mô hình chức năng nghiệp vụ 54
Hình 23 Lưu đồ hoạt động của một phiên thực hiện thanh toán cước 55
Hình 24 Giao diện chính của ứng dụng trên di động 60
Hình 25 Giao diện truy vấn thông tin tài khoản VCB 61
Hình 26 Giao diện xem thông tin cước của thuê bao MobiFone 62
Hình 27 Thanh toán cước thuê bao MobiFone qua tài khoản VCB 63
Trang 9MỞ ĐẦU
Một trong những nhu cầu thiết yếu của con người hiện nay là nhu cầu được trao đổi thông tin Cùng với sự phát triển như vũ bão của các thành tựu khoa học công nghệ nói chung, công nghệ thông tin được xem là một trong những ngành công nghệ mũi nhọn Nhờ đó, nhu cầu thông tin của con người ngày càng được thoả mãn
Các thiết bị thông tin cố định được thay thế dần bằng các thiết bị cá nhân di động đang trở nên hết sức quen thuộc với cuộc sống hiện đại ngày nay Đặc biệt điện thoại di động đã trở thành phương tiện thông tin liên lạc tiện lợi không thể thiếu Hiện nay, số lượng người sử dụng đang tăng nhanh, nhu cầu sử dụng các dịch
vụ mới cũng ngày càng tăng Bởi vậy, thị trường thông tin dành cho các thiết bị di động đầu cuối ngày càng phát triển
Các thiết bị đầu cuối di động như điện thoại cầm tay, máy nhắn tin, truyền hình Internet, PDA đã và đang trở nên rất phổ biến Với sự phát triển các thiết bị di động, các công nghệ sử dụng để xây dựng các ứng dụng trên các thiết bị này cũng thay đổi theo từng ngày
Các ứng dụng được xây dựng cho các thiết bị di động đầu cuối dựa vào bộ công cụ phát triển trên thiết bị đó Các bộ công cụ thì có nhiều nhưng có thể chia ra làm hai dòng công nghệ chính là các công nghệ của Microsoft và công nghệ sử dụng các phiên bản Java của Sun Microsystems Với khả năng lập trình mạnh và phổ biến của ngôn ngữ Java, việc xây dựng, phát triển các ứng dụng đang trở nên đơn giản hơn nhiều
Đề tài “Nghiên cứu công nghệ SIM Toolkit để xây dựng hệ thống dịch vụ cho
thiết bị di động” nhằm nghiên cứu về công nghệ lập trình ứng dụng cho thẻ SIM
của điện thoại di động phase 2+ Đây là một công nghệ còn khá mới mẻ tại Việt Nam, là công cụ dành cho các nhà khai thác mạng di động (Network Operator) Công nghệ này cho phép các nhà khai thác mạng di động phát triển và cung cấp các dịch vụ giá trị gia tăng, các ứng dụng thương mại điện tử cho các thuê bao của họ một cách mềm dẻo và hiệu quả
Với mục tiêu phát triển các dịch vụ cho thiết bị di động, đề tài tập trung nghiên cứu các đặc tính của công nghệ SIM Toolkit trên nền Java Từ đó, đưa ra các khuyến nghị áp dụng cho các nhà quản lý và khai thác mạng di động ở Việt Nam để tăng lợi nhuận từ việc gia tăng các dịch vụ trên mạng viễn thông
Nội dung của luận văn gồm ba chương:
Chương 1: Công nghệ phát triển ứng dụng trên thiết bị di động
Chương 2: Kiến trúc và giải pháp trên nền công nghệ SIM Toolkit
Chương 3: Xây dựng hệ thống thanh toán điện tử và tra cứu thông tin tài khoản qua Ngân hàng Ngoại thương Việt Nam
Trang 10
Chương 1 - CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG TRÊN
THIẾT BỊ DI ĐỘNG
1.1 Tổng quan về thị trường di động
1.1.1 Sự tăng trưởng thuê bao di động trên thế giới
Trong những năm trở lại đây, thị trường các thiết bị di động đầu cuối phát triển rất mạnh mẽ, đã tạo ra một bước ngoặt lớn trong lĩnh vực thông tin di động và truyền thông Hiện nay, có thể liệt kê ra có rất nhiều hãng cung cấp các thiết bị di động đầu cuối nổi tiếng như điện thoại di động Nokia, Motorola, Samsung, Alcatel, Fujitsu, Mitsubishi, Siemens, Sony Ericssion và các hãng máy tính cầm tay như: Palm, Pocket PC
Theo thống kê [3] của AJUG (Australia Java User Group Inc), thị trường điện thoại di động đã tăng trưởng rất mạnh trong năm 2005 Số liệu thống kê cho thấy, số điện thoại di động bán được trên toàn cầu là 1.906 triệu chiếc Dự đoán số lượng bán ra trong trong năm 2006 sẽ là 2.185 triệu chiếc
0 500 1000 1500 2000 2500
Millions of Units
Hình 1 Biểu đồ về tốc độ tăng trưởng thuê bao di động
Ngoài ra, số thuê bao đầu cuối di động đặc biệt tăng mạnh tại thị trường Châu Á, tiếp theo là thị trường Châu Mỹ Trong khi đó, thị trường Tây Âu vẫn có dấu hiệu bão hoà Biểu đồ trên chính là dự báo về tốc độ tăng số thuê bao từ năm
2001 tới năm 2006
Theo nghiên cứu [3], Nokia vẫn luôn là nhà cung cấp các thiết bị đầu cuối di động lớn nhất thế giới với trên 1/3 thị phần toàn cầu như thể hiện bởi biểu đồ dưới, Motorola theo sau với 14,8% thị trường tiêu thụ, còn Ericsson ít hơn với 8%
Trang 11Hình 2 Chia sẻ thị trường di động trên thế giới
Sản phẩm của các hãng, các nhà cung cấp thiết bị rất phong phú, đa dạng, nhiều chủng loại tính năng khác nhau nhưng có thể phân ra làm hai loại chính là:
Điện thoại di động: Nokia, Motorola, Samsung, Siemens, v.v…
Máy tính cầm tay: Palm, Pocket PC, v.v…
Xu hướng phát triển của các loại thiết bị cầm tay là tăng các tính năng của thiết bị, để các thiết bị có khả năng hoạt động như một máy tính, ngoài các tính năng truyền thống còn có các tính năng mới như: truy cập Internet, khả năng nạp và chạy các ứng dụng mang tính thương mại như: tìm kiếm thông tin, thương mại điện
tử
Mục tiêu chính của các nhà quản lý và khai thác mạng di động (Network Operator) là tăng số lượng thuê bao Điều này chỉ có thể nhận được bằng sự kết hợp các chiến lược như:
Tăng độ tin cậy và trung thành của khách hàng
Tăng lưu lượng sử dụng thông qua các dịch vụ giá trị gia tăng hấp dẫn trên mạng lưới
Tạo sự khác biệt qua hệ thống chăm sóc khách hàng và cách thức cung cấp dịch vụ
Xây dựng các dịch vụ giá trị gia tăng tương thích, độc lập với thiết bị di động của khác hàng
Trong những năm gần đây, công nghệ dẫn đầu để cung cấp các dịch vụ giá trị gia tăng trong mạng GSM và đáp ứng được các điều kiện cần thiết trên là công nghệ SIM Toolkit Công nghệ này đã được chuẩn hoá quốc tế trong GSM 11.14 Việc áp dụng công nghệ SIM Toolkit cho phép các nhà quản trị mạng di động có thể cung cấp cho các thuê bao của mình một loạt các ứng dụng đa dạng, phong phú
và mềm dẻo
Trang 12Vào năm 1999, có khoảng 20% nhà quản trị mạng di động (Network Operator) GSM sử dụng công nghệ SIM Toolkit sử dụng nền này để phân phối các dịch vụ giá trị gia tăng của họ, và vào cuối năm 2000 con số này đã là 50%
Theo thống kê của tổ chức SIMAlliance vào cuối năm 2005, xấp xỉ 90% tất
cả các Handset GSM đã tương thích với chuẩn phase 2+ Đây chính là cơ hội rất lớn cho phép phát triển các dịch vụ dựa trên công nghệ này
1.1.2 Bùng nổ mạng di động tại Việt Nam
Thị trường thông tin di động trong nước trong thời gian gần đây đang rất sôi động Ngoài hai nhà cung cấp dịch vụ thông tin di động truyền thống là GPC và VMS sử dụng công nghệ GMS, mới đây Viettel cũng đã chính thức tham gia và chia sẻ thị trường này với số lượng thuê bao lên đến 2 triệu chỉ trong vòng hơn một năm Ngoài ra, Công ty Cổ phần Viễn thông Sài Gòn - SPT cũng đã đưa vào khai thác hệ thống điện thoại di động theo công nghệ CDMA từ năm 2003, có tính bảo mật cao và nhiều triển vọng, làm cho thị trường thông tin di động nhộn nhịp hẳn lên Dự báo sẽ có một cuộc cạnh tranh vô cùng sôi động giữa các nhà cung cấp dịch
vụ trong thời gian tới Trong năm nay, EVN Telecom và HaNoi Telecom cũng chính thức khai trương
Theo số liệu của Viện Chiến lược Bưu chính Viễn thông và Công nghệ thông tin vào cuối năm 2005, bốn doanh nghiệp viễn thông di động đang chia sẻ thị phần tại Việt Nam thì VinaPhone chiếm 48,72%, tiếp đó là MobiFone (35,63%), Viettel (11,41%) và SFone (4,24%) Viettel đã đạt được 2 triệu thuê bao di động tính đến thời điểm hết năm
Hình 3 Tỷ lệ phân chia thị phần mạng di động Việt Nam năm 2005
Năm 2005, theo số liệu điều tra của tạp chí e-Chip, trên 50% số người đang dùng điện thoại di động cho biết sẽ lựa chọn mạng MobiFone, trên 28% chọn VinaPhone và chỉ 4% chọn S-Fone Đối với những người hiện chưa dùng điện thoại
di động, trên 43% lựa chọn MobiFone, gần 28% lựa chọn VinaPhone, 25% lựa chọn Viettel và 2% lựa chọn S-Fone
Trang 131.1.3 Nhu cầu sử dụng dịch vụ của các thuê bao di động
Để áp dụng khi triển khai ứng dụng vào thị trường Việt Nam cần chú ý đến yếu tố nhu cầu của khách hàng Điều đó sẽ quyết định đến hướng áp dụng cũng như qui mô phạm vi của ứng dụng Thị trường viễn thông Việt Nam còn khá non trẻ trong lĩnh vực không dây
Hiện nay, có hai loại dịch vụ đang được chú trọng là dịch vụ giá trị gia tăng
và dịch vụ thương mại điện tử trên mạng di động
1.1.3.1 Dịch vụ giá trị gia tăng
Các dịch vụ giá trị gia tăng trên mạng di động đang được phát triển mạnh như các dịch vụ cho phép người sử dụng điện thoại di động tải các ứng dụng như Ringtones, Logo, hoặc các dịch vụ tra cứu thông tin như thông tin ngân hàng, thời tiết, chương trình vô tuyến Đặc điểm của loại hình dịch vụ này hoạt động theo mô hình Client/Server Các dịch vụ này có thể được cập nhật trên Server của nhà cung cấp dịch vụ
Tuy nhiên, xu hướng sắp tới là thay thế các loại hình dịch vụ tra cứu truyền thống (tra cứu qua nhắn tin SMS) bằng việc xây dựng một ứng dụng trong SIM Ứng dụng này đưa ra dưới dạng thực đơn thân thiện với người sử dụng Nhờ đó, nó khắc phục được một số hạn chế như người dùng không phải nhớ cấu trúc lệnh và từ khoá Hơn nữa, việc kiểm tra lỗi dịch vụ có thể được đưa ra ngay khi người sử dụng nhập thông tin từ thiết bị di động
1.1.3.2 Dịch vụ thương mại điện tử
Các dịch vụ thương mại điện tử qua thiết bị di động hiện nay gặp một khó khăn lớn như sự hạn chế về vấn đề bảo mật Với thế mạnh của mình, ứng dụng SIM Toolkit đã khắc phục được hạn chế này
Song song với công nghệ WAP, công nghệ SIM Toolkit được đánh giá là có tiềm năng lớn trong việc phát triển dịch vụ thương mại điện tử trên mạng di động
1.2 Tổng quan về các công nghệ phát triển dịch vụ cho thiết bị di động
Cùng với sự phát triển của các loại thiết bị di động, các công nghệ áp dụng
để tạo lập ứng dụng trên mạng di động phát triển rất nhanh chóng, Nhờ đó, đã tạo ra môi trường thuận lợi trong việc phát triển ứng dụng một cách đa dạng và phong phú
Tuy ra đời muộn so với hệ thống thông tin hữu tuyến nhưng tốc độ phát triển của hệ thống mạng thông tin di động cao hơn rất nhiều Nguyên nhân là do hệ thống này phù hợp với xu hướng phát triển của thời đại và nhu cầu của thị trường
Theo biểu đồ trên các thuê bao sử dụng công nghệ điện thoại tế bào tăng trưởng nhanh Công nghệ GSM được sử dụng chủ yếu ở Tây Âu, và Châu Á, phần lớn ở Trung Quốc Công nghệ CDMA tiếp tục được áp dụng rộng rãi tại Mỹ và bắt đầu thâm nhập thị trường Châu Á với tốc độ khá nhanh Hai chuẩn về thông tin di
Trang 14động tế bào khác là IS-136 TDMA và chuẩn PDC (Personal Digital Cellular) của Nhật không được phát triển mạnh trên thị trường và đang có dấu hiệu suy giảm
Ngày nay, nhiều hệ thống điện thoại tế bào trên thế giới từ thế hệ thứ hai đang chuyển dần sang điện thoại thế hệ thứ ba để có thể cung cấp các dịch vụ mới như: Wireless Video, Internet Web Browsing Ít nhất có hai chuẩn 3G được triển khai là: W-CDMA, chuẩn này được biết đến ở Châu Âu như hệ thống UMTS (Universal Mobile Telephone Service) và CDMA2000 là chuẩn được phát triển từ mạng CDMA-One [3]
Sau đây là một vài bộ công cụ, giao thức chính hiện đang phổ biến trên thế giới được áp dụng để xây dựng ứng dụng cho các các thiết bị di động đầu cuối
1.2.1 WAP (Wireless Application Protocol)
WAP [7] ra đời từ năm 1997 với mục đích tích hợp dịch vụ World Wide Web trong điện thoại di động Nokia, Motorola, Ericssons, Unwire Planet chính là các nhà cung cấp điện thoại di động đi đầu trong việc phát triển các phiên bản đầu tiên của WAP
WAP là một chuẩn hỗ trợ cho lập trình ứng dụng không dây Phần quan trọng nhất của WAP là WAP Gateway Wap Gateway thực chất là một cổng giao tiếp giữa mạng Wireless và mạng Internet Như đã biết, trước khi có Wap Gateway thì việc trao đổi thông tin giữa hai mạng này là rất khó khăn Internet là một kho dữ liệu khổng lồ trong khi các ứng dụng không dây lúc đó chưa có cách nào để tiếp cận với kho dữ liệu ấy Wap Gateway ra đời nhằm giải quyết vấn đề đó Như vậy, Wap Gateway là một cầu nối giữa mạng không dây và Internet
Thiết bị di động muốn truy nhập tới Internet cần quay số tới WAP Gateway Sau đó, điện thoại sẽ được cung cấp một địa chỉ IP và có thể truy nhập Internet như một máy tính bình thường WAP ra đời tạo ra một hướng mở mới cho phép phát triển các ứng dụng mới cho điện thoại di động nói riêng hay các thiết bị di động đầu cuối nói chung
Hiện nay tại Việt Nam, ba nhà cung cấp điện thoại di động chính là GPC, VMS và Viettel cũng đã đưa Wap Gateway 2.0 vào sử dụng Đó chính là những thuận lợi rất lớn để phát triển các ứng dụng không dây cho các đầu cuối di động
1.2.2 J2ME (Java 2 Mobile Edition)
J2ME [9] không phải là công nghệ tạo lập ứng dụng cho thiết bị di động đầu tiên dựa trên nền Java Trước đó, hãng Sun Microsystems đã đưa ra hai công nghệ
là PersonalJava và EmbeddedJava, cho phép xây dựng ứng dụng Java chạy trên cấu hình phần cứng tương đối lớn
Các ứng dụng J2ME chạy trên các thiết bị cầm tay phải có khả năng thích ứng về các hạn chế của cấu hình thiết bị như dung lượng bộ nhớ thấp, màn hình hiển thị nhỏ, bộ vi xử lý tốc độ thấp Khác với SIM Toolkit, ứng dụng J2ME được cài đặt trên thiết bị cầm tay Trong khi đó, ứng dụng SIM Toolkit được cài đặt trên SIM
Trang 15J2ME được cấu thành bởi ba thành phần chính: Configuration, Profile và các gói tuỳ chọn
Configuration chính là môi trường chạy Java đầy đủ, bao gồm: máy ảo Java,
bộ mã giao tiếp, tập các lớp cơ bản của Java
Profile kết hợp với Configuration để tạo thành bộ phận hoàn chỉnh có thể hỗ trợ đầy đủ cho thiết bị di động Hầu hết Profile đều định nghĩa lớp giao diện cho phép xây dựng ứng dụng giao tiếp
Các gói tuỳ chọn là một tập các API có khả năng thực hiện các nhiệm vụ không thuộc Configuration và Profile cụ thể nào Ví dụ các lớp hỗ trợ Bluetooth được xem là một trong những lớp tuỳ chọn
1.2.3 Mobile AppForge
Mobile AppForce [3] do Microsoft phát triển với công cụ là MobileVB được tích hợp trực tiếp trong Visual Basic tạo ra công cụ hỗ trợ phát triển các ứng dụng cầm tay Mobile AppForce hỗ trợ trên 90% thiết bị cầm tay trên thế giới với 3 platform là Palm OS, Pocket PC và Symbian OS
Ưu điểm nổi bật của Mobile AppForce là dễ sử dụng do phát triển trên môi trường Visual Basic Nó cho phép phát triển nhiều loại ứng dụng: các ứng dụng chạy trên các máy đơn hay các ứng dụng mạng kết nối qua mạng không dây phục
vụ cho các lĩnh vực thư tín, thương mại điện tử, tra cứu thông tin Tuy nhiên, MobileVB có hạn chế là hỗ trợ chủ yếu các loại máy tính cầm tay như Palm hay Pocket PC Trong khi đó, điện thoại di động chỉ được hỗ trợ ở một số loại như Nokia, Communicator 9210, Sony Ericsson P800
1.2.4 SIM Toolkit
SIM Toolkit [3] là một công cụ hữu hiệu dành cho các nhà khai thác mạng di động để phát triển và cung cấp các dịch vụ giá trị gia tăng tới các thuê bao của họ một cách nhanh chóng và hiệu quả SIM Toolkit bao gồm một tập các lệnh và thủ tục cung cấp các đặc tính hỗ trợ các ứng dụng trên thẻ SIM, cho phép các ứng dụng này có thể tương tác và điều khiển bất kỳ thiết bị di động nào hỗ trợ các đặc tính đó Các đặc tính chính này bao gồm: Profile Download, Proactive SIM, tải dữ liệu về SIM, lựa chọn thực đơn, điều khiển cuộc gọi, bảo mật
Việc so sánh SIM Toolkit với công nghệ khác để phát triển các dịch vụ giá trị gia tăng trên điện thoại di động thường được các chuyên gia so sánh với công nghệ WAP (Wireless Application Protocol)
WAP và SIM Toolkit, cả hai đều có thể cung cấp cơ sở hạ tầng cho thương mại điện tử di động nhưng theo hai xu hướng khác nhau
SIM Toolkit được sử dụng cho các ứng dụng cần độ tin cậy cao như Banking Mobile và các dịch vụ thông tin tĩnh hơn như Hotline, Company Dictionary và Yellow Page WAP sẽ được sử dụng cho các dịch vụ động hơn như: tìm kiếm Internet, các dịch vụ truy nhập thông tin thay đổi
Trang 16Hệ thống SIM Toolkit có nhiều ưu điểm hơn so với WAP Dịch vụ “Mobile Banking” trên hệ thống WAP đã tồn tại nhưng còn nhiều điểm hạn chế như: tính cồng kềnh (extremely niche) trong cài đặt, giới hạn về giá cả cao, yêu cầu mô hình thiết bị di động mới Ngoài ra, trong vấn đề bảo mật các dịch vụ thương mại điện tử, WAP thực sự không an toàn Kiến trúc bảo mật của WAP là chưa được chứng minh còn SIM Toolkit sử dụng công nghệ thẻ thông minh (Smart Card) đã được chứng minh và đảm bảo cho các ứng dụng thương mại điện tử
Tuy nhiên, theo các nhà phân tích cả SIM Toolkit và WAP sẽ cùng tồn tại như các nền khác nhau cho các ứng dụng thương mại điện tử trong nhiều năm tới
1.3 Kết luận
Hiện nay, trên thị trường Việt Nam có 06 nhà cung cấp dịch vụ di động chính đó là VinaPhone, MobiFone, SFone, Viettel, EVN Telecom, Hanoi Telecom Trong đó VinaPhone, MobiFone và Viettel có các đầu cuối di động được sử dụng theo chuẩn GSM với tất cả các thiết bị đầu cuối này đều thuộc thế hệ 2 và hỗ trợ các dịch vụ giá trị gia tăng có hỗ trợ SIM Toolkit Vì vậy, việc triển khai hệ thống SIM Toolkit rất có tính khả thi, khách hàng chỉ cần mua một thẻ SIM mới có hỗ trợ SIM Toolkit, các nhà cung cấp dịch vụ sẽ nạp các ứng dụng mới vào SIM thông qua OTA cho các thuê bao
Số lượng người sử dụng điện thoại di động theo chuẩn GSM tại Việt Nam rất lớn, khoảng gần 10 triệu thuê bao Do đó, việc phát triển các ứng dụng SIM Toolkit
là một hướng đi mới và rất có triển vọng Bất kỳ nhà khai thác nào triển khai công nghệ SIM Toolkit sớm sẽ rất thuận lợi cho việc cạnh tranh nhằm thu hút các thuê bao về phía mình Công nghệ này cho phép cung cấp các dịch vụ mới nhanh chóng, kích thích nhu cầu sử dụng dịch vụ của khách hàng, tăng doanh thu cho các nhà khai thác mạng
Từ những phân tích, so sánh giữa các công nghệ nền tảng đã nêu ở phần trên, việc xây dựng ứng dụng sẽ tập trung vào các điểm mấu chốt sau:
Nghiên cứu công nghệ SIM Toolkit trên nền Java, phân tích khả năng đáp ứng yêu cầu về tính bảo mật
Xây dựng mô hình hệ thống kết nối theo chuẩn J2EE áp dụng cho bài toán thương mại điện tử trên thiết bị di động
Từ kết quả đạt được đưa ra các khuyến nghị áp dụng cho các nhà quản lý và khai thác mạng di động ở Việt Nam để tăng lợi nhuận trong việc gia tăng các dịch
vụ trên mạng viễn thông
Trang 17Chương 2 - KIẾN TRÚC VÀ GIẢI PHÁP TRÊN NỀN CÔNG
NGHỆ SIM TOOLKIT
2.1 SIM Toolkit
2.1.1 Khái niệm về SIM Toolkit
Với xu hướng tích hợp các dịch vụ, một chiếc điện thoại di động không chỉ
sử dụng thông tin đơn thuần nữa mà được tích hợp nhiều chức năng khác như: nhắn tin, tra cứu thông tin, tải dữ liệu trên mạng, truy cập mạng Internet Các dịch vụ trên được xây dựng dựa trên việc tích hợp các công nghệ khác nhau như: SMS, WAP, J2ME, SIM Toolkit [3]
SIM Toolkit bao gồm một tập các lệnh và thủ tục cung cấp các đặc tính hỗ trợ các ứng dụng trên thẻ SIM, cho phép các ứng dụng này có thể tương tác và điều khiển bất kỳ thiết bị di động nào hỗ trợ các đặc tính đó Các đặc tính chính này bao gồm: Profile Download, Proactive SIM, tải dữ liệu về SIM, lựa chọn thực đơn, điều khiển cuộc gọi, bảo mật
Nhờ những đặc tính trên, ứng dụng được nạp vào SIM thuận lợi qua OTA (Over The Air) mà không cần khách hàng phải mang thẻ SIM đến các đại lý Hơn nữa, dựa trên công nghệ SIM Toolkit, giao diện của ứng dụng được xây dựng thân thiện với người dùng và đặc biệt là cho phép xây dựng các ứng dụng yêu cầu tính bảo mật cao
2.1.2 Các chức năng của SIM Toolkit
Mô đun nhận dạng thuê bao hay SIM (Subscriber Identify Module) được giới thiệu cách đây hơn 10 năm trước Ban đầu, nó được định nghĩa giống như một mô đun bảo mật sử dụng cho mục đích nhận thực người dùng với một bộ nhớ khá nhỏ cho dữ liệu người dùng và mạng như: các số điện thoại, tên thuê bao Thêm vào đó, các SIM ngày nay có khả năng trở thành một nền cho các dịch vụ giá trị gia tăng
bằng cách sử dụng một micro-computer có trong SIM Ý tưởng sử dụng SIM giống
như một máy tính cá nhân, có thể xử lý các thông tin nhận được qua OTA (Over The Air), được thảo luận lần đầu tiên trong nhóm chuyên gia SIM (SIM Experts Group), tiền thân của nhóm SMG9 năm 1991 Ý tưởng này được phát triển xa hơn bởi các nhà quản lý và khai thác mạng GSM bằng việc dữ liệu được cập nhật vào SIM qua OTA (Over The Air)
Mục tiêu của SIM Toolkit [3,8] bao gồm các cơ chế cho phép:
Có thể hiển thị Text từ SIM lên thiết bị hiển thị của Mobile Equipment
Khởi tạo cuộc gọi tới một số được lưu trong SIM
Gửi một điều khiển dịch vụ bổ sung SS (Supplementary Service), chuỗi USSD (Unstructured Supplementary Service Data) hay một bản tin SMS
Chơi một bản nhạc
Trang 18 Thiết lập một giao tác với người sử dụng
Cung cấp thông tin nội bộ từ ME tới SIM
Cho phép các bản tin hỗ trợ người dùng được hiển thị nếu được yêu cầu
Cho phép thiết lập một kênh GPRS độc lập để trao đổi dữ liệu trong suốt giữa ứng dụng trong SIM và một thực thể ngoài mạng
Dựa trên cơ sở các đặc tính của SIM Toolkit, một ứng dụng trên SIM có thể được xây dựng với các chức năng như:
Cung cấp một bản tin SMS đầy đủ tới thiết bị di động sử dụng SIM và yêu cầu thiết bị di động gửi bản tin này
Tải dữ liệu tới SIM từ mạng Có thể là một ứng dụng mới được nạp vào SIM, cũng có thể là dữ liệu hay các lệnh cho các ứng dụng SIM Việc tải này được thực hiện thông qua một kênh SMS hay một kênh riêng GPRS nếu được thiết bị di động hỗ trợ
Điều khiển các cuộc gọi thông minh thông qua các số đã được khách hàng sử dụng Do đó, cuộc gọi có thể được thay đổi hay bị khoá bởi SIM
Nhập các thay đổi về thông tin nội bộ, việc định danh tế bào “cell identity”, trạng thái cuộc gọi “call status”, trạng thái chung tới ứng dụng trong SIM
Thực hiện tìm kiếm thông tin trên Internet qua địa chỉ URL bằng cách sử dụng một trình duyệt siêu nhỏ (micro-browser) trong SIM
Ứng dụng của bộ công cụ SIM Toolkit đầu tiên là dịch vụ
“Cellnet/Barclaycard Remote Banking” được khai trương vào 05/1997 tại Thụy Điển trên thẻ SIM của GemXplore
Năm 1997, dịch vụ thanh toán từ xa Telia/PostGirot cũng được khai trương trên các thẻ SIM của GemXplore Tháng 06/1998, SmartTone HongKong khai trương dịch vụ thông tin SIM Toolkit Châu Á đầu tiên cũng trên thẻ SIM của GemXplore
Hiện nay, trong hệ thống thông tin di động thế hệ hai, SIM Toolkit được định nghĩa trong chuẩn GSM 11.14 Từ phiên bản 04 trở đi, GSM 11.14 được thay bằng chuẩn 3GPP 31.111 Trong chuẩn này, định nghĩa các đặc tính Universal SIM Application Toolkit (USAT) cho mạng di động thế hệ thứ ba
2.1.3 Nguyên lý hoạt động của thẻ SIM
Kiến trúc thẻ SIM [3] gồm có một CPU có 8 bit hoặc 16 bit chạy với tốc độ 3.7MHz, với 1K RAM và có bộ nhớ EEPROM ít nhất là 16K Hiện nay, các loại thẻ SIM thường có bộ nhớ 32K hoặc 64K và có CPU lên tới 32 bit
Trang 19Hình 4 Kiến trúc thẻ SIM trên điện thoại di động
Ứng dụng SIM Toolkit được nạp vào thẻ SIM, và được thực hiện khi có các điều kiện như:
SIM có hỗ trợ Java Card
Handset của SIM có hỗ trợ SIM Toolkit hoặc là kiểu GSM phase 2+
I speak SIM Toolkit
I have a STK application
Hình 5 Hoạt động của ứng dụng trên thẻ SIM
Sau khi bật nguồn, SIM sẽ xác định xem thiết bị di động có hỗ trợ SIM Toolkit không bằng cách gửi lệnh Profile Download Tiếp theo, nó sẽ gửi lệnh Set
Up Menu tới thiết bị di động, và các Menu được hiển thị trên màn hình Khi người dùng chọn một mục trong Menu, ngay lập tức lệnh này được chuyển tới ứng dụng trên thẻ SIM để xử lý
Hình vẽ mô phỏng cách trao đổi thông tin giữa SIM và thiết bị di động của một ứng dụng SIM Toolkit, các lệnh được trao đổi giữa SIM và thiết bị di động là các APDU (Application Protocol Data Unit)
Trang 20Hình 6 Giao tiếp giữa thẻ SIM và thiết bị di động
2.1.4 Kiến trúc SIM Toolkit Framework
Install/Uninstall
APDU
Envelopes
File Access Proactive Command
Responses Proactive
Commands Activation
GSM Files
Toolkit
Applet 1 Applet 2
Toolkit Applet 3 Applet n
Applet
Triggerring
Proactive Command Handler
Applet Install/Uninstall
Applet Security Manager
Security
GSM Framework
sim.access packages sim.toolkit packages
Proactive Polling, Proactive Commands, Terminal Response
File Access
JCRE
Toolkit Framework
Hình 7 Kiến trúc và mô hình hoạt động trên nền SIM Toolkit
Để các ứng dụng có thể hoạt động được trong SIM cần có một hệ nền SIM Java Card hay còn gọi là SIM Toolkit Framework Nhờ hệ nền này, các ứng dụng trên SIM mới có thể trao đổi dữ liệu và điều khiển các Handset Nền SIM Toolkit cho phép các nhà phát triển xây dựng các Applet (các ứng dụng trong SIM được gọi
là các Applet) trên SIM Các Applet này có thể được nạp vào SIM từ xa bởi nhà
cung cấp dịch vụ bằng cách sử dụng cơ chế “Data download to SIM” của SIM
Bật nguồn
Trả lại lựa chọn thực đơn Yêu cầu hiển thị thực đơn
Trả lại kết quả lệnh Yêu cầu thiết lập thực đơn
Trả lại dữ liệu cấu hình Yêu cầu nạp cấu hình
Trang 21Toolkit Sau khi nạp các Applet vào bộ nhớ của SIM và chạy nhờ các lớp thư viện
API (sim.acccess và sim.toolkit), SIM Toolkit Framework có thể thực hiện hai
nhiệm vụ chính là cài đặt và gỡ bỏ các ứng dụng Applet
Các thành phần chính của SIM Toolkit Framework bao gồm:
Kích hoạt Applet (Applet Triggering)
Điều khiển lệnh thực thi (Proactive Command Handler)
Cài đặt và gỡ bỏ Applet (Applet Install/Uninstall)
2.1.4.1 Applet Triggerring
Applet Triggerring là bộ phận kích hoạt ứng dụng của SIM Toolkit có nhiệm
vụ kích hoạt các Toolkit Applet dựa vào các APDU được gửi từ Handset tới như các sự kiện bấm phím Keypad Khách hàng lựa chọn một thực đơn trên giao diện ứng dụng Khi đó, trên Handset sẽ tạo ra một lệnh được đóng gói dưới dạng APDU
để gửi xuống SIM Cơ chế này rất quan trọng, được sử dụng để phát triển các ứng dụng cho phép các Applet có thể đăng ký sự kiện, bắt sự kiện khi xuất hiện
Applet Triggerring
APDU
Lựa chọn Menu Nhận bản tin SMS Hiển thị Text
Hình 8 Kiến trúc của Applet Triggerring 2.1.4.2 Proactive Handler
Proactive Handler là thành phần xử lý các lệnh Proactive Command của SIM Toolkit Sau khi Toolkit Applet đã được kích hoạt thì Proactive Command Handler
sẽ cho phép Applet gửi các lệnh và dữ liệu yêu cầu Handset hay ME xử lý, nhận các kết quả trả về
Cấu trúc của một lệnh Proactive Command, do ứng dụng SIM hay Handset gửi cho, được đưa ra dưới dạng một đối tượng dữ liệu BER-TLV (Tag, Length, Value), mỗi BER-TLV có thể gồm nhiều SIMPLE-TLV
Trang 22Hình 9 Cấu trúc BER-TLV theo chuẩn 3GPP-TS 03.48 2.1.4.3 Applet Install/Uninstall
Applet Install/Uninstall là thành phần cung cấp các thủ tục để cài đặt và gỡ
bỏ Applet, tức là bắt đầu và kết thúc một vòng đời của Applet (Cycle of Applet)
Trong mô hình kiến trúc SIM Toolkit Framework, cấu trúc nền GSM Framework thực hiện chức năng giao tiếp với các file dữ liệu trong SIM gọi là các GSM Applet Các ứng dụng trong SIM thường đọc một số GSM như: đọc Applet chứa Key, đọc Applet chứa SMS nhận được dùng cho cập nhật cây thực đơn của ứng dụng
Bảo mật khi phát triển ứng dụng
Security hỗ trợ một tập các thuật toán mã hoá dữ liệu, các tập khoá (Key Set) được lưu trong các file GSM
2.1.5 Các cơ chế của SIM Toolkit
Như khái niệm đã nêu, công nghệ SIM Toolkit cung cấp một loạt các cơ chế cho phép quản lý và phát triển các ứng dụng trong SIM, cho phép các ứng dụng được nạp vào SIM điều khiển các Handset nào hỗ trợ chức năng mà ứng dụng trong SIM yêu cầu
SIM Toolkit gồm có các cơ chế sau:
Nạp cấu hình (Profile Download)
Kích hoạt ứng dụng SIM (Proactive SIM)
Tải dữ liệu về SIM (Data Download)
Lựa chọn thực đơn (Menu Selection)
Điều khiển cuộc gọi bởi SIM (Setup Call)
Trang 23 Điều khiển bản tin gửi (Mobile Originated Source Message Control)
Tải sự kiện (Event Download)
Bảo mật (Security)
Hỗ trợ đa thẻ (Multiple Card)
Hỗ trợ truy cập thời gian (Timer Expiration)
Giao thức truyền dữ liệu độc lập (Bearer Independent Protocol)
Nhờ các cơ chế mà SIM Toolkit hỗ trợ, các ứng dụng trong SIM mới được tải về Ứng dụng có thể phát sinh các sự kiện Ứng dụng có thể được xây dựng dưới dạng thực đơn lựa chọn thân thiện với người sử dụng
2.1.5.1 Nạp cấu hình
Profile download cung cấp cơ chế để ME thông báo cho SIM về khả năng có
hỗ trợ cho SIM Toolkit hay không Trong trường hợp có hỗ trợ thì xác định các khả năng hỗ trợ cụ thể Mỗi khả năng hỗ trợ được mã hoá bằng một bít thông tin ME gửi cho SIM chi tiết về khả năng hỗ trợ được đưa ra trong phần phụ lục
2.1.5.2 Kích hoạt ứng dụng SIM
Proactive SIM đưa ra đặc tính mà cho phép SIM có thể khởi tạo một hành động mà sau đó sẽ được thực hiện bởi ME Ứng dụng trong SIM sẽ gửi một lệnh yêu cầu ME thực hiện, dĩ nhiên trong trường hợp ME phải hỗ trợ chức năng đó Các hành động này là:
Hiển thị một đoạn văn bản từ SIM tới ME
Gửi một bản tin
Thiết lập một cuộc gọi tới số cung cấp bởi SIM
Thiết lập cuộc gọi dữ liệu
Gửi đi một điều khiển SS (Supplementary Service) hoặc một chuỗi USSD (Unstructed Supplementary Service Data)
Khởi tạo tương tác với người sử dụng (thao tác với phím)
Phát ra các âm thanh
Nhận các thông tin nội bộ từ ME tới SIM
Thực hiện yêu cầu tìm kiếm thông tin trên mạng khi cung cấp một URL
Thực hiện xây dựng một kênh GPRS riêng để trao đổi dữ liệu với mạng ngoài
2.1.5.3 Tải dữ liệu về SIM
Dữ liệu được tải về SIM sử dụng kỹ thuật vận chuyển của SMS Peer to Peer, SMS Cell Broad hay sử dụng một kênh GPRS riêng Chức năng này cho phép cài đặt các ứng dụng vào SIM qua OTA
Trang 242.1.5.4 Lựa chọn thực đơn
Các lựa chọn cho thực đơn có thể được tạo thông qua các lệnh do ứng dụng trong SIM tạo ra Lựa chọn thực đơn là một cơ chế để gửi về SIM một ID ứng với một mục trong thực đơn ứng dụng được người sử dụng chọn
2.1.5.5 Điều khiển cuộc gọi
Khi dịch vụ thiết lập các cuộc gọi được kích hoạt bởi SIM thì các chuỗi số được quay và các chuỗi điều khiển các dịch vụ bổ sung sẽ được chuyển từ SIM trước khi ME thiết lập các cuộc gọi SIM có khả năng cho phép, ngăn chặn, điều chỉnh cuộc gọi hoặc dịch vụ bổ sung
2.1.5.6 Bảo mật
Cơ chế bảo mật trong SIM Toolkit được chuẩn hoá thành chuẩn GSM 03.48 Chuẩn này được sử dụng để truyền thông tin bảo mật giữa Server của nhà cung cấp dịch vụ và SIM Cơ chế này thường được sử dụng để quản lý các thông tin trong SIM như phục vụ cho quá trình tải, cài đặt, cập nhật, xoá các ứng dụng trong SIM
2.1.5.7 Hỗ trợ đa thẻ
Phần này được áp dụng nếu như lớp “a” được hỗ trợ bởi Handset Các lớp
“a”, “b”, “e” ở đây là các tuỳ chọn cho sự hỗ trợ SIM Toolkit của Handset Với đặc tính này, một sự kiện và một tập các lệnh Proactive Command (theo cơ chế Proactive SIM) được cung cấp để điều khiển một Card bổ xung trong Handset Ở nước ta chưa thấy xuất hiện loại Handset này (điện thoại này còn được gọi là Dual Slot Phone)
2.1.5.8 Hỗ trợ truy cập thời gian
Cơ chế này cho phép ứng dụng trong SIM có thể lấy các thông tin về thời gian trên ME thông qua một lệnh Proactive Command
2.1.5.9 Giao thức truyền dữ liệu độc lập
Đặc tính này được hỗ trợ bởi lớp “e”, như các điện thoại có hỗ trợ GPRS Một tập các lệnh Proactive Command như: Open channel, Close channel, Send data, Reiceive data, Get channel status và các sự kiện cho phép SIM thiết lập một kênh
dữ liệu với ME tới một Server ở trên mạng SIM cung cấp cho ME thông tin để thiết lập một kênh dữ liệu Sau đó ME cho phép SIM và Server trao đổi dữ liệu với nhau trên kênh này một cách trong suốt (Transparently)
Thông qua các cơ chế trên, ứng dụng SIM Toolkit có thể được xây dựng dễ dàng hơn Việc quản lý các ứng dụng từ xa qua OTA cho phép các nhà quản trị mạng có thể cung cấp một cách mềm dẻo, nhanh chóng các dịch vụ mới nhất tới các thuê bao Công nghệ này thực sự là một công cụ hữu hiệu để tăng tính cạnh tranh giữa các nhà khai thác mạng di động với nhau
Theo dự đoán của các chuyên gia trong lĩnh vực truyền thông về công nghệ
này: “Công nghệ SIM Toolkit là vũ khí rất lợi hại cho phép nhà khai thác dịch vụ di
động nào sớm áp dụng tích hợp công nghệ này vào hệ thống di động sẽ có rất nhiều
Trang 25thuận lợi trong thời buổi cạnh tranh hiện nay nhằm thu hút thật nhiều thuê bao về phía mình” [3]
Để các ứng dụng có thể được tải và nạp vào SIM qua OTA, trên mạng của nhà khai thác luôn có một OTA Server Server này có thể tự xây dựng hay mua từ nhà cung cấp SIM Vì việc quản lý các ứng dụng trong SIM thuộc quyền của nhà quản trị mạng nên trong đề tài này chỉ đưa ra nguyên tắc hoạt động chung về OTA Server hay OTA Gateway Sau đó, tập trung chủ yếu vào SIM Toolkit Framework, các thành phần hỗ trợ để thực thi các ứng dụng trong SIM như: JavaCard Virtual Machine, Applet Triggerring, Proactive Handler, ProactiverResponse Handler, Envelope Handler, Install/Uninstall, và các API hỗ trợ lập trình SIM API, Java Card API
2.1.6 Công nghệ OTA và ứng dụng trong SIM Toolkit
2.1.6.1 Khái niệm về OTA
OTA (Over The Air) [3] là công nghệ cho phép các nhà khai thác dịch vụ di động (Network Operater) thực hiện cập nhật và thay đổi dữ liệu trong thẻ SIM mà không cần phát hành hay thu hồi lại SIM OTA cho phép các nhà quản trị mạng giới thiệu các dịch vụ mới, thay đổi nội dung của thẻ SIM một cách hiệu quả và nhanh chóng
Công nghệ OTA dựa trên kiến trúc Client-Server, phía Server là hệ thống Back-End trên mạng của nhà quản trị mạng di động (có thể là Application Server, Billing System, Customer Care), Client chính là thẻ SIM
Hiện nay, kênh truyền dẫn chính sử dụng sóng mang thông tin là SMS Bearer Trong thời gian tới, các sóng mang truyền dẫn thông tin sẽ là CSD (Channel Switched Data) hay GPRS (General Package Radio System)
2.1.6.2 Các thành phần trong công nghệ OTA
Kiến trúc hệ thống OTA được chia làm hai phần chính:
Back-End System: Có thể là hệ thống chăm sóc khách hàng, hệ thống tính
cước, giao diện Web Các hệ thống này thực hiện gửi yêu cầu từ OTA Gateway
OTA Gateway: Nhận các yêu cầu dịch vụ thông qua Gateway API (thành
phần này thực hiện việc chỉ ra thẻ SIM nào sẽ được cập nhật/thay đổi/kích hoạt nội dung thông tin) Trong thực tế, OTA Gateway luôn lưu một cơ sở dữ liệu thông tin về từng thẻ SIM Các thông tin này gồm: nhà cung cấp SIM (SIM Vendor), số nhận thực của SIM, số IMSI (International Mobile Subscriber Identifier) và số MSISDN (Mobile Subscriber ISDN Number)
Trang 26GSM UMTS
GPRS
Back-End Server OTA Gateway
SMSC
Mobile Equipment
SMSC: Thực hiện việc trao đổi thông tin giữa hệ thống quản lý các bản
tin SMS (OTA Gateway) và mạng di động tế bào Một bản tin độ dài tối
đa 160 ký tự Alphabet, có thể gửi tới hoặc từ một điện thoại di động Nếu điện thoại tắt nguồn hay ra khỏi vùng phủ sóng, bản tin sẽ được lưu Sau
đó, sẽ được gửi trả lại cho thuê bao khi máy bật nguồn hay vào lại vùng phủ sóng
SMS Channel: Việc truyền thông tin giữa thẻ SIM và OTA Gateway có
thể được thực hiện bởi trao đổi SMS, GPRS Trong trường hợp này ta chỉ xét các kênh SMS
Mobile Equipment: Trong mô hình này, Mobile Equipment yêu cầu phải
tương thích với SIM Toolkit
SIM Card: Các bản tin, với tham số trong bản tin “Protocol Identifier” đặt
là “SIM Data Download”, sẽ được phân phối bởi ME tới thẻ SIM thông qua các đơn vị dữ liệu APDU như: Envelope Command hay Update Record Command Các thông tin được gửi từ OTA Gateway tới thẻ SIM
Trang 27được bảo mật gọi là các gói lệnh Các gói lệnh này được bảo mật theo chuẩn GSM 03.48 Mỗi gói lệnh chứa một hay nhiều đơn vị dữ liệu APDU liên quan tới quản lý file/applet từ xa (RFM/RAM: Remote File/Applet Management)
Trong đó RFM cho phép thực hiện các lệnh quản lý các file EF như: Select, Update Record, Deactivate File, Verify PIN RAM cho phép thực hiện các lệnh quản lý Toolkit Applet ứng dụng như thực hiện các lệnh: LOAD, INSTALL, DELETE, GET STATUS
Tóm lại, để có thể thực hiện được cập nhật nội dung trong thẻ SIM thông qua OTA, SIM hỗ trợ Java Card cần được xác định với các thông tin về “OTA profile”, đây là các thông tin cho phép thẻ SIM (hay UICC nói chung) nhận và thực hiện các lệnh OTA được gửi bởi OTA Gateway Trong SIM cũng yêu cầu hỗ trợ các
cơ chế RFM và RAM (các Applet hệ thống này phải được cài đặt trong thẻ SIM) Cấu hình liên quan tới chuẩn bảo mật SIM Toolkit 03.48 phải được xác định như tập khóa “Key Set” nơi các khoá OTA được lưu “Access Domain” chỉ ra các quyền (Rights) của Applet trên hệ thống File và “Minimum Security Level” chỉ ra bảo mật nhỏ nhất, mà các bản tin OTA phải đưa ra
Trong mô hình khai thác các dịch vụ sử dụng công nghệ SIM Toolkit trên mạng của nhà cung cấp dịch vụ luôn có một OTA Gateway hay OTA Server để quản lý các ứng dụng SIM Toolkit Việc quản lý này đều thông qua các API riêng của từng nhà cung cấp SIM khác nhau
2.1.7 File dữ liệu GSM
2.1.7.1 Giới thiệu
Ứng dụng SIM Toolkit có thể truy nhập tới các file hệ thống GSM, thông qua các hàm trong giao diện lập trình ứng dụng (SIM API) Các file này phải được chọn trước khi có thể thực hiện cập nhật, đọc, ghi
Trang 28Hình 11 Cấu trúc file dữ liệu GSM
Các file GSM được nhận biết thông qua 04 byte ID như là phần đầu của file, các file được được phân làm các loại chính như sau:
Transparent Là file truy nhập ngẫu nhiên có thể chứa tất cả các
loại dữ liệu khác nhau Linear fixed file File chứa các bản ghi có độ dài cố định, có thể truy
nhập dữ liệu thông qua các lệnh Last, Next, v.v… Cyclic Có các bản ghi có độ dài cố định, khi chọn Next tại
bản ghi cuối cùng thì sẽ di chuyển tới bản ghi đầu tiên
Variable length record Không hỗ trợ trong GSM
Incremental Các file rất hữu dụng, một byte đơn có thể được thêm
vào hay giảm đi
Một vài file hay được sử dụng như:
2FE2 – Unique integrated circuit number: lưu số thiết bị của thẻ
6F05 – Language choice: chứa ngôn ngữ được chọn
6F07 – Unique subscriber number: lưu số thuê bao
MF 3F00
DFTELECOM 7F10
EF ADN 6F3A
EF FDN 6F3B
EF SMS 6F3C
DFOSM
7120
EF LP 6F05
EF IMSE 6F07
EF PHASE 6FAE
Trang 29 6F3C – SMS message (176 byte độ dài mỗi bản ghi của file fixed linear)
6F44 – Last number dial: chứa số được gọi gần nhất
Việc truy nhập tới các file này trong ứng dụng SIM Toolkit sử dụng hàm SELECT (byte idF) của gói SIMView Để thao tác với dữ liệu trong các file như cập nhật, sửa, xoá, đọc file thì cần phải có quyền truy nhập Quyền này được xác định trong quá trình cài đặt ứng dụng trên SIM khi đó ta sẽ phải đặt các tham số yêu cầu trước khi nạp ứng dụng
2.1.8 Tính bảo mật trong SIM Toolkit
Các đặc tính đảm bảo tính toàn vẹn và bảo mật dữ liệu đã được tích hợp vào chuẩn SIM Toolkit và được chuẩn hoá trong GSM 02.48 và 03.48 Chuẩn này đủ bảo mật cho các ứng dụng thương mại điện tử di động, có thể mã hoá dữ liệu, kiểm tra các mã PIN (Personal Identity Number) Tổng quan về quá trình bảo mật của SIM Toolkit được đưa ra bởi ETSI được đưa ra như hình vẽ
Hình 12 Mô hình bảo mật trong SIM Toolkit
Trong sơ đồ trên ta định nghĩa các thành phần:
Ứng dụng gửi - Sending Application: Là ứng dụng nằm trong SIM, hay
trên một Server mạng Có chức năng tạo các bản tin dữ liệu hay lệnh để gửi cho ứng dụng nhận Ví dụ: các Applet mà ta xây dựng và nạp vào SIM
Thực thể gửi - Sending Entity: Là thành phần thực hiện chức năng mã hoá
và gửi các gói bảo mật cho thực thể nhận Ví dụ: thẻ SIM, hay trung tâm SMSC
Ứng dụng nhận - Receive Application: Nhận các bản tin dữ liệu hay lệnh
từ ứng dụng gửi
Ứng dụng trên SIM
Ứng dụng tại Ngân Hàng
Ứng dụng
gửi
Ứng dụng nhận Luồng thông tin
Thực thể gửi
Dịch vụ mang
Thực thể nhận
SMSC
SIM
SIM
SMSC SMS
BANK - User
Ứng dụng tại Ngân Hàng
User - BANK
Ứng dụng trên SIM
Trang 30 Thực thể nhận - Receive Entity: Nhận các gói bảo mật, mở gói và gửi các
ứng dụng, bao gồm cả các byte đệm Sau đó, bản tin được gửi đi sẽ như một “gói
lệnh” (đã được bảo mật) gửi tới “Thực thể nhận” Trong trường hợp bình thường,
“Thực thể nhận” sẽ nhận “gói lệnh” và mở gói tuỳ theo các tham số được chỉ ra
trong Command Header “Thực thể nhận” sẽ chuyển bản tin ứng dụng tới ứng dụng nhận khi đó bảo mật đã được áp dụng Giao diện giữa “Ứng dụng gửi” và “Thực
thể gửi” cùng với giao diện giữa “Thực thể nhận” và “Ứng dụng nhận” là riêng
biệt, không thuộc chuẩn SIM Toolkit Nếu được chỉ định trong “Command
Header” của gói nhận được, “Thực thể nhận” sẽ tạo một gói hồi đáp lại (Response
Package) Response Package này chứa một “Security Header” và tuỳ chọn, gửi trả lại cho “Thực thể gửi”
Trong đặc tả của SIM Toolkit không yêu cầu bắt buộc thuật toán nào phải được sử dụng Lựa chọn này là một hỗ trợ tới người thực thi ứng dụng trên SIM, thường đó là các nhà cung cấp dịch vụ Đây là một thuận lợi lớn vì các thuật toán có thể được cập nhật các thuận toán mới hơn và bản thân nhà cung cấp cũng có thể quyết định cách bảo mật các giao dịch cần thiết
SIM Toolkit hỗ trợ các đặc tính bảo mật sau:
Khoá có thể có độ dài bất kỳ, điều này cho độ mềm dẻo lớn nhưng nó cũng cho phép nhà cung cấp dịch vụ hay nhà phát triển ứng dụng không có trách nhiệm tạo khoá quá ngắn và dễ dàng bị bẻ khóa Khi SIM Toolkit mặc định 3DES sử dụng
3 khoá (168 bit) thì hầu như loại bỏ hết khả năng bị bẻ khóa
Việc nhận thực thuật toán của nó có thể được lựa chọn bởi nhà cung cấp dịch
vụ, chống truyền lặp được xử lý bằng cách sử dụng bộ đếm Counter Đảm bảo toàn vẹn dữ liệu được thực hiện bằng cách sử dụng chức năng Message Digest theo SHA hay MD5
Trang 31Tóm lại, bảo mật trong SIM Toolkit được thực hiện trong quá trình quản lý các thông tin trong thẻ SIM theo chuẩn GSM 03.48 Khi phát triển các ứng dụng phục vụ cho thương mại điện tử, nhà phát triển ứng dụng có thể sử dụng chuẩn này hay tự thiết kế kiến trúc bảo mật từ đầu đến cuối cho mình thông qua các gói API đã
được hỗ trợ trong nền SIM như: javacard.security, jacacardx.crypto
2.1.9 Các công cụ lập trình cho SIM
Ngoài Sun Microsystems đưa ra phiên bản nền hỗ trợ xây dựng các ứng dụng trên thẻ thông minh là Java Card, Microsoft đưa ra ngôn ngữ lập trình WinCard và Mondex cũng đưa ra Multos Ở đây, có vấn đề cần phân biệt rõ giữa Smart Card và thẻ SIM Thẻ SIM là một loại Smart Card Thẻ SIM có những đặc điểm chung giống như các loại Smart Card khác như tốc độ xử lý, cấu trúc phần cứng ROM, RAM, EEPROM nhỏ Tuy nhiên, thẻ SIM có điểm khác biệt như cấu trúc nền SIM Toolkit (hay còn gọi là nền Java Card GSM), hỗ trợ các gói mở rộng cho phép truy cập các file GSM, có các đặc tính như đăng ký, bắt các sự kiện mà các loại Smart Card khác không có
Dưới đây đưa ra các công nghệ lập trình cho các loại Smart Card, trong đó có những công nghệ được chọn cho phép phát triển các ứng dụng cho SIM
Java Card
- Dựa trên mô hình máy ảo Java
- Cho phép lập trình trong một tập nhỏ ngôn ngữ lập trình Java
- Được đưa ra bởi Sun Microsystems
- Đã được tích hợp vào các SIM theo chuẩn GSM
WinCard (Windows for Smart Cards)
- Dựa trên hệ điều hành Windows
- Được phát triển bởi Microsoft
- Mới chỉ đưa ra, và sẽ được phổ biến hay không tuỳ theo định hướng của Microsoft
- Cho phép lập trình trong môi trường Visual Basic
MulTos
- Hệ điều hành được sử dụng: Mondex
- Sử dụng riêng bởi Master Card
- Đã thực thi nhiều ứng dụng trên toàn cầu
- Hiện nay cũng được tích hợp vào SIM của chuẩn GSM
Trong các công nghệ lập trình cho Smart Card, Java Card được tích hợp hầu hết trong các loại thẻ thông minh, trên 90% phạm vi toàn cầu, đặc biệt được tích hợp vào chuẩn của GSM bởi ETSI từ năm 1993 cho SIM của điện thoại di động Java Card luôn là công nghệ được ưu tiên để xây dựng các ứng dụng cho SIM
Trang 322.2 Java Card
2.2.1 Định nghĩa
Java là ngôn ngữ lập trình hướng đối tượng, do hãng Sun Microsystems phát triển Java được biết đến như một môi trường lập trình ứng dụng lý tưởng phía máy chủ như EJB (Enterprise JavaBean), Servlet/JSP (Java Server Page) trong phiên bản J2EE Ngoài ra, Java còn là môi trường lập trình cho các ứng dụng trên các thiết bị
di động đầu cuối (Client-Side)
Java Card [1] và J2ME là phiên bản của Java hỗ trợ lập trình cho các thẻ thông minh (Smart Card) và các thiết bị đầu cuối di động
Hình 13 Cấu trúc tổng thể của nền Java
Cấu trúc tổng thể của nền Java được minh hoạ trên hình vẽ với ba lớp chính: Máy ảo Java (Java Virtual Machine), nền Java (Java platform), và các thể nghiệm (Profile)
Hình vẽ trên có nêu vị trí của Java Card trong tổng thể của nền Java và các thiết bị hỗ trợ nền Java, đó là các loại thẻ thông minh Smart Card trong có bao gồm
cả thẻ SIM của công nghệ GSM
Ta có thể chia toàn bộ nền Java Platform [9] thành các hướng phát triển chính như sau:
Công nghệ lập trình cho máy chủ - J2EE: J2EE [9] là phần rất quan trọng
trong tổng thể của Java Platform Với công nghệ này, các nhà phát triển
có thể xây dựng các ứng dụng chạy lên máy chủ như Mail Server, Application Server, Web Server
Trang 33 Công nghệ lập trình cho các máy tính cá nhân - J2SE: J2SE được sử
dụng để phát triển các ứng dụng trên máy PC, các ứng dụng Client như Web Browser, Mail Client
Công nghệ lập trình cho các thiết bị di động - J2ME: J2ME được sử dụng
trong việc lập trình các ứng dụng cho các thiết bị thông tin di động nói
chung như điện thoại di động, các máy tính xách tay, PDA
Công nghệ lập trình cho các loại thẻ thông minh – Java Card: Java Card
được tích hợp vào hầu hết các loại thẻ thông minh (Smart Card) như SIM của điện thoại di động, thẻ tín dụng (Credit Card), thẻ tài chính (Finance Identify Card) Java Card là công nghệ chủ đạo được chọn làm nền để phát triển các ứng dụng chạy trên thẻ SIM
Các ứng dụng Java Card gọi là các Applet Các ứng dụng này muốn được nạp và chạy trên Smart Card hay thẻ SIM thì phải có điều kiện cần về cấu hình hỗ trợ Java Card Đối với các ứng dụng trong thẻ SIM, Applet này còn phải được hỗ trợ các đặc tính SIM Toolkit của điện thoại di động
2.2.2 Các thành phần của Java Card [1]
Hình 14 Kiến trúc tổng quan của Java Card
Hiện nay phiên bản mới nhất của Java Card là version 2.2, nó bao gồm ba thành phần:
JCVM (Java Card Virtual Machine): gồm một tập các ngôn ngữ lệnh lập
trình và một máy ảo
Trang 34 JCRE (Java Card Runtime Enviroment): định nghĩa các giao tác cho thẻ
thông minh trên nền Java
Java Card API: định nghĩa các gói, các lớp cho các ứng dụng của thẻ
thông minh trên nền Java
Ngoài ra, hãng Sun cũng cung cấp JCDK (Java Card Developer Kit) [1] bao gồm: JCVM, JCRE, một số công cụ hỗ trợ phát triển các Java Card applets, một bộ kiểm tra Verifier, một bộ chuyển đổi Converter (cho phép các applets được tạo ra trong một định dạng để có thể tải vào Smart Card là file *.CAP) và các tài liệu mô
tả đặc tính của Java Card
2.2.3 Mô hình chuyển đổi từ file nguồn Java sang Applet trong SIM
Hình vẽ dưới đây mô tả quá trình chuyển đổi từ file mã nguồn Java sang Applet được tải vào trong thẻ Smart Card nói chung hay thẻ SIM nói riêng
Conversion with ijc2ldr(*)
Conversion with cap2ijc(*)
Hình 15 Quá trình biến đổi file Java thành Applet trong Smart Card
Trong mô hình, ban đầu JDK được sử dụng để biên dịch mã nguồn thành các file class Tiếp theo, nhờ bộ Converter trong Developer Kit (CJDK- Converter JDK) biến đổi file class thành định dạng file CAP Các file cap là một định dạng đặc biệt để tích hợp mã Java trong Smart Card Các nhà phát triển tạo ra file cap từ một hoặc nhiều files class nhờ bộ Converter được cung cấp miễn phí của Sun CJDK Tuỳ theo yêu cầu của nhà sản xuất Smart Card, các phiên bản Converter phải tương thích với điều kiện đảm bảo để file cap thích nghi với file ijc
(Interoperable Java Card Cap file), tuân theo chuẩn 03.48 ETSI đối với thủ tục
Applet Loading qua OTA
Nhờ công cụ phần mềm như SIM Alliance Interoperable Tool, file cap được coi như đầu vào của bộ công cụ sử dụng để nạp ứng dụng vào Smart Card Bộ công
cụ này biến đổi file cap thành file ijc bằng bộ biến đổi cap2ijc Converter Trong bước biến đổi này, file cap được tổ chức lại thành một luồng byte có thể được nạp
Trang 35vào bất kỳ Java Card nào Bộ biến đổi cuối cùng trong mô hình là ijc2ldr Converter thực hiện biến đổi luồng byte nhận được từ file ijc thành các đơn vị dữ liệu APDU, chuyển tới bộ nhớ Thứ tự sắp xếp APDU được lưu trong file ldr Tương ứng, file clr được tạo để chứa thứ tự các lệnh thực hiện bỏ cài đặt ứng dụng (de-install)
Trong quá trình nạp ứng dụng, bộ Loader yêu cầu đặt các thông số cần thiết phục vụ quá trình cài đặt và bảo mật
2.2.4 Java Card Applet và Java Card Runtime Environment
2.2.4.1 Applet và vòng đời của nó (Life Cycle)
Applet trên Smart Card được xây dựng bằng ngôn ngữ lập trình Java Card Sau khi biên dịch thành file *.cap (Converter Applet), nó sẽ được cài đặt trên Smart Card, ở trong bộ nhớ EEPROM và được thực thi ứng dụng nhờ các thành phần như Java Card API, máy ảo JCVM có trên nền Smart Card Vòng đời của Applet bắt đầu sau khi chúng được tải về, được cài đặt trên thẻ Sau đó, nó sẽ thiết lập liên kết với các Applet khác và được đăng ký bởi JCRE Vòng đời của Applet kết thúc khi chúng bị xoá khỏi bộ nhớ EEPROM
2.2.4.2 Các đối tượng tĩnh và đối tượng tạm thời
Smart Card sử dụng ba loại bộ nhớ ROM, RAM, và EEPROM (bộ nhớ cố định có thể xoá, tốc độ truy nhập chậm như ổ cứng của máy tính cá nhân) ROM chứa nền Java Card được đưa vào trong quá trình sản xuất Trong lúc ứng dụng Java làm việc, các đối tượng của ứng dụng được tạo ra là Transient Object (TO) và Persistent Object (PO) (đối tượng tạm thời và tĩnh) Với máy tính cá nhân, tất cả các đối tượng Java được tạo trong RAM Với Smart Card, có RAM rất nhỏ, các đối tượng sẽ được tạo trong EEPROM
Các PO được đăng ký và tham khảo từ trường Static trở thành đối tượng tĩnh được lưu trong EEPROM Chúng không bị xoá sau khi nguồn mất hay bị Reset
Các TO được lưu trong RAM Hai không gian được dành cho các TO là COD (Clear on Deselect) và COR (Clear on Reset) Các đối tượng trong COR bị xoá tới giá trị mặc định (null, zero, false) khi Reset Card hay mất nguồn Các đối tượng trong COD bị xoá tới giá trị mặc định mỗi khi Applet tạo ra chúng không được chọn, và cũng như khi Reset Card hay mất nguồn
2.2.4.3 Bảo mật và firewalls trong Smart Card
Java Card thiết kế đặc tính bảo mật cho Smart Card để bảo vệ chống truy cập trái phép tới dữ liệu các Applet Bảo mật được thêm vào đảm bảo trong Smart Card thông qua hệ thống miền Firewall (context firewall system) Chỉ một Applet được chọn tại một thời điểm Mỗi Applet thuộc một Context, một hay nhiều Applet có thể thuộc cùng một Context Trong phiên bản Java Card, các Applet cùng một gói đều cùng một Context (Package Context) Chỉ những đối tượng thuộc Context của Applet được chọn mới có khả năng truy nhập JCRE đảm bảo việc truy nhập chéo qua các Context là không có, ngoại trừ trường hợp truy nhập tới các đối tượng đặc biệt của JCRE như đối tượng Exception Đặc tính bảo mật Firewall này bảo vệ các Applet trên thẻ chống lại các lỗ hổng bảo mật của hệ thống cũng như chống lại các