Computer Science CSC4000W - Shenzi
Transcription
Computer Science CSC4000W - Shenzi
MODUS Messaging for Office Doors through Ubiquitous Systems Computer Science CSC4000W Author: Neil Stuppel Supervisor: Gary Marsden Co-Supervisor: Donald Cook 6th November 2006 Abstract Office door messaging is nothing new. A conventional method of communication with an office occupant when not in their office is the use of post-it notes. These are often exposed to visitors that randomly pass by the door and are often removed without the visitor or occupant s knowledge. This paper aims to research the technology required to implement such an application in a ubiquitous environment, stepping through the implementation of the application for a secure multi-functional messaging system. The MODUS system has been built to provide office occupants a means of communicating with visitors when not in their office. This implementation exists in a ubiquitous environment that creates problematic conditions for both usability and security aspects of computing. Where systems similar to MODUS have focused on usability in these ubiquitous environments, the MODUS system focuses on security. This will allow for visitors at the office occupants door to have a sense of security when communicating with the occupant and not having to be concerned that their confidential messages are being viewed by a 3rd party. The system has been implemented using both conventional and unconventional security techniques. The security that has been provided includes: confidentiality, integrity, authentication, and non-repudiation. 1 Table of Contents ABSTRACT................................................................................................................................................... 1 TABLE OF CONTENTS ............................................................................................................................. 2 LIST OF ILLUSTRATIONS ....................................................................................................................... 4 1 INTRODUCTION AND MOTIVATION ........................................................................................... 5 2 BACKGROUND CHAPTER............................................................................................................... 6 2.1 RELATED WORK .............................................................................................................................. 6 2.1.1 Summary ................................................................................................................................. 6 2.2 RESEARCH THEORY ......................................................................................................................... 7 2.2.1 PDA Usability ......................................................................................................................... 7 2.2.2 Security Requirements............................................................................................................. 8 2.2.2.1 2.2.2.2 2.2.2.3 2.2.3 3 Summary ................................................................................................................................. 9 DEFINITION AND THEORY .......................................................................................................... 11 3.1 3.2 4 Security in Pervasive / Ubiquitous Environments ..............................................................................8 Wireless 802.11b Security ..................................................................................................................8 Availability.........................................................................................................................................9 PROBLEM DEFINITION.................................................................................................................... 11 RESEARCH QUESTION .................................................................................................................... 11 SPECIFICATION OF SOLUTION .................................................................................................. 12 4.1 SECURITY REQUIREMENTS ............................................................................................................ 12 4.2 FUNCTIONAL REQUIREMENTS ........................................................................................................ 13 4.2.1 Requirements......................................................................................................................... 13 4.2.2 Core Functional Requirements ............................................................................................. 13 4.2.3 Complete Functional Requirements ...................................................................................... 14 4.3 DIVISION OF WORK........................................................................................................................ 14 4.3.1 Non-Security ......................................................................................................................... 14 4.3.2 Security ................................................................................................................................. 14 4.4 METHODOLOGY ............................................................................................................................. 14 4.5 EVALUATION ................................................................................................................................. 15 5 DESIGN ............................................................................................................................................... 16 5.1 MODUS SYSTEM OVERVIEW ........................................................................................................ 16 5.2 CALENDAR CLIENT:....................................................................................................................... 17 5.2.1 Hardware Design Platform................................................................................................... 17 5.2.2 Programming Language ....................................................................................................... 17 5.2.3 Bluetooth Sensor ................................................................................................................... 17 5.3 CALENDAR WEB SERVICE ............................................................................................................. 18 5.4 HARDWARE DESIGN PLATFORM .................................................................................................... 18 5.5 PROGRAMMING LANGUAGE ........................................................................................................... 18 5.6 WEB SERVER ................................................................................................................................. 19 5.7 DATABASE ..................................................................................................................................... 19 5.8 SECURITY ...................................................................................................................................... 19 5.8.1 Confidentiality and Integrity ................................................................................................. 19 5.8.2 Device Authentication ........................................................................................................... 20 5.9 CALENDAR SYNCHRONIZATION ..................................................................................................... 21 5.9.1 Component Object Model ..................................................................................................... 21 5.10 CALENDAR INTERFACE DESIGN ..................................................................................................... 21 2 6 IMPLEMENTATION ........................................................................................................................ 23 6.1 SYSTEM OVERVIEW ....................................................................................................................... 23 6.2 PROGRAMMING LANGUAGE ........................................................................................................... 23 6.3 MODUS CLIENT ........................................................................................................................... 24 6.3.1 Interface ................................................................................................................................ 25 6.3.2 Class Implementation............................................................................................................ 27 6.3.3 Bluetooth Sensor ................................................................................................................... 27 6.3.4 Optimizations ........................................................................................................................ 29 6.4 MODUS SERVER........................................................................................................................... 30 6.4.1 Class Implementation............................................................................................................ 31 6.4.2 Database ............................................................................................................................... 32 6.5 MODUS WEB ADMINISTRATION .................................................................................................. 33 6.6 SECURITY ...................................................................................................................................... 34 6.6.1 Encryption............................................................................................................................. 34 6.6.2 Server Authentication............................................................................................................ 35 6.6.3 Device Authentication ........................................................................................................... 35 6.7 CALENDAR SYNCHRONISATION ..................................................................................................... 36 7 TESTING AND RESULTS ................................................................................................................ 38 7.1 FUNCTIONAL TESTING ................................................................................................................... 38 7.1.1 Encryption/Integrity .............................................................................................................. 38 7.1.2 Server Authentication............................................................................................................ 40 7.1.3 Client Authentication ............................................................................................................ 40 7.1.4 Bluetooth Sensor ................................................................................................................... 41 7.1.5 GroupWise Synchronizer ...................................................................................................... 41 7.1.6 Client/Service Faults............................................................................................................. 41 7.1.7 Web Administrator ................................................................................................................ 42 7.1.8 Web Service........................................................................................................................... 42 7.2 USER TESTING ............................................................................................................................... 47 7.2.1 MODUS Client...................................................................................................................... 47 7.2.1.1 7.2.1.2 7.2.1.3 7.2.2 Iteration 1 .........................................................................................................................................47 Iteration 2 .........................................................................................................................................49 Conclusion........................................................................................................................................50 Web Administrator ................................................................................................................ 50 8 CONCLUSION ................................................................................................................................... 52 9 FUTURE WORK ................................................................................................................................ 53 9.1 9.2 9.3 9.4 9.5 9.6 HARDWARE ................................................................................................................................... 53 CALENDAR DESIGN ....................................................................................................................... 53 BLUETOOTH SENSOR ..................................................................................................................... 53 GROUPWISE SYNCHRONIZER ......................................................................................................... 53 SECURITY ...................................................................................................................................... 54 COMMUNICATION .......................................................................................................................... 54 10 REFERENCES.................................................................................................................................... 55 3 List of Illustrations FIGURE 1: MODUS SYSTEM DESIGN ............................................................................................................ 16 FIGURE 2: PAPER PROTOTYPE - INTERFACE DESIGN ...................................................................................... 22 FIGURE 3: SYSTEM OVERVIEW ...................................................................................................................... 23 FIGURE 4: MODUS CLIENT CLASS DIAGRAM ............................................................................................... 24 FIGURE 5: CALENDAR INTERFACE ................................................................................................................. 25 FIGURE 6: OPEN SLOTS INTERFACE ............................................................................................................... 25 FIGURE 7: CREATE APPOINTMENT INTERFACE .............................................................................................. 26 FIGURE 8: KEYPAD ........................................................................................................................................ 26 FIGURE 9: CALENDAR CLASS......................................................................................................................... 27 FIGURE 10: BLUETOOTH SENSOR PROTOCOL ................................................................................................. 28 FIGURE 11: BLUETOOTH REGISTRATION APPLICATION ................................................................................. 28 FIGURE 12: MODUS SERVICE CLASS DIAGRAM ........................................................................................... 30 FIGURE 13: CALENDARSERVICE CLASS ......................................................................................................... 31 FIGURE 14: SOAP RESPONSE ........................................................................................................................ 32 FIGURE 15: CALENDAR DATABASE TABLE .................................................................................................... 33 FIGURE 16: OVERLAPPING TIME SLOTS ......................................................................................................... 34 FIGURE 17: SSL AUTHENTICATION ............................................................................................................... 35 FIGURE 18: DEVICE AUTHENTICATION .......................................................................................................... 36 FIGURE 19: DEVICE AUTHENTICATION DATABASE TABLE ............................................................................ 36 FIGURE 20: GROUPWISE SYNCHRONIZATION ................................................................................................ 37 FIGURE 21: CLEAR TEXT RESPONSE .............................................................................................................. 39 FIGURE 22: ENCRYPTED RESPONSE ............................................................................................................... 39 FIGURE 23: INITIAL LOAD GRAPH ................................................................................................................. 43 FIGURE 24: IMAGE UPDATE LOAD GRAPH ..................................................................................................... 44 FIGURE 25: SINGLE CLIENT APPOINTMENT SCHEDULING LOAD GRAPH ........................................................ 45 FIGURE 26: TWO CLIENTS, APPOINTMENT SCHEDULING LOAD GRAPH ......................................................... 46 FIGURE 27: TWO CLIENTS, MESSAGING AND APPOINTMENT SCHEDULING LOAD GRAPH ............................. 46 FIGURE 28: CALENDAR INTERFACE ............................................................................................................... 48 FIGURE 29: OPEN SLOTS INTERFACE ............................................................................................................. 48 FIGURE 30: BOOK APPOINTMENT INTERFACE ................................................................................................ 49 FIGURE 31: KEYPAD ...................................................................................................................................... 49 4 1 Introduction and Motivation Jane arrives at her professor s office to make an appointment. He is no where to be found and Jane sees a PDA attached to his door with a picture of him on it. She sees that he is out for lunch and notices that she can make an appointment with him or leave a message. Jane decides to make an appointment and selects one of the free time slots. She books the slot and enters her name with a message. She then posts the appointment to her professor. Jane then remembers that she needs to remind her professor to send her the project specification. She decides to leave a message on the PDA for her professor. The professor is working on his laptop during lunch and sees that he has two new e-mails. The first indicating that Jane has made an appointment to see him and the other a message from Jane saying: Hi please send me the project specification . The aim of the MODUS project is to provide a multi-functional messaging system that will allow both lecturer and student to communicate in an environment that is unobtrusive, controlled and confidential. The MODUS project realises that currently there is no efficient means of communication between student and lecturer and intends to fix this communication gap. While speaking is an efficient means used to communicate, students are often intimidated by staff members to ask questions directly, it is not always possible to communicate directly if the owner is out of their office. With the advent of the Internet and E-mail, communication between people on different continents can take seconds. This provides the basis for the solution as digital information can be transmitted quickly and efficiently between electronic devices. Lecturers are not always in their offices and students are not always able to send e-mail. With the advancement in mobile technology and an increase in computing power, mobile devices are now capable of performing complex business tasks including operations across networks allowing for communication with various electronic devices. PDAs provide easy input mechanisms like touch screens, to keep the device compact. Traditionally, lecturers allowed students to write messages on post-it notes or on white-boards. While this provided a solution it was not always effective as students are able to remove the notes and potentially alter them. This solution does not provide the 2-way communication required for prompt and reliable interaction with staff members. While students are able to communicate with the lecturers, the lecturers are not able to communicate with the students. The use of mobile technology to enhance education and create an environment to help everyday tasks is nothing new. The MODUS system provides a fully functional messaging system that allows for convenient messaging, appointment scheduling and a mechanism for lecturers and students to keep in contact. It establishes a secure ubiquitous environment allowing for confidential and reliable messaging. 5 2 Background Chapter This section deals with the previous work that has been done by other people that is beneficial in creating the MODUS system. 2.1 Related Work Chevest et al at the University of Lancaster developed the HERMES system [1]. The HERMES system is made up of multiple PDAs on various office doors to provide messaging functionality to the owner and visitors to the office. Owners are able to display messages to passing visitors Visitors are able to leave messages for the occupant The setup of this system in a ubiquitous environment is intended to remove the need for conventional post-it notes. HERMES research has brought into context the difficulty in maintaining a secure system, which is important in an open environment, over the usability requirements that are also required to ensure that people will make use of the system. In a particular scenario, occupants are able to create temporary messages on the PDA. Initially, the attempt was made to prevent any user from setting a temporary message and required the owner to authenticate themselves each time to access the area of the HERMES system to change the message. The office occupant found this to be cumbersome and often decided not to change a temporary message. The approach was revised and a compromise was made to require the occupant to tap on the PDA screen twice to initiate the component to set a temporary message . This however leaves the system at risk, and users can maliciously change the temporary message without the occupant s knowledge. The research indicates that both occupant and visitors to the office door refrained from using the HERMES system as they did not believe it would work, where messages would not reach their destination. This indicates a need for a security aspect where one can ensure availability and ensure all messages reach their destination in a timely method. The HERMES research provides valuable information on the usability issues that were found when placing the system in a real environment. 2.1.1 Summary The HERMES system has provided the grounding to create a messaging system in a ubiquitous environment. They aimed to create a system that was usable and aimed to produce a system with limited button pressing and therefore making the messaging process quick and efficient. The MODUS developers, while focusing on creating a usable system, acknowledge the requirement for a security platform embedded into a messaging system in a ubiquitous environment. The use of security often involves increasing the number of button presses involved to perform an action. Fortunately HERMES has provided a system that has been tested for many months in a real 6 world environment and has provided valuable information with regards to: Usability The approach taken by HERMES has been to minimize the number of taps required to complete an operation. Users are not often familiar with new technology and therefore do not want to spend much of their time performing trivial tasks. Required functionality HERMES implemented a strict messaging system as its core functionality. The MODUS system will, however, include a Calendar component where students can schedule appointments with the lecturers. Communication issues HERMES based their communication on Wireless and realised that weak signals were due to interference in the building. This, however, was due to the placement of their wireless routers. They positioned their devices at positions at a distance from the wireless access points. 2.2 Research Theory Creating usable and secure environments often conflict and security can often degrade the usability of an application. Much research has been done on both usability and security in ubiquitous systems. 2.2.1 PDA Usability In the book Designing the User Interface, Ben Schneiderman identified 8 principles that should be adhered to when designing interfaces for desktop applications. [15] [2] Discusses the limitations of mobile device interfaces using the 8 principles as specified by Ben Shneiderman and moves to adapt these principles for the development of mobile devices. It suggests that four of the original guidelines can be directly used when developing interfaces for mobile devices Enable frequent users use of shortcuts Offer informative feedback Design dialogs to yield closure Support internal locus of control The remaining 4 guidelines require modification to adapt to mobile devices due to resource limitations including memory space, limited screen size and slow response times. The paper moves on to propose new guidelines to developing interfaces for mobile devices Design for multiple and dynamic contexts Design for small devices Design for limited and split attention Design for speed and recovery Design for top-down interaction 7 Allow for personalization Design for enjoyment 2.2.2 Security Requirements 2.2.2.1 Security in Pervasive / Ubiquitous Environments [3] Provides the current trends in securing applications in pervasive computing environments. The trends are separated into core security sections that when combined produce an all round secure environment. Authentication and Authorization Access Control Service Discovery Trust [5] Investigates the possible threats that can occur in pervasive computing environments. It establishes the current methods of providing security to conventional computing environments: Symmetric encryption Asymmetric Encryption X509 Certificates Specific aspects of security in pervasive computing are analyzed and solutions are provided to create a secure environment. Both physical and network security is required to ensure a secure environment. Current solutions to physical security ensure a user is authenticated to perform authorization. Network security is performed at various levels of the Network Stack. Possible solutions include SSL/TSL, IPSec, SSH. 2.2.2.2 Wireless 802.11b Security Wireless networks based on the IEEE 802.11b standard are growing ever more popular. Ubiquitous systems are integrated into ones surroundings. In order for these systems to communicate they require a wireless connection. These devices can often transmit sensitive data and there is a requirement for a specific level of security. Much research has been done on the security flaws of the 802.11b standard and investigating ways to secure wireless connections. The 802.11x standard provides two methods of security [6]: MAC filters used for access control Wired Equivalent Privacy (WEP) used for encryption MAC address filtering is used for access control. Each device contains a MAC address which is used to identify each device. This method of access control is flawed as each MAC address of a Wireless 802.11b network adapter can be easily changed. WEP is used to encrypt all data being transmitted between wireless devices and to ensure integrity of all data. It is based on the RC4 algorithm and uses CRC-32 to compute an Integrity Check Value over all the data being transmitted. WEP however can be easily cracked and 8 therefore not strong enough to ensure all data is kept confidential. [7] Outlines alternative security mechanisms that can be used to secure the communication between the communicating devices. Including: SSL o VPN o 2.2.2.3 Provides security at the transport layer and ensures that all communication is confidential and maintains integrity. It is also capable to authenticating both client and server. This creates a private secure connection over public networks. All communication is secure and provides ways to authenticate users. It is also responsible for ensuring integrity of all data being transmitted Availability Mobile devices do not have the computing resources Personal Computers have. However, mobile devices are increasingly performing complex business and personal tasks that require more resources that can slow down the device considerably and lessen its energy life span. [8][9] investigates the energy consumption of PDAs when implementing security protocols and cryptographic functions. The approach taken by the researchers is to apply various cryptographic functions and security protocols using PDAs and measure the amount of energy consumed with varying data sizes. The research indicates that Key initialization is more costly than the encryption/decryption and therefore asymmetric encryption uses more of the PDAs resources. The implementation of SSL was found to increase resource use on the mobile device when client authentication is enabled as more resources are used to negotiate client credentials. [10] Investigates the impact of consuming web services based on SOAP called over the internet using PDAs. The investigation tested two architectures. The first, using a direct connection from the PDA to the Web service, where the web service is located across the internet, and a different architecture, using a proxy server over the local area network which the PDA communicates using a TCP connection. The second architecture consists of two different proxy clients, one being JAVA based and the other C based. Using the direct connection across the internet, requests take an average of 11 seconds. Implementing the second architecture lowered the request time to 4.4 seconds. The times to access web services are found to be delayed due to the cost of XML and SOAP parsing and low bandwidth mediums being used that increase the transport time. While 802.11b protocol operates at 11Mbps, tests showed that on average they operate at 47Kbps. 2.2.3 Summary The research theory has provided a grounding to provide a usable and secure ubiquitous environment for the MODUS system. Schneiderman s design principles have been designed for desktop computers. While these are most applicable for the desktop platform some can be applied to mobile computing to provide usable interfaces. 9 The research has pointed out vital security vulnerabilities that exist in ubiquitous environments Authentication A solution to using certificates has been addressed that would provide a secure method of authentication Confidentiality over WiFi The MODUS client s will be communicating with the MODUS server over a wireless communication medium. The security research has provided, in great detail the solutions that can be applied to provide a secure wireless infrastructure. Availability Creating a system for a ubiquitous environment will require on demand availability. The weak wireless signals and slow responses from the server will create a delay that will affect the efficiency of the system. The design of the MODUS system will require an efficient method of transmitting information between client and server to ensure availability. Most solutions have been provided using conventional security techniques that will be adapted to be used for the MODUS system 10 3 Definition and Theory 3.1 Problem Definition The MODUS System is intended to provide an efficient means for students and lecturers to communicate with each other in the Computer Science Department at UCT. Currently students are able to leave messages and make appointments via e-mail, direct communication and the use of post-it notes on the lecturer s office door. These are often very inefficient as students are not always by a computer to send an email; post-it notes can easily be taken off doors and often students are too scared to directly communicate with lecturers and therefore decide not to confront the lecturer. For lecturers this is not an efficient way of communicating with students either. Lecturers may be late, unwell for a meeting or away from the office. The lecturer has no way of communicating with the recipient to inform them that they will not be available for the meeting/lecture. With the advancement in mobile technology and in the creation of ubiquitous computing where mobile devices become integrated in the environment, PDAs have become advanced enough to interconnect with high speed networks and able to compute information at an efficient speed to meet users needs. Both lecturers and students are able to use PDAs to communicate with each other. While solving the problem of communicating with an absent lecturer there is also a need to keep communication secure. The use of post-it notes, a popular method used by office occupants leave messages open for others to view that are private. 3.2 Research Question While there is a problem as noted above one needs to see if there is a solution therefore Is it possible to create a solution to provide an efficient and convenient system which can assist in communication between lecturer and student? A similar project has been done by Lancaster University (HERMES), the focus being on usability. Usability is important to our project but is not our focus. We will be focusing on the security of a ubiquitous system such as the system being implemented here. How can the 6 Network Security Services be used to secure a ubiquitous computing environment created for messaging 11 4 Specification of Solution The MODUS system requires two types of requirements. These include the research question in mind How to create a secure ubiquitous messaging system and therefore having specific Security Requirements as well as the end system functionality that will allow the MODUS system to provide a convenient and efficient multi-functional messaging system. 4.1 Security Requirements a) Confidentiality The system will be required to ensure that all messages and appointments made by students are kept confidential during transmission from the MODUS client to the server. The system will need to make use of encryption algorithms that will encrypt all information on the communication link. b) Authentication User Authentication In a ubiquitous environment where it is not always possible to control who is using the systems one can not ensure authentication. However new, quick and efficient techniques are required to authenticate users at the PDA. The technique must be relatively secure but must not endanger the usability of the application. Client Authentication Potentially many office doors will be using the MODUS system and there will be a requirement to authenticate each device to identify which client is accessing the service. Client authentication is also needed for security purposes to ensure that the server does not communicate with any rogue client s and providing them a service that they are not authorized to access. c) Integrity All messages and appointments communicated over the communication link must maintain its integrity to ensure that no information is altered during transmission. d) Access Control In an environment where multiple MODUS clients are operational, there must be strict access control as to which client can access the specific data requested. Authenticated users will have access to extra functionality that requires a user to be authenticated. e) Availability The system should be available at all times. It should run efficiently and effectively on the mobile device. f) Non-Repudiation The system is required to log all transactions that occur within the MODUS system. This will remove any refutation of any transactions that may occur between client and service. Due to the nature of security, it is not an option to leave any security aspect out as any gap in 12 security can be used to an attacker s advantage and bring the system down. While no security feature can be left out a priority has been given to ensure Confidentiality Integrity Authentication Access Control Availability These 4 features will ensure a high degree of security and reliability in the operation of the system. 4.2 Functional Requirements Other than the research question, there is a list of key features that are required to make a usable multi-functional messaging system. The features have been defined based on user interactions with a possible messaging system that both students and staff may find useful to their everyday use of the system. The messaging functionality was the core functionality of the HERMES system and is an important requirement to be included. To verify this and the other core functionality, a focus group was held. The outcome suggested that HERMES was correct in providing a messaging system and the focus group was in agreement that an appointment scheduling system would be useful. Prior to the commencement of the project, it was decided by the developers and project supervisor to provide each staff member specific functionality. This included, calendar synchronization, RSS feeds and E-mail notification. 4.2.1 Requirements Students can send messages to lecturer Students can schedule appointment with lecturer Lecturer can leave a temporary message displayed on the PDA Lecturer can display free slots for students to schedule an appointment Messages are E-mailed to the lecturer Appointments are E-mailed to the lecturer RSS feeds for new Messages RSS feeds for new Appointments Proximity Sensor can detect Lecturers Bluetooth device when in range Lecturer can synchronize personal GroupWise calendar with the MODUS calendar All these features are beneficial to creating a usable system that allows for convenient messaging. Unfortunately in a limited time span allocated to the project. Not every feature can be implemented. A priority list has been decided based on the developer s decisions on the key features of the system. 4.2.2 Core Functional Requirements The core functionality that will be implemented in the MODUS system includes: Message functionality Appointment functionality 13 4.2.3 Complete Functional Requirements Email functionality RSS functionality Synchronization functionality 4.3 Division of Work The development team decided to split the functional requirements into messaging and appointment scheduling. All components (client, server, web administrator) will be divided between these sections. This report will focus on the specific functionality that deals with appointment scheduling. 4.3.1 Non-Security Appointment functionality RSS E-mail Synchronization Bluetooth Sensor 4.3.2 Security Confidentiality Integrity Device/Server Authentication Access Control Availability Other functionality will be developed and implemented by the rest of the MODUS team. 4.4 Methodology It has been decided by the MODUS developers to start development from the ground up. While taking the results of the research done by the HERMES team, it has been decided to start all coding from scratch. Building the system will involve creating a secure environment while attempting to keep the system usable. The software development approach of the MODUS system that we will take is XP Programming. This is an adaptive, agile development methodology. We will focus on the fast pace of development whereby coding, integrating, performing user acceptance testing and creating prototypes. Using the XP development approach also enforces user centered design where developers are 14 always in contact with the users to establish requirements and evaluate prototypes. XP practice encourages pair programming, due to the small size of the development team and the limited time each component will be coded individually. The MODUS project has been separated between the developers into the Messaging component and Calendar component. Extreme Programming methodology views a need for testing before coding has begun. Unit testing will be performed. Automated test cases will be designed to test the core functions of each component to ensure a well tested application. Integration is done on a continuous basis, as specific functionality is completed for each component it is integrated with the base component that controls both messaging and calendar component. These components form the pieces to the final MODUS system that will provide a multi-functional messaging system. The user centered design approach will allow for the creation of usable interfaces. Focus groups have been held to design the interfaces. Designing for mobile devices is complex as the screen size of the device is small and makes it difficult to display lots of information on a single screen. This often creates an increase in the number of button presses required to complete an operation. The developers will create a simple interface based on user requirements gained from previous systems and allow a focus group to comment on the designs and comment on the usability of the system and possible changes. The interfaces initially took the form of a paper prototype. As the XP process evolves, more focus groups will be held and high fidelity prototyping will be used. Users will interact with the PDA containing a functional interface with various operations available. As this evaluation takes place new requirements may be proposed and integrated into the final system. 4.5 Evaluation The MODUS project as mentioned above consists of a security component and a basic functionality component. These combine to provide the secure ubiquitous environment that will provide a messaging system. The project is deemed to be successful when both lecturers and students are able to communicate messages and create appointments in a secure environment while leaving the user satisfied with the usability of the system indicating that it can be a success in the real world environment. 15 5 Design This section defines the design of the system. The design proposes possible solutions for creating the MODUS system with regards to the technology being used and possible implementation techniques that will be applied. 5.1 MODUS System Overview Figure 1: MODUS System Design The MODUS system is designed to provide a messaging and appointment scheduling system that will allow office occupants and visitors to communicate in an environment where there is no requirement for the occupant to be in their office. The MODUS System it separated into three sub systems. These include the MODUS client, MODUS server and Web Administrator. Each sub system is integrated to provide a multifunctional messaging system between office occupants and visitors. 16 5.2 Calendar Client: 5.2.1 Hardware Design Platform Model: HP iPAQ 4150 OS: Pocket PC 2003 Communication: WiFi 802.11b, Broadcom Bluetooth Adapter 5.2.2 Programming Language Mobile devices are limited in functionality and do not interoperate with all existing programming languages. Various programming languages exist that support an API for PDAs: JAVA, C# .NET, embedded C++, Visual Basic .NET. It has been advised to the MODUS development team by the project supervisor that it will be best to develop in the .NET Compact Framework 2.0 which is supported by the PDAs Operating System: Pocket PC 2003. The Compact Framework 2.0 is a compact version of the full .Net Framework that is designed to run on mobiles devices such as PDAs and is compressed to 1.35MB in ROM. The .NET Framework is Microsoft s Application development platform that allows developers to easily create Windows applications. This platform deals with the low-level management of memory management and processor-specific instructions. [11] The .NET framework is language independent and C# and VB .NET are able to execute on the platform. C# is a fairly new object oriented language that is derived from C and C++, it is also derived from JAVA and supports garbage collection. C# is based from 3 powerful and well developed languages and integrating the strengths of these languages into a single language. [12] Garbage collection is vital when developing for the PDA; resources are scarce and the garbage collector can efficiently free resources when they are not being used. The decision to use the .NET framework over JAVA is based on the amount of functionality provided and the ease of developing and deploying applications to the mobile device. 5.2.3 Bluetooth Sensor The Bluetooth Sensor is designed to use the Bluetooth adapter to determine when the office occupant is in the office. The Bluetooth Sensor Component listens to broadcasts from various other Bluetooth Devices in range. Each device broadcast contains a user defined name. Each MODUS system PDA will be configured to listen for broadcasts containing the device name as specified by the office occupant. To develop applications using Bluetooth adapters one needs to interface with the Bluetooth stack. Each layer of the stack maintains an interface to communicate with. Two stacks currently exist, the Broadcom stack and the Microsoft stack. The Microsoft stack API is free with the use of the .NET framework and Broadcom charge a fee to use the original Broadcom API. The operating system that is used on the iPAQ 4150 (Pocket PC 2003) does not allow for the 17 Bluetooth stack to be changed. High Point Software has created BTAcess. This 3rd party library is compatible with the Compact Framework 2.0 and provides an API to interface with the Broadcom Bluetooth Stack. Due to the high price of the Broadcom API, it has been decided to use the 3rd party library. 5.3 Calendar Web Service The MODUS Calendar Web Service is designed to allow the Calendar Client to View all Free Appointment Time Slots allocated per day Create Appointments E-mail Appointments to occupants 5.4 Hardware Design Platform Model: AMD 1.1 GHz Operating System: Windows XP 5.5 Programming Language The two languages available for providing server side services are ASP .NET and JAVA The .NET Framework provides extensive support for interoperability through web services [13]. Web Services Packages exist to implement web services using JAVA. Apache SOAP can be used to create a JAVA based web service. Due to developer s preference and the already chosen C# languages for the MODUS System client, the Web Service will be developed using C# and ASP .NET. ASP .NET web services automatically package C# data types into SOAP messages and allows for seamless transmission to/from the client application. To allow for interoperability, all communication between client and server will be transmitted using SOAP messages. SOAP communication ensures that all messages are transmitted as XML documents that are language independent. This will allow messages to be easily consumed by clients or other web services written in a different environment if the MODUS system is ever to be extended. Earlier research pointed out the overhead of using SOAP messages from PDA s but the overhead was greatest when sending directly from PDA to the internet, The MODUS system will be sending SOAP messages from PDA to Server in a local area network, as the research did to speed up the connection and reduce the overhead. REST (Representational State Transfer) is a software architectural style. It uses the HTTP protocol to communicate between web services and is based on the design philosophy that the current web works on. Information is transferred across the web using basic HTTP commands, including: Get Post Delete 18 Put These basic commands are used to transfer information across web services. It has been decided against using the REST architecture as Web Services Security will be used to implement a secure environment using the SOAP protocol. 5.6 Web Server The default Windows XP web server is IIS. IIS offers functionality that is required for the MODUS System such as ASP .NET support SSL support Client-Server Authentication 5.7 Database To maintain Calendar entries and device information to authenticate multiple devices, all data will be stored in a backend database. MS SQL Server 2005 integrates with the .NET development environment (Visual Studio 2005) and offers ADO .NET. It is a data access technology that provides connection pooling. It eliminates the requirement to manage connections to the database and provides managed calls to query, update, insert and delete data to/from the database. 5.8 Security 5.8.1 Confidentiality and Integrity To create a secure environment in a ubiquitous environment, all communication must be confidential and data integrity must be ensured. This is achieved using: Encryption Hash Functions Two standards exist to implement security over communication lines. Secure Socket Layer (SSL) is implemented at the transport layer and is application independent. SSL ensures that all contents of a message are encrypted. SSL can be automatically implemented using the IIS web server. It provides a SSL connection to every client that is served. Each client communicates over the HTTPS protocol and both client and server can negotiate encryption keys to allow for a secure communication. 19 Web Services Security is used to secure SOAP messages being transmitted between the application and web service and operates at the application level. Web Services Security can be implemented in the Microsoft .NET Framework using Web Security Enhancement (WSE) 3.0 or Web Security Enhancement (WSE) 2.0. However the Compact Framework does not support WSE 3.0. Freely available 3rd party library (OpenNETCF) provides support for WSE 2.0 on the compact framework. WSE 2.0 is designed for the full .NET framework 1.1 and not for version 2.0 which is the development platform that the MODUS system will be implemented on. WSE would provide a more efficient solution as less data can be encrypted. The development environment however is not suited for the old technology that would be required. To create Hash values of messages being transmitted, SHA1 is offered by the .NET framework. The alternative that is also offered is the MD5 algorithm; this however has been proved to be insecure in practice. 5.8.2 Device Authentication IIS provides a secure method of authentication, client to server and server to client. X509 certificates can be generated using a freely available application (OpenSSL) which creates a test Certificate Authority that is used to sign certificates of the client and server. Provided that both PDA and Web Server contain the public key of the certificate authority as a root certificate, the PDA will access the Server to be authenticated. IIS provides client authentication where the web server can authenticate the client. The Compact Framework does not support client certificate authentication and there is no means for the client to send a certificate to the web server. An alternative option is the use of client credentials where IIS uses its own Windows Login database to authenticate users. To store the password (with out hard coding it) on the PDA can not be done securely. The password can be stored encrypted but in a ubiquitous environment it is not possible to ensure the physical security of the device and can potentially be accessed. The key can therefore not be stored on the PDA either. A solution using a 3rd party library (OpenNETCF) exists and supports the sending of client certificates to the Web Server. The problem of storing the private key of the client on the PDA is a security risk. The solution to providing client authentication is based on MAC address authentication. As this is often used to secure WiFi environments as achieved on the UCT network we feel it is best suited for the limited options available in an open environment. Realizing MAC address s can be spoofed it has been indicated by a Masters Student that it is more difficult to spoof a MAC address over IP address spoofing. To filter MAC addresses of clients the use of a packet filtering firewall is used. Sygate Personal Firewall is a free firewall that is able to filter clients based on their MAC address. MAC address filtering using a firewall allows access control to the web service but does not allow for the tracking of individual access to specific services being accessed. To allow multiple devices to communicate with the web server, knowledge of which PDA is invoking the web service is required. ASP .NET fails to provide methods to retrieve a remote client MAC address. Windows XP provides a library that is capable of performing ARP (Address 20 Resolution Protocol) functions. Using the iphlapi.dll library, low level networking calls can be made. The SendARP function sends a request to a client machine to obtain the physical address that corresponds to a specified IP address. 5.9 Calendar Synchronization To easily integrate the MODUS calendar component into the office occupants personal calendar there is a need to synchronize the MODUS calendar with the occupants personal calendar and vice versa. The two options as decided by the MODUS team are Microsoft Outlook 2003 and Novell GroupWise. They are seen to be a popular choice by staff members and provide an API that easily integrates with c# and the .NET environment using the Component Object Model. GroupWise is also becoming the shared calendar system that will be used at the University of Cape Town for all departmental members. For a successful system, it is in the developer s interest to allow MOUDUS to integrate with its users every day life. 5.9.1 Component Object Model Microsoft COM is a technology that allows software components to communicate [14]. Microsoft Outlook provides access to MS outlook using the COM model. Application development can be performed using the .NET framework and all MS Outlook calendar features can be accessed. Novell GroupWise stores all personal data in a database that is accessed through the POA (Post Office Agent). Users access the POA using the GroupWise client provided by Novell. The decision to use GroupWise is due to UCT changing their shared calendar to use GroupWise. The rollout is being planned for the middle of 2007 and due to security reason the MODUS team have been refused direct access using SOAP messages to the POA and therefore access the database. The alternative approach is to integrate the synchronization application with the GroupWise Client using the COM model. Novell offers an ObjectAPI that makes COM calls to their client which directly interacts with the POA and only allowing reliable code to be sent to the POA. 5.10 Calendar Interface Design The calendar component of the MODUS system will allow users to create appointments with each MODUS device owner. The interfaces for both client (Figure 2) and web administration site has been designed on paper initially by the designers trying to minimize the number of button presses the user will be required to perform in order to achieve the required task. 21 Figure 2: Paper Prototype - Interface Design The designs have been created using a User Centered Design principal where the design of the interfaces has been verified with a focus on what the users want and need. The focus group is held and each member of the group becomes part of the design process and able to adjust the interface according to their expectations, allowing them to be part of the system design. To test these designs and find possible adjustments for them, prototypes will be created and used by users. The two levels of prototyping will be Low Fidelity High Fidelity Low Fidelity This prototyping involves paper based designs as the system where the users are able to imagine the MODUS system as the real system. The user is then able to familiarize them with the system and find any faults that may exist with the design. High Fidelity The low fidelity prototyping will focus on the design of the calendar interface. The high fidelity prototype consists of code that simulates the system and its functions that the final system consists of. The focus will ensure the system meets user requirements on a functional level and allow the users to evaluate the usability of the interfaces. 22 6 Implementation This section describes the implementation of the MODUS system and describes the design options defined in the Design chapter that have been implemented. 6.1 System Overview The final system is a set of sub systems written in C# to provide a multi-functional digital messaging system. The three sub systems include: MODUS Client MODUS Web Service Web Administrator The system also interacts with a synchronizer to keep the owner s personal calendar synchronized with the MODUS systems calendar. Figure 3: System Overview 6.2 Programming Language The final system is implemented using Microsoft C# and the .NET compact framework version 2.0. The compact framework provided a variety of controls and functions to build sophisticated user interfaces, and allows for seamless communication between client and server using SOAP messages. 23 6.3 MODUS Client Figure 4: MODUS Client Class Diagram The Client is made up of multiple interface controls that interact to provide the client functionality. The main calendar control is responsible for retrieving calendarItems from the web service and then distributing these time slots to the DailyBlocks control. This control lists all the items where a user is able to select a time slot to book. The slot details are then passed from the Calendar control to the CalendarItem control that allows the user to fill in information, i.e. student number and message. This is then returned to the Calendar control and sent to the web service to update the database. 24 6.3.1 Interface The idea behind a ubiquitous system involves the system becoming integrated into the environment. Having a secure environment is not enough to ensure usefulness as a ubiquitous application. Using common GUI components of the .NET framework, users are able to feel familiar with the system. To provide users with a larger writing pad on the PDA, the PDA is developed using a landscape property. The extra width provided using landscape did not provide enough space for a single calendar interface as was discussed in the Design chapter (Figure 2). Three separate interfaces have been developed, each providing the next step in making an appointment. Interface 1: Figure 5: Calendar Interface Users are able to select a date from the calendar displayed and then able to click Check Availability . Interface 2 Figure 6: Open Slots Interface 25 The Interface displays the Free Slots available to the user to make an appointment. Interface 3 Figure 7: Create Appointment Interface The user is able to create the appointment and then directed to the main screen. The default keypad provided with the compact framework does not allow for developers to define its position on the application. The default position for the keypad does not fit the calendar interface elegantly. A new keypad control has been created to enter in a user s student number. Figure 8: Keypad 26 6.3.2 Class Implementation To encapsulate every appointment scheduled by visitors to the office door a separate class has been implemented. Figure 9: Calendar Class startDate and endDate store the respective dates that the appointment has been scheduled for Attachment stores a serialized Bitmap (XML String) of the message left by the visitor and stored as a string. Status indicates if the appointment slot if free or busy. newItem() takes in all the variables listed above and sets initial values to all private variables. This is required due to serialization problems. Using XML serialization, constructors can not take in parameters or perform and tasks. A new method is used to initialize all the required variables. 6.3.3 Bluetooth Sensor The HP IPAQ 4150 communicates with Bluetooth devices using the Widcom Bluetooth stack. This stack does not have an open source API. It has been decided to use BTAccess, a 3rd party library created by High Point Software. The Bluetooth sensor was implemented first as it was a small component of the final system. Figure 10 illustrates the process of sensing devices using BTAccess. The BTAccess class listens for all Bluetooth devices that broadcast its identification. This triggers an event. The BTModule class listens for these triggered events and in turn executes a method that determines if the device found belongs to the owner. 27 Figure 10: Bluetooth Sensor Protocol The original design for the Bluetooth sensor requires the owner of the PDA to specify the name of the mobile device to be sensed. After first implementation it was found that using the same mobile device with changing device names, the Bluetooth stack only returned the old device name and never refreshed The reason for this was later found to be for optimization reasons: The Bluetooth standard does not require the device name to be sent on broadcast. An extra communication call is required to retrieve a device s name. To eliminate the cost of repetitively retrieving the device name on each discovery process, Widcom stores a table of MAC address s and corresponding device name in the PocketPC registry. The issue is created as this table is never refreshed. When a device name is changed, the Widcom registry does not see this change as the MAC address already exists in the registry. To avoid this problem, a separate application has been created. The application deploys on the PDA, and displays a list of Bluetooth devices in range. The staff member is then expected to select their Bluetooth device. On selection, the application stores the mobile device s MAC address in the system s registry and eliminates the need for the owner to specify the device name when it changes. Figure 11: Bluetooth Registration Application 28 6.3.4 Optimizations Developing for mobile devices require efficient and smooth functioning interfaces. To communicate with the web service, RPC calls are made. The process waits until the method call has completed and all results have been returned. This creates a delay in the application and the interface locks until each web service request has completed. Sending SOAP messages consume most resources and often is the most time consuming operation. To eliminate the need for the users to wait for lengthy periods of time for an operation to complete, threading has been implemented. When a user Posts an appointment, it is scheduled in the background using multi-threading. This creates a potential problem if a user checks the same slot listing immediately. The lookup shows that the slot is free. To reduce the possibility of this occurring, a short delay has been programmatically introduced using threading. The interface indicates that Scheduling is taking place and then informs the user of its success and reverts to the main screen. Transmitting data over 100kb to the web service causes the PDA to time out. To resolve this problem the calendar object containing the image is split and sent across in pieces and appended to each other on the server side. With the use of threading there is a risk that two threads will execute the same function and then write to the same file and cause a error. To avoid writing to the same file, each method takes in a random number. This random number is created at every new thread and is attached to the filename to ensure no clashes occur. For every appointment that is scheduled, a new calendarItem instance is created. The garbage collection in C# operates periodically and creating multiple appointments in a short period of time containing large images fills memory and puts strain on the available resources. The need for the cleanup() method shown in figure 9, is used to remove the attachment from memory to free up resources then allowing for garbage collection to free the other resources. 29 6.4 MODUS Server Figure 12: MODUS Service Class Diagram 30 The calendar service is responsible for interpreting the client instructions and executing the required methods on behalf of the client. The CalendarService class is responsible for cocoordinating services such as device authentication, sending emails and creating, viewing and updating appointments in the database. The decision to use SOAP messages has been implemented for reasons of interoperability and seamless development between client and server in the .NET environment. Including the extensive research performed to use SOAP for security reasons which later realised is not viable. It is felt that it is too late to change the implementation technology due to the limited time to develop the MODUS system. The Web Service is developed in C# and operates with ASP .NET web services. The WSDL description files are generated automatically by Visual Studio 2005. The MODUS system has been split into two. The components are allocated into separate services: Calendar service and Messaging service. The implementation of the web service is mainly automated. The operation of communication is as follows: WSDL (XML schema) is created by VS2005 based on the method names created in the web service class. The client creates a proxy class based on the WSDL file and makes RPC calls to the web service, parameters are automatically marshalled to SOAP requests and the Response is sent back to the client. Each service method is implemented in a manner that every call to the web service is independent of the other and therefore an error in one connection will not affect another. 6.4.1 Class Implementation The web service contains a main CalendarService.asmx file that is used to create the WSDL file. This is the interface that the client sees. When a method is called by the client, the .asmx file is referenced and the contents of the method are executed. Figure 13: CalendarService Class 31 Figure 14 is an example SOAP message returned when the server provides the free appointment slots to the client. The .NET framework sends array s as no specific type and requires the Client side to cast any array type into the specified type. <?xml version="1.0" encoding="utf-8" ?> <ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://MODUSCalendar.org/"> <anyType xsi:type="xsd:string"><?xml version="1.0" encoding="utf-16"?> <CalendarItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Id>106</Id> <StartDate>2006-11-04T00:00:00</StartDate> <EndDate>2006-11-04T00:00:00</EndDate> <StudentNumber /> <Status>true</Status> <Privledge>public</Privledge> <Attachment>na</Attachment> <PublishedDate>2006-10-23T09:27:34.73</PublishedDate> <Owner>gmarsden</Owner> </CalendarItem> </anyType> </ArrayOfAnyType> Figure 14: SOAP Response 6.4.2 Database All information is stored in a SQL server database. The integration with the .NET environment with SQL server made this the right decision as the environment offers better performance over other 3rd party database servers. ADO .NET connections are used to manage the database, this offers pooling and more efficient interaction with the database. 32 Figure 15: Calendar Database Table 6.5 MODUS Web Administration Each office occupant is able to control their MODUS PDA using a Web Administrator. This is web based and decided upon as it will allow for anywhere/anytime access for each occupant. Remaining with the environment and language used to create the client and server application, the Web Administrator has been developed in ASP .NET. ASP .NET allows for creating dynamic websites. The administration site is split into three sections, messaging, calendar, and administration. The owner is able to delete, view, modify and create appointment slots. To create appointment slots, two options are implemented: Single slot o A single slot allows the owner to create a single open appointment slot using a start date with the start and ending times for each. Repeated slot o A repeated slot is viewed as a requirement as many office occupants set specific times every week where they make themselves available for a meeting. The times are usually the same and impractical to make the owner work through creating a single entry for each day of every month. The owner is able to specify a date range, days of week and the time span for each meeting. This allows for flexible control over which days are allocated. For every appointment made, it is vital to ensure that no time slot overlaps or conflict. Creating repeated slots become complicated and require a way to ensure no duplicates are made. To ensure this, each slot is matched against all the current existing appointments. The overlaps that seemed most obvious to occur and accounted for include the current scenarios: 33 Figure 16: Overlapping Time Slots The web administration website contains RSS feeds of all the latest messages and appointments created. The RSS feed has been implemented based on the RSS 2.0 standards and displays the latest 10 messages and appointments that have created using the MODUS Client. 6.6 Security 6.6.1 Encryption Due to the limitations of the compact framework, SSL is implemented to provide secure server authentication, encryption and integrity. SSL provides Encryption and Integrity for the underlying connection used for communication between client and server. The implementation of SSL is provided by the web server. IIS provides a standard implementation of SSL that uses certificates to negotiate the secure connection. IIS removes most of the responsibility for encryption. All key seeds are ensured to be correct. SSL also provides server authentication that is discussed below. 34 6.6.2 Server Authentication To ensure clients are able to authenticate the MODUS server and eliminate any rogue servers masquerading as the MODUS server, certificates have been used. IIS controls this authentication using SSL. In a real world environment, certificates are authenticated using a Certificate Authority. However, certificates are expensive. A proof of concept approach has been taken to implement authentication. To do this, an application OpenSSL is used to create a self signed certificate. The steps are as follows: Create a Certificate Authority Private/Public key pair. Create Server Certificate Private/Public key pair signed by the Certificate Authority private key. Figure 17 illustrates the protocol used to authenticate and setup the initial SSL connection. The client requests a secure connection; the server sends its certificate to the client whom checks to see if the Certificate Authority that signed the certificate is trusted. If the certificate authority is trusted the client accepts the certificate and agrees to create the secure connection. Figure 17: SSL Authentication OpenSSL is used for test purposes. It provides the functionality needed to prove that the implementation will work using more secure Certificate Authorities. For commercial application the certificates must be based on a recognised Certificate Authority that can ensure the security of their keys. 6.6.3 Device Authentication Authenticating devices using certificates is not possible due to the limitations of the compact framework and the open environment in a ubiquitous environment. MAC address filtering has been implemented. At first firewalls were seen to be the best option. It was later realised that both web service and remote administration site operate on the same port number. Performing access control by MAC address would require all devices accessing both web service and website to be authenticated by MAC address. This is not an option as owners can not be restricted where they can control the office door. 35 Figure 18: Device Authentication Figure 18 illustrates the implementation. It is based on a sequence of request/response s to determine the connecting device s MAC address. The implementation is split into 2 classes. 1. DeviceAuthentication Transmits a request to the device via IP address for device MAC address 2. dbDevice Executes a database lookup, to find a matching MAC address and the owner associated with the address. If no match is found the connection is closed and the client is denied access. Due to the independence of each web service call, each method executes a MAC request and a MAC lookup. Figure 19: Device Authentication Database Table Device authentication has also been used to provide a multi user system. Each device can be registered to an owner s door and every message or appointment made on a particular device has the owner s name included in the data base table as shown in Figure 19. 6.7 Calendar Synchronisation Implementing synchronization with GroupWise has been implemented as any success for the MODUS system requires popularity and possible integration to the owners personal calendar. The GroupWise system is platform independent and owners operating with UNIX, Mac and Windows XP are able to use it. A problem encountered when implementing synchronization is the conflict between the MODUS calendar system and the GroupWise calendar System. MODUS rejects any time overlap in appointments, GroupWise allows for a number of appointments scheduled at the same time. To avoid this conflict, one-way synchronization has been implemented. 36 A separate Application has been developed for synchronization. The application however is platform dependent. For security reasons the MODUS team are required to communicate with the GroupWise Post Office via the GroupWise Windows client. The GroupWise Object API creates a hidden instance of the GroupWise client and all communication with the Post Office Agent is performed via the client. The synchronization application retrieves all appointments that have not been synchronized and updates the owner s personal calendar. When appointments have been deleted via the administration website, they are stored and then deleted from the personal calendar. Figure 20: GroupWise Synchronization 37 7 Testing and Results Throughout the development of the MODUS system, a focus has been set on security. To fully test this system for its use in a ubiquitous environment requires testing for both security and usability. The tests have been split into 2 categories 1. Functionality Testing Security/Non-Security 2. User Testing The main sections for testing have been focused on the security between PDA and Server and usability for using the PDA in a real world environment. 7.1 Functional Testing Each of the security services that have been implemented requires testing. 1. 2. 3. 4. 7.1.1 Encryption Server Authentication Client Authentication Resource Availability / Load Testing Encryption/Integrity Encryption is provided by the session keys created when the server exchanges its certificate with the client. This procedure is controlled by IIS and is assumed to be stable and well tested by Microsoft. To ensure all data is encrypted, a program called Ethereal has been used to monitor all packets being sent to the web service. Figure 21 and Figure 22 show a response to a getFreeBlocks() method call. Figure 21 shows a response containing no encryption/integrity and Figure 22 shows an encrypted/integrity response. Figure 22 shows a lower section that can be interpreted in plain text. Dates, student number, owner and other potentially confidential information can be accessed. In these figures, 137.158.98.11 refers to the MODUS server and 137.158.96.67 refers to the MODUS test client 38 Results Figure 21: Clear Text Response Figure 22: Encrypted Response Figure 22 shows the SSL handshake taking place when the first method call is placed to the web service. It illustrates the negotiating of the session key. Part of the payload in the response can be seen on the bottom section. All data has been encrypted and the data can not be interpreted by capturing packets between client and server. Integrity is also illustrated in Figure 22. The headings labelled with checksum ensure that data has not been modified during transmission. 39 7.1.2 Server Authentication Server authentication has been implemented to ensure that all MODUS clients are guaranteed that they are communicating with the MODUS server. As mentioned in implementation this has been based on certificate authentication. A number of tests have been performed to ensure authentication is valid and each client does not communicate with any rogue servers. 2 scenarios have been put in place to see how each client reacts. 1. Client does not contain the Certificate Authority certificate as a trusted Authority. 2. A Rogue server attempts to use a different certificate signed by the same Certificate Authority Results 1. When the server sends the certificate to the client. The client attempts to verify it using the Certificate Authority that signed it. However, if the CA is not trusted by the client it can not authenticate the certificate. The tests confirmed for clients that did not contain the trusted Certificate Authority would not allow any communication between the services when a method call was made. The client closes the connection to the server and waits for user response. 2. A situation can occur where a rogue server is able to get a certificate signed by the certificate authority that is used to authenticate the MODUS server. If this happens, the MODUS clients are required to recognise that this certificate is not valid. The standard approach of doing this is to allocate each certificate for a server with a common name. This common name is based on the server host address. The client matches all certificates with the server s host address. If this does not match the common name the client is attempting to connect to, the client can recognise the rogue server is masquerading as the MODUS server. To confirm this, a separate certificate was created using a different common name marvin.cs.uct.ac.za this represented the test rogue server. The server attempts to send its certificate to the client that is connecting to the MODUS server. The test resulted in the client application closing the connection and recognising it as an unauthenticated server. 7.1.3 Client Authentication Client authentication guarantees the MODUS server that it is communicating with a legitimate MODUS client and allows for distinguishing between which information belongs to which device. As mentioned in the implementation chapter, this has been implemented using MAC address filtering using a lookup table in the database for every device. It has been noted in design that MAC address filtering is not the most secure method of authentication and can be spoofed, but due to the limitations of the compact framework and the open environment being developed for, this is a viable implementation. The scenarios that will be tested for client authentication includes: 1. Client PDA attempts to access the web service but is not authenticated. 40 2. Client PDA attempts to access the web service as a registered device 3. Client is registered but attempts to access a different owner s information. 4. Two MODUS Clients attempt to retrieve information. Results 1. The connection between the client PDA and MODUS Server is terminated by the server when each method is called by a nonauthenticated user. 2. The Server executes all methods correctly and returns all information. 3. To manipulate each client to send different owner details, it has been hard coded to set a new calendar item instance to match a different owner. The server places the updated appointment under the device lookup name and not the name associated with the calendar item instance from the client. 4. Using multiple devices, each client retrieves the correct information, not accessing any other owner s information. 7.1.4 Bluetooth Sensor During the iterative process of testing all functional components, the Bluetooth sensor kept on showing weakness. Other project teams dealing with Bluetooth devices also complained of similar failures as mentioned below. Results After extended periods of use, the Bluetooth device stops communicating. The Bluetooth discovery process is often disrupted due to outside interference from WiFi signals and other Bluetooth interference. The 3rd party API does not always close the Bluetooth connection cleanly on exit and causes the Bluetooth to stop responding when re-launched. 7.1.5 GroupWise Synchronizer As each component of the synchronizer was implemented, it went through a process of intensive testing by the developers. The synchronizer was executed each time a user created an appointment or the web administrator was used to create, edit or delete a time slot. Results The application to synchronize entries has been found to be stable. No faults have been found. One problem for change was found. The attachment being sent to the GroupWise client was not being resolved as a valid jpeg file. To fix this, the mime type was corrected and all attachments were valid. 7.1.6 Client/Service Faults In the real world environment the MODUS system is required to operate for variable lengths of time and must always be available for use. Handling of faults is required to provide a reliable 41 service. To test possible faults due to attackers or possible overlooked faults during testing, the MODUS client has been subjected to intensive unit testing and forcing the service to return faulty information to the client and view how the client deals with the faults and determine if the client is able to recover to continue to provide the required service. Results An example for this test involved sending back a String as a list of times available to the client instead of the expected ArrayList containing CalendarItem objects. The client did not crash and displayed the list interface (Firgure 5) with an empty list. The server was then changed to the correct service while the client was connected and an attempt to list the available time slots was attempted. The client was able to retrieve valid times and able to display them with no faults. 7.1.7 Web Administrator The testing of the web administrator was provided iteratively for each component added to ensure each component independently was correct. After integration a number of integration tests were performed which consisted of allowing users to use the administrator as would be performed in everyday use and view any faults that occurred. Results: Small faults were found when testing the web administrator during the various testing phases. It was found that on editing an appointment slot, the algorithm that checks no overlapping was preventing from updating the edited slot. This was minor and changed after the testing phase. During integration testing it was found that certain methods used as a single component were not configured correctly when integration was implemented. This was also minor and changed to allow for an integrated version. 7.1.8 Web Service To focus of the web services testing consisted of unit testing of the interfaces exposed by the web service as well as load testing. The load testing was important as to establish if the MODUS system can be viable in a real world environment with various users, the server must be capable of handling the MODUS clients and the operations it must perform to provide a service. The service load testing was a joint effort by the MODUS development team to see how the server is able to handle the load. To get an accurate measure and to establish to more expensive operations a few scenarios were played out to get accurate readings. Web Service Scenarios 1. 2. 3. 4. View the application load time effect on the server Use a single client to make an appointment with the server Use a two clients to make an appointment with the server Use two clients, 1 messaging and the other making appointments 42 Results 1. The initial application load consisted of a number of web service calls, including retrieving owner details and Bluetooth status and to initialize SSL session keys. This created a spike of approximately 20%. When testing this to ensure results were the same, it was found that some major spikes occurred. This was later found to be due to the image of the owner that is displayed on the client. This image is sent to the client every 30 seconds. At the time, the picture currently set was big in size and created a bottleneck when transmitting to the client. As mentioned in the implementation section, each image sent is sliced and sent over in pieces. This occupies resources for longer and therefore keeping the server busy for longer. Figure 24 shows the graph that displayed the display of the image over 30 seconds. Figure 23: Initial Load Graph 43 Figure 24: Image Update Load Graph 44 2. During the testing with a single client there was a spike due to the updating of the image. Besides for this, the graph seems rather scattered and tends to jump from 0% to 20%. The recorded average between start and end of test was 9.610. In figure 26, it can be seen that the percentage use of the server s CPU increases with an average of 7.245% of CPU usage from start to end. While this seems to be a slight difference one must take into account the spike in the first graph that may have increased the first average given. Figure 25: Single Client Appointment Scheduling Load Graph 45 Figure 26: Two Clients, Appointment Scheduling Load Graph 3. Combining messaging with making appointment, the CPU usages did not differ from the tests done with two clients testing dedicated to making appointments. The average CPU usage was 7.245. Figure 27: Two Clients, Messaging and Appointment Scheduling Load Graph 46 From the load testing it can be seen that the server does not scale well with the clients. It was only possible to test the server with 2 PDA clients. For a more conclusive result it would be more useful to use 3 or 4 clients. Some possible reason for the difficulty with scalability is the server hardware. The server is running minimum requirements using a 1.1GHz with 394MB or RAM. Servers such as SQL Server and IIS are resource intensive and can often use up lots of resources when operating. The use of SOAP messages created a large overhead even in a local area network environment and often slowed responses due to the XML parsing. 7.2 User Testing The user testing has been structured based on a naturalistic observation process. Users are given specific scenarios and their behaviour is noted. After users have completed their scenario they are questioned on their opinions on the system. 7.2.1 MODUS Client The testing environment is based in a real world situation. The Mobile device is placed next to a staff member s door to simulate the actual positioning a user will be when using the system. 7.2.1.1 Iteration 1 Client Scenarios 1. Make an appointment with Gary. You are not a registered user. Make a single appointment for tomorrow. 2. Make an appointment with Gary You are not a registered user. Make an appointment for next Monday and Tuesday for an exam revision session. 3. Make an appointment with Gary Your user code is (1-2-3-4); make an appointment to see Gary on November the 8th. From the naturalistic observation it could be seen how making a ubiquitous system usable is very complicated and difficult to get right. During testing many of the subjects were not familiar with the new technology (PDAs). This made figuring out the controls extremely problematic. The common .NET controls were not as common as first thought. The subjects were not entirely confident how to use the, .NET calendar as they were not very familiar with it. The beneficial comments that came from the test subjects was the need to more instructions as using a new technology where one does not have a natural keyboard to type. The users were not sure how to write a message on the screen. After the user testing, some of their suggestions were implemented. This took the form of renaming controls and labels to better understand the interfaces and including labels to the interfaces to explain what the user must do to accomplish each scenario. 47 From the problems found in the user testing, it was decided to implement these changes and then perform another iteration of user testing to so how the changes have affected user reactions. Results The problems most users had when completing the scenarios are as follows: 1. People assumed the listing of the free slots were actually a listing of current slots booked. Instead of selecting a slot to book, they pressed create to book a free slot. Figure 28: Calendar Interface View Appointments has been changed to View Available Time Slots as users were not always sure what View Appointment would trigger. 2. The users never seemed to be sure what to do next and often hesitated for a lengthy period of time and often help was provided by the testers. Figure 29: Open Slots Interface The Create button has been changed to Book to indicate the user is booking a slot. And help suggest that they must select a slot to begin. A label has also been added to indicate that the user must select a slot. 48 3. On the interface where the message is written, users were able to write the message easily but always forgot to type in their username. They came to realize this after pressing POST and viewing the error message. Figure 30: Book Appointment Interface It was decided to add a larger label displaying that the user should enter in their student number or name. The original text message was also made bold to focus the users attention. 4. The keypad was seen as a good tool and often users would mention how they preferred typing on the keypad over the free hand drawing. A certain participant mentioned they try not to write using a pen as often as possible. A problem noticed with the keypad was exiting from it. Users were confused whether pressing Close would save the student number. Figure 31: Keypad The keypad button that originally had a close option has been changed to ok . 7.2.1.2 Iteration 2 The 2nd round of user testing took the form of naturalistic observation as used in iteration 1. It was decided to take two groups of people. The first group included users who had previously tested the system and the 2nd group included new users who had not used the MODUS system before. 49 Results The users that tested the system before preferred the changes that were made to the system and found it very usable. The group with no experience showed more understanding when using the system. Two of the test users did mention that they were uneasy using the system and were not entirely sure how to proceed. When asked about this they felt unsure how the Calendar control worked and were not sure how to proceed to the listings. When they accomplished the scenarios however they did feel that the system was usable and believed that all they needed was a few minutes to familiarize themselves with the interface. The other test subjects felt that the system was usable and were satisfied of the overall usability and functionality that they were presented with. Persisting Problems Student number / name was often left out by the users and only entered after a POST to book the appointment was attempted and an error was displayed. 7.2.1.3 Conclusion The general opinion by the test subjects after iteration 1 indicated a preference to the improved layout of the interfaces and found the system more usable. A suggestion proposed to ensure that users enter the student number / name. It was suggested that the textbox to type the student number / name should be lowered under the message control. While this is a workable idea, lowering the textbox would cause the keypad to overlap it and therefore eliminating it from the users sight. It has been decided to change the Text from StudentNumber / Name to Enter Student Number / Name . 7.2.2 Web Administrator User scenarios 1. Create a single slot for a student to make an appointment on the 6th of November 2. Create an time slot that will be repeated every Monday, Tuesday, Wednesday from the 10th November to the 30th November from 3pm 3:30pm 3. View the appointment made for the 1st December 2006 from 2pm 2:30pm, Change the time to 8am-9am 4. Delete any free slot made on the 5th of November Results 1. The test subjects found it to be a simple task to create a single appointment and some subjects found the interface to be very familiar to their current calendar usage. 2. Some of the test subjects were not sure how to create a repeated time slot when looking at the initial calendar interface. Suggestions included adding to the help section how to create multiple slots. 50 3. The subjects found it easy to view messages and edit messages. 4. The subjects found the required task to delete appointments, a simple task and no complaints. General Usability issues with the web administrator included, interface colours where sometimes weak on the eyes. The mixture of bright orange and blue made the links on the web page difficult to read. The overall consensus was that the functionality was adequate and well designed. After user testing, all the suggestions were implemented to the web administrator to improve its usability. This change includes: Increase number of labels indicating the controls to press to achieve a specified scenario Change colours of the interface to allow for easy viewing 51 8 Conclusion The main goal of the project is to create a multi-functional messaging system that will provide communication between staff members and students in a secure, ubiquitous environment. The initial requirements seen for the MODUS system consisted of: Students can send messages to lecturer Students can make appointment with lecturer Lecturer can leave a temporary message displayed on the PDA Lecturer can display free slots for students to make an appointment Within the framework of making this functional system, all functionality was to be provided in a secure environment. To ensure this the security aims consisted of: Confidentiality Integrity Authentication Access Control Availability The MODUS system has achieved both its functional and security requirements. It has been found that the Bluetooth functionality is the most problematic feature of the system. It would be best implemented using the original Broadcom stack over the 3rd party library. Much research has taken place with regards to security in ubiquitous environments, and the MODUS team has been able to implement most of the security requirements using standard security concepts. While the compact framework is limited in security functionality, there were always alternative approaches available. Due to difficulties in assessing the availability of the server, the security requirement of availability has not been ensured. While load testing has provided the evidence that two clients can be handled, there is evidence that beyond a small number of clients the server is not capable of handling a large number of requests. The overall project is a success as not only has a secure environment been created using conventional and non-conventional techniques, the MODUS developers have created a fully functional system that has been verified through user testing to be both usable and enjoyable. 52 9 Future Work Creating a system for a ubiquitous environment requires a certain amount of maintenance, while all functionality has been tested and has been proven stable. The adding of devices and setting up of certificates for every device is required for every MODUS system that is introduced into the real world environment. 9.1 Hardware The current PDA being used is the HP IPAQ 4150. This PDA is an old model and operates on PockerPC 2003. The new version of Windows Mobile 5.0 allows for better functionality and more sophisticated functions. Windows Mobile 5.0 allows users to change Bluetooth stacks from a Broadcom Stack to Windows Stack and allows for seamless integration using c# in the .NET environment. From testing it can be seen that there are scalability problems. To establish the reasons for this, it would be better to migrate from the current server to a more powerful system with more resources available to run the actual software that is providing the client with the service such as SQL Server and IIS. 9.2 Calendar Design During implementation, it was suggested by the project supervisor that it could possibly be useful having each staff member display a full timetable and allow each student to create an appointment on any free slots not already booked in the time table. Future work can be based on implementing a different way to allow users to sign up for an appointment. 9.3 Bluetooth Sensor During the implementation of the MODUS system, the Broadcom API became open source. This is the official API that should be used with Widcom Bluetooth devices. Using the 3rd party library to communicate with the Bluetooth stack kept most of the functionality away from the developers and forced with interruptions at load time due to the evaluation pop-ups that interfered with the loading of the MODUS client application. The Bluetooth sensor was erratic when used and possibly due to the 3rd party library being used. Using the official Broadcom API would allow for better control over device discovery and better handling of the Bluetooth stack. 9.4 GroupWise Synchronizer The GroupWise synchroniser has been developed to allow for 1-way synchronization. While this allows some convenience to staff members to integrate the MODUS system with their personal calendars, it is more convenient to allow for 2-way synchronization. This would allow 53 staff members to create and delete appointments from their personal calendar using the GroupWise client. Due to security constraints, the developers have been denied direct access to the main POA (GroupWise Post Office Agent) database. This will allow for direct access to the database and eliminate the platform dependency required when synchronizing via the GroupWise Windows client. 9.5 Security Other security techniques can be implemented, possibly with new versions of the compact framework WSE will be available and can provide a better solution. Using IP addresses to allow for authentication can be useful. IP v6 eliminates the possibility of spoofing an address. This implementation can be a more secure solution if implemented. 9.6 Communication From load testing it was shown that the MODUS server was not scalable with the MODUS clients. From previous research it was noted that using SOAP messages increases overhead. SOAP messages was initially used for security reasons and later realised was not possible. It was felt by the development team that it was too late to change the technology being used as the development process was not allocated enough time to change technologies. Changing the communication to using a REST architecture or possibly a direct socket connection between client and server may provide a more scalable system and possible to be implemented in the future. 54 10 References [1] [2] Cheverst, K., Fitton, D. and Dix, A. Exploring the Evolution of Office Door Displays. O'Hara, K., Perry, M., Churchill, E. & Russell, D. (Eds) Public and Situated Displays, Kluwer Academic Publishers, Dordrecht, pp141--169. Gong, J., Tarasewich P. Guidelines For Handheld Mobile Device Interface Design [3] Haque M, Ahamed S I, Security in Pervasive Computing: Current Status and Open Issues in International Journal of Network Security, Vol. 3, No. 3, 2006, pp. 203-214. [4] McLean, P. G. A secure pervasive environment, in Proceedings of the Australasian information security workshop conference on ACSW frontiers 2003, Volume 21 ACSW Frontiers 03, Jan 2003. [5] Salo, T. Security in Pervasive Computing [6] Housley, R. Arbaugh W. Security Problems in 802.11-Based Networks [7] Zahur, Y. Yang, Andrew Wireless LAN Security and Laboratory Designs [8] Potlapally, Nachiketh R. Ravi S, Raghunathan A, Jha Niraj K. Analyzing the Energy Consumption of Security Protocols [9] Hagar Creighton T.R. Midkiff Scott F. Park J. Bradley Martin T. Performance and Energy Efficiency of Block Ciphers in Personal Digital Assistants [10] Dalton A, Bansal V. A Performance Analysis of Web Services on Wireless PDAs [11] http://www.ondotnet.com/pub/a/dotnet/2005/09/06/what-is-dotnet.html [12] http://www.soaprpc.com/glossary.html (C#) 55 [13] http://msdn2.microsoft.com/en-us/library/ms228596.aspx [14] http://www.microsoft.com/com/default.mspx [15] Schneiderman, Ben. Designing the user interface . 56 This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.