tracking management system for security enhancement · este trabalho apresenta um srgt com uma...

83
Tracking Management System for Security Enhancement José Luis Alexandre Cabral Almeida Thesis to obtain the Master of Science Degree in: Telecommunications and Informatics Engineering Supervisor: Prof. Artur Miguel do Amaral Arsénio Examination Committee Chairperson: Prof. Paulo Jorge Pires Ferreira Supervisor: Prof. Artur Miguel do Amaral Arsénio Member of Committee: Prof. João Pedro Faria Mendonça Barreto May 2014

Upload: buimien

Post on 17-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

Tracking Management System for Security Enhancement

José Luis Alexandre Cabral Almeida

Thesis to obtain the Master of Science Degree in:

Telecommunications and Informatics Engineering

Supervisor: Prof. Artur Miguel do Amaral Arsénio

Examination Committee

Chairperson: Prof. Paulo Jorge Pires Ferreira

Supervisor: Prof. Artur Miguel do Amaral Arsénio

Member of Committee: Prof. João Pedro Faria Mendonça Barreto

May 2014

Page 2: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

Acknowledgments

To the ones who made it possible...

Page 3: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

Abstract

Over the past years many commercial Real-Time Tracking Management systems (RTMS) were

introduced into the market. The solutions started to be designed for simple tracking purposes, but

vendors soon realized that tracking systems would benefit from the design of new services (service

layer). Using a taxi company as example, the location of the fleet can be retrieved through simple

tracking. But in addition, services such as the identification of the drivers who exceed speed limits,

wasting fuel, become possible through the service layer.

From the analysis of many RTMS solutions currently on the market, a suitable solution for general Law

Enforcement Agencies (LEAs) was not yet found. The majority are only available as a service (in the

cloud) or do not provide confidentiality on the transmitted data, in contrast to the requirement of data

delimitation to LEAs infra-structures and high confidentiality of data. A list of requirements was

gathered from one of the Portuguese LEAs, GNR (Guarda Nacional Republicana) to fully understand

the generic daily challenges. Main requirements raised by GNR strive with issues such as: cost, data

exchange security, bi-directional communication services, network performance, fault tolerance and

user-friendly interface.

This work presents a RTMS solution and corresponding service layer specifically conceived for LEAs.

A number of tests are performed in order to measure quantitatively the behavior of the solution.

Keywords: Real-Time Tracking management system, Law Enforcement Agencies, GPS, fleet

management, Geolocation, Mobile, Android.

Page 4: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

Resumo

Nos últimos anos, muitos Sistemas de Rastreamento e Gestão em Tempo-Real (SRGT) têm

aparecido no mercado. As soluções começaram por ser desenvolvidas para simples rastreamento,

mas os vendedores cedo se aperceberam que os benefícios eram alavancados pela camada de

serviços. Numa empresa de táxis como exemplo, o simples rastreamento apenas possibilitaria a

localização da frota, mas com uma camada de serviços seria possível identificar os condutores que

têm uma condução pouco económica e não respeitam os limites legais de velocidade.

Apesar da existência de um grande número de soluções SRGT no mercado, não foi encontrada

nenhuma solução específica para Forças de Segurança Pública (FSP) em geral. As soluções de

mercado começam por falhar na base. Só estão disponíveis como serviço (na núvem), ou não

suportam o grau de segurança exigido. O alto nível de confidencialidade da informação, assim como

a delimitação da informação às infraestruturas da organização, são requisitos críticos de uma FSP.

Uma lista de requisitos foi levantada apartir do contacto informal com uma FSP portuguesa (Guarda

Nacional Republicana, GNR). Assim como a compreensão dos desafios de uma FSP no dia-a-dia.

Como princípios gerais, a GNR preza por uma solução de baixo custo, que cumpra altos padrões de

segurança, que disponibilize serviços de comunicação bidireccionais, com alta performance e

tolerância à qualidade da rede, numa interface de utilizador extremamente intuitiva.

Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as

FSPs. No final é realizado um conjunto de testes, no sentido de medir quantitativamente o

comportamento da solução.

Palavras-chave: Sistemas de Rastreamento e Gestão em Tempo-Real,Forças de Segurança

Pública, Segurança, Geolocalização, Mobile, Android.

Page 5: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

Contents

1 Introduction ......................................................................................................................................... 12

1.1 Motivation .................................................................................................................................... 12

1.2 Objectives .................................................................................................................................... 13

2 State of the Art ................................................................................................................................... 14

2.1 RTMS........................................................................................................................................... 14

2.1.1 Tracking Units ....................................................................................................................... 15

2.1.2 Tracking Server .................................................................................................................... 16

2.2 GPS ............................................................................................................................................. 17

2.2.1 Concept ................................................................................................................................ 17

2.2.2 Operation .............................................................................................................................. 18

2.2.3 GPS Security ........................................................................................................................ 19

2.3 Communication ............................................................................................................................ 20

2.4 Security ........................................................................................................................................ 22

2.5 LEAs ............................................................................................................................................ 25

2.5.1 Portuguese LEAs .................................................................................................................. 25

2.5.2 Requirements ....................................................................................................................... 26

2.5.3 United Kingdom Police Case ................................................................................................ 27

2.6 Market Solutions .......................................................................................................................... 29

2.7 Related Work ............................................................................................................................... 30

3 Solution ............................................................................................................................................... 32

3.1 Overall Solution ........................................................................................................................... 32

3.2 Central Station (Tracking Server) ................................................................................................ 32

3.2.1 Architecture .......................................................................................................................... 32

3.2.2 Database Structure ............................................................................................................... 35

3.2.3 Server Configuration ............................................................................................................. 37

3.3.1 Architecture .......................................................................................................................... 37

3.3.2 User Interface (UI) ................................................................................................................ 38

3.4 Technical Implementation ........................................................................................................... 40

3.4.1 Subscription .......................................................................................................................... 40

Page 6: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

3.4.2 Monitoring ............................................................................................................................. 42

3.4.2.1 Real-Time status messages .......................................................................................... 42

3.4.2.2 Lost status messages .................................................................................................... 43

3.4.3 File exchange ....................................................................................................................... 45

3.4.7 Report ................................................................................................................................... 47

3.4.8 LEA data synchronization (people, vehicles and risk map) .................................................. 49

4 Evaluation ........................................................................................................................................... 51

4.1 Metrics ......................................................................................................................................... 51

4.2 Testbed ........................................................................................................................................ 52

4.3 Experimental Tests ...................................................................................................................... 53

4.4 Experimental Results ................................................................................................................... 54

4.4.1 CPU ...................................................................................................................................... 54

4.4.2 Memory ................................................................................................................................. 55

4.4.3 Message lost rate ................................................................................................................. 56

4.4.4 Maximum status delay .......................................................................................................... 56

4.4.5 Network Traffic ..................................................................................................................... 56

5 Conclusions and future work .............................................................................................................. 58

5.1 Conclusions ................................................................................................................................. 58

5.2 Future work .................................................................................................................................. 59

6 References ......................................................................................................................................... 59

A. Annexes ............................................................................................................................................ 62

A.1 Tracking Server database script ................................................................................................. 62

A.2 Risk map file (sample)................................................................................................................. 64

A.3 Performance bash script ............................................................................................................. 65

A.4 Network latency (testbed) ........................................................................................................... 68

A.5 NTP offset ................................................................................................................................... 69

A.6 Data extraction shell script .......................................................................................................... 70

A.7 No security (Security.java) .......................................................................................................... 71

A.8 Encryption only (Security.java) ................................................................................................... 72

A.9 Encryption + Mac (Security.java) ................................................................................................ 74

A.10 CPU values ............................................................................................................................... 76

Page 7: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

A.11 Memory values .......................................................................................................................... 78

A.12 Maximum status delay values ................................................................................................... 80

A.13 Network traffic values ................................................................................................................ 82

Page 8: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

List of Figures

Figure 1 GPS data pusher device and data puller mobile app .................................................... 16

Figure 2 GPS satellite constellation. ........................................................................................... 17

Figure 3 MPA PlayBook In-Car ................................................................................................... 28

Figure 4 High-level solution architecture. .................................................................................... 32

Figure 5 High-level architecture of tracking server. ..................................................................... 34

Figure 6 UML Database model. .................................................................................................. 36

Figure 7 High-level architecture of mobile app. ........................................................................... 38

Figure 8 Mobile App, Dashboard ................................................................................................. 39

Figure 9 Mobile App, Risk Map ................................................................................................... 39

Figure 10 Mobile App, Subscription (Login) ................................................................................ 39

Figure 11 Mobile App, Job dispatch and POI .............................................................................. 39

Figure 12 Mobile App, Menu ....................................................................................................... 40

Figure 13 Mobile App, Report...................................................................................................... 40

Figure 14 Subscription operation ................................................................................................ 41

Figure 15 Live status message format. ....................................................................................... 42

Figure 16 Lost status message recovery operation. ................................................................... 44

Figure 17 File transmission operation (from mobile app to tracking server). .............................. 45

Figure 18 File transmission operation (from tracking server to mobile app). .............................. 46

Figure 19 Report internal data representation............................................................................. 47

Figure 20 Reports transmission operation. ................................................................................. 48

Figure 21 LEA data synchronization operation. .......................................................................... 49

Figure 22 Risk map file data structure. ........................................................................................ 50

Figure 23 Testbed network topology ........................................................................................... 52

Figure 24 CPU consumption ....................................................................................................... 55

Figure 25 Memory consumption .................................................................................................. 55

Figure 26 Maximum status delay ................................................................................................ 56

Figure 27 Network Traffic ............................................................................................................ 57

Page 9: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

List of Tables

Table 1 LEA requirements ........................................................................................................... 27

Table 2 RTMS features and descriptions. ................................................................................... 33

Table 3 Tracking server database tables. ................................................................................... 37

Table 4 Tracking server configuration parameters. ..................................................................... 37

Table 5 Testbed hardware........................................................................................................... 52

Table 6 Testbed software ............................................................................................................ 53

Page 10: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

Acronyms

AES Advanced Encryption Standard

A-GPS Assisted GPS

API Application Programming Interface

APN Access Point Name

BTS Base Transceiver Station

CAN Controller area network

CPU Central Processing Unit

CRC Cyclic Redundancy Check

DBMS Database Management Systems

DoS Denial of Service

DVB-T Digital Video Broadcasting - Terrestrial

EDAC Error Detection And Correction

EGNOS European Geostationary Navigation Overlay Service

GLONASS Russian Global Navigation Satellite System

GNNSS Global Navigation Satellite System

GPS Global Positioning System

GSM Global System for Mobile

HTTPS HyperText Transfer Protocol Secure

IKE Internet Key Exchange

IMEI International Mobile Equipment Identity

INS Inertial Navigation System

IP Internet Protocol

ISP Internet Service Provider

LAN Local Area Network

LEA Law Enforcement Agencies

MAC Message Authentication Code

MIC Message Integrity Code

NAT Network Address Translation

NTP Network Time Protocol

POI Points of Interest

RNSI Rede Nacional de Segurança interna

RSA Ronald Rivest, AdiShamir e Leonard Adleman, (Cryptographic Algorithm)

RTMS Real-Time Management System

SCOT Sistema de Contra Ordenações de Trânsito

SHA Secure Hash Algorithm

SIG Sistema de Informação Geográfica

SIRESP Sistema Integrado das Redes de Emergência e Segurança de Portugal

SMS Short Message Service

Page 11: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

SOS Real-Time Management System

SSL Secure Socket Layer

TCP Transmission Control Protocol

TETRA TErrestrialTrunkedRAdio

UDP UserDatagramProtocol

UML Unified Modeling Language

UTC Universal Time Coordinated

WAAS Wide Area Augmentation System

Page 12: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

12

1 Introduction

1.1 Motivation

Law enforcement agencies (LEAs) have primary responsibility for the maintenance of public order,

prevention and detection of crimes. LEAs also protect the life, freedom and property of citizens. They

fight on a daily basis for the indispensable order of society, but incidents are becoming increasingly

more complex, and LEAs human resources are limited. Therefore, it is strictly required to maximize

the efficiency of these organizations. This can be achieved by improving the coordination and

supporting process of the operational workforce. Good coordination and support levels

requireinformation/data availability on a real-time basis, not only directly to the field workforce but also

for the human resourcesin charge of the corresponding decision support.

Informal meetings with Portuguese LEA officers were heldunder the scope of this thesis, in order to

understand the operational and management challenges of an LEA and to elaborate the solution

requirements. The most relevant challenge is the use of radio (voice) as a single tool of

communication between agents. Despite radio network coverage and voice quality have been

improved [1] over the last 5 years, it was concluded that the single use of radio is far from reaching

the transmission requirements for real-time and complete information. From a management

perspective, there is a notable lack of efficiency to get a clear (mind) picture of the fleet location using

a single voice channel (radio). The latter is enough to justify the adoption of a Real-Time Tracking

Management System (RTMS) - a system that provides the location of the fleet according to a

geographical map on a real time basis. The inefficient process of enquiry the fleet location, employing

voice data on a vehicle by vehicle strategy, should in contrast be replaced by a system that provides

instantaneously a clear picture of the fleet location. However, the location information is not the only

issue raised. Another example where voice channel fails is the transmission of multimedia data (e.g.

image of a suspect).

The adoption of an RTMS opens the doors to new services, denominated as services layer. This layer

enables,for instance,the fleet to receive a job/mission with specific geographic coordinates and

respective navigation support to easily and time efficiently get on site.The issuing of a SOS signal,

together with associated location coordinates, requesting support from nearby agents, is also an

example of a requirement that justifies the implementation of a service layer. Under these

circumstances, a RTMS with specific service layer designed for LEAs is required. Many RTMS

solutions on the market were designed to meet big market segments needs, such as transport of

goods, public transports and segments with a big fleet workforce spread by the territory (e.g. electricity

company). These market segments are not willing to increment costs by demanding the encryption of

all data traffic or increase therate of location updates from fleet to the second, since it does not

represent a relevant added value to the business. However, these are critical requirements for LEAs.

Nevertheless, big differences compared to those solutions reside on the service layer, since crime

Page 13: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

13

fighting is an exclusive mission of a LEA. Services such as the querying for suspects, missing

persons, stolen vehicles or the geographic report/mapping of criminal incidents, as well as

corresponding risk map for an efficient patrol, are examples of distinct needs for a specific LEA service

layer design.

These facts underlie the motivation to design a specific RTMS to LEAs - a simple, efficient, secure,

and low cost solution capable of distinctively enhance the LEAs operational activity management and

consequent citizens safety.

1.2 Objectives

The main objective of the work described in this dissertation is the design and development of a

specific RTMS for LEAs - a simple but efficient solution, that fills current (generic) LEAs requirements

and opens the doors to easily integratenew services and features focused on crime fighting.

The approach to be followed includes the following steps:

Understanding LEAs daily challenges, from the field workforce perspective to the coordination

level, and translate it into IT requirements.

Analyze the state-of-the-art of a RTMS against LEAs needs.

Identification of a suitable architecture and respective technologies that fills the most important

LEAs requirements.

Full design and implementation.

Test and evaluation.

Page 14: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

14

2 State of the Art

2.1RTMS

A RTMS is a system for real-time monitoring of an asset motion and corresponding data (e.g.

temperature, average speed, fuel consumption, etc.). This system is fed from timely ordered sequence

of data fetched from many possible data sources (e.g. GPS receiver for geospatial information

purposes). RTMSs can have a bi-directional communication channel, enabling the transmission of

data/control commands from/to data sources. RTMSs are designed to manage multiple streams of

data originated from those sources, and display it to the end-user using a suitable representational

model (e.g. geospatial data against a geographical map).

RTMSs are used in many different scenarios, such as tracking of valuable assets (e.g. gold

shipments), workforce management (e.g. field engineers), or public transportation (e.g. real-time

information to customers such as delay) [2] . Vehicle tracking systems are also popular in consumer

vehicles as a theft prevention and retrieval device. The owner, along with the police, can simply follow

on real-time the position of the vehicle using the RTMS, and thus it becomes possible to easily locate

a stolen vehicle.When it comes to the LEAs, the major RTMSs are commonly used by fleet operators

for management functions such as fleet tracking, routing, dispatch, on-board information and security.

Over the scope of this thesis, solely RTMSs with geospatial data purposes are taken into account. The

most popular positioning system used by RTMSs is the Global Positioning System (GPS). The GPS

and other positioning systems are further discussed insection 2.2.

Despite the wide spectrum of possible usage scenarios for RTMSs, these systems are mainly

composed of three major components:

1. Tracking unit (data source): captures the location information at given time intervals, and reports

(push/pull) it to a tracking server. Location information may be coupled with other

sensors/modules data. In case of bi-directional communication, tracking unit has (additional)

responsibility in receiving data/control commands from tracking server.

2. Tracking server: The tracking server has three responsibilities: receive data from the tracking

unit, securely store it, and provide this information, on demand, to the user front-end. In case of bi-

directional communications, tracking server hasthe (additional) responsibility in transmiting

data/control commands to tracking unit.

3. RTMS Front-end: The user interface determines the procedure to access information, view asset

valuable information such as location, and elicit important details from it. In case of bi-directional

communication, the end-user might use front-end user interface to transmit data/control

commands to tracking units (through tracking server). Front-end is considered as pure user

interface design, and so it will be out of this thesis scope.

Page 15: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

15

Tracking units, as wll as tracking server RTMS components, are described in more detail over the next

sections.

2.1.1 Tracking Units

A tracking unit is a device that determines the precise location of a vehicle, person, or other asset to

which it is attached, and it transmits the position of the asset at specific time intervals to the tracking

server. It may be transmitted using wide coverage communication technologies, such as cellular

technologies (data, Short Message Service - SMS), WiFi, radio or satellite modem embedded in the

mobile unit. This allows the asset's location to be fetched, stored and consequently displayed against

a map either in real time or for posterior tracking analysis, according to the user front-end control (via

tracking server).

A tracking unit essentially contains a module that receives the signal, and calculates the geospatial

coordinates. However, it must be connected to an additional communication module in order to enable

the unit to transmit the information to the tracking server. Nevertheless, more information originated

from other modules may be coupled to the end-data transmitted to the tracking server (e.g.

temperature, door open, etc.).

Smartphones as other daily-life gadgets (e.g. tablets) with GPS built-in, can be easily turned into a

tracking unit device, simply running a GPS tracking software. This is suitable for human related

tracking applications [3] .

Two main groups of tracking unit devices can be found on a RTMS:

1. Data Pushers (or beacons)

Data pushers are the most common type of tracking units, used for tracking an asset, a person or a

vehicle. Data pushers push information to a tracking server at specific time intervals,or optionally on

an event-triggered basis (e.g. vehicle is out of fuel).

Typical data pushers used in commercial fleet management are connected directly to the vehicle

through the Controller Area Network bus (CAN-bus), which provides not only geospatial information,

but also detailed vehicle information, such as fuel consumption or even coolant temperature.

Commercial solutions are typically configured to update rates in intervals of minutes to hours, and use

SMS to push the data to the tracking server. The use of SMS is not only explained by low mobile

operator tariffs, but also due to notable performance on low network coverage areas.

2. Data Pullers (or transponders)

The only difference between data pullers and data pushers is the logic used to report/update data.

Data pullers are always on, but they only update information when queried.

Page 16: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

16

They are usually used in cases whether the location of the tracker only needs to be known

occasionally (e.g. placed in property that may be stolen), or the device does not have a constant

source of energy to send data on a regular basis, like freights or containers.

Data pullers are popular in Smartphone's (see Figure 1), in order to locate the device in case of being

lost/robbed (anti-theft apps). For instance, the original owner of the smartphone sends a special SMS

(query) to his device, which turns on the built-in GPS (or other location system) module and

consequently replies with an SMS (or mail) containing the actual Smartphone location.

Figure 1 (left) GPS data pusher device1, (right) data puller mobile app2

2.1.2 Tracking Server

A tracking server is a service (software and suitable computer hardware), which communicates

directly with tracking units. Typically tracking servers only have one-way data flow (unidirectional) from

the tracking unit to the server. Nevertheless, a bidirectional communication channel can be

implemented in order to transmit data/control commands from/to tracking units. For instance, the

dispatch of a job (from the tracking server) containing the customer position to the taxi driver (tracking

unit) is a good example of the bidirectional requirement. In a car theft example scenario, the tracking

server may transmit a "turn off engine" control command, which will be received by a tracking unit and

consequently executed by the module responsible to turn off the engine.

Communication is not the only role of a tracking server. The data received from tracking units has to

be parsed and stored in a database. The database can be implemented in the same tracking server

machine.Nevertheless, this approach may overload the general system performance. A higher number

of tracking assets and corresponding update ratio demands higher computing resources. For instance,

a fleet of 51 vehicles with an update ratio of 3 seconds generates a minimum of 17 messages per

second assuming no additional traffic is generated (e.g. retransmission due to network issues). A high

load of messages might require changes in terms of architecture, from the single main frame to

parallel database machines connected to the tracking server through high-speed channels. This

architecture enables the process of many database operations simultaneously, increasing the overall

system performance [5] .

1Source: trackingtheworld.com, last accessed on May 9th, 2014 2 Source: preyproject.com, last accessed on May 9th, 2014

Page 17: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

17

Another role of the tracking server is to serve the stored data to the front-end. Depending on the front-

end solution adopted, tracking server data might be accessed directly through a connection to the

database management system, or indirectly via the tracking server back-end Application Programming

Interface (API), commonly found on web based front-end solutions.

2.2 GPS

2.2.1 Concept

The Global Positioning System (GPS) is a Global Navigation Satellite System (GNSS) that provides

location and time information 24 hours a day. Requiring an unobstructed line of sight to four or more

GPS satellites, the system provides critical capabilities to military, civil and commercial users around

the world. It is maintained by the U.S. Department of Defense and is freely accessible to anyone with

a GPS receiver [6] . GPS was originally intended for military applications, but in 1983 the government

made the system available for civilian use. US Air Force claims for 31 operational GPS satellites, plus

3-4 decommissioned satellites ("residuals") that can be reactivated if needed3.

Figure 2 GPS satellite constellation4.

The GPS satellite constellation (Navstar) is currently a mix of new and legacy satellites (see Figure 2).

Advances in technology and new demands on the existing system have now led to efforts for

modernizing the GPS system and iteratively implement a new generation of GPS satellites. The GPS

modernization program is an ongoing, multibillion-dollar effort to upgrade the GPS space and control

segments with new features to improve GPS performance. These features include notable lifespan

improvement, and new civilian and military signals, which impact the overall performance of the

system [7] .

3Source: GPS.gov, last accessed on May 9th, 2014 4Source: GPS.gov/systems/gps/space, last accessed on May 9th, 2014

Page 18: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

18

The Russian Global Navigation Satellite System (GLONASS) has a total of 24 operational satellites on

orbit, enabling full global coverage. The planned European Union Galileo positioning system, as well

asthe Chinese Compass navigation system, are both scheduled to be fully operational by 2020 at the

earliest [8] .

2.2.2 Operation

Each GPS satellite transmits data that indicates its location and the time the message was

transmitted. All GPS satellites synchronize operations so that these repeating signals are transmitted

at the same instant. The signals, moving at the speed of light, arrive at a GPS receiver at slightly

different times because some satellites are farther away than others. The distance to the GPS

satellites can be determined by estimating the amount of time it takes for their signals to reach the

receiver. When the receiver estimates the distance to at least four GPS satellites, it can calculate its

position in three dimensions. Many GPS units show derived information such as elevation, direction,

speed and accuracy.

When turned on, the GPS units take time to obtain the satellite signals required to calculate actual

position (process called GPS lock). The time taken depends on which of the three modes GPS unit

starts on:

Cold start - Typically, when the GPS unit is turned on for the first time, it does not contain any

previous/context information. Therefore, it attempts to locate satellites and then calculates a GPS lock.

This takes the longest time because there is no à-priori known information.

Warm start - GPS unit remembers its last calculated position, the UTC Time (Universal Time

Coordinated), the almanac (information of the orbit for each satellite), but it does not remember which

satellites were previously in view. The receiver has a list of satellites to look for because it knows its

last position, and the almanac data helps to identify which satellites are visible in the sky. Warm start

takes less time than cold start.

Hot start - Fastest mode. GPS unit remembers its last calculated position - the satellites in view, the

almanac used and the UTC Time.This way,it makes an attempt to lock onto the same satellites, and to

calculate a new position based upon the previous information.

In an attempt to speed up the lock time, device manufacturers and mobile operators have introduced

the Assisted GPS technology (A-GPS), which downloads the current ephemeris (detailed information

about the location of the GPS satellites) via the wireless networks and helps triangulate the general

user’s position with the Base transceiver station (BTS) of the mobile operator [9] .

Page 19: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

19

2.2.3 GPS Security

GPS is widely used by both government and private industry for many important applications.

Therefore, threats to GPS security are currently a concern, since the civilian GPS signals are not

secure. Three main threats are known to date.

The first threat is the unintentional degradation of the signal by increased radio usage on GPS

frequency bands. DVB-T (Digital Video Broadcasting — Terrestrial) service is one example of the

unintentional interference with GPS quality of signal. DVB-Tservices are operational in more than 40

countries, and will be in many more in the coming years [10] . The second threat is exploited by using

GPS signal jammers, known as jamming attack. GPS signal jammers are devices that intentionally

prevent GPS tracking devices from receiving the original GPS signal (essential to pick up their

position). GPS satellite signal power is extremely low at the surface of the Earth. GPS signal jammers

exploit this by emitting their own signal at the same frequency of GPS, yet with greater strength which

confuses/block other GPS signals (intentional denial of use).

The third threat is the transmission of intentional counterfeit signals, known as spoofing attack. It

involves feeding the GPS receiver with fake GPS signals so that it believes it is located somewhere in

space and time, which it is not. Despite the military GPS signals being encrypted, an episode of an US

stealth drone spoof in Iran was reported5, the spoofing technique made the craft “land on its own

where we (Iran engineers) wanted it to".

Threats take advantage of the characteristics that define GPS technology: very low signal power,

single civil frequency and the known signal structure [11] . Under these circumstances, several

countermeasures were proposed to avoid, or at least detect suspicious GPS signal activity:

1) Monitor the absolute GPS signal strength: If the absolute value of the observed signal

exceeds some preset threshold, the GPS receiver would alert the user. Unsophisticated GPS spoofing

attacks provide signal strengths many orders of magnitude larger than any possible satellite signal at

the Earth’s surface.

2) Monitor the relative GPS signal strength: The receiver software could be modified so that

the average signal strength could be recorded and compared from one moment to the next. An

extremely large change in relative signal strength would be characteristic of counterfeit signal

presence.

3) Monitor the signal strength of each received satellite signal: The relative and absolute

signal strengths are tested individually for each of the satellite signals. The counterfeit signal tends to

have equal strength for each artificial satellite. Real satellite signals, however, vary from satellite to

satellite and change over time. If the signal characteristics are too perfect, there is probably something

wrong and the user should be alerted.

5Source: theregister.co.uk/2011/12/15/us_spy_drone_gps_spoofing/, last accessed on May 9th, 2014

Page 20: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

20

4) Monitor satellite identification codes and number of satellite signals received:

Counterfeit GPS signal transmit multiple satellites (typically 10), more than the number of real

satellites often detected by a GPS receiver in the field at a given time. Keeping track of both the

number of satellite signal received and the satellite identification codes over time may prove helpful in

determining if foul play is occurring. This is especially true for unsophisticated spoofing attacks where

the adversaries do not attempt to mimic the true satellite constellation at a given time.

5) Check the time intervals: On counterfeit GPS signal, the time between each satellite signal

reception is a constant. This is not the case with real satellites.

6) Do a time comparison: Many current GPS receivers do not have an accurate clock. By using

timing data from an accurate, continuously running clock to compare to the time derived from the GPS

signal, we can check on the veracity of the received GPS signal.

7) Perform a sanity check: An accelerometer and compass can be used to independently

monitor the physical trajectory of the receiver. A discrepancy between the accelerometer data and the

GPS receiver would raise a red flag and alert the user.

The countermeasures proposed require fine level of information from the GPS receiver, such as signal

strength from each satellite and timely ordered storage, in order to perform comparison over time.

These requirements might not be found in many commercial GPS receivers on the market, which turn

to be impossible to implement.

2.3 Communication

Communication between tracking units and tracking server is a critical aspect on an RTMS. The lost or

even delay of data over the network might turn impossible to use an RTMS. For instance, the use of

LEA RTMS on a criminal car chase context requires an efficient communication system in order to

provide details of the fleet location (along with other information) at the closest to real time. Otherwise,

LEA criminal intersection plan implementation might not succeed due to the latency/disparity of the

fleet location on the RTMS (LEA decision point) and real location on the field.

Typically, RTMSs use existing mobile operators network to communicate. Mobile operators provide

nationwide network coverage (ideally), along with interconnection with other mobile operators from

other countries, making it a global network. Additionally, the large-scale manufacturing of mobile

equipment turned it cheap, network specifications such as speed and delay are satisfactory, and

corresponding rates are relatively cheap compared to solutions such as satellite.

Within mobile operator solutions, communication can be performed by SMS and data services. SMS

might not be desirable for RTMS applications that require a high update rate of data from the tracking

unit. Firstly, the use of SMS implies a new hardware to the tracking server, Global System for Mobile

(GSM) modems. Turning the tracking server solution more complex, since the high update rate by

SMS from many tracking units easily push the modem into bottleneck. Nevertheless, SMS feature

Page 21: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

21

could be implemented recurring to the integration of a mobile operator professional SMS-Gateway

service to solve this bottleneck issue. Other disadvantages of SMS usage regards the message size

limit of 160 bytes after headers, the delay, and the fact that most mobile operators service plans

charge by number of SMS instead of number of bytes.

Assuming a data service is adopted, the choice of the transport protocol (e.g. TCP, Transmission

Control Protocol) has a notable impact on the overall communication performance. The use of

connection oriented protocols show important disadvantages for real-time applications over mobile

operators networks, especially on intermittent network coverage scenarios. For instance, the usage of

TCP under these conditions triggers frequent TCP sockets timeout events, leading to several attempts

to re-establish a new connection with tracking server. The process of TCP connection establishment is

known as the three-way handshake, and it is time wasted comparing to the connection less oriented

protocols, like the User Datagram Protocol (UDP).

Another issue concerns the delay during handover between mobile operator Cells or Internet Protocol

(IP) address roaming. Congestion control mechanisms interpret these delays as a congestion loss.

And therefore automatically reduce throughput considerably, reaching zero in the worst-case scenario.

This drastic throughput reduction, along with the consequent (time consuming) throughput recovery

process, represents a notable degradation of performance. These scenarios do not have the same

impact on connectionless protocols such as UDP, where network intermittence or excessive delays

may generate temporary loss of packets, but easily recovered by re-transmission algorithms coded on

the application level. This way, time consuming tasks like the throughput recovery and connection re-

establishment are avoided [12] .Another disadvantage of connection oriented transport protocols is the

segment header overhead. For instance, TCP segment has a minimum of 20 bytes of header in every

segment, whereas UDP only has 8 bytes. TCP needs more header data (e.g. Sequence number) in

order to guarantee certain features of the protocol (e.g. reliability), while UDP, which gives no

guarantees, only contains the necessary header data to make the packet reach the destination. A

bigger overhead size means better probability of loss of packet and higher variance in end-to-end

delay [13] .

Mobile operators connections identify clients in a given network by an Access Point Name (APN). The

common APN defines the network with internet access. However internet access is typically achieved

through Network Address Translation (NAT) gateways, which dynamically allocate private IP

addresses to the mobile terminals. NAT prevents inbound connections, since there are no externally

visible IP addresses. Thus, the establishment of a connection must be always initiated by the device

beyond NAT (e.g. tracking unit). In addition, there are many different NAT implementations with

different application-level knowledge and different binding time-outs for ports and sessions (IP/port

mapping) [14] . In fact, a simple UDP test between a Portuguese mobile operator (TMN) and an

independent Internet service provider (ISP, Cabovisão), have shown that (over a slight minority of

NATs) UDP datagrams arrived ISP node, with a local IP address as source. Therefore, unless working

in exceptional situations, RTMSs developers must always assume the worst scenarios for tracking

units in terms of mobile operator network topology, for instance being persistently jumping between

Page 22: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

22

different NAT implementations with outrageous delays due NAT resource allocations, or unexpected

changes of IP due to lack of normalization, such as intermittent roaming support. This latter property

requires the tracking server tobe able to identify the tracking units based on data payload rather than

the IP protocol header. For instance, the International Mobile Equipment Identity (IMEI) of tracking unit

might be included in data payload for this purpose, since IMEI is an unique identifier of the mobile

communication hardware module [15] .

2.4 Security

In order to RTMSs work properly, an efficient communication between tracking units and tracking

server must be accomplished. However, LEA RTMS communication process in the single sense as

clear data exchange is not enough. Additional security measures should be performed over the clear

communication channel, in order to deny any chance of unintended users to fetch information or to

have any influence in the proper RTMS behavior. Hence, three main security functions should be

implemented - Confidentiality, authentication and integrity. Confidentiality ensures the sender that the

message can only be read by an intended receiver. This function implies the encryption of the

message in a pre-arranged way between sender and receiver (tracking server and tracking units).

Data exchange between tracking units and tracking server, may contain valuable information to

criminals’ eyes such as the real-time location of the LEA work force. This is a precious piece of

information for any criminal activity over the field (e.g. Bank robbery escape). Assuming data

exchange is done over an insecure channel (e.g. mobile operators network, a third party network not

trusted by the LEA), encryption of data plays an important role within LEAs proper work. Encryption

will assure that no sensitive information is gathered in case of interception.

The encryption process is defined through the specification of an algorithm and key(s). Where

algorithm defines the generic procedure of data modeling and the key(s) is the corresponding

parameter responsible to generate distinct behaviors. The algorithm and the key shall be chosen

accordingly to the value of the information to be protected and the expected threats. The strength of

an encryption algorithm is derived from the mathematical properties of the algorithm. For example,

RSA algorithm derives its strength from the difficulty of factoring large numbers. If a method that

radically speeds up the factoring of large numbers is discovered, the RSA algorithm can be broken

[16] . If the algorithm is publicly available, then the strength of the encryption is only dependent on

keeping the key secret. An attacker can conduct a brute force attack by trying all possible key

combinations. The challenge is then to decide on a suitable key length, such that a brute force attack

will not be successful in a timeframe shorter than the lifespan of the message that it is protecting.

However, attackers may limit the space of the brute force as much as they can. For instance,

attackers may try to gather information such as the default configuration values (e.g. length of the key)

of a specific RTMS solution or the computational limitation for random numbers generation, and

narrow brute-force attack accordingly.

Page 23: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

23

Despite innumerous possible attacks against encryption, the most common are:

1) Ciphertext-only: This attack tries to find the original message (or algorithm and corresponding

key), taking only as input the encrypted message.

2) Known-plaintext: Same as previous, but besides the encrypted message, the original message

(or only parts of it) are also known.

3) Chosen-plaintext: The attacker is able to write the original message, and consequently tries to

find the original message (or algorithm and corresponding key) based on the posterior encrypted

message.

4) Adaptive-chosen-plaintext: It is derived from the previous attack, but the attacker selects parts

of the original message based on encrypted messages previously retrieved.

An important aspect of encryption solution is the key management. The strongest algorithms and the

longest keys are useless, if the keys are not generated, distributed and destroyed in a secure manner.

Stealing keys is an attractive option for the attacker because he does not need to expend resources to

break the encryption algorithm, when he can break the key generation algorithm.

Encryption operations are computationally intensive. Therefore, the power consumption of encryption

operations must be taken into account when deciding the best algorithm and the key length for an LEA

RTMS, since tracking units may do not have an "infinite" energy source. In addition, many encryption

algorithms encrypt data in fixed block sizes. If the data is larger than the block size the last part of the

message is usually padded to the full block size, resulting in a significant increase of the message

length. Specially, if applied on short messages, such as those transmitted by tracking units, containing

not much more than the corresponding device location. The increase of the message

length,representadditional transmission data, which in turn increases the power consumption on

tracking units as well.Despite energy consumption not being an issue of tracking server, the speed of

encryption/decryption is. Algorithms that have more operations and longer keys, take more time

processing. Thus, tracking server may receive an enough amount of message per second (depending

on number of tracking units assigned), which is not capable to decrypt and consequently encrypt

corresponding reply message within a valid timeframe. Replies out of valid timeframe may trigger

tracking units to resend the same message, turning tracking server as a bottleneck.

Encryption can be grouped into two categories, symmetric and asymmetric. Symmetric encryption

(e.g. Advanced Encryption Standard - AES) is the process where a single key (secret key) is used for

both encryption and decryption. Only the owners of the secret key can decrypt the message, if more

than one entity needs access to encrypt/decrypt the message, the secret key must be shared among

them. Asymmetric encryption (e.g. RSA) uses two related keys, one for encryption (private key) and

the other for decryption (public key). The private key is kept secret, while public key is announced to

the public in order to decrypt messages encrypted by the corresponding private key. Symmetric

encryption is much faster and energy efficient than asymmetric [17] . These aspects, makes

symmetric encryption more desired for RTMS, especially in scenarios with high rate of message

Page 24: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

24

updates. In addition, tracking units might do not have enough computational resources to perform

asymmetric encryptions operations in valid time frame.

Symmetric encryption has a disadvantage, regarding the need to pre-share the keys among the

senders and receivers, increasing complexity along with the number of users. Key distribution must be

exchanged securely via some trusted communications channel or through some key exchange

mechanisms [18] . Nevertheless, key distribution should not be an issue for an LEA, since users have

direct access to a trusted channel through daily physical presence on LEA facilities. Secure key

exchange mechanisms, such as Internet Key Exchange (IKE) and Secure Socket Layer (SSL), have

been developed to facilitate symmetric or asymmetric key exchanges across insecure networks.

However, these protocols assume relatively high band width, real-time connectivity between the

sender and receiver. For example, the set up of an SSL session requires an exchange of at least four

messages before the secure session is established. The adoption of SSL over RTMS may not be

desirable due to network issues, analogous reasons as TCP handshake (discussed in previous

chapter). Additionally, SSL solution can easily generate heavy peaks of computational resources on

tracking server side, due to (unexpected) SSL session setup initiation by many tracking units at the

same time (e.g. tracking server reboot or intermittent network coverage scenarios).

The integrity of the message is also important. This ensures that the message was not modified in an

unauthorized or undetected manner during the communication. This security function can be

performed through the addition of a message integrity code (MIC) to the tail of the original message

and posterior encryption of the whole. As the receiver decrypts the message, he compares the MIC

received against the local processed MIC. If there is a mismatch, the message integrity was violated.

MIC is a piece of information derived only from the original message. It can be an error detection and

correction code (EDAC) like a cyclic redundancy check (CRC), or a cryptographic hash function output

(e.g. Secure Hash Algorithm, SHA-1). Nevertheless, both have different strengths. EDAC are suited to

detect accidental changes to data and are commonly used in networks and storage devices. These

algorithms were not intended to protect against intentionally changes, but rather to catch accidents like

network errors and disk write errors. The emphasis of an EDACis more on speed than on security[19] .

On the other hand, hash functions used on cryptographic algorithms (message digests) are one-way-

hash. One-way-hash have the property (per design) that it is hard to find the input that produced a

specific hash value. It is hard to make two different inputs that give the same one-way-hash (low

collision property). The emphasis of message digest algorithms is on security over speed. However,

the output size of many message digest functions may be bigger than tracking units original

messages, leading to waste of energy (data transmission and computational resources). A practical

measure would be the truncation of the output of the hash function to the desirable value. However,

this solution can turn collision resistance much lower than expected (depending on the algorithm),

since the majority of the message digest functions were designed to a specific output size.

Nevertheless, the use of the MIC does not guarantee the receiver who was the originator of the

message. Authenticity security function is performed through message authentication code (MAC). In

Page 25: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

25

fact, MAC not only implements authenticity but also message integrity as well. Besides the original

message, MAC algorithm uses also the secret key as input (opposing to MIC). The output is a code

(or tag) which only holders of the key can verify the authenticity. The inclusion of the MAC on the tail

of the original message, which is respectively encrypted, is a secure way to assure confidentiality,

authenticity and integrity of the communication.

The implementation of security functions on a RTMS, do not guarantee total security. However, it

makes the attack more difficult to succeed. Additional measures should be addressed during the

design of a secure RTMS, in order to avoid the following methods used by the attackers:

1) Man-in-middle Attack: The attacker might have access to the Mobile operator network, or any

part of the network between the tracking server and tracking units. This positioning enables the

attacker to perform active eavesdropping, intercept all messages and even inject new ones. Under

these circumstances, it would be possible to arrange an attack that eludes tracking units to

communicate with attacker tracking server, instead of the authentic LEA tracking server.

On the other hand, the attacker may be interested to passively capture all the data, in order to

perform encryption attacks.

2) Replay Attack: The attacker can misuse the previously exchanged messages between the

tracking server and tracking units. For instance, the constant replay of a message sent previously

by tracking unit may elude the tracking server to perceive that the vehicle is stopped.

3) Denial of Service (DoS) Attack: Attacks that have simply the mission to put the LAE RTMS

completely or partially inaccessible. For instance, an attacker can send a bigger number of false

requests than the tracking server can manage, leading the RTMS to the state of unusable.

2.5 LEAs

2.5.1 Portuguese LEAs

LEAs jurisdiction typically follow the national administrative territory structure, and the same happens

in Portugal. The Portuguese territory is divided into eighteen districts (islands not included), each one

being controlled by the respective agency department and consecutively divided into sub-departments

that control one or more agencies. An agency can have one or more vehicles, and each one reports

directly to his respective agency Central Station. Minor issues are managed within the local station

bounds. However issues can turn out to be more complex and escalate through the local station, sub-

department, department or even General Command (highest point of decision support)6. Over this

context, an additional coordination difficulty is implied to those who are in charge with their respective

workforce on field. This challenging coordination gets complicated due to the actual inefficiency of

communication, or lack of extra information channels. Currently, the hierarchical superior (someone

who is in charge of several sub-departments) coordinates his workforce, uniquely by radio (voice).

6Source: www.GNR.pt, last accessed on May 9th, 2014

Page 26: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

26

This raises several issues, such as the inability to provide a clear picture of an accident scenario, or

the difficulties that decision makers have in building a mental geospatial image of a wide distributed

workforce on field based on many radio conversations in parallel of ongoing processes. Assuming

error tends to propagate over the chain, information that reaches the decision support level may loose

value.

Sistema de Informação Geográfica7(SIG), is a system currently deployed that provides the geo-spatial

position of each radio and respective status. Despite the lack of services, it is currently only available

to the department (and upper) levels. Hence, it is not used by the lower department levels, which are

the ones that solve the majority (day-by-day) issues.

The actual radio infrastructures underlie a network called Sistema Integrado das Redes de

Emergência e Segurança de Portugal (SIRESP), which supports a Terrestrial Trunked Radio (TETRA)

for all Portuguese LEAs. TETRA is defined as a good long-range communication system with strong

security standards. However, communications services provided are barely constrained to voice. The

actual version of standard supports a maximum of 115.2 kbit/s in 25kHz (Portugal) or up to 691.2

kbit/s in an expanded 150 kHz channel [1] . Under these circumstances, it is possible to argue that

LEAs cannot rely on Tetra systems for the majority of services that imply the exchange of important

multimedia data (e.g. image of a suspect).

Besides radio infrastructures, Portuguese LEAs are served by a national data communication

infrastructure called Rede Nacional de Segurança Interna (RNSI). RNSI is the LEAs private cloud8. It

provides data network connection between agencies and the respective services. Examples of such

services are the internet, email, VoIP, along with specific applications required day by day for the

proper work of the organization, like traffic infraction system (called Sistema de Contra Ordenações de

Trânsito- SCOT). Applications like RTMS should benefit from RNSI infra-structures as well, more

specifically in terms of security, high availability along with possible interconnection with other

applications (e.g. SCOT).

2.5.2 Requirements

Within the scope of this dissertation, informal meetings with GNR (Portuguese LEA) officers were held

in order to raise and guide general LEAs requirements and consequently translate them into IT

requirements.

The understanding of requirements implies the proper understanding of the following concepts:

Vehicle - Represents the LEA structure used to transport LEA field workforce. They are equipped with

a device (hardware and software) that enables the exchange of relevant information (e.g. Location).

Vehicles are not only able to transmit, but also to receive data as well. Vehicles exchange information

with Central Stations. 7Source:GNR.pt/default.asp?do=tnov0r6r_vz24r05n/016vpvn5/016vpvn5_qr5p4vpn1&fonte=noticias&id=728&Me

s=3, last accessed on May 9th, 2014 8Source: www.RNSI.mai.gov.pt, last accessed on May 9th, 2014

Page 27: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

27

Table 1 lists all the requirements.

#No Description

1 Global solution does not replace actual LEA radio solution, but work as LEA enhancement tool.

2 Global solution shall follow low cost approach, not only in terms of hardware but software licensing as well.

3 Vehicles shall provide to Central Station their Location, Name and corresponding motion Status (e.g. on move, stopped).

4 Central Station shall be able to monitor all the assigned vehicles information with minor delay as possible (Real-time data approach).

5 Data exchange shall be tolerant to network failures.

6 Data traffic exchange shall be minimized as much as possible.

7 Data exchange shall be: - Confidential: Data must be encrypted in a way that only the credentials owners can

retrieve the information. - Authenticated: Any valid data receiver must be able to uniquely identify the sender. - Incorruptible: Alteration of original data between sender and receiver shall be

detectable and consequently discarded.

8 Data storage shall be delimited to LEA own infra-structures.

9 Vehicles shall have an SOS feature, which alarms the Central station.

10 Shall be possible to send a file to one or more vehicles from the Central Station (downstream).

11 Vehicles shall have a reporting feature, which will enable the report of 'Event' (Location, Time, Type), 'Person' (ID, Drive License, Name, Free Text) and 'Vehicle' (License Plate, Free Text) to the Central Station.

12 Shall be possible to take photo from vehicle and send corresponding file to the Central-Station (upstream).

13 Shall be possible to dispatch a job (respective coordinates) from Central Station to one or more vehicles at same time.

14 Shall be possible to send POI (Points of Interest) from Central Station to one or more vehicles at same time

15 Vehicle and Central Station shall be synced with a list of 'Persons' (suspects and lost).

16 Vehicle and Central Station shall be synced with a list of 'Vehicles' (suspects and robbed).

17 Shall be possible to design a risk map layer from Central Station. This layer shall vary along the time for each day of week.

18 Vehicles shall be able to sync and visualize risk map layer provided from the Central Station.

19 Central Station shall be able to have an history feature, capable of represent previous locations of the fleet and corresponding events on map.

Table 1 LEA requirements

Central Station - Physically present in LEA facilities as a room, conceived for being the central point

of monitoring/coordination of one or more vehicles assigned to the Central Station. Central Station

responsibilities can be temporary overtaken by another Central Station with higher hierarchy.

2.5.3 United Kingdom Police Case

The United Kingdom Police currently has an ongoing plan to maximize efficiency through the adoption

of mobile technology, in order toincrease the time officers spend on the streets in contact with local

communities. The traditional model pushed officers to waste time on the round-trips to the stations,

since there was no way to perform their tasks locally (on the field).This applies to tasks such as formal

submission of an incident or a simple access to local and national database system. Under these

Page 28: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

28

circumstances, officers needed a secure mobile access to their station systems9.The solution adopted

by UK Police is constituted by a Tablet (Playbook by RIM) along with several mobile apps that

provides access to Police station back-end services. These Tablets only have WiFi and Bluetooth

connectivity, the network access is provided by the individual Smartphone (BlackBerry by RIM)

bridged with the respective Tablet. All the data security transmission is secured over proprietary

technologies (e.g. network protocols) by RIM. There are a total of 56 police forces in the UK, 44 are

already using this mobile solution. The tablet software is developed by a company called 'Mobile

Innovations' (Canada).

Additionally, Sussex Police Department has a trial running to check the viability of the Tablet as an in-

car option. If successful, they will install the in-car Tablet solution in about 400 of their vehicles in

place of the older ones10 (Magellan, by JP Sá Couto Portugal11). The in-car solution is called MPA

PlayBook In-Car, and is a bundle of different hardware accessories, as described in Figure 3.

Figure 3 MPA PlayBook In-Car

United Kingdom Police vehicles will be able to securely access and search multiple police data bases,

relay information about their position and status, securely email, SMS and send alerts, scan drivers

licenses and print traffic tickets. The system seems to be quiet promising, since it was fully designed

to interoperate with UK Police backend systems. As a commercial solution, all the efforts are reflected

over the final price. The MPA PlayBook In-Car bundle price is 2500€ (BlackBerry not included)12. The

price of the backend systems, services and respective commercial support that continuously operate

with UK Police legacy systems are not publicly available. Nevertheless, it is known that Metropolitan

9 Source: www.Blackberry.co.uk/casestudies (UK Police Customer Success) last accessed on May 27th, 2013 10Source: http://tbkconsultblog.com/2013/02/08/magellan-computers-installed-in-uk-police-cars/ last accessed on

May 27th, 2013 11Source: http://crackberry.com/uk-police-get-blackberry-playbook last accessed on May 27th, 2013 12 Source: http://www.mobinnoco.com/accessories/mpa-in-vehicle-choice/ last accessed on May 27th, 2013

Page 29: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

29

UK Police are currently spending 385 Million Euros a year on technology13, which is completely out of

budget in the majority of the worldwide countries. In addition, the high price for well-conceived

solutions does not solve the biggest challenge of these systems: the network access. The Mobile

Operator network coverage and availability in many cases can easily turn the big investment into

something not usable.

2.6 Market Solutions

From the wide GPS commercial solutions on the market, GPSGate14 presents the most desirable

RTMS solution to LEAs. In fact, they claim to have many LEA costumers.

GPSGate Server is an advanced GPS tracking platform available both as a software download and a

service. They offer the possibility to host the GPS server (as web service) in their own IT-

infrastructures. However, it is not a suitable solution to LEAs due to security policies (data shall not go

out of LEA management domain). Nevertheless, they offer the solution to download and install the

GPS server locally on LEAs infrastructures. This server software is a bundle of a gateway solution

(software which handles all the data from tracking units), a database to store data (MySQL) and a web

server, which provides the User Interface (Apache + PHP+ Java scripts). Unfortunately, local server

solution is only available to Microsoft Windows OSs.

GPSGate provides many features within their initial solution, but it is possible to additionally extend

features by developing plugins based on the .NET API available.

From the fleet user perspective, GPSGate only provides a Windows OS software client solution.

Nevertheless, they also provide an open communication protocol to control/transmit data for the ones

who dare to customize their GPS units in order to take all features from GPSGate solution (e.g. mobile

app). The GPS client is prepared to support open and vendor USB protocols (e.g. Garmin binary) and

Bluetooth connectivity in order to capture the data into the GPSGate Client Windows Application,

which in turn can be transmitted through TCP/IP, UDP or HTTP for the respective tracking server. The

HTTP feature is valuable for LAEs since it allows the traffic to pass through firewalls/Web Proxies

without violating ongoing security policies, turning the solution easy to deploy. However, the use of

HTTP raise performance issues compared to the use of UDP or TCP raw sockets.

On the whole, GPSGate provides many features required for a typical RTMS, with the added value to

extend it through Plugins. However, due to the bigger dependency of Microsoft Windows OS, the

solution is barely closed for organizations who follow different paths, such as open-source (e.g. Linux).

Due to the limitation and complexity of the API, the development of plugins to fulfill specific LEAs

features can turn to be not only too challenging but timely expensive. Another issue from this solution

is the lack of data file sharing between tracking units and server. Additionally, the GPSGate does not

support security over the transmission of data between tracking units to server.

13 Source: http://www.london.gov.uk/mayor-assembly/london-assembly/investigations/met-police-technology last

accessed on May 27th, 2013 14 Source: www.gpsGate.com, last accessed on May 1st, 2013

Page 30: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

30

2.7 Related Work

Muruganandham and P. Mukesh [20] have proposed a Real Time Web based Vehicle Tracking using

GPS.Where tracking units report over GSM (SMS/GPRS) the vehicle information to a tracking server

which is stored in a database. A Web Interface was developed to display the real-time location of the

vehicles. The proposed work shares similarities with this thesis regarding vehicle tracking.

Nevertheless, there are differences, specially in the tracking unit. They followed the classic (most

used) approach of design/build a customized unit, in contrast to the approach of using a Mobile market

device (Tablet or Smartphone) with all builtin. The design of a customized unit gives more space for a

better performance and efficient system. However it has some disadvantages such as the effort/time

cost to prototype an hardware solution, and the final price. The adoption of a well known market

device spares the time of hardware prototyping, providing a much more stable, lighter, portable and

thinner end device which was (presumably) designed and massively tested by many specialized

experts with a much more comfortable budget and knowhow supported by big manufactures (e.g.

Samsung). However some requirements raised by the work,such as the information of the vehicle

ignition (on/off) and door status (open/closed), complicates the Mobile device solution. Nevertheless, it

could be solved with a simple CAN-BUS to Bluetooth device15, assuming CAN-BUS is deployed in the

vehicle. The use of a mobile device, opens a new world to future applications that may run in

concurrency with the tracking Mobile App, and take advantage to all the hardware built in features

such as the camera, or software abstraction provided by the OS like face recognition. Another aspect

to take into account, is the long-term support of the system. In any specific point of time (and for

unexpected reasons) the hardware solution might get damaged and respective repair can turn to be

expensive or even impossible. The repairof mobile device can be easily done by just replacing it with a

new and compatible device. Most of the programming code of a customized solution is hard written to

specific components (eg. GSM Module) and these ones could no longer be found on the market,

forcing a new software development cycle, or even a redesign of the hardware solution.

K. Hasan et al. [21] have proposed a cost effective method of object tracking using GPS and GPRS

technology. The user can view the present location of the object as well as the past history of its

movement using Google Map and Internet. They take advantage of the IMEI number uniqueness to be

used on the authentication of the device. Hence, the Tracking server drops all the messages that do

not have a valid IMEI stored in the database. This is a simple security approach that resides in the

secrecy of the IMEI, which can be easily exploited by man in the middle attacks and spoofing. Similar

logic of use of the IMEI is applied on this thesis solution.

Another important aspect solution of the proposed work is the use of HTTP POST method to transmit

data between the tracking units and server. In that way, the implementation (e.g. validation, data

manipulation, etc.) of the tracking server is developed in PHP, which is not the best solution in terms

of performance. This choice represents a high cost of CPU and memory per vehicle, therefore is not

"Cost Effective" as the work title suggests. The development language selected for the solution of the

15 Source: http://www.case-gmbh.de/DS4113D.pdf last accessed on May 30th, 2013

Page 31: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

31

thesis is Java. Despite Java being considered as low performance, it is still better compared with PHP

(interpreted language) and much easier to migrate to native code if required in comparison to a web

scripting language such as PHP. Nevertheless, the adoption of HTTP protocol along with PHP,

provides development flexibility to upgrade the solution to a secured data transmission channel,

HTTPS. However, HTTP or HTTPS is (once again) not "Cost Effective" desirable protocol, since it fails

on overhead against TCP raw socket (the underlying protocol). The same overhead issue applies to

TCP against UDP, and that is the reason UDP is mainly used on the thesis proposed solution. Another

argument from the authors is "most of the GPRS/GPS based tracking devices available in the market

use TCP or UDP protocol to connect with the server and send data. A dedicated server with a static IP

is required. This is more expensive compared to that of shared web hosting". The latter, explicitly

states that the cost-effectiveness of the authors’ work is reached not by following the cost-effective

GPS tracking best procedures, but by simply adopting a cost-effective business model for web - the

shared web hosting. Applying similar logic, shared tracking service business model shall be definitively

more cost-efficient than the tricky shared web hosting proposed. Shared tracking services follow the

growth of cloud computing usage and optimized elasticity of resources. GPSgate16 and GPS-Trace17

are examples of that.

16 Source: www.GPSgate.com last accessed on May 1st, 2013 17 Source: www.GPS-Trace.com last accessed on May 29st, 2013

Page 32: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

32

3 Solution

3.1 Overall Solution

The overall solution is composed by a mobile app running on a tablet (in each vehicle), and a tracking

server along with a database and web server. The vehicles share a secret key with the tracking

server, and exchange data securely through mobile operator network and (possibly) third party

networks. The Central station(s) manage the fleet through a web-based solution secured by an

HyperText Transfer Protocol Secure (HTTPS) connection. This Web application (RTMS front-end) is

not included within the thesis (hence out of the scope), only referred for better solution understanding.

The following Figure 4 depicts the overall end-to-end solution.

Figure 4High-level solution architecture.

The solution proposed on this thesis is characterized by a set of features that enhance the LEAs daily

operational requirements. These features along with corresponding description are shown on the

following table.

3.2 Central Station (Tracking Server)

3.2.1 Architecture

The tracking server is coded in the Java programming language (JDK 718). The main argument behind

this choice is the high portability of the code to many other Operating Systems (OS). An important

aspect, since existing technological infrastructures may widely differ between LEAs. Therefore, this

approach will drastically mitigate the risk of incompatibility of the OS during solution deployment. The

server architecture solution is designed according with Figure 5.

18

Source: docs.oracle.com/javase/7/, last accessed on May 9th, 2014

Page 33: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

33

Feature Description

Real-Time Monitoring

Central Station can monitor fleet status (e.g. location) in real time (up to the second).

Alarm Vehicles can trigger an SOS alarm in Central Station. This feature allows an immediate request for Central Station support containing vehicle location. Inefficient process like location description through voice is surpassed. (e.g. Request support within a zone without relevant descriptive references)

Points of Interest (POI)

Central Station can send multiple POI to Vehicles. This feature allows the fast transmission of multiple strategic locationpointsto vehicles. It also allows easy visualization of these POI onthe mobile app map. (e.g. Location points of the last appearances of a missing person).

Job Dispatcher

Central Station can dispatch a job containing specific location to vehicles. This feature allows the fast transmission of a mission to vehicles. It also allows easy visualization of the mission spot against the mobile App map. (e.g. Suspicions of domestic abuse within a rural zone).

File exchange File transmission between vehicles and Central-Station. This feature allows the exchange of files between vehicles and Central Station (and vice-versa). Central Station can easily broadcast dense information through multiple vehicles. (e.g. Unexpected escalation, which requires a fast broadcast of the contingency plan to all vehicles).

Report Vehicles can report events along with corresponding location. This feature will enable the population of database with important data, from criminal investigation analysis perspective to crime prevention (risk map). (e.g.Georeferenced report of domestic abuse can allow LEAs to predict where, and at what time, the next domestic abuse might happen).

Photo Vehicles can take photo directly to Central Station. This feature will allow Central Station to make better decisions based on more accurate information (picture). (e.g.the obstruction of a road due to natural disaster requires a high level of detail to make a decision for a partial roadblock or other transit deviation plan).

LEA data Vehicle terminal have local access to synchronized list of Person (suspects and lost) and Vehicles (suspects and robbed)

This feature will reduce the Central Station workload, and at the same time enables the access to the information within the vehicle, on a faster and more accurate way.

Risk Map Vehicles can easily see the representation of the risk over the map (layer). The layer is dynamic, it changes accordingly to the date and time of the day.

This feature will enable vehicles to perform an optimized patrol (better coverage of critical zones at the right time and weekday).

History All the information is stored on database, in order for LEA to be capable of representing previous fleet locations and corresponding events on the map.

Security All data exchanged is: o Confidential: Encrypted in a way that only the credentials owners can

retrieve the information. o Authenticated: Any valid data receiver is able to uniquely identify the

sender. o Incorruptible: Violation of original data between Central Station and

vehicles isdetectable and consequently discarded.

Network Tolerant to fault - Retransmission of data lost during network fault.

Performance - Low data traffic(e.g. smallersize of messages).

Table 2RTMS features and descriptions.

Page 34: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

34

Figure 5 High-level architecture of tracking server.

DB Manager: This module is responsible for all operations in the server database. In order to improve

performance, functionalities that are likely to deal with large data sets make use of prepared

statements along with batch operations (e.g. Insertion of 100 rows per batch). The module uses the

MySQL database management systems (DBMS) driver, which limits the database compatibility to any

MySQL driver system.

File Manager: This module is responsible for all the local file system operations. In addition, it

features simple versioning of files, by concatenating a number to the header of the filename (e.g.

"23_RiskMap.geo"). This provides a simple manner to detect if the vehicle app has the latest version

of the file from Central Station during a file synchronization process.

Application Manager: This is the first module that the server loads. And the first task is loading the

DB Manager module, in order to fetch the server configuration and users information (e.g. credentials)

from database (see Figure 6, tables "Server_configuration" and "terminal_users") into memory. The

decision to load user information to memory is justified by the high rate of access for this information

(e.g. anytime a message arrives) against the performance of memory versus hard disk (assuming

database is on hard disk). Nevertheless, user information kept on memory needs to be updated

anytime a change on users accounts occurs (e.g. new users added). This update is not done

periodically by the server, but shall be asynchronously triggered by the front-end solution (tool

responsible to manage user accounts). Or in the worst case, rebooting the server. Once all data

required by the server is loaded, Application Manager loads the Operation Handler module.

Nevertheless, Application Manager remains on active cycle collecting and storing periodically all

RTMS relevant data from memory to database. The data storage is prioritized by the period of

verification and corresponding thread priority. For instance, real-time status messages needs to be

update on database with minimum delay. Therefore, it is verified for new status messages every

250ms by a maximum priority thread. In comparison to the update of the status history, that one is

checked every second and updated by the minimum priority thread.

Application Manager

Server Configuration

Resource management

Data prioritization

Operation Handler

Subscription

Receive File

Send File

Receive Offline Messages

Receive Reports

Sync People Data

Sync Vehicles Data

Sync Risk Map Data

File Manager

Write Local File

Read Local File

Message Handler

Receive status message updates

Send Control messages

Security

Encryption

Decryption

Message Validation

DB Manager

DB Connections

Write Operations

Read Operations

Page 35: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

35

Another important task of Application manager, is the management of allocated resources that each

vehicle app demands from server after a successfully subscription operation (see 3.4.1). Resources

allocated on server that are not used for more than 24 hours, are released.

Operation Handler: This module is responsible to perform operations requested by the vehicles

applications. The module runs a main TCP socket open on the configured TCP operation port (Server

Configuration,Table 4) which is accordingly forked to the corresponding operation requested by the

app.

Security: This module is responsible for the encryption, decryption and validation of data all over the

solution. Due to the high rate of usage (e.g. anytime a message arrives), and possible low

computational resources on vehicle mobile devices, it was decided that only symmetric cryptographic

operations are performed. The security module was coded in a manner that could be used as much

flexible as possible. It uses the open-source "Bouncy Castle" lightweight cryptography library, which

provides an easy abstraction for many cryptographic algorithms. This library is included on the official

android OS (on4.2.2 version / Jelly bean). And this aspect mainly justifies itsadoption, since the

vehicle terminals are android mobile devices and transparent compatibility is highly desirable. In fact,

the server java class (security.java) that represents this module is equal to the vehicle app. Therefore,

a change on the level of security (e.g. encryption algorithm, message padding andMAC) can be

transparently done only within a file (on both sides, server and app). This approach is justified by the

assumption that the deployer of this solution is responsible to assess the risk exposure level, and

choose the best-fit security standards accordingly.

Message handler: This module is responsible to receive live status messages from vehicles apps,

and send control messages to corresponding vehicle app (e.g. Dispatch a job). The communication is

preferably done through UDP, but TCP is also supported. Both work in concurrency on the server and

the logic of decision is implemented on the client side (mobile app). Further details are discussed on

section 3.4.2.

3.2.2 Database Structure

The Database was designed to be simple and easily understood. The Unified Modeling Language

(UML) diagram of the database is depicted on following:

Page 36: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

36

Figure 6 UML Database model.

No security measures are applied by the tracking server solution to the database content. The

database encryption is currently a feature supported natively by the most popular DBMSs.

Nevertheless, It is extremely advisable that shared secrets shall be generated by a machine during

terminal user creation procedure or in any other scenario that shared secret shall be reset (e.g. shared

secret expiration date). But these points shall be addressed during the design of the front-end solution

(out of the thesis scope).

In order to provide a deep level of the database and data representation, a Structured Query

Language (SQL) script for database creation can be found in annexA.1. Nevertheless, Table 3

describes briefly each of the database tables.

Terminal_Users

PK UserID

Secret

GroupID

Name

DateCreation

Description

Server_Config

MaxNumVehicles

TCP_Operation_Port

TCP_TimeOut

CMD_Timeout

UDP_Limit_Down

UDP_Limit_Up

TCP_Limit_Down

TCP_Limit_Up

Reports

PK UserID

Timestamp

Latitude

Longitude

v_Plate

Description

v_Brand

v_Model

v_Color

p_ID

p_Driverlicense

p_Name

terminal_groups

PK GroupID

Name

Description

RTstatus

PK UserID

Timestamp

Latitude

Longitude

SOS

STOP

GSPfix

Battery

History_status

PK UserID

Timestamp

Latitude

Longitude

SOS

STOP

GPSfix

Battery

History_Events

PK UserID

Timestamp

TypeEvent

Latitude

Longitude

Confirmed

data

* ... 1

* ... 1

1

...

*

1 ... 1

1 ... *

Page 37: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

37

Table Name Description

Server_config Contains the parameters of tracking server configuration. See next chapter for further details.

Terminal_Users Contains all the mobile app users and corresponding data (e.g. shared secret).

Terminal_Groups Contains the list of groups that mobile users can belong to.

RTstatus Contains the latest status for each mobile app (vehicle). Due to performance, this table is kept only on memory.

History_Status Stores all the status received by the mobile apps.

History_Events Stores all the events performed within mobile apps. (e.g. Reception of photo or Job dispatch)

Reports Stores all the reports uploaded by mobile apps.

Table 3 Tracking server database tables.

3.2.3Server Configuration

All the tracking server configuration is done through the database table Server_Config (shown in

Figure 6 UML Database model.), where each row represents a configuration parameter. All the

parameters are loaded during the boot of the tracking server. The following table describes each one

of them:

Parameter Description Default Value

MaxNumVehicles The maximum number of total vehicles that tracking server will serve at the same time.

100 (vehicles)

TCP_Operation_Port Port used by the mobile apps to perform operations (e.g. Subscription).

1000 (TCP port)

TCP_TimeOut Maximum idle time (milliseconds) the tracking server waiting for a reply during a Operation. (faster release of resources)

5000 (5 seconds)

CMD_TimeOut Maximum time (milliseconds) the tracking server persist a command (e.g. Job Dispatch)

10000 (10 seconds)

UDP_Limit_Up, UDP_Limit_Down

Window of available UDP ports that tracking server may use to exchange live messages with mobile apps.

2000,4000 (UDP port)

TCP_Limit_Up, TCP_Limit_Down

Window of available TCP ports that tracking server may use to exchange live messages with mobile apps.

2000,4000 (TCP port)

Table 4 Tracking server configuration parameters.

3.3 Vehicle (Mobile App)

3.3.1 Architecture

The mobile app is coded in Java programming language for Android(API 1719), it was targeted to run

on Android devices, but it can also run through an emulator (Bluestacks20) on other OSs. Android is an

open-source OS, an important aspect to LEAs, since it provides a transparent level of trust on how the

data is internally used by the OS. Android counts with alarge list of manufacturers that produce a wide

range of devices with distinct prices, physical dimensions and hardware components. An important

aspect, since this enables LEAs to find the best-fit devices according to their specific requirements.

19

Source: developer.android.com/about/versions/android-4.2.html, last accessed on May 9th, 2014 20

Source: bluestacks.com, last accessed on May 9th, 2014

Page 38: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

38

The architecture is designed accordingto the following Figure 7.

Figure 7 High-level architecture of mobile app.

File Manager: Same as File Manager of tracking server (see section 3.2.1 ).

Security:Same as Security of tracking server (see section 3.2.1).

Operation Handler:This module is responsible to perform operations. All the operations start with a

TCP socket connection originated by the mobile app to the tracking server (TCP Operation port, see

Table 4).

Application Manager: This module is responsible for all the user interface of the mobile app. It

enables the user to trigger operations through the mobile app (e.g. SOS alarm, Report.), visualize

current location or Central Station data against the map (e.g. Risk Map), and even visualize data (e.g.

missing persons). The first operation performed by this module is the subscription. Once successfully,

it will load the Message Handler.Subscription operation is further detailed in section 3.4.1.

Message handler: This module is responsible to fetch data from GPS (e.g. location) and Battery

device modules, and send it as status messages updates to the tracking server. The module also

receives control messages, which are commands originated by the tracking server (e.g. Job dispatch).

The communication is preferably done through UDP, but TCP is also supported(when the device is

behind a NAT/firewall). The detection of NAT/Firewall happens when a local IP is assigned to the

network device. If the assigned IP is no longer local, it automatically switches (again) to UDP.

3.3.2 User Interface (UI)

The mobile app user interface was designed to be as simple and intuitive as possible. As Figure 8

Mobile App, Dashboardshows, only three buttons exist on the dashboard. The "Auto View" which

automatically centers the vehicle position in the screen. The high accessible SOS button triggers an

immediate support request on Central Station. And at last, the Risk Map feature, which provides an

over layer (the risk) on the map (see Figure 9).

Application Manager

User Interface Control

Map Visualization

Data Visualization

Operation Handler

Subscription

Receive File

Send File

Send Offline Messages

Send Reports

Sync People Data

Sync Vehicles Data

Sync Risk Map Data

File Manager

Write Local File

Read Local File

Message Handler

Fetch device data (GPS and Battery)

Send status message updates

Receive Control messages

Security

Encryption

Decryption

Message Validation

Page 39: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

39

Google Maps Android API v221 is the system of maps employed. It provides good level of detail/map

information, long-term support and easy integration with the app code.

Figure 8 Mobile App, Dashboard

Figure 9 Mobile App, Risk Map

As soon as the app is running (for the first time), it starts to prompt the user for server information and

corresponding user credentials (see Figure 10 Mobile App, Subscription (Login)). This is mandatory, in

order to perform the subscription process (see 3.4.1). After the successfully subscription, the app is

connected to the tracking server and therefore, it becomes able to exchange live status messages and

receive commands from tracking server. Commands such as dispatch a job or send a POI, are

automatically represented on the map, without any interaction from user (see Figure 11), POI are

represented by yellow markers, and dispatched Job by a red marker).

Figure 10 Mobile App, Subscription (Login)

Figure 11 Mobile App, Job dispatch and POI

Nevertheless, the mobile app user can perform many operations, through the mobile app menu (see

Figure 12) directly accessed by the android mobile device settings button. As examples, it can make a

report (Figure 13), send a file, and update or access LEA data (e.g. missing people). The possibility to

lock the app is another feature which avoids the user to accidently trigger operations, and at the same

time reduces the band width consumption, since it stops immediately to fetch data from Google Maps.

However, live message status exchange is not interrupted by this feature.

21

Source: developer.android.com/google/play-services/maps.html, last accessed on May 9th, 2014

Page 40: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

40

Figure 12 Mobile App, Menu

Figure 13 Mobile App, Report

3.4 Technical Implementation

This section presents technical details behind the solution features. Diagrams and corresponding

illustrated sequence of steps were used to provide an easier level of understanding (e.g.Figure 14

Subscription operation). Even thoughthe diagrams show granularity finer to the TCP segment like the

SYN TCP segment during TCP connection establishment, it shall not be assumed that all the

numbered steps are performed through a single TCP segment.

3.4.1Subscription

The subscription operationis always started by the mobile app, and it is the first operation performed

as soon as the App starts. The goal of this operation, is to enable the exchange of live message status

from vehicles to tracking server (Real-Time Monitoring). The following picture depicts the Subscription

process:

Page 41: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

41

Figure 14 Subscription operation

As Figure 14 Subscription operation shows, the operation starts by the authenticity of the user through

shared secret validation. In order to mitigate plain-text attack, random bytes are included during the

operation (steps 5 and 9). After user authentication, the tracking server replies with all data required

for the load of the mobile app Message handler module. It starts by transmitting the timestamp, which

will enable the mobile app to synchronize the internal clock with the tracking server time, critical to

avoid replay attacks (see next section.3.4.2). The UDP and TCP ports are also provided; these will be

used by the Message Module (on both sides) and unique for each user. These ports are randomly

generated by the tracking server, turning an attack more complex to achieve, assuming the attack is

not a man-in-the-middle and the port-scan does not retrieve any details (TCP weakness). It requires

much more computational and network resources to target the tracking server through all the possible

65535 socket ports, in comparison to the single shared port for all the mobile apps.

Another security measure is the generation of a random session key (step 7). The session key

provided by the tracking server will be used for all the upcoming message exchange through the

Message Handler (on both sides). Thus, every time a subscription operation is performed, a new

session key is generated. This way, the amount of data processed using a particular key is

significantly reduced, which turns the prediction of the shared key more unlikely.

TCP

Connection

Establishment

(TCP_Operation_Port)

1

2

3

4

5

6

7

8

TCP

Connection

Termination

9

10

TCP

Connection

Establishment

(TCP_Operation_Port)

TCP

Connection

Termination

Mobile App Tracking server

SYN

ACK

SYN - ACK

Operation

Handler

Operation

Handler

ACK

ACK

Page 42: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

42

It is important to highlight that step 9 denies a possible replay attack on step 5.Thus, If step 9 were

suppressed from the subscription operation, the tracking server would be an easy target of DoS

through the replay of steps 1 to 5. The attack would be easier, due to the significant resources that

subscription operation consumes.

At the end of subscription operation, the mobile app and the tracking server instantiates Message

Handler accordingly to the parameters exchanged through Subscription operation.

3.4.2 Monitoring

3.4.2.1 Real-Time status messages

The tracking server monitors the fleet through live messages status sent by mobile app. The

messages are sent with a fixed update ratio of one per second, and the module responsible for the

message exchange is the "Message Handler", present on both sides (tracking server and mobile app).

Central Station is only able to monitor a vehicle, after the corresponding mobile App performed a

successful subscription operation within the tracking Server. Once it is done,thelive message status

exchange starts.

All the messages exchanged, have exactly the same format (on both sides, Mobile app and the

tracking server). The following picture depicts the data format of the status message:

Figure 15Live status message format.

As Figure 15Live status message format. shows, the raw message data size is notably small (18

Bytes). In fact, is smaller than the minimum possible size of TCP header (20 bytes)[22] . As analyzed

previously (see section 2.3) the data size is an important aspect regarding communication

performance that was taken into account. Nevertheless, the overall size of the data significantly

depends on the combination of MAC and encryption algorithm used. Another aspect is the missing

mobile app user identification in the messages, possibly due to the dedicated ports for each user on

tracking server (randomly generated during Subscription Operation). This way, there is a reduction of

the data size, along with a security enhancement: No vehicle identification can be directly retrieved

from the message, or even device information such as IMEI (used as identification in many RTMS

Systems) in case of violation of message confidentiality.

Timestamp - Time when the status message is created by the mobile app. This value is synchronized

with the tracking server system clock (during Subscription). In case of Message handler is working

over UDP, the field is used as sequence number, allowing tracking server to sort/identify the latest

Timestamp Latitude LongitudeStatus Control

SOS | GPS | Battery | STOP Job | POI | Clear | File

Flags Flags

8 Bytes 4 Bytes 4 Bytes 1 Byte 1 Byte

18 Bytes

MACMessage Authentication Code

Encrypted

Page 43: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

43

vehicle status. At the same time, every message status replied by the tracking server has the same

Timestamp of the original message status sent by the mobile app. This way, themobile app is able to

identify which message status were lost or successfully delivered.

In addition, Timestamp field is used as anti-replay attack measure. Tracking server only processes

messages containing Timestamps with no more than 5 seconds of difference. Therefore, the sum of

the network delay with clock drift (between mobile app and tracking server) must be less than 5

seconds; otherwise the message will be treated as lost (see next section 3.4.2.2).

Latitude/Longitude - Mobile app always populate these fields with the current location of the vehicle. In

case of tracking server, these fields may contain specific location of a job (dispatch job feature) or

location of point of interest (POI).

Status - Populated by mobile app to notify follow status to tracking server:

SOS - The flag is set, if request for support was triggered on mobile app.

GPS - The flag is set, when the GPS module is locked (see GPS, section 2.2.2).

Battery -The flag is set, if the battery of mobile device is lower than 30%.

STOP - The flag is set, if the vehicle is stopped (detection by GPS module).

Control - Populatedby tracking server to send the following commands to the mobile app:

Job - When flag is set, the message contains a job dispatch to the mobile app.

POI - When flag is set, the message contains a POI to the mobile app shown on map.

Clear - When a message with this flag is received, the mobile app automatically cleans the map (user

interface). Thus, all the POI and/or Jobs information displayed on the user interface disappear.

File - Tracking server sets this flag anytime it is required to send a file. This flag allows the mobile app

to take initiative and establish the TCP connection with tracking server and consequently perform the

file reception (see section 3.4.3).

3.4.2.2 Lost status messages

The delivery of live status messages may not always succeed, especially in scenarios of poor or

inexistent network signal. Under these circumstances, the mobile app piles up all the lost messages

and attempts to send them as soon as the network signal recovers. In case of the UDP protocol being

used, every message sent is automatically piled into the lost messages. And anytime a valid reply

arrives from tracking server, it is removed accordingly from that pile. This way, only the lost messages

will remain on the pile. The same applies to TCP. But since TCP is a connection-oriented protocol,

anytime a message is prepared to be sent, and no connection is established, it automatically goes to

the pile of lost messages.

Page 44: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

44

Lost messages are sent to the tracking server through an operation, as Figure 16 depicts. The

verification for network recovery is done once per second. Nevertheless, the recovery operation is only

triggered in case the pile of lost messages is bigger than 15 messages. This way, the number of

recovery operations is significantly reduced (especially in scenarios where network intermittence

exists, and the chance of a drop of TCP connection during the operation is very likely). As such, there

is a buffer with an equivalent tolerance of 15 seconds (one message per second) during an

intermittence scenario. It is important to highlight that recovery operation works in parallel to real-time

status messaging exchange, and the respective reduction reflects into extended battery life on

tracking unit and lower computational resources usage on tracking server.

Figure 16 Lost status message recovery operation.

It should be noticed that, in Figures 16-18 and Figures 20-21, all messages denoted as encrypted are

assumed to:

- being cyphered using a key as described on the graph message

- containing a timestamp (not represented on graphs), or a combination of a sequence number

and a nounce

- containing an authentication code (HMAC, consisting of an hash of: the original text to be

ciphered, the secret, and the timestamp)

1

2

3

4

5

6

7

8

TCP

Connection

Termnation

9

10

TCP

Connection

Establishment

(TCP_Operatiom_Port)

TCP

Connection

Termination

SYN

ACK

SYN - ACK

ACK

Mobile App Tracking server

ACK

Operation

Handler

Operation

Handler

TCP

Connection

Establishment

(TCP_Operatiom_Port)

...

Page 45: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

45

3.4.3 File exchange

The solution proposed by this thesis allows the secure exchange of files between vehicles and the

Central Station. The file transmission process has two possible scenarios, depending on which system

is taking the initiative. For instance, after a photo is taken by the mobile device, it is transmitted to the

tracking server. Thus, the process is initiated by the mobile app. Figure 17 File transmission operation

(from mobile app to tracking server). , depicts the file transmission process initiated by the mobile app.

Figure 17 File transmission operation (from mobile app to tracking server).

As Figure 17 File transmission operation (from mobile app to tracking server). shows, the operation

starts withuser authentication through shared secret validation along with the generation of a session

key, valid until the end of this operation.It is important to highlight that, all files sent by the mobile app

are stored in the tracking server along with the corresponding time and location (step 7) - This feature

populates the database with richer and critical information for posterior investigations, such as criminal

analysis or internal LEA auditions.

The transmission of a file from tracking server to the mobile app, requires a different approach to

establish the TCP connection. This is justified by the possibility of the mobile app be behind a

1

2

3

4

5

6

7

8

TCP

Connection

Termnation

9

10

TCP

Connection

Establishment

(TCP_Operatiom_Port)

TCP

Connection

Termination

SYN

ACK

SYN - ACK

ACK

Mobile App Tracking server

11

12

ACK

Operation

Handler

Operation

Handler

TCP

Connection

Establishment

(TCP_Operatiom_Port)

...

Page 46: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

46

NAT/Firewall.The corresponding scenario solution is depicted by Figure 18 File transmission operation

(from tracking server to mobile app).

Figure 18 File transmission operation (from tracking server to mobile app).

As Figure 18 File transmission operation (from tracking server to mobile app). shows, the tracking

server starts to notify the mobile app of a file exchange request through the live message status

response - Using the File flag of the Control field (see message structure, 3.4.2 Monitoring

). Since the protocol used might be UDP (no successful delivery of data is guaranteed), the flag is kept

settled until an acknowledge from mobile app is received. This is explicitly done through the same flag

(File flag, control field) of the message.The file notification mechanism is described from step one to

seven. As soon as the mobile app receives the notification, automatically establish a TCP connection

TCP

Connection

Termination

TCP

Connection

Establishment

(TCP_Operation_Port)

TCP

Connection

Termination

SYN

ACK

SYN - ACK

ACK

Mobile App Tracking server

ACK

Message HandlerMessage Handler

Message (Control → File = 1)

Message (Control → File = 1)

Message (Control → File = 1)xMessage (Control → File = 1)

...

Message (Control → File = 0)

Message (Control → File = 0)

Message (Control → File = 0)

...

Operation

Handler

Operation

Handler

TCP

Connection

Establishment

(TCP_Operation_Port)

8

9

10

11

12

13

14

15

16

17

18

19

1

3

2

45

6 7

...

Page 47: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

47

with the tracking server, and an analogous process as described previously is performed (Figure 17

File transmission operation (from mobile app to tracking server).

3.4.7 Report

Reports enable vehicles to populate certain events within LEA database. An event is generally

described as a situation of interest happening at a location and involving actors, such as people and

vehicles. The following picture depicts the internal data model of a report:

Figure 19 Report internal data representation.

The data size of a report is undefined, since it contains a free text field (Report Description) along with

optional fields (Person and Vehicle). The location of the event (Latitude/Longitude) is automatically

assigned to the report (transparently to the end-user). In case the GPS module of the mobile device is

not in the lock mode, the mobile app assigns the last location retrieved from the device over the last

minute, and a zero value in any other condition. The Tag field, is used to the assign multiple tags on a

single report. This enables the creation of correlation between reports (linked by same tag). For

instance, the insertion of the mission codenames into tag field, may easily expose the complex

relationship of certain suspects in distinct missions.

Reports are created through mobile app user interface, therefore the transmission of the reports are

always started by the mobile app. When a report is created and ready to submit, an attempt to

establish a connection and transmit the corresponding data to the tracking server is performed. In

case the network is not available, it starts to pile the reports and periodically (every second) tries to

establish the connection with the tracking server, until eventually the network is reachable. Figure 20

Reports transmission operation.,depicts the successful submission of the reports.

UserID Latitude Longitude

Report

Timestamp Tag

Report Description

Person VehiclePlate | Brand | Model | Color Name | ID No | Driving Licence No

Page 48: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

48

Figure 20 Reports transmission operation.

As shown in Figure 20 Reports transmission operation., reports are not sent as a whole. Instead, they

are submitted iteratively (one per step), and removed accordingly. This makes the process more

resilient to network fluctuation. An eventual TCP disconnection during the operation does not

compromise the successfull delivery of some reports. Thus, there is no need to re-send from the

beginning all the data as the network signal eventually recovers.

1

2

3

4

5

6

7

8

TCP

Connection

Termnation

9

10

TCP

Connection

Establishment

(TCP_Operatiom_Port)

TCP

Connection

Termination

SYN

ACK

SYN - ACK

ACK

Mobile App Tracking server

ACK

Operation

Handler

Operation

Handler

TCP

Connection

Establishment

(TCP_Operatiom_Port)

...

Page 49: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

49

3.4.8 LEA data synchronization (people, vehicles and risk map)

People (suspects and missing),vehicles (suspects and robbed) and Risk map data is strictly required

to be accessible anytime through mobile app. Therefore, a mechanism to keep the data up to date

(synchronized) within Central Station is a critical aspect for the day-to-day operation of an LEA. The

following picture depicts the implemented process of data synchronization between mobile app and

tracking server:

Figure 21 LEA data synchronization operation.

As shown in Figure 21 LEA data synchronization operation., the process of data synchronization is the

same for all the LEA data, except the first step which identifies what data synchronization will take

place during the operation. For instance, the request for operation '5' will trigger the tracking server to

update the mobile app with the latest file (up to date version) containing the list of missing and suspect

persons. The version verification is performed on step 7. After the validation of the user and

corresponding shared key,the mobile app submits the actual version it owns (represented as a

number). If the version number submitted is inferior to the version on behalf of tracking Server, the

latest file is automatically sent to the mobile app. Otherwise, tracking server automatically closes TCP

connection. The versioning algorithm is implemented by the File Manager module (see File Manager

module, section 3.2.1). LEA data synchronization is manually triggered by mobile appat the end-user

(user interface). The non-implementation of a periodic mechanism to check for new updates is justified

1

2

3

4

5

6

7

8

TCP

Connection

Termnation

9

10

TCP

Connection

Establishment

(TCP_Operatiom_Port)

TCP

Connection

Termination

SYN

ACK

SYN - ACK

ACK

Mobile App Tracking server

ACK

Operation

Handler

Operation

Handler

TCP

Connection

Establishment

(TCP_Operatiom_Port)

...

11

12

13

14

Page 50: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

50

by the network resources that these operations can potentially consume (depending on the size of

data files). Since vehicles are constantly in contact with the Central Station via radio (voice channel),

they can use the same channel to notify vehicles of a new version, and consequently trigger the

update within a known place where the network allows an update in a significant fraction of the time

required (e.g. inside LEA facilities, using Wi-Fi).

The data containing people and vehicles information is open to any file format. Thus, LEAs have total

flexibility to use the most suitable or existing licensed application for own data manipulation - LEA may

use Microsoft Office within desktop LEA facilities (Central Station) and Android Office in mobile

devices. When visualization of data is requested by the mobile app user, it will automatically open the

file through a third party app chosen (e.g. Android Office).

Unlike people and vehicle data, risk map data have a specific data structure for which the tracking

server must comply, otherwise, the mobile app will not be able to parse the file and consequently will

fail to display the corresponding risk layer over the map. The following figure depicts the risk map data

structure:

Figure 22 Risk map file data structure.

Risk map is a file that contains a set of locations and corresponding radius (circles), assigned to a

specific window of time and date (day of the week). When risk map layer is activated (user-interface),

circles with different radius start to appear and disappearas the time passes. Thus, for a specific point

in time, personal in a vehicle can easily see in the map the zones which shall be more actively scout.

A sample of this file can be found in annex A.2.

!<WeekDay 1>

<HHMM> <Latitude 1> | <Longitude 1> | <Radius 1> | ... | <Latitude N> | <Longitude N> | <Radius N>

<HHMM> <Latitude 1> | <Longitude 1> | <Radius 1> | ... | <Latitude N> | <Longitude N> | <Radius N>

...

!<WeekDay 7>

<HHMM> <Latitude 1> | <Longitude 1> | <Radius 1> | ... | <Latitude N> | <Longitude N> | <Radius N>

<HHMM> <Latitude 1> | <Longitude 1> | <Radius 1> | ... | <Latitude N> | <Longitude N> | <Radius N>

RiskMap

Page 51: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

51

4 Evaluation

This chapter will not concern individual component functional tests, thus assuming that all these tests

have already been carried out, guaranteeing that all the functional features are working properly.

Under these circumstances, it is required to measure, and quantify accordingly, the solution against

specific metrics.For each experiment described, 5 tests will be performed. Final statistical results were

calculated as an average, and respective standard deviation derived accordingly from the measured

values. A graphical representation of these results and corresponding analysis, can be found in

section 4.4..

4.1 Metrics

This section lists and describes the metrics used to measure quantitatively the solution behavior. The

following metrics were chosen:

CPU consumption (Percentage) - Percentage of CPU used by the overall tracking server

solution. This metric is measured through bash shell scripting (see performance script, annex A.3).

Memory consumption (Megabyte) - Numeric value of computer memory consumed by the

overall tracking server solution. This metric is measured through Linux bash shell script (see

performance script, annex A.3).

Message lost rate (Percentage)- Percentage of the messages that were not acknowledged (lost)

by tracking server. This metric is performed on the tracking unit app, and isonly measured on UDP

(since TCP is reliable).

Maximum status delay measured (Milliseconds) - The maximum measured time that a status

message takes from the mobile app status fetching process, to the successfully introduction of the

data into the tracking server database. This metric is measured using the timestamp of the status

message against the current timestamp of the database. The measurement of this metric

assumes that both (tracking server and tracking units) clocks are synchronized. Further details are

provided in the next section.

Network Traffic (Kilobytes) - The total sum of Bytes in and out of tracking server network

interface. This metric is measured through bash shell scripting (see performance script, annex

A.3).

Page 52: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

52

4.2 Testbed

Mobile Network coverage and GPS signal strength are two uncontrollable variables with critical impact

on the test scenario. In order to eliminate these dependencies, the tests are run in a controllable local

area network (LAN), and the GPS coordinates are generated internally by the App code. Another

challenge for the execution of scalability tests is the replication of many Android mobile devices

(tracking units). Since it is not feasible to test the tracking server against many real devices, the mobile

device app core (without user interface) was migrated to a single application, which can launch and

destroy multiple instances of mobile apps (tracking units) over specific time intervals.

The tracking server machine and the tracking units machine are connected by a 100Mbps Ethernet

link, using a 2 meters crossover Ethernet cable. Figure 23 depicts the network topology and

corresponding configuration.

Figure 23 Testbed network topology

Both machines are different, in terms of hardware and software. Tables 5 and 6 provide a description

of the relevant hardware characteristics (Table 5) and corresponding software installed (Table 6).

Hardware

Tracking server machine Tracking units machine

Type: Laptop Model: DELL Latitude D630

Type: Laptop Model: HP Envy 14-1040ep

CPU: Core 2 Duo CPU T7300 @ 2.00GHz Cores:2

CPU: Intel i7 CPU Q720 @ 1.60Ghz Cores: 8

RAM:4GB RAM: 6GB

Disk: Toshiba MK1237GSX 120GB 5400RPM, SATA

Disk:HitachiHTS725050A9A364500GB 7200RPM, SATA II

Table 5 Testbed Hardware

192.168.1.1/24 192.168.1.2/24

Ethernet – 100Mbps

Tracking server Tracking units

Page 53: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

53

Software

Tracking server machine Tracking units machine

OS:Ubuntu Server 12.04.4 LTS Kernel: 3.11.0-15-generic

OS:LinuxMint 13 Maya Kernel: 3.2.0-4-generic

Java: SE RuntimeEnvironment 1.7.0_51 Java: OpenJDKRuntimeEnvironment 1.7.0_21

NTP Server: ntpd [email protected] NTP Client: ntpdate [email protected]

DBMS: Mysql14.14 Dist 5.5.35 N/A

Table 6 Testbed Software

Network latency between both machines was measured, through transmission of a ping command

during one minute. The maximum measured value for latency was less than a millisecond (see annex,

A.4). This low latency value, enables the clock synchronization (through Network Time Protocol, NTP)

between machines with a much higher accuracy (lower offsets) [22] . In order to perform the

synchronization, the tracking server machine was configured as NTP server. And for each test

conducted, the tracking units machine was previously synchronized with the NTP server. The

maximum time offset between machines was always set above the 50 milliseconds limit (see annex

A.5 as an example).

4.3 Experimental Tests

All experimental tests are run on the previously described testbed, and aim to evaluate the Tracking

server. Every test starts by the reboot of the tracking server machine, following a NTP sync of the

tracking units machine with the Tracking server, until a minor offset (less than 50 milliseconds) is

achieved. Once the system clock machines are properly synchronized, the performance script (annex

A.3) is manually launched on the tracking server machine. The script runs on the background, and it

writes periodically (5 seconds) on the database the following information: CPU, memory and the total

traffic generated on the tracking server network device. It is important to highlight, that the script resets

(subtracts) the values previously used by the OS: The network traffic, CPU and memory. The same

script is responsible to create the database table where values will be written, along with the

generation of the 100 test users and corresponding credentials. Once the script is properly running,

the tracking server solution is manually launched. After that, the tracking units (clients) start to connect

to the tracking server through the launch of tracking units multiple instance software - Responsible to

(iteratively) create a tracking unit client instance and launch it accordingly (initial subscription and

consecutive live status message exchange).

The logic of the tests are implemented on the tracking units machine: A new client is created and

consequently connected to tracking server every 30 seconds. Test ends when the last client (100th) is

already connected for 30 seconds. Thus, every test takes 50 minutes (30 seconds x 100 clients).At the

end of each test, the test values are extracted from the database using a data extraction script (see

Annex A.6), with exception of the message lost rate data, which is manually fetched through the

output of the number of lost messages that every tracking unit client ends up with.

Page 54: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

54

Even though all tests have the same logic, the evaluation is performed over the following scenarios:

1. All live status messages exchange is done over TCP, without any security function applied (no

encryption or addition of MAC, see annex A.7 No security (Security.java)).

2. All the live status messages exchange is done over UDP, without any security function applied

(no encryption or addition of MAC, see annexA.7 No security (Security.java)).

3. All the live status messages exchange is done overUDP. Only encryption (DES algorithm) is

applied to the raw message (no MAC, see annex A.8 Encryption only (Security.java)).

4. All the live status messages exchange is done over UDP. Encryption (DES algorithm) is

applied over the raw message and corresponding MAC (see annex A.9 Encryption + Mac

(Security.java)

Due to the default preference of UDP over TCP (see 3.3.1, Message Handler module), test scenarios

which involve security functions are only performed on UDP. Nevertheless, analogous results are

expected on TCP.

Regarding security, the choice for using DES as encryption algorithm for testing, is justified by the

notable distinct performance against the majority of many other possibilities [23] , turning the result

values as a good baseline (starting point for comparison) - It is important to highlight that DES

algorithm was only used for test purposes. The usage of DES algorithm is not recommended from a

security point of view since it can be broken with relatively low effort [24] .

4.4 Experimental Results

This section presents the experimental results obtained from testing (setup detailed on previous

section). The results are organized per metrics.Each metric contains a graphical representation of the

result for all tests, except message lost rate metric, which resulted in 0% for all the tests (section

4.4.3). All the sections end with a reference for the source of the corresponding data.

Page 55: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

55

4.4.1 CPU

Figure 24 CPU consumption

As shown in Figure 24 CPU consumption, not only the average CPU usage increases with the number

of clients, but also the value of the CPU spikes. As expected, the addition of security functions

corresponds to additional CPU consumption. CPU average use increases 4,7% whenever encryption

(DES) is added to UDP, and 6,92% with the addition of encryption along with MAC.

The values that generated this graphical representation can be found in annex A.10 CPU values,

together with standard deviation values.

4.4.2 Memory

Figure 25 Memory consumption

As shown in Figure 25 Memory consumption, the memory usage increases with the number of clients.

As expected, the addition of security functions corresponds to additional memory consumption. The

average memory in use increases 53,92%, when encryption (DES) is added to UDP, and 75,18% with

the addition of encryption along with MAC. Nevertheless, It is important to highlight that the values do

Page 56: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

56

not represent real memory in usage, but the memory allocated to the server application. The release

of the memory allocated butnotinuse, is managed by JVM (garbage collector) and corresponding

machine OS.

The values that generated this graphical representation can be found in annex A.11 Memory values,

together with standard deviation values.

4.4.3 Message lost rate

The message lost rate resulted in 0% for all the tests. A result justified by the high reliability of the

testbed network (eg. low signal degradation), non-congestion of the Ethernet channel and non-

overload of tracking server machine (e.g. CPU usage have never surpassed 70%). Under these

circumstances, the measurement of the message lost rate confirms that the tests ran flawless, with all

live status messages being successfully delivered.

4.4.4 Maximum status delay

Figure 26 Maximum status delay

As shown in Figure 26 Maximum status delay, the maximum status delay has similar values for all the

tests, assuming a minimum of 50 milliseconds offset. The values converge into the 250 milliseconds

value, which is the frequency that the tracking server writes the live status messages into database

(see section 3.2.1, Application Manager module). Under these circumstances, it is possible to state

that there is room (750 milliseconds) for the mobile app to fetch data, and to be represented in Central

Station (tracking server front-end), in less than a second, making it a real-time application to human

senses.

The values that generated this graphical representation can be found in annex A.12, together with

standard deviation values.

Page 57: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

57

4.4.5 Network Traffic

Figure 27 Network Traffic

As shown in Figure 27 Network Traffic, TCP is notably the top traffic generator. This is mostly justified

by the larger header size compared to UDP, since the combination of the testbed network and tracking

server overload is relatively low (so that the probability of a network segment to be retransmitted is

very low). Another fact that makes TCP to generate more traffic, is the fact of being a connection

oriented protocol with corresponding features such as reliability, which requires the acknowledge of

successful delivery of data segments. All together, makes TCP generate more 35,96% traffic than

UDP (averaged over the last 10 values).

Another aspect is the fact that single encryption, and encryption with MAC have similar values. This is

simply justified by the fact that both have the same message size (24 Bytes). The single encryption of

the raw message results in a block of 24bytes message, where last 6 bytes are not used (padded).

The addition of MAC uses 4 of the 6 not used bytes, leaving only 2 bytes for padding.This highlights

the importance of a good combination design between the message size, the encryption algorithm and

respective block size, along with the proper MAC algorithm - It is possible to state that, the extension

of security by the addition of the MAC did not have any impact regarding the network traffic.

The values that generated this graphical representation can be found in annex A.13 Network traffic

values, together with standard deviation values.

Page 58: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

58

5 Conclusions and future work

5.1 Conclusions

The complexity of criminal activities is increasing, and that reflects on an increasing challenge to LEAs

way of operation. An improvement on reaction speeds,as well asa better workforce management

capability over the territory, are increasingly being required, and that can be solved through the

adoption of a RTMS specifically designed for LEAs. Currently, some LEAs are adopting it 22, which

proves the existence of a demand for this type of solutions. However, it represents a significant

investment 23 in tailor-made solutions and eventual dedicated communication infra-structures (e.g.

TETRA) for that purpose. An unrealistic scenario for the majority of the countries, which struggle with

tight budgets (e.g. underdeveloped countries). This thesis concludes that it is possible to develop:

specific RTMS that meet LEAs daily requirements with an extremely low budget; and an affordable

solution that benefits from the higher trend for the improvementof the existing mobile network

coverage and corresponding terminal devices (e.g. Tablets) affordability. The solution of this thesis

shows that it is feasible to trade computational resources for enhanced security on third-party

networks such as mobile operators. In contrast to the creation of dedicated secure communication

infra-structures such as TETRA, which come out to be too expensive and inadequate to meet LEAs

requirement space (e.g. data throughput).

Within the scope of fulfilling LEAs requirements, the solution proposed opens the doors for disruptive

LEAs methodologies, like an optimized prevention strategy supported by the increasing efficiency of

the patrol over spots that represent more probability of crime on a dynamic (changing over the day)

and automated way.

Despite the many scientific studies that are widely available over the internet, there were significant

efforts to find scientific LEAs related work. LEAs IT solutions tend to follow a non-disclosed information

policy. This security approach based on secrecy of information made the overall state-of-art analysis

more difficult. On the other hand, according to our analysis, it is important to highlight the possibility

that scientific community is not giving enough attention to LEA field.

22Source: http://crackberry.com/uk-police-get-blackberry-playbook, last accessed on May 9th, 2014 23 Source: http://content.met.police.uk/News/Total-Technology-strategy-

201417/1400022464491/1257246741786, last accessed on May 9th, 2014

Page 59: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

59

5.2 Future work

The resulted work from this thesis is far from a turnkey (off-the-shelf) solution. The development of the

tracking server front-endand an Android abstraction layer that mitigate GPS threats, are interesting

topics to address in the near future.

In addition, the solution should be improved with concerns to security. Further efforts should be taken

to analyze, together with LEA officers, security requirements, in order to create a security policy for the

system, and then to apply and test off-the-shelf security mechanisms that implement that policy on the

solution.

This work can be used as the base for the development of new features and services, benefiting from

the integration of specific LAE accessories, such as automatic license plate recognition24 devices (for

example, to make the match against LEAs database, and consequent instant notification to the

nearest patrol), or the automatic launch of an unmanned aerial vehicles25,thus making the chase even

safer for citizens. The adoption of new wearables are also very promising to LEAs workforce, such as

augmented reality glasses26 capable of recognizing criminals through a builtin camera, to wristbands27

that automatically issue an SOS alarm in central station when an heart rate rampage is detected.

6 References

[1] P. Vitor, Rede SIRESP –Tecnologia de emergência e segurança do futuro, ComSoc/POSTIT

Conference, 2010

[2] E. Qayyum, Z. Mohsin and J. Malik, Real-time Vehicle Tracking System Using GPS & GSM, Lap

Lambert Academic Publishing, 2013

[3] L. Varandas, B. Vaidya and J. Rodrigues , mTracker: A Mobile Tracking Application for Pervasive

Environment, IEEE 24th International Conference on Advanced Information Networking and

Applications Workshops, 2010

[4] S. Chen, J. Wang and Y. Wei, The Implementation of Real-time On-line Vehicle Diagnostics and

Early Fault Estimation System, Fifth International Conference on Genetic and Evolutionary

Computing, 2011

[5] D. DeWitt and J. Gray, Parallel Database systems: The future of the high performance database

systems, Communication of the ACM, Vol.35, No6, 1992

[6] National Research Council (U.S.) - Committee on the Future of the Global Positioning System,

The global positioning system: a shared national asset: recommendations for technical

improvements and enhancements, National Academies Press. Chapter 1, p. 16. ISBN 0-309-

05283-1, 1995

24Source: elsag.com/fixed.htm, last accessed on May 9th, 2014 25Source: avinc.com/public-safety/applications/law-enforcement, last accessed on May 9th, 2014 26 Source: spaceglasses.com, last accessed on May 9th, 2014 27Source: sonymobile.com/pt/products/smartwear/smartband-swr10, last accessed on May 9th, 2014

Page 60: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

60

[7] US Departament of Defense, Global Positioning System Standard Positioning Service Perfomance

Standard 4th Edition, 2008

[8] D. Hayes, Status of Galileo and EGNOS, European Commission, 2012

[9] R. Prasad and M. Ruggieri , Applied satellite navigation using GPS GALILEO and augmentation

systems, Artech House ISBN 9781580538145, 2005

[10] M. Wildemeersch, E. Pons, A. Rabbachin and J. Guasch, Impact Study of Unintentional

Interference on GNSS Receivers, JRC Scientific and Technical Reports, ISBN 978-92-79-19523-

5, 2010

[11] S. Jon et al., GPS Spoofing Countermeasures, Los Alamos Research Paper LAUR-03-6163,

2003

[12] S. Mondal, Improving performance of TCP over mobile wireless networks, Springer

Science+Business Media, Published online: 4 August 2007

[13] J. Korhonen and Y. Wang, Effect of Packet Size on Loss Rate and Delay in Wireless Links, IEEE

Communications Society / WCNC 2005

[14] Y. Chen and W. Jia, Challenge and solutions of NAT traversal for ubiquitous and pervasive

applications on the Internet, The Journal of Systems and Software 82, 1620–1626, 2009

[15] P. Perugu, An Innovative Method using GPS Tracking, WINS Technologies for Border Security

and Tracking of Vehicles, Recent Advances in Space Technology Services and Climate Change

(RSTSCC) Conference, ISBN 978-1-4244-9184, 2010

[16] C. Kaufmann, P. Radia, M. Speciner, Network Security: Private Communications in a Public

World, Prentice Hall, 2002

[17] T. Hardjono, Security In Wireless LANS and MANS, International Journal of Network vol.10,

No.3, PP.213–219, Security Artech House Publishers, 2010

[18] W. Stallings, Cryptography and network security, Prentice Hall, 2006

[19] P. Koopman and C. Szilagyi, Security & Privacy, IEEE Volume: 11 Issue: 3 pages 61 - 63, ISSN

1540-7993, 2013

[20] Muruganandham and P. Mukesh, Real Time Web based Vehicle Tracking using GPS, World

Academy of Science, Engineering and Technology 37, 2010

[21] K. Hasan, M. Rahman, A. Haque, A. Rahman, T. Rahman and M. Rasheed, Cost Effective GPS-

GPRS Based Object Tracking System, Lecture Notes in Engineering and Computer Science,

Vol.2174(1), 2009

[22] L. Tomaciello, L. Vito and S. Rapuano , One-Way Delay Measurement: State of Art,

Instrumentation and Measurement Technology Conference, 2006. Proceedings of the IEEE,

ISSN:1091-5281, 24-27, 2006

[23] A. Elminaam and A. Kader, Performance Evaluation of Symmetric Encryption Algorithms,

Communications of the IBIMA Volume 8, ISSN: 1943-7765, 2009

[24] E. Biham and A. Biryukov, An improvement of Davies attack on DES, Journal Of Cryptology

Vol.10(3), pp.195-205, 1997

Page 61: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

61

Page 62: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

62

A. Annexes

A.1 Tracking Server database script

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET time_zone = "+00:00";

CREATE DATABASE IF NOT EXISTS `geocop_db` DEFAULT CHARACTER SET latin1 COLLATE

latin1_swedish_ci;

USE `geocop_db`;

CREATE TABLE IF NOT EXISTS `historyevents` (

`UserID` int(11) NOT NULL COMMENT 'Target/trigger of event',

`TimeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`TypeEvent` int(11) NOT NULL COMMENT '1ClearMap,2Mission,3Point,4FileIn,5FileOut',

`Latitude` int(11) NOT NULL,

`Longitude` int(11) NOT NULL,

`Confirmed` bit(1) NOT NULL COMMENT '1 if Terminal Received',

`data` varchar(200) DEFAULT NULL COMMENT 'store additional data for the event. eg: File,

filepath where it was stored',

KEY `UserID` (`UserID`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Contains all events, georeferenced';

CREATE TABLE IF NOT EXISTS `historystatus` (

`UserID` int(11) NOT NULL,

`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT

'Timestamp from the packet received (not local timestamp from server)',

`Latitude` int(11) NOT NULL,

`Longitude` int(11) NOT NULL,

`SOS` bit(1) NOT NULL,

`STOP` bit(1) NOT NULL,

`GPSfix` bit(1) NOT NULL,

`Battery` bit(1) NOT NULL,

KEY `UserID` (`UserID`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Storage of terminal status along the time..';

CREATE TABLE IF NOT EXISTS `reports` (

`UserID` int(11) NOT NULL COMMENT 'UserID who submitted',

`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT

'when happenned',

`Latitude` int(11) NOT NULL COMMENT 'where happenned (0 if not georeference)',

`Longitude` int(11) NOT NULL COMMENT 'where happenned (0 if not georeference)',

`v_plate` varchar(10) DEFAULT NULL COMMENT 'Vehicle plate',

`v_brand` varchar(20) DEFAULT NULL COMMENT 'vehicle brand (eg. toyota)',

`v_model` varchar(20) DEFAULT NULL COMMENT 'vehicle model (eg. corolla)',

`v_color` varchar(50) DEFAULT NULL COMMENT 'Color description of vehicle (eg. light blue

with black windows)',

`p_id` varchar(20) DEFAULT NULL COMMENT 'national ID of person',

`p_driverlicense` varchar(20) DEFAULT NULL COMMENT 'DrivelicenseNumber person',

`p_name` varchar(50) DEFAULT NULL COMMENT 'Name of person',

`Description` varchar(1000) DEFAULT NULL COMMENT 'Description of the report/event'

Page 63: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

63

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `rtstatus` (

`UserID` int(11) NOT NULL,

`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`Latitude` int(11) NOT NULL,

`Longitude` int(11) NOT NULL,

`SOS` bit(1) NOT NULL,

`STOP` bit(1) NOT NULL,

`GPSfix` bit(1) NOT NULL,

`Battery` bit(1) NOT NULL,

PRIMARY KEY (`UserID`)

) ENGINE=MEMORY DEFAULT CHARSET=latin1 COMMENT='Real-Time Status of terminals (onMemmory)';

CREATE TABLE IF NOT EXISTS `server_config` (

`MaxNumVehicles` int(11) NOT NULL DEFAULT '100' COMMENT 'Max number of vehicles/terminals',

`TCP_subscription_port` int(11) NOT NULL DEFAULT '1000' COMMENT 'Subcription TCP port',

`UDP_limit_down` int(11) NOT NULL DEFAULT '2000' COMMENT 'minimum UDP port range',

`UDP_limit_up` int(11) NOT NULL DEFAULT '4000' COMMENT 'maximum UDP port range',

`TCP_limit_down` int(11) NOT NULL DEFAULT '2000' COMMENT 'minimum TCP port range',

`TCP_limit_up` int(11) NOT NULL DEFAULT '4000' COMMENT 'maximum TCP port range',

`TCP_timeOut` int(11) NOT NULL DEFAULT '5000' COMMENT 'Subscription TCP session timeout',

`cmd_Timeout` int(11) NOT NULL DEFAULT '10000' COMMENT 'Timeout for command (eg. Dispatch

mission, clearMap..)'

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Configuration of the GeocopServer';

CREATE TABLE IF NOT EXISTS `terminal_groups` (

`GroupID` int(11) NOT NULL,

`Name` varchar(20) NOT NULL,

`Description` varchar(50) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `terminal_users` (

`UserID` int(11) NOT NULL,

`Secret` varchar(20) NOT NULL,

`GroupID` int(10) unsigned NOT NULL COMMENT 'ID of the group which user belongs to..

(terminal only belong to 1 group)',

`Name` varchar(20) NOT NULL COMMENT 'Name identifier for terminal',

`DateCreation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Date(TiMEstamp) of

creation of the user',

`Description` varchar(500) NOT NULL COMMENT 'Description of the terminal (who belong to..,

the scope.. etc..)',

PRIMARY KEY (`UserID`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT COMMENT='Terminal user/secret';

Page 64: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

64

A.2 Risk map file (sample)

!1 Sunday

0030 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

0130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1830 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

!2 Monday

0030 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

!3 Tuesday

0030 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

!4 Wednesday

1630 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1830 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

!5 Thursday

1530 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1630 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1830 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

!6 Friday

2130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

!7 Saturday

0030 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

0130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1630 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

1830 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2130 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

2330 40522757|-7276275|300|40531543|-7274387|500|40536762|7278378|150|40541980|-7281468|600

Page 65: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

65

A.3 Performance bash script

#!/bin/bash

clear

printf "\n############################################################"

printf "\n## PERFOMANCE SCRIPT - IST 52860, Jose Almeida ##"

printf "\n############################################################\n"

printf "\n# Create TestDB<test_geocop_db>"

dbms=`mysql -u root -ptoor<test_geocop_db.sql&> /dev/null`

dbms=`mysql -u root -ptoor -e "show databases" | greptest_geocop_db`

sleep 1

if [ "$dbms" == "test_geocop_db" ]; then

printf "\t[OK]"

else

printf "[FAIL] \n#ERROR: No database detected...\n\n"

exit 0

fi

#create table...

printf "\n# Creating table PERFORMANCE on test_geocop_db"

dbms=`mysql -u root -ptoor<performance.sql`

sleep 1

if [ "$dbms" == "" ]; then

printf "\t[OK]"

else

printf "[FAIL] \n#ERROR: Creating PERFORMANCE table...\n\n"

exit 0

fi

#Config Server

printf "\n# Configuring server.... "

sql="INSERT INTO \`test_geocop_db\`.\`server_config\` (\`MaxNumVehicles\`,

\`TCP_subscription_port\`, \`UDP_limit_down\`, \`UDP_limit_up\`, \`TCP_limit_down\`,

\`TCP_limit_up\`, \`TCP_timeOut\`, \`cmd_Timeout\`) VALUES ('200', '1000', '2000', '60000',

'2000', '60000', '5000', '10000');"

`mysql -uroot -ptoor -e "$sql" &> /dev/null`

printf "\t[OK]"

#Generate 100 Test users

printf "\n# Generating 100 users. ID: 1-100 Pwd:Secret "

count=1

while [ $count -le 100 ]

do

sql="INSERT INTO \`test_geocop_db\`.\`terminal_users\` (\`UserID\`, \`Secret\`, \`GroupID\`,

\`Name\`, \`DateCreation\`, \`Description\`) VALUES ('$count', 'secret', '1', '1',

CURRENT_TIMESTAMP, '');"

`mysql -uroot -ptoor -e "$sql" &> /dev/null`

Page 66: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

66

count=`expr $count + 1`

done

printf "\t[OK]"

printf "\n# Capturing resources consummed by OS on idle..."

count_init=0

mem_init=0

cpu_init=0

count_init=0

sum_mem_init=0

sum_cpu_init=0

#calmdown the system after DB operations...

sleep 5

while [ $count_init -lt 1 ]

do

#MEM

mem_init=`free | grepMem: | awk '{ print $3 }'`

sum_mem_init=`expr $mem_init + $sum_mem_init`

#CPU

#read last line head(c+4)

cpu_init=`iostat -c 2| head -n 10| tail -1| awk '{ print int($6) }'`

cpu_init=`expr $cpu_init + 0`

cpu_init=`expr 100 - $cpu_init`

sum_cpu_init=`expr $cpu_init + $sum_cpu_init`

count_init=`expr $count_init + 1`

done

#Calculate avg...

mem_init=`expr $sum_mem_init / $count_init`

cpu_init=`expr $sum_cpu_init / $count_init`

#Network

rx_init=`ifconfig eth0 |grep "RX bytes" | cut -d: -f2 | awk '{ print $1 }'`

rx_init=`expr $rx_init + 0`

tx_init=`ifconfig eth0 |grep "TX bytes" | cut -d: -f3 | awk '{ print $1 }'`

tx_init=`expr $tx_init + 0`

network_init=`expr $rx_init + $tx_init`

printf "\t[OK] \n\tAVG USED Memory: $mem_init (Kilobytes) \n\tAVG USED CPU by System:

$cpu_init(percent) \n\tNetwork(eth0): $network_init (bytes)\n\n"

printf "\n# Writing every (5 seconds) CPU, MEM and Total Traffic(eth0) (Excludes used

resources by System)\n"

Page 67: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

67

mem=0

cpu=0

traffic=0

rx=0

tx=0

count=0

while true

do

#MEM

mem=`free | grepMem: | awk '{ print $3 }'`

mem=`expr $mem - $mem_init`

#CPU head(c+4)

cpu=`iostat -c 2| head -n 10| tail -1| awk '{ print int($6) }'`

cpu=`expr $cpu + 0`

cpu=`expr 100 - $cpu`

#echo $cpu

cpu=`expr $cpu - $cpu_init`

#Network

rx=`ifconfig eth0 |grep "RX bytes" | cut -d: -f2 | awk '{ print $1 }'`

rx=`expr $rx + 0`

tx=`ifconfig eth0 |grep "TX bytes" | cut -d: -f3 | awk '{ print $1 }'`

tx=`expr $tx + 0`

traffic=`expr $rx + $tx`

traffic=`expr $traffic - $network_init`

count=`expr $count + 1`

sql="INSERT INTO \`test_geocop_db\`.\`performance\` (\`TimeStamp\`, \`cpu\`, \`mem\`,

\`traffic\`) VALUES (CURRENT_TIMESTAMP, '$cpu', '$mem', '$traffic');"

mysql -uroot -ptoor -e "$sql"

done

exit 0

Page 68: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

68

A.4 Network latency (testbed)

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.

64 bytes from 192.168.1.2: icmp_req=1 ttl=128 time=0.433 ms

64 bytes from 192.168.1.2: icmp_req=2 ttl=128 time=0.409 ms

64 bytes from 192.168.1.2: icmp_req=3 ttl=128 time=0.393 ms

64 bytes from 192.168.1.2: icmp_req=4 ttl=128 time=0.421 ms

64 bytes from 192.168.1.2: icmp_req=5 ttl=128 time=0.505 ms

64 bytes from 192.168.1.2: icmp_req=6 ttl=128 time=0.342 ms

64 bytes from 192.168.1.2: icmp_req=7 ttl=128 time=0.393 ms

64 bytes from 192.168.1.2: icmp_req=8 ttl=128 time=0.454 ms

64 bytes from 192.168.1.2: icmp_req=9 ttl=128 time=0.442 ms

64 bytes from 192.168.1.2: icmp_req=10 ttl=128 time=0.430 ms

64 bytes from 192.168.1.2: icmp_req=11 ttl=128 time=0.376 ms

64 bytes from 192.168.1.2: icmp_req=12 ttl=128 time=0.437 ms

64 bytes from 192.168.1.2: icmp_req=13 ttl=128 time=0.306 ms

64 bytes from 192.168.1.2: icmp_req=14 ttl=128 time=0.440 ms

64 bytes from 192.168.1.2: icmp_req=15 ttl=128 time=0.351 ms

64 bytes from 192.168.1.2: icmp_req=16 ttl=128 time=0.418 ms

64 bytes from 192.168.1.2: icmp_req=17 ttl=128 time=0.258 ms

64 bytes from 192.168.1.2: icmp_req=18 ttl=128 time=0.277 ms

64 bytes from 192.168.1.2: icmp_req=19 ttl=128 time=0.283 ms

64 bytes from 192.168.1.2: icmp_req=20 ttl=128 time=0.294 ms

64 bytes from 192.168.1.2: icmp_req=21 ttl=128 time=0.406 ms

64 bytes from 192.168.1.2: icmp_req=22 ttl=128 time=0.294 ms

64 bytes from 192.168.1.2: icmp_req=23 ttl=128 time=0.223 ms

64 bytes from 192.168.1.2: icmp_req=24 ttl=128 time=0.429 ms

64 bytes from 192.168.1.2: icmp_req=25 ttl=128 time=0.415 ms

64 bytes from 192.168.1.2: icmp_req=26 ttl=128 time=0.444 ms

64 bytes from 192.168.1.2: icmp_req=27 ttl=128 time=0.379 ms

64 bytes from 192.168.1.2: icmp_req=28 ttl=128 time=0.448 ms

64 bytes from 192.168.1.2: icmp_req=29 ttl=128 time=0.431 ms

64 bytes from 192.168.1.2: icmp_req=30 ttl=128 time=0.444 ms

64 bytes from 192.168.1.2: icmp_req=31 ttl=128 time=0.417 ms

64 bytes from 192.168.1.2: icmp_req=32 ttl=128 time=0.430 ms

64 bytes from 192.168.1.2: icmp_req=33 ttl=128 time=0.447 ms

64 bytes from 192.168.1.2: icmp_req=34 ttl=128 time=0.451 ms

64 bytes from 192.168.1.2: icmp_req=35 ttl=128 time=0.334 ms

64 bytes from 192.168.1.2: icmp_req=36 ttl=128 time=0.427 ms

64 bytes from 192.168.1.2: icmp_req=37 ttl=128 time=0.432 ms

64 bytes from 192.168.1.2: icmp_req=38 ttl=128 time=0.438 ms

64 bytes from 192.168.1.2: icmp_req=39 ttl=128 time=0.271 ms

64 bytes from 192.168.1.2: icmp_req=40 ttl=128 time=0.407 ms

64 bytes from 192.168.1.2: icmp_req=41 ttl=128 time=0.265 ms

64 bytes from 192.168.1.2: icmp_req=42 ttl=128 time=0.372 ms

64 bytes from 192.168.1.2: icmp_req=43 ttl=128 time=0.307 ms

64 bytes from 192.168.1.2: icmp_req=44 ttl=128 time=0.224 ms

64 bytes from 192.168.1.2: icmp_req=45 ttl=128 time=0.372 ms

64 bytes from 192.168.1.2: icmp_req=46 ttl=128 time=0.400 ms

64 bytes from 192.168.1.2: icmp_req=47 ttl=128 time=0.365 ms

64 bytes from 192.168.1.2: icmp_req=48 ttl=128 time=0.431 ms

64 bytes from 192.168.1.2: icmp_req=49 ttl=128 time=0.428 ms

64 bytes from 192.168.1.2: icmp_req=50 ttl=128 time=0.434 ms

64 bytes from 192.168.1.2: icmp_req=51 ttl=128 time=0.428 ms

64 bytes from 192.168.1.2: icmp_req=52 ttl=128 time=0.420 ms

64 bytes from 192.168.1.2: icmp_req=53 ttl=128 time=0.427 ms

64 bytes from 192.168.1.2: icmp_req=54 ttl=128 time=0.444 ms

64 bytes from 192.168.1.2: icmp_req=55 ttl=128 time=0.424 ms

64 bytes from 192.168.1.2: icmp_req=56 ttl=128 time=0.424 ms

64 bytes from 192.168.1.2: icmp_req=57 ttl=128 time=0.433 ms

64 bytes from 192.168.1.2: icmp_req=58 ttl=128 time=0.432 ms

64 bytes from 192.168.1.2: icmp_req=59 ttl=128 time=0.285 ms

64 bytes from 192.168.1.2: icmp_req=60 ttl=128 time=0.399 ms

--- 192.168.1.2 ping statistics ---

60 packets transmitted, 60 received, 0% packet loss, time 58997ms

rtt min/avg/max/mdev = 0.223/0.389/0.505/0.065 ms

Page 69: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

69

A.5 NTP offset

host hostname # ntpdate 192.168.1.1

18 Apr 22:11:06 ntpdate[4020]: adjust time server 192.168.1.1 offset -0.000268 sec

host hostname # ntpdate 192.168.1.1

18 Apr 22:11:29 ntpdate[4021]: adjust time server 192.168.1.1 offset -0.000150 sec

Page 70: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

70

A.6 Data extraction shell script

#!/bin/bash

clear

printf "\n############################################################"

printf "\n## Xstract TEST data - IST 52860, Jose Almeida ##"

printf "\n############################################################\n"

if [ "$1" = "" ]; then

echo "ERORR: No Filename to extract data.... (usage example: $0 no_security_UDP_1)"

exit 0

fi

printf "\n# ATTENTION: test_performance.sh will be killed... in 3 seconds (Cr^c to abort)"

sleep 3

`killall -9 test_performance.sh`

sleep 3

printf "\n#1 Creating table $1 (CPU,MEM,Traffic, Delay)"

#1 Create table performance

myq="CREATE TABLE $1_raw AS (SELECT performance.*, rtstatus.Timediff FROM performance INNER

JOIN rtstatus ON performance.TimeStamp = rtstatus.test_Timestamp);"

#echo $myq

dbms=`mysql -u root -ptoortest_geocop_db -e "$myq"`

sleep 1

printf "\t[OK]\n"

#2 Agg data (put aggregate by 30s interval)

printf "\n#2 1 Agg Data... Time Interval (30seconds)"

myq="SELECT 0 INTO @x; CREATE TABLE $1 AS (SELECT (@x:=@x+1) as

clients,avg(cpu),avg(mem),avg(Timediff),traffic FROM $1_raw GROUP BY (TimeStamp div 50));"

dbms=`mysql -u root -ptoortest_geocop_db -e "$myq"`

sleep 1

printf "\t[OK]\n"

#3 Extracting file...

printf "\n# Extracting (CPU,MEM,Traffic and Delay) to $1.sql "

dump=`mysqldump -uroot -ptoortest_geocop_db $1_raw $1 > $1.sql`

sleep 1

printf "\t[OK]\n"

printf "\nFile created succefully -> $1.sql \t[DONE]\n"

exit 0

Page 71: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

71

A.7 No security (Security.java)

public class Security {

private String secret;

private String IVsecret;

public Security(String secret, String IVsecret) throws Exception {

this.secret=secret;

this.IVsecret=IVsecret;

}

public static byte[] encrypt(byte[] input) throws Exception {

return input;

}

public static byte[] decrypt(byte[] cipherText) {

return cipherText;

}

}

Page 72: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

72

A.8 Encryption only (Security.java)

public class Security {

private static final String ALGORITHM = "DES/CBC/PKCS5Padding";

private byte[] keyValue = new byte[] { '1', '2', '3', '4', '5', '6', '7','8' };

private byte[] IVkey = new byte[] { '1', '2', '3', '4', '5', '6', '7','8' };

static Key key =null;

static IvParameterSpecivSpec=null;

static Cipher cipher=null;

private String secret;

private String IVsecret;

public Security(String secret, String IVsecret) throws Exception {

java.security.Security.addProvider(new BouncyCastleProvider());

this.secret=secret;

this.IVsecret=IVsecret;

setSecret(keyValue, secret);

setSecret(IVkey, IVsecret);

cipher = Cipher.getInstance(ALGORITHM);

ivSpec = new IvParameterSpec(IVkey);

key = new SecretKeySpec(keyValue, ALGORITHM);

}

public static byte[] encrypt(byte[] input) throws Exception {

cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec);

byte[] result = cipher.doFinal(input);

return result;

}

public static byte[] decrypt(byte[] cipherText) throws InvalidAlgorithmParameterException,

InvalidKeyException {

try {

cipher.init(Cipher.DECRYPT_MODE, key, ivSpec);

byte[] plainText = cipher.doFinal(cipherText);

return plainText;

} catch (IllegalBlockSizeException ex) {

return null;

} catch (BadPaddingException ex) {

Page 73: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

73

return null;

}

}

public void setSecret(byte[] defaultkey,String secret) {

for(inti=0; i<defaultkey.length; i++) {

if(secret.length()>i) defaultkey[i] = (byte) secret.charAt(i);

}

}

}

Page 74: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

74

A.9 Encryption + Mac (Security.java)

public class Security {

private static final String ALGORITHM = "DES/CBC/PKCS5Padding";

private byte[] keyValue = new byte[] { '1', '2', '3', '4', '5', '6', '7','8' };

private byte[] IVkey = new byte[] { '1', '2', '3', '4', '5', '6', '7','8' };

static Key key =null;

static IvParameterSpecivSpec=null;

static Cipher cipher=null;

private String secret;

private String IVsecret;

static Mac mac;

public Security(String secret, String IVsecret) throws Exception {

java.security.Security.addProvider(new BouncyCastleProvider());

this.secret=secret;

this.IVsecret=IVsecret;

setSecret(keyValue, secret);

setSecret(IVkey, IVsecret);

cipher = Cipher.getInstance(ALGORITHM);

ivSpec = new IvParameterSpec(IVkey); //createCtrIvForAES(1, random);

key = new SecretKeySpec(keyValue, ALGORITHM); //Key key = createKeyForAES(256, random);

//MAC

mac = Mac.getInstance("DES");

mac.init(key);

}

public static byte[] encrypt(byte[] input) throws Exception {

cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec);

//MAC

byte[] dataHash;

dataHash = mac.doFinal(input);

byte[] inputFinal = new byte[input.length + dataHash.length];

System.arraycopy(input, 0, inputFinal, 0, input.length);

System.arraycopy(dataHash, 0, inputFinal, input.length, dataHash.length);

byte[] result = cipher.doFinal(inputFinal);

return result;

}

Page 75: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

75

public static byte[] decrypt(byte[] cipherText) throws InvalidAlgorithmParameterException,

InvalidKeyException {

try {

cipher.init(Cipher.DECRYPT_MODE, key, ivSpec);

byte[] plainText = cipher.doFinal(cipherText);

intmessageLength = plainText.length - mac.getMacLength();

byte[] messageHash = new byte[mac.getMacLength()];

byte[] originalData=new byte[messageLength];

System.arraycopy(plainText, 0, originalData, 0, messageLength);

System.arraycopy(plainText, messageLength, messageHash, 0, messageHash.length);

byte[] localHash = new byte[mac.getMacLength()];

localHash = mac.doFinal(originalData);

if( Arrays.equals(localHash, messageHash) ) {

return originalData;

}

return null;

} catch (IllegalBlockSizeException ex) {

return null;

} catch (BadPaddingException ex) {

return null;

}

}

public void setSecret(byte[] defaultkey,String secret) {

for(inti=0; i<defaultkey.length; i++) {

if(secret.length()>i) defaultkey[i] = (byte) secret.charAt(i);

}

}

}

Page 76: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

76

A.10 CPU values

TCP UDP UDP (DES) UDP(DES+MAC)

AVG DEV AVG DEV AVG DEV AVG DEV #Clients

3.75 0.26 4.38 0.29 5.60 0.09 6.85 0.70 1

3.56 0.29 5.20 0.30 6.48 0.44 8.29 0.76 2

3.10 0.29 3.70 0.26 4.59 0.45 5.60 0.52 3

2.60 0.57 3.55 0.36 4.53 0.79 5.42 0.50 4

2.59 0.34 3.44 0.19 4.50 0.46 5.13 0.48 5

2.34 0.45 3.37 0.07 3.88 0.38 5.24 0.24 6

2.41 0.40 3.48 0.18 4.09 0.37 4.70 0.35 7

2.65 0.30 3.30 0.48 3.52 0.31 4.24 0.35 8

2.55 0.16 2.90 0.40 3.93 0.17 4.27 0.18 9

3.64 0.59 4.85 0.66 4.28 0.35 8.50 0.60 10

3.18 0.86 4.05 0.67 4.07 0.48 5.44 0.38 11

3.03 0.84 3.60 0.35 3.84 0.24 5.07 0.24 12

3.11 0.50 4.21 0.57 4.76 0.34 5.79 0.60 13

3.91 0.31 5.78 0.75 5.60 1.71 7.78 0.62 14

3.47 0.50 4.34 0.48 5.93 0.63 7.36 0.21 15

4.00 0.32 6.20 0.97 7.10 1.22 8.58 0.79 16

4.41 0.39 6.80 0.29 8.62 0.70 9.90 0.38 17

5.39 0.87 6.17 0.22 7.72 0.37 8.87 0.73 18

4.38 0.38 6.92 0.55 8.33 0.91 10.34 0.51 19

4.24 0.59 6.31 0.91 6.66 0.30 6.75 0.31 20

5.01 0.86 6.72 0.78 9.16 0.96 10.15 0.36 21

5.07 0.86 6.61 0.79 7.45 0.54 7.58 0.95 22

5.50 0.55 7.75 1.04 10.05 0.79 10.73 1.35 23

5.62 1.08 6.16 0.14 8.53 1.38 9.75 0.78 24

5.93 0.71 7.14 1.11 9.44 0.41 10.68 0.26 25

6.49 1.76 9.43 1.06 13.43 1.76 15.16 0.48 26

6.62 1.27 8.47 1.03 11.97 0.95 14.02 1.04 27

6.62 0.78 9.15 0.73 12.09 0.82 13.03 0.86 28

6.28 1.24 9.74 1.13 11.76 1.61 14.41 0.38 29

7.43 1.25 10.91 1.65 14.37 0.26 18.39 0.96 30

6.92 1.76 9.72 0.70 12.55 0.97 18.38 0.46 31

7.35 0.69 10.20 1.22 12.06 0.87 13.06 1.95 32

8.37 0.80 10.35 0.86 14.31 2.11 17.36 2.56 33

6.54 1.41 11.14 0.99 12.81 1.32 14.90 0.65 34

7.82 0.62 10.08 0.85 13.68 2.48 19.48 0.87 35

6.67 0.67 10.33 0.76 12.50 1.25 14.48 1.29 36

6.74 1.16 10.23 1.03 13.51 0.94 18.09 0.39 37

8.79 0.62 13.07 2.39 13.01 1.33 21.93 4.79 38

8.26 0.60 11.83 1.54 13.03 0.84 15.69 0.36 39

9.24 0.73 13.26 1.06 17.40 1.48 17.95 0.94 40

10.09 0.49 13.73 1.52 16.78 0.59 21.49 2.12 41

9.51 0.68 14.22 0.55 17.97 1.20 17.71 3.34 42

8.19 0.71 12.92 0.92 15.65 1.61 17.75 2.69 43

8.40 0.69 12.23 0.67 15.38 1.33 15.89 0.86 44

8.61 0.65 11.31 1.37 15.17 1.14 18.23 1.46 45

9.32 0.86 15.23 1.22 20.14 1.30 24.15 0.98 46

9.40 1.17 14.17 2.01 17.88 2.42 18.83 1.79 47

8.29 1.09 12.68 0.59 15.81 1.73 16.90 2.49 48

10.73 0.89 14.01 1.09 17.84 1.88 20.70 2.90 49

9.81 1.79 12.83 0.85 14.99 2.38 17.25 1.15 50

9.97 0.70 13.87 0.96 17.55 1.47 16.32 1.28 51

8.49 1.55 13.44 2.14 15.00 0.72 16.62 1.03 52

11.35 1.05 15.88 0.74 19.71 1.34 23.22 0.72 53

10.47 1.10 16.46 0.18 19.77 2.12 28.59 2.28 54

10.33 1.70 16.08 1.09 19.36 1.46 23.30 1.92 55

13.81 2.19 20.00 1.37 24.26 3.04 22.96 1.22 56

11.57 1.93 16.95 0.97 22.58 2.25 26.43 0.88 57

13.95 1.14 19.68 2.18 26.46 3.62 31.42 3.55 58

11.98 0.79 17.05 1.13 20.81 2.20 20.60 1.19 59

11.58 1.44 17.85 1.07 21.46 3.05 26.34 0.59 60

14.34 1.80 18.47 0.42 24.25 2.94 33.51 0.75 61

12.79 2.35 18.64 1.01 22.46 2.63 23.76 1.66 62

13.53 1.85 18.39 1.63 22.43 2.87 25.90 1.90 63

12.87 2.46 15.95 1.74 20.42 1.49 25.99 2.77 64

13.55 1.52 18.56 1.64 24.11 3.92 33.70 3.81 65

16.18 1.38 19.70 1.32 25.30 1.91 30.56 5.40 66

14.15 2.67 19.67 2.35 23.11 1.29 26.19 4.43 67

16.62 1.65 19.16 1.17 32.71 2.84 38.78 1.73 68

15.49 3.70 20.19 1.35 26.07 0.82 30.92 0.41 69

17.88 2.54 24.47 1.70 26.63 2.04 29.43 1.50 70

16.15 3.59 22.62 1.00 25.42 3.41 28.32 2.27 71

Page 77: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

77

16.20 1.42 21.82 1.39 25.01 2.17 28.99 2.04 72

13.88 3.27 22.29 1.12 26.43 3.44 33.41 1.47 73

15.38 1.62 22.11 1.19 27.09 3.27 39.25 3.62 74

14.57 3.29 23.01 1.60 29.12 4.61 31.34 2.21 75

16.48 1.24 23.54 0.89 28.97 4.30 34.69 4.78 76

16.01 2.60 23.68 1.01 27.87 3.41 38.54 2.18 77

15.08 2.79 23.54 2.47 30.11 1.03 29.06 4.04 78

17.21 1.64 24.95 2.38 27.11 2.03 29.35 3.94 79

14.14 2.41 20.16 1.89 26.40 1.82 29.13 2.10 80

15.99 2.67 22.28 1.11 29.96 3.63 28.95 4.32 81

18.20 2.22 25.25 1.73 34.59 2.20 35.00 1.00 82

16.51 3.55 24.55 2.38 31.57 3.35 36.73 4.98 83

19.37 1.72 28.07 2.14 37.27 3.16 41.44 4.14 84

16.18 4.34 25.16 0.79 37.92 3.37 36.75 3.53 85

16.37 1.55 24.46 1.85 27.44 2.31 31.50 3.19 86

20.18 2.10 25.71 2.31 32.89 3.69 37.39 1.96 87

20.67 1.74 26.75 2.46 36.71 3.95 30.69 1.74 88

18.57 2.28 25.69 2.53 29.45 1.46 41.84 3.44 89

20.31 3.84 30.56 2.94 36.95 1.07 42.15 0.75 90

19.53 3.16 25.98 1.53 29.76 2.06 37.77 2.53 91

22.94 1.44 29.88 1.18 36.84 4.32 36.86 3.11 92

19.88 3.32 27.94 1.02 33.17 3.96 39.16 2.87 93

22.34 1.84 26.43 0.94 34.21 1.81 39.03 2.44 94

23.19 2.32 26.79 1.92 29.81 3.92 43.91 3.50 95

24.07 0.98 28.38 0.62 35.23 2.91 38.90 1.91 96

21.64 3.71 27.94 1.61 36.53 1.82 40.27 4.09 97

22.34 3.28 28.04 1.53 34.33 2.57 39.58 3.50 98

23.11 1.44 30.87 1.75 36.49 3.96 45.24 5.43 99

24.90 1.26 32.73 2.52 40.93 6.00 43.70 11.99 100

Page 78: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

78

A.11 Memory values

TCP UDP UDP (DES) UDP(DES+MAC)

AVG DEV AVG DEV AVG DEV AVG DEV #Clients

64742 5531 61834 2567 80977 6975 77735 7556 1

67835 3427 66971 2719 86168 4960 84530 3643 2

69461 1735 68486 1029 89638 6660 86738 4934 3

70222 1700 69052 933 92291 6465 92021 5553 4

70897 1689 69456 812 97140 3379 98359 7821 5

71636 1845 69879 842 100141 3395 101690 4259 6

72445 1851 70482 721 100017 2228 100093 3733 7

73112 2146 71083 552 102222 3865 101304 4557 8

73809 2245 71431 681 102177 2833 102075 4522 9

74569 1993 71904 794 104250 5189 104955 5560 10

75050 1958 73303 1317 105594 3816 105543 5250 11

75372 1942 74848 1125 108181 2421 107681 7034 12

76109 1520 75724 491 111336 3002 110457 5173 13

77086 1810 76304 372 114667 4778 110788 5144 14

78080 2228 76874 630 114493 4455 112738 4179 15

78847 2539 77455 803 116620 2577 117265 7381 16

79824 2523 79709 1683 120317 3755 119203 5631 17

81283 3720 81459 1225 123307 5542 119216 5053 18

81739 3564 82593 1330 125807 6305 121003 6130 19

83276 3578 85233 1534 131051 9554 124966 7378 20

84560 3507 86464 838 136735 9014 129705 8088 21

86447 4261 87344 608 144417 10604 136263 7892 22

87521 4230 88614 727 149141 6297 142064 8429 23

88404 4443 90903 1575 155250 6249 155773 9746 24

89606 4476 92618 861 157159 5621 162235 5874 25

90454 4679 93876 739 158292 5363 164188 7389 26

91496 3854 96009 1532 157803 3125 165641 5236 27

92481 3970 97393 1751 158576 3564 167386 7893 28

93694 4120 98369 1590 160466 4569 168724 6341 29

95757 4300 99934 982 162604 6158 168218 6517 30

96614 4212 100916 1034 162166 4501 171707 6875 31

97516 4416 102029 1043 164681 5895 172239 4199 32

98888 4184 103006 1024 164829 5390 174576 6732 33

100111 4350 104236 1092 166773 5312 177869 4299 34

100895 4823 105349 1023 168784 6015 180703 4721 35

102119 4975 106627 1112 168475 4446 181964 4312 36

103144 4579 107675 1070 171371 7339 183184 6462 37

104422 5164 108888 1058 170215 5494 187951 8177 38

105475 5444 110040 1132 173595 8174 187799 6796 39

106600 5415 111250 1124 174392 6493 190824 8220 40

108075 6242 112550 1343 175651 6827 191292 5161 41

108389 5494 113929 1369 176893 7885 199460 6575 42

109202 5658 115221 1259 178984 8993 203841 9048 43

110183 5953 116502 1515 183719 9555 207384 12796 44

110908 4097 117851 1207 187809 11407 211633 16918 45

111597 3564 119148 1126 191489 12888 217387 22465 46

113032 4156 120623 1307 196948 15802 222778 25837 47

114637 4631 122104 1257 203684 19718 225620 28858 48

115422 5153 123292 1323 208699 23500 230758 30558 49

116560 5613 124529 1345 213946 26100 233784 33282 50

117571 5848 125917 1394 218728 29944 235369 32321 51

118834 6300 127274 1582 224722 33725 239117 33460 52

119676 6684 128386 1516 224721 32465 240800 32907 53

120819 7400 129759 1377 226522 33745 244534 34553 54

121589 7430 130770 1596 227963 31906 246097 34259 55

122439 7180 131842 1149 227181 32624 249773 32064 56

122896 6614 133384 1431 230208 31744 251947 31375 57

123871 6892 134748 1479 229882 30364 256264 34856 58

123898 6378 136070 1452 232043 31703 257722 34113 59

124238 5188 137309 1357 232538 32323 262195 33376 60

125403 5934 138819 1475 229949 31430 266887 28992 61

126662 6367 140360 1327 231808 32608 266450 31440 62

127244 7214 141835 1578 232410 32572 270835 33385 63

128177 7870 143454 1391 235271 32537 271426 33682 64

129444 8452 144947 1443 234290 31724 274177 32179 65

130364 9193 146554 1371 236273 31012 276279 32916 66

131605 10288 148113 1432 236975 31186 281180 34439 67

132945 11256 149606 1436 236722 33217 281681 35667 68

133947 12202 151707 1501 239075 31866 285310 35054 69

135374 12756 153624 1404 237239 32538 289234 35848 70

136459 13480 155117 1652 238908 32648 289071 37737 71

Page 79: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

79

137439 12872 157102 1474 240148 34665 294189 40946 72

138354 14056 158692 1571 241640 33334 296194 39617 73

140133 14691 160611 1522 240834 31757 301355 38155 74

139625 12722 162392 1696 241247 32030 304295 40793 75

140209 10961 164380 1950 242361 32543 304723 43174 76

141151 12129 166130 1700 243993 31082 309646 42344 77

142669 12936 168093 1672 244407 34428 311333 39572 78

143616 13915 169991 1412 247235 32752 314708 38564 79

145283 14745 171380 1400 246532 33219 318194 38876 80

146691 15916 172206 1198 246677 32784 321836 40810 81

148239 16425 172360 1037 248988 34268 321261 41656 82

149511 17300 173173 1285 249326 35263 328689 39981 83

150576 17439 173952 1234 249838 33648 326253 40746 84

151531 17750 174737 990 250346 35656 330987 42279 85

152857 17659 175466 999 250793 34241 334035 39773 86

153020 16538 176267 1085 252829 33296 337751 39986 87

154289 16065 177193 1163 254711 35954 343244 37828 88

154623 15235 177799 1464 255126 34535 342993 40982 89

155449 14028 178411 1424 254688 34350 350636 39185 90

156292 14398 179404 1358 252950 33626 350132 40964 91

157625 14526 180478 1350 255898 34089 351277 35999 92

158836 14893 181542 1286 253568 32784 353032 38349 93

160282 15184 182300 1089 254990 31550 353226 37171 94

161512 15855 183214 1254 256820 32502 355432 37447 95

162907 16510 184544 1240 257141 32401 359461 38631 96

163395 15367 185364 1452 256510 31784 361114 36091 97

164654 15746 186501 1438 258565 31594 360557 36025 98

164897 15642 187184 1424 258406 33016 366777 36008 99

171579 18712 187806 1477 258116 34400 363007 36192 100

Page 80: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

80

A.12 Maximum status delay values

TCP UDP UDP (DES) UDP(DES+MAC)

AVG DEV AVG DEV AVG DEV AVG DEV #Clients

171.33 87.50 129.01 96.07 131.92 52.94 136.60 104.02 1

158.90 27.95 112.60 107.15 148.35 63.57 211.29 69.91 2

183.55 102.52 154.59 101.52 132.53 45.13 168.88 59.44 3

199.30 99.31 200.00 96.80 175.42 50.23 222.10 55.99 4

224.11 96.03 227.91 104.89 178.45 58.97 207.94 49.52 5

215.75 118.34 221.40 55.56 194.36 57.36 210.13 57.02 6

220.29 114.60 230.44 67.60 208.85 60.45 237.35 45.88 7

214.79 101.72 253.20 66.37 194.28 50.27 217.35 44.63 8

204.25 120.77 255.35 56.18 227.92 39.33 227.08 50.03 9

207.14 121.79 261.50 54.98 231.10 40.78 212.09 25.23 10

231.38 111.64 253.68 39.70 234.18 36.70 223.76 35.37 11

193.70 122.62 252.80 36.07 235.80 24.90 221.39 35.10 12

216.38 99.01 259.93 24.23 235.18 40.49 221.92 43.67 13

245.03 92.35 255.80 29.84 255.56 35.14 217.68 44.34 14

216.72 109.91 260.96 20.74 250.73 21.87 239.75 37.82 15

213.98 133.64 265.00 19.42 248.96 24.17 206.87 22.49 16

240.08 107.21 260.88 25.11 256.99 26.31 204.15 30.44 17

209.23 109.53 259.00 31.61 257.41 27.75 204.13 24.47 18

224.75 115.47 258.10 36.55 260.20 21.91 210.97 43.28 19

241.08 116.63 254.80 47.54 246.57 40.92 228.79 38.08 20

223.13 103.52 251.70 42.06 256.25 33.64 205.36 22.25 21

256.58 99.25 250.30 43.25 263.86 27.89 213.91 32.06 22

233.62 97.94 252.63 44.80 243.26 43.87 199.82 23.37 23

243.95 86.22 252.00 47.18 254.13 34.37 209.96 33.23 24

232.39 102.14 251.93 48.29 262.80 27.59 191.54 21.69 25

228.83 98.15 255.60 43.42 253.84 25.81 225.30 45.15 26

232.95 111.70 250.49 48.89 256.87 45.44 230.53 38.81 27

227.55 103.49 254.20 46.22 263.63 29.70 215.51 30.83 28

247.28 96.58 253.04 45.01 260.56 35.13 218.14 37.83 29

223.95 102.17 251.90 44.13 257.82 34.47 189.73 12.70 30

240.80 103.03 253.11 46.14 256.67 43.05 219.46 32.90 31

239.45 97.77 252.50 48.44 250.95 38.58 255.11 37.59 32

247.37 95.25 254.18 45.75 244.70 47.34 218.04 37.11 33

233.76 97.77 253.00 46.90 247.52 46.73 206.59 27.34 34

238.01 100.21 252.85 45.29 263.19 39.80 214.17 44.87 35

234.56 97.59 252.50 44.08 254.73 35.46 214.45 30.03 36

248.94 90.70 251.48 44.36 261.04 33.43 202.36 29.56 37

221.50 100.76 253.60 46.03 268.54 25.85 211.01 45.42 38

244.13 94.87 250.48 44.86 257.10 50.00 228.82 42.30 39

253.10 93.96 254.20 46.15 241.67 33.58 200.27 42.95 40

242.63 97.58 252.68 45.45 262.44 40.20 227.56 44.73 41

243.15 103.36 253.50 46.24 205.87 75.39 194.33 31.46 42

245.93 97.22 250.25 45.02 257.16 41.59 218.01 38.04 43

249.60 92.86 252.20 45.69 232.60 53.13 199.13 47.08 44

244.32 94.80 250.46 46.12 237.94 44.92 193.53 36.40 45

230.48 110.26 250.10 48.40 242.18 52.51 194.60 27.91 46

248.94 91.40 250.85 47.17 245.72 46.18 215.67 37.59 47

243.47 101.66 251.90 45.34 242.57 45.10 189.57 24.92 48

243.29 94.41 251.18 46.62 253.57 45.51 222.17 38.73 49

242.75 89.91 250.30 46.12 244.18 35.06 218.12 34.50 50

248.80 92.25 250.17 46.18 255.25 32.93 215.90 45.05 51

243.70 103.12 252.40 45.60 260.74 36.01 226.65 44.49 52

244.60 91.77 250.77 45.19 243.38 44.67 194.43 16.01 53

252.05 86.08 248.70 44.29 261.22 27.68 213.15 35.24 54

251.98 89.79 249.93 45.09 263.72 39.94 201.58 32.46 55

257.13 88.88 247.80 46.14 241.09 47.97 214.16 37.70 56

252.08 92.26 248.55 44.94 245.95 37.75 225.11 43.85 57

251.53 80.62 250.10 46.84 241.95 49.80 218.42 37.37 58

250.14 95.14 249.45 45.61 244.68 28.89 214.39 37.28 59

251.13 92.80 248.40 43.76 235.52 46.18 232.20 48.44 60

249.50 90.18 247.35 45.93 254.71 32.03 218.51 42.49 61

245.15 99.99 249.10 46.48 230.25 37.82 198.98 22.38 62

252.79 89.28 248.58 44.71 262.33 25.84 233.15 55.59 63

252.43 91.01 249.80 44.70 251.47 38.17 212.99 36.67 64

250.53 91.04 248.11 44.01 264.23 23.36 229.73 61.18 65

244.63 96.34 247.40 43.53 242.52 73.48 212.70 36.10 66

248.73 93.59 248.12 44.34 241.25 35.13 202.96 34.83 67

249.00 92.96 248.40 45.11 236.30 39.58 211.25 31.91 68

249.45 91.42 247.46 43.17 240.02 44.22 202.12 25.30 69

247.70 98.30 244.60 43.82 264.12 30.05 218.78 43.07 70

251.57 88.77 246.55 45.23 254.42 44.86 193.67 29.45 71

Page 81: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

81

247.76 97.50 244.20 46.57 242.45 39.63 199.53 27.71 72

246.40 94.73 245.20 44.59 247.16 33.34 228.74 38.41 73

246.96 99.09 244.00 46.02 247.47 44.94 212.31 47.01 74

247.94 92.67 245.91 45.50 251.27 43.67 211.50 26.29 75

245.55 96.24 245.30 45.93 258.09 29.64 207.05 26.20 76

238.28 102.44 245.76 45.34 229.67 56.81 202.35 18.53 77

243.63 97.94 246.40 44.06 267.28 27.29 201.15 19.01 78

251.88 90.41 245.77 44.04 255.52 34.97 232.65 36.20 79

247.20 91.85 243.40 43.88 232.26 38.60 228.61 30.66 80

247.88 93.29 244.21 45.23 242.61 24.55 222.52 24.05 81

249.70 94.10 246.40 44.62 232.43 34.66 242.14 23.50 82

242.03 97.82 244.48 43.54 235.85 37.12 216.93 32.12 83

247.20 93.48 244.70 45.27 254.23 25.83 232.66 40.79 84

251.76 88.03 245.08 43.28 257.96 21.92 250.31 18.70 85

246.71 90.15 242.90 45.27 215.45 61.21 200.75 36.17 86

240.35 101.41 243.49 45.08 218.32 52.76 223.76 46.52 87

250.53 90.10 244.20 45.30 212.32 42.57 212.23 26.10 88

245.33 94.30 243.59 45.50 235.70 33.52 246.80 24.66 89

246.83 92.21 240.30 41.89 215.21 39.39 207.26 10.52 90

250.33 87.82 241.35 43.59 214.38 47.36 208.03 24.45 91

244.65 94.34 244.20 44.45 221.85 63.50 204.86 41.53 92

246.93 88.27 241.80 44.72 197.47 71.03 198.40 29.63 93

245.75 90.01 242.60 45.55 237.07 51.15 209.88 18.69 94

248.78 87.93 242.40 43.01 235.50 50.94 206.65 18.22 95

247.00 92.36 241.40 42.99 226.68 50.04 210.16 17.02 96

244.54 88.70 241.78 43.53 252.53 27.52 243.26 47.03 97

244.67 91.71 239.40 41.05 240.29 31.04 229.01 13.54 98

236.35 86.18 240.06 45.58 252.97 22.78 216.59 45.72 99

258.10 74.38 242.30 41.71 238.19 37.46 233.47 31.91 100

Page 82: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

82

A.13 Network traffic values

TCP UDP UDP (DES) UDP(DES+MAC)

AVG DEV AVG DEV AVG DEV AVG DEV #Clients

20292 18784 2508 280 2346 6 2863 339 1

37661 36690 11810 3814 9581 37 5677 2046 2

46246 39685 15174 4604 12988 24 20483 4428 3

86158 53358 37434 7562 37145 119 27442 5040 4

97326 56594 43726 7722 40617 82 56374 9606 5

153958 67368 79121 10360 82368 138 67555 7645 6

175869 63339 88741 10875 87759 99 109190 13727 7

240451 84974 137072 13545 135807 300 124323 6809 8

267969 79302 149700 14095 152274 557 175250 17148 9

347837 105129 209340 16014 214241 602 198855 7977 10

377353 92127 226358 17082 234758 760 263624 21831 11

472844 126700 297926 19727 312056 941 294395 11269 12

510200 112498 316813 21712 333219 1015 365381 25663 13

614342 146161 402833 22835 427972 1182 405646 16309 14

664762 134318 416482 24840 451763 753 489082 31873 15

783464 173888 523689 25904 558248 1672 535129 22414 16

840504 162607 539669 27409 585319 1820 633281 42095 17

973416 206173 652313 32769 708963 2542 672839 30285 18

1034741 198341 675604 29617 723654 2177 797464 61648 19

1179471 238920 800675 33086 876515 2772 838658 34295 20

1247894 224846 829854 32820 891774 2989 956111 56894 21

1412181 272673 963746 34552 1040290 2608 1014034 37800 22

1475219 249157 1000015 36031 1076786 2987 1148858 64413 23

1657527 310642 1146579 37656 1239967 4680 1204834 38639 24

1731006 283364 1186049 39286 1282252 3047 1359990 78414 25

1925948 342511 1345131 40998 1462277 2137 1430468 43412 26

2011257 319549 1375318 48728 1503754 7117 1596857 92017 27

2213887 374527 1559388 44401 1697457 4404 1663254 69417 28

2312190 359232 1585940 47103 1742477 6671 1837479 110440 29

2528324 411916 1774462 54612 1948608 5240 1908836 71191 30

2634534 393195 1813512 48202 1970815 7351 2104298 123477 31

2863985 444005 2014384 53565 2211745 3933 2166065 77358 32

2961444 436958 2061011 51384 2238720 7989 2387055 137353 33

3210207 483734 2274967 56635 2476799 5775 2442188 82884 34

3313744 466089 2324086 54607 2530331 9805 2662089 158375 35

3577711 534839 2545593 57415 2767978 9568 2742414 98082 36

3687046 500396 2603111 57475 2830766 9407 2993431 175107 37

3956174 564838 2836419 61872 3083145 12016 3100637 135819 38

4078321 545155 2886257 61180 3156801 8421 3293451 156359 39

4360826 604260 3144192 64940 3419522 8184 3406335 102320 40

4498866 596088 3182802 69241 3496839 7927 3650954 185339 41

4795174 656621 3460731 74037 3952122 16273 3816149 156892 42

4939999 649533 3500610 69225 4118162 11128 4059735 117416 43

5251586 712484 3778656 73177 4165910 14773 4126021 136252 44

5392669 719924 3842163 71873 4497918 15109 4477174 152996 45

5724926 774699 4133113 76184 4532897 14481 4473613 137604 46

5856883 769998 4199104 75159 4847347 20174 4828226 211726 47

6217736 846335 4496811 77702 4932192 12953 4909948 188829 48

6352239 828387 4571788 78495 5241261 5833 5269930 196757 49

6707867 914572 4880886 79638 5355771 7252 5362554 200165 50

6869800 902853 4944328 80894 5671277 8475 5696317 217732 51

7249302 990881 5281971 82889 5765194 8951 5782413 274038 52

7419524 976818 5331446 88302 6127435 22676 6136767 229664 53

7804424 1057917 5698840 86129 6213236 17302 6215678 250990 54

7992381 1052700 5750762 92180 6589926 14819 6621132 261095 55

8392308 1133130 6097054 93398 6623726 20154 6676482 317860 56

8586491 1125592 6176921 92259 7055765 19391 7046708 217047 57

9005256 1205949 6544424 96874 7097653 18036 7155858 264159 58

9164643 1198395 6626879 94269 7498123 11019 7611947 298837 59

9631110 1284086 6998979 95975 7619869 18780 7676814 324187 60

9805260 1268918 7093834 98484 8004638 29423 8054290 360207 61

10273301 1380240 7477812 99573 8115913 19852 8146666 312757 62

10437245 1338988 7566370 110428 8512434 21730 8624804 354760 63

10915030 1433839 7972505 102691 8649042 19671 8693699 340829 64

11115482 1415627 8033448 109194 9040432 20909 9113007 388204 65

11595584 1504338 8483121 105991 9161630 28275 9242899 385808 66

11812068 1493812 8536220 108944 9596727 34463 9706763 349560 67

12299945 1588587 8967366 114048 9656083 37955 9771089 377279 68

12526076 1575307 9063974 112371 10204084 25483 10338415 465764 69

13031087 1673802 9507882 117329 10254979 18822 10420029 478599 70

13234760 1652151 9609124 114246 10734068 25703 10917101 431514 71

Page 83: Tracking Management System for Security Enhancement · Este trabalho apresenta um SRGT com uma camada de serviços especificamente desenhada para as FSPs. No final é realizado um

83

13770654 1764820 10054913 117639 10817506 26611 10989385 466237 72

13977102 1736087 10168766 116841 11272242 39481 11433486 523177 73

14541416 1852168 10627202 120459 11400398 40380 11527503 445543 74

14738837 1815383 10719610 119238 11891887 40093 12012044 411774 75

15286707 1933241 11214989 123765 12039586 4912 12237068 500474 76

15525133 1902828 11286708 127505 12500229 44110 12785427 550455 77

16085903 2014669 11796514 124472 12621398 38779 12832582 485244 78

16345433 1991258 11880986 126230 13167320 37436 13315733 541051 79

16922144 2109015 12391160 133868 13285482 32870 13624391 556288 80

17191081 2083435 12502745 129835 13836857 36414 14177434 660639 81

17782027 2207041 13025706 137138 13908495 48990 14176346 662630 82

18032215 2146016 13142168 135073 14522857 34755 14851342 671847 83

18657736 2308862 13663569 134928 14545362 40163 14931652 691063 84

18882350 2275978 13798066 140147 15161316 26942 15474070 676728 85

19536617 2425609 14331728 140599 15290301 40110 15590476 725261 86

19785986 2379592 14426463 127208 15837060 47711 16092174 623326 87

20402242 2521717 15013389 143707 15957810 33760 16490420 745490 88

20676928 2490221 15099193 152562 16564885 57808 16880296 693831 89

21341867 2637208 15671406 133801 16980549 47065 17095701 705979 90

21629666 2612841 15782821 150503 17335593 29603 17564265 750479 91

22288749 2751669 16369668 158073 17434474 33737 17806444 765277 92

22596546 2733347 16497648 153915 18067207 60432 18340711 759816 93

23266633 2873557 17085492 156614 18113090 54790 18570328 793384 94

23553704 2798941 17230779 157734 18861858 49388 19134788 808675 95

24245460 3009435 17828799 160369 18898808 77210 19180917 713574 96

24523242 2962582 17947127 159692 19458062 51877 19985446 892662 97

25087244 3083736 18588262 163525 19699711 52414 20018298 759884 98

25350806 3088899 18693673 147118 20276303 76251 20631131 874652 99

25743052 3302393 19332412 165823 20454074 40709 20980407 1069603 100