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
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 bản tin cho ứng dụng nhận.
Trờn biểu đồ trờn chỉ ra luồng thụng tin đi từ “Thực thể gửi” đến “Thực thể nhận”.
“Ứng dụng gửi” chuẩn bị một bản tin ứng dụng và chuyển nú tới “Thực thể gửi”, với một chỉ thị về bảo mật được ỏp dụng với bản tin này. “Thực thể gửi” sẽ thờm một Security Header tới bản tin ứng dụng. Sau đú, nú sẽ ỏp dụng cỏc bảo mật yờu cầu vào tới phần Command Header (hay Security Header) vào tất cả cỏc bản tin ứ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:
Tớnh tin cậy
Tớnh xỏc thực
Tớnh toàn vẹn dữ liệu
Cơ chế chống truyền lặp
SIM Toolkit hỗ trợ cỏc thuật toỏn riờng và đồng thời được xõy hỗ trợ chuẩn hoỏ mó hoỏ dữ liệu DES, bao gồm Triple-DES với 2 hay 3 khoỏ. Cỏc thành phần tạo khoỏ tồn tại trờn cả hai thực thể và khụng bao giờ truyền qua khụng gian. Đặc biệt, nhà cung cấp dịch vụ sẽ đặt cỏc khoỏ trờn SIM trước khi chỳng được phỏt tới thuờ bao. Đõy chớnh là cơ sở đảm bảo tớnh bảo mật của cỏc ứng dụng SIM Toolkit.
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.
Tú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.