qw3

13
SMARTLINK A Tethering Solution by Smartcom CONFIDENTIAL

Upload: sergei-stepanenko

Post on 16-Mar-2016

213 views

Category:

Documents


1 download

DESCRIPTION

qwe3 3 3 3 3 3

TRANSCRIPT

SMARTLINK A Tethering Solution by Smartcom

CONFIDENTIAL

07/02/10

2

Confidential

T-Mobile Tethering Software Project

For ANDROID phones (Later for RIM/Blackberry, WIN MOBILE and others...)

REQUIREMENTS: • Tethering SW pre-installed on a device (mobile phone)• Application is launched from the device • Connects to the PC primarily via a regular USB cable (Wi-Fi and BT)• The proposed tethering SW will not allow any other Tethering SW to operate

CONFIDENTIAL

07/02/10

3

Confidential

Project Background, Goal & Solutions

The goal of this application is to check and kill 3rd party tethering applications and not allow users to tether if they’re not subscribed to the T-Mobile Tethering plan.

CONFIDENTIAL

Background

Smartcom has already developed several Tethering solutions for different mobile phones and OS’s.Smartcom analyzed multiple solutions and scenarios based on the requested specific T-Mobile Tethering solution.

Goal

Solution

Solutions we studied were focused on trying to monitor 3rd party applications based on the permission to access USB or Wi-Fi interfaces and to kill them if we detected them to be a tethering solution.This approach is complicated to control and ensure that we don’t kill any other application that is not doing tethering but still requires using these resources.

07/02/10

4

Confidential

Conclusion and Proposition

OUR CONCLUSIONThe best and safest approach to prevent tethering for users not subscribed to the service would be: To develop a specific application that has a blacklist of 3rd party tethering applications to be killed if detected to be active, or trying to share the internet. Prior to killing the application, we will detect and determine if the application is indeed in the process of tethering, only then we will kill and not allow such applications to tether.

HOW DOES IT WORK:We will develop an application that will monitor active processes in the phone. If the user is not subscribed to T-Mobile Tethering plan, we then search and if detect a blacklisted software, we monitor and kill the connection if the phone enters in a tethering mode.

All blacklisted applications will reside also in our (Smartcom or T-Mobile) server. We will provide a specific “Live Update Mechanism” which will update the application with the latest blacklisted 3 rd party applications on a regular basis.

The application should also be able to detect either via contacting operator’s server or reading the SIM card, whether user is subscribed to the tethering option; If the user is subscribed, then the application will not activate the blacklist killing process.

We will need to define with T-Mobile and device manufacturers if this application should be embedded in the ROM of the device or as an Android App. If in ROM, difficult for user to delete/remove, but updates will be more complicated. If it is an Android app, then easier to update, but user can more easily remove it from the phone.CONFIDENTIAL

07/02/10

5

Confidential

SMARTCOM proposition

Technical review

CONFIDENTIAL

07/02/10

6

Confidential

Tethering Software Structure

CORE TETHERING CONTROLLER is a background service which will manipulate tethering status of the phone to prevent or allow this feature for a given device. It will run in a root mode that brings us possibility to check states of all interfaces such as Bluetooth, WiFi and USB in order to check tethering status. This module will be based on Android NDK (C-based) which provides us possibility to use all low level features of Android OS.

DATA ACCESS MODULE is responsible for communication with T-Mobile (or Smartcom) server for reading and writing all necessary data (tethering status, blacklist, configuration, etc.). It will run on user level and it will be implemented using Android SDK (Java-based).

PRESENTATION MODULE will provide mobile phone user interface to show tethering status, configure application and blacklist, etc. It is an optional feature and it will not influence the core functionality.

PRESENTATION MODULE

CORE TETHERING CONTROLLE

R

DATA ACCESS MODULE

CONFIDENTIAL

07/02/10

7

Confidential

Requirements and Call Flow Charts

To perform the main service installation task we have to rebuild Android OS in order to integrate our low level

service to run it with root privileges on startup. Thus we may need to contact phone manufacturers to be able to

create a special T-Mobile version of Android OS phones.

CALL FLOW:

CORE TETHERING CONTROLLER will start right after the system startup and will perform such actions as reading the configuration, turning on/off the tethering feature on the device. After this work is done the controller will listen to all TCP messages to find another tethering application in the system.

DATA ACCESS MODULE will start after “CORE TETHERING CONTROLLER” and will read the configuration from the server each 5 or…. minutes. After this module gets a new configuration from server, configuration will be stored on the device and the “CORE TETHERING CONTROLLER” will be notified through the pipe about the configuration changes. “CORE TETHERING CONTROLLER” behavior in this situation will be the same as in startup.

PRESENTATION MODULE will run manually by the user. Using this module user can change some properties of tethering. After user makes some changes, it will be written to the configuration file and will notify “CORE TETHERING CONTROLLER” like the previous module.

CONFIDENTIAL

07/02/10

8

Confidential

CALL FLOWS

CORE TETHERING CONTROLLER Configuration

Read

Config data

Check tethering status

Start/Stop tether if needed

Check system for another tethering programs(backgroung task)

CONFIDENTIAL

07/02/10

9

Confidential

CALL FLOWS

CORE TETHERING CONTROLLER DATA ACCESS MODULE Configuration Operator Server

Request configuration for this device and black list

Configuration and black list

Save new configuration

Check tethering status

Start/Stop tether if needed

error code

Read

Config data

Reread configuration (through pipe)

CONFIDENTIAL

07/02/10

10

Confidential

CALL FLOWS

CORE TETHERING CONTROLLER DATA ACCESS MODULE Configuration

Write application info to black list

error code

Error code

kill app

Another tethering application found (through pipe)

CONFIDENTIAL

07/02/10

11

Confidential

CALL FLOWS

CORE TETHERING CONTROLLERPRESENTATION MODULE Configuration

save configuration changes

error code

Check tethering status

Start/Stop tether if needederror code

Read

Config data

Reread configuration (through pipe)

CONFIDENTIAL

07/02/10

12

Confidential

Detecting Tethering Application

There are two ways to get tethering through Android OS phones:1. Tethering using hardware configuration (need root permissions). We will use this way for our tethering program, it is cheapest and fastest, but users will not be able to use this option because they will not have root permissions.2. Tethering using Proxy application installed on the phone.

 Detecting tethering application on the phone is detecting Proxy applications. We will implement a system which will find and block all types of proxies such as Socks4, Socks5 and HTTP proxy on the device.

Finding HTTP proxy is simple: we have to look through http headers and find “Proxy header”. From this header we can find an application port and application PID, so we will know the application we have to kill.

Socks5 and Socks4 proxy finding is more complicated than the HTTP proxy. We have to check all incoming TCP messages and see if they contain Socks5 or Socks4 messages. We propose to check from 5 to 10 messages in a row for a given port to be sure that this application works as proxy. To see if it is a Socks message, then we will compare a given message to messages that are described in Socks4 and Socks5 RFCS. Links:http://tools.ietf.org/html/rfc1928http://csocks.altervista.org/rfc/socks4.protocol.txthttp://www.ietf.org/rfc/rfc2068.txt

CONFIDENTIAL

07/02/10

13

Confidential

SMARTCOM proposition

Q&A and next steps

[email protected]