This action might not be possible to undo. Are you sure you want to continue?
Parlikar Alok Ulhas Shubham Shrestha Agrwal Nishant Shrivastava Varun Khullar
Dr. G. C. Nandi
Indian Institute of Information Technology, Allahabad
A Report prepared with L TEX.
Abstract We propose to install a system that shall enable an electronic switching device interfaced with a computer to be controlled remotely using a smart device. A client running on the user’s computer would connect to a central server, over an Internet connection. The user could then use a HTTP/WAP protocol from a smart device to connect to the central server, and issue requests to control his device. In this report we describe happyRC.NET – the set of software and hardware setup that helps in addressing to the problem we have identiﬁed. We explain the methodology that this system has adopted to tackle the issue. We also explain the security considerations that we have focused on while designing the custom client server protocols. In the end, we conclude with possible enhancements in the project that might take us to a whole new world of remotely operated gadgets in every home.
The authors gratefully acknowledge the guidance provided by the project supervisor Dr G. C. Nandi throughout the development of the project. The authors also wish to thank the other faculty members for their valuable suggestions and directions. The authors also thank their batch mates for providing constant encouragement, support and valuable suggestions during the development of the project.
We hereby declare that this project report titled ‘happyRC.NET Remote Controlled Electronic Switching System’ submitted towards the completion of Mini Project in 5th semester of B.Tech(I.T.) in Indian Institute of Information Technology, Allahabad is an authentic record of our work carried out under the guidance of Dr. G. C. Nandi, Dean(Academics), IIIT Allahabad.
Date: December 3, 2004 Place: Allahabad
Parlikar Alok Ulhas
Shubham Shrestha Agrwal
This is to certify that the above declaration made by Mr. Nishant Shrivastava, Mr. Parlikar Alok Ulhas, Mr. Shubham Shrestha Agrwal and Mr. Varun Khullar is true to the best of my knowledge and belief.
Date: December 3, 2004 Place: Allahabad Dr. G. C. Nandi Dean (Academics) Indian Institute of Information Technology, Allahabad
. . . . . . . . . . . . . . . . . .2 CSS . . 4. . A. . . . . . . . 3. . . . . . .5 Changing the State . . . . . . . . . . . . . . . . . . . . . . .4 Architecture Notes . . .2 Manual for the CSS Server . . 5 Design Issues 11 5. . .2 CSS Server Design . . 4. . . . . . . . . . . . . . . . . . . . . . . . .7 Overall Activity Flow . . . . . . . . . . . . 15 6. . . . . . 16 7 Conclusion and Future Scope A User Manuals A. . . . . . . . . . . . . . . . . .3 Showing Device State Change Interface 4. . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . 13 5. . iii . . . . . . . .1. . . . . . . .3 Smart Device Client 3. . .NET Framework . . . . . . . . 3.NET Remoting . . . . . . . . . .1 The Common Language Runtime . . . . . . 4. . . . . .2 Installing the Application A. . . . . . .1 ESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6 Speciﬁc Technologies used 15 6. . . . . 2 State of the Art 3 System Architecture 3. .2 . . . . . . . . . . . . .3 Using the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 ESS Client Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Calculating New State Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . .1 . . . . .1 What the problem is . . . . . . . . . . . . . . . . . . A. . . . . . . .1 Registering New User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . .Contents 1 Introduction 1. . . .1. . . . . A.NET works 4. .2 Activating Remote Device . . . . . . . 11 5. . . . . 1 1 2 3 4 4 5 5 6 7 7 7 7 7 8 8 8 4 How happyRC.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Manual for the ESS Client . . . . . . . . . . . . . 4. .1 Requirements . . .3 WebService Design . 18 19 19 19 19 21 24 . . . . . . . 16 6. . .6 Logging Oﬀ . . .2 Importance of the problem . . . . . . .
. . . .3.1 Getting Connected . . . . . . . . . . . . . . . . . . . . . . B Hardware Details C CSS-ESS Protocol Details C. . . . . . . . . . . . . . . . . . . . . . . . . .A. . . . . . .2 Security Attacks . . .1 Key Transfer . . . . . . C. . .2 Using the Program . . . . .2. . . . . . .3 Manual for the CSS Webservice . C. . .3. . . . . . . . . . . . . C. . . . . . . 24 24 26 28 29 29 29 29 30 30 31 31 31 32 32 32 33 33 34 36 37 iv . . . . .NET C. C. . . A. . . . C. . . . . . . . . . . . . . . . . . . . . . . . . .5 Logging Oﬀ . . . . .3.3. . . . . C. . . . . . . C. . .3. . . . . . . . . . .3 Security Solution in happyRC. . . . . . . . . . . . . . . . . C. . . . C. . . . . . . . . . . . . . . . . . . . . . . . .3. . .2. . . . . . . . . . . . . . . .2.4 Commanding the ESS . . . . . . . . . . A.4 Protocol at a glance . C. . .2 Security Paranoia and Encryption . . . . . . . . . .1 Requirements . . . . . .1 Two Types of Cryptography . . . . . . . . . . . . . . .6 Exceptional Messages . . . . . . . . . . . . . . . . . . . C. . . . .3 Getting the Device Details . . . . .3 The Request Reply Protocol . . . . . . . . . . . .2 Client Authentication . . . . .2. . . . . . . . . . . . D Device Conﬁguration File Format E Developer Details – Writing a client for CSS Bibliography . . .2. . . . . . . . . . .
. . . . . . . .10 Smart Device: Logging in . . . A. . . .5 ESS Application Settings Dialogue .1 Hardware Circuit Diagram . . . . Overall Activity Flow Diagram . . . . . . .8 CSS Login Screen . . . . . . A. . . .1 CSS-ESS Protocol Overview . . . . . . 4 9 20 20 21 21 22 23 24 25 26 26 27 27 28 33 A. . . . . . . . . . . . A. . . . . . . . . . A. . . . . . . . . . . . . . A. . . . . . A. . . . . . . . . . . .NET Framework 2. . . . A. A. . . . .12 Smart Device: Controlling Remote Device . . . . . . . . . . .11 Smart Device: Authentication Process . . . B. . . . . .List of Figures 3. . . . . . . . . . . v .4 ESS Application Login Screen . . . . .3 ESS Client Installation Security Warning . . . . . . . . . . .1 4. . . . . . . . . . . . . .9 Administration Tasks on the CSS . . . . . . . . .6 ESS Application – User Logged In . . . . . . . . . . . . . . . . .1 Installation of . . . . . . . . . .1 Architecture of the overall System .0 . . . . . . . . . . . . . . . . . . . . . . . . A. . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 ESS Application – Change Password . . . . . . . . . . . . . . . . . . . . . . . C. . . . . . .2 ESS Client Installation Requirements Veriﬁcation A. . . . . . .
. . . .4 Division of project work among team members . . . . . . . . . . . . . . . . vi . . . . . . ESS Software Model Element Statistics Summary ESS Timeline Summary . . . . . . . . . . . . . . . . . . .2 5. . . . . . . . . . . . . . . . . . . . WebService Timeline Summary .List of Tables 5. .1 Device Conﬁguration File Format . . . .3 5. 11 12 12 14 35 D. . . . . .1 5. . . . . .
The number of homes with Personal Computers1 is gradually increasing. and to some extent. It is necessary that every PC has a global IP address that is recognized on the Internet. clothing and shelter”. people would be able to turn on and oﬀ. However. this would be a major challenge. 2. control the appliances at their home even from a distant place. when PC is referred to in the same class of “Food. A day will come. via a circuit. so that the room is suﬃciently cool by then. One of the very basic examples of an utility of this is – switching on the air conditioner in the room just some time before reaching home. PC are not server systems. to a computer. They should typically not run “server” softwares. somewhere in the long future. With this. or Information Technology have come very near to the common people.Chapter 1 Introduction Computers and the related technologies are becoming more and more ubiquitous. this has certain disadvantages. Improvements in the Networking technologies have fostered growth of very dense networks. A trivial setup facilitating such a thing would be to connect the home appliances. 1 Personal computers are referred to as PCs hereafter 1 . and then access the device from a smart device. With the current stubborn setup of IPv4 and IPv6 not picking up momentum. then install a server software on the PC to export the device functionality on the internet. 1. When people have a good connectivity at their disposal. ISPs are now laying down their own networks to provide broadband Internet access to customers. with tremendous power of mobile computing to supplement the same. 1. we can think of “connecting their home appliances to the mobile phone”.1 What the problem is The usefulness of a long range remote control to home appliances has no limits. Land line telephones have been becoming less and less popular and people now prefer communicating while on the move. Various technical arenas in the ﬁeld of Computer Science and Engineering. Users would deﬁnitely not be ready to shell out a lot of money for a leased IP address.
all have started having a remote control. if the system supports many classes of devices rather than just appliances. Toys. to install a system that would facilitate many clients to use its architecture and get their devices “online” very quickly. maintaining the software system would be a mammoth task. 3. be ready to pay some “service charges” but would not be willing to invest a lot of money on the pillars of a system that supports this remote access. December 3.V Sem Mini Project Report. there is a very low limit to how many users can get such a privilege. and with minimal eﬀort. Remote access has always proved to add to the utility of any existing setup. 2004 2 Even if they are willing to. Music Players. 1. . A system that allows many such “clients” to connect and use the “online appliance” service is deﬁnitely desirable. Televisions. Revision 1. The problem then is. inexpensively. then the system would get more versatile and can be widely used. Keeping so many client server systems secure is a serious problem. why not switches? Users would desire this remote control as a service. They would at a maximum. More over. With such unmanageable setup.2 Importance of the problem A commercial implementation of the idea in this project could speed up the Home Automation activities.
However. remote control is not only occupying a omnipresence state. The INTERNET is more than just a world wide web. from the pins to the planes. Mobile phones are the gadgets of this generation. However. Thus. and RadioWave Remote Controls. If some control is desired to be remote across the globe. Right from the intense creativity of remotely controlling laser chip markers to the highly destructive remotely ignitable bombs.Chapter 2 State of the Art A Remote Control is perhaps the most popular gadget today. and thus. We have had InfraRed Remote Controls. The need is to write generic device control applications. 3 . Remote control based on Internet on mobile phones seems to be satisfactory quench of the desire. something fundamentally common with all these controls is that the transmitter and receiver should both use some kind of wireless waves. the technology required intensively uses satellites. which work over larger distances. the range of the control is limited. most of them were targetted towards speciﬁc devices. such a control has not been able to become so popular. which work over very short distances. There have been attempts to write such implementations earlier. but is also enhancing its scope and domains.
1: Architecture of the overall System A brief description of these components is as follows: 3. and an outline of the components therein.1 shows the logical structure of these parts. and the Smart Device Client. It takes authentication details from the user and uses an encrypted TCP/IP 1 The word Server System is a misnomer.Chapter 3 System Architecture The happyRC. Figure 3.1 ESS The End user Server System is a client1 application that runs on the user’s PC. namely the End User Server System(ESS). The Client installed on ESS acts as if there was a server exporting the device functionality 4 . Figure 3.NET system consists of three main parts. the Central Server System(CSS).
V Sem Mini Project Report.NET Remoting2 calls. and display an interface that can change the device state. and maintain their authentication states. Figure 3. Web Service To facilitate easy HTTP3 access from smart clients. and what the device conﬁguration of their system is. It is the job of the ESS to understand commands from the CSS and change the device state accordingly. and therefore has three components that export various important functionalities.3 Smart Device Client This client is the tool that would act as a Remote Control to the users. It is the job of this component to proxy requests from the remoting component to the ESS system. 3. It should ask the Remoting Component to provide the description of the user’s device. Put together. It should then parse the description out. They are classiﬁed on the basis of how thin clients they are. 3.1 shows two kinds of these clients. It has three roles to play. It sits on a web server (running IIS) and communicates to the General Component via the Remoting Component. The job of this component is to maintain authentication states over the web.) of the client. December 3. Remoting Component This component is a stub for . It has a conﬁguration ﬁle that contains details about the controllable hardware attached to the PC. and return the occurrence of a success or failure. It shares its memory space with the Remoting component described next. these components build up the CSS System which can provide facilities for any user to register his device online.2 CSS The Central Server System is the heart of the art. 2004 5 channel(See Appendix C) to talk to the CSS. Every connection to this component instantiates a new object which maintains the state (authentication. 2 . General Component The General CSS Component is where most of the functionality resides. This maintains a lookup information about exactly which ESS particular users are connected from. etc. Revision 1. and later on. this component becomes crucial. use browser complaint smart client to remotely control the same. This interacts with the CSS and commands the ESS to change the state of their device at a remote location. It gives a reference to an object which has proxy functions written to allow Remoting clients to call functions of the General Component.NET 3 HTTP Remoting is similar to SunRPC or JAVA RMI could be over TCP/IP or WAP . Methods in this object wait for a reply from the General Component and send the reply back to the client. It is the job of this component to receive connections from various ESS PCs.
V Sem Mini Project Report. etc.4 Architecture Notes The happyRC. They do not have the capability of running large programs. This deﬁnitely speeds up the operations. With a second look. Smart Devices Running CSS Client Some devices have more features than plain smart devices. and ship with an operating system that provides a minimal browsing functionality. The communication between CSS and ESS works on a Request-Reply protocol that is encrypted with symmetric cryptography to avoid malicious attempts of hack. man in the middle. Pocket PCs that run operating systems like Microsoft Windows CE have capabilities of running custom programs. Its communication with the Smart Device is over a simple HTTP channel. ESS and smart devices. A custom made CSS client(See Appendix E) can be installed on these devices so as to customize user interfaces. uses .. Revision 1. 2004 6 Smart Devices Running Browsers This category includes devices that are very thin in functionality. for reasons of atomicity and consistency of operations. All that these can do is display primary interfaces. The ESS is connected to the user’s device using a parallel (LPT1) port. Although one ESS can be controlled using many diﬀerent types of smart clients. Typically. or eavesdrop replay attacks. Communication between these is by simple means of object references. and are smarter then we think. It should be noted that ESS and smart devices have a one to one relationship and they share the user’s identity in common. we ﬁnd that it comprises of a single server that serves multiple clients of two types viz. (See Appendix C. The General Component and Remoting Component of the CSS share the same memory as they run in a single instance of the same application process. Transfers of crucial data like passwords on this link is encrypted using simple (yet strong) algorithms. two of these clients can not talk simultaneously with the same ESS.NET system uses a Client-Server architectural model. 3. Use of HTTPS like SSL Protocols was avoided because they are not supported by all thin clients. and they can fall into this category. . as mentioned earlier. This was preferred over a serial port so that we can work with 8 bits simultaneously rather than memorise bits received from the serial port and work once all of them are received. These devices can skip the Web Service component and directly interact with the CSS using . The Web Service Component. They need to interact with the Web Service component of the CSS in order to facilitate service. Clearly. Wireless PDAs. Laptops and Computers are smarter then even pocket PCs. December 3. these include mobile phones. and request simple form submitted by the users.NET Remoting to access the functionalities of the General Component.NET Remoting.
4. The device is now ready to be remotely controlled 4. XOR. For every group.3 Showing Device State Change Interface The users on the smart clients need to be given an interface for changing the device state. the CSS requests the ESS to send the device details. there is a union policy. Having done that. Once the request for a new identity on the CSS is granted by the administrator. 4. The CSS parses the conﬁguration ﬁle into an serialized object and sends it over to the CSS. the working of happyRC. These details are parsed based on the type and groups of inputs and the interface is displayed.(See Appendix A The brief working strategy of the system is outlined below.4 Calculating New State Numbers The device states are classiﬁed into groups. the ESS connects to the CSS and veriﬁes their identity.NET works As with almost any other computer based system.NET begins with the process of Installation followed by the successive use. 7 . and when in 1 The database could well be a ﬂat ﬁle. To facilitate this.2 Activating Remote Device When the users log in to the system using the ESS. the client request the CSS to send them the device conﬁguration details. Installation of the ESS on the user’s PC includes conﬁguration of the device. like AND. OR.Chapter 4 How happyRC. Every state is represented by a byte.1 Registering New User After proper installation of the ESS client on the user’s PC. the users need to get authentication account on the CSS. an entry of the username and its corresponded password is appended in the authentication database1 . 4.
they are returned error. The enumeration shows the primary activity ﬂow. and users can again use the smart client for further communication with device.7 Overall Activity Flow Along with the activities mentioned in the earlier sections. 1. This newly generated number is the state of that group. Thus.6 Logging Oﬀ When the users log oﬀ from the smart clients. Group Zero is a special group. there are minute details that need to be described in order to understand how exactly the system proceeds with the work ﬂow. and stored for further processing. 4. If the authentication succeeds. the user is notiﬁed that his device is ready to be controlled remotely. For every such group speciﬁed in the conﬁguration ﬁle.V Sem Mini Project Report. 4. a new state number is calculated. . the users need to be notiﬁed. The ESS program parses the device’s conﬁguration ﬁle. say 1. when the uses log oﬀ from the ESS. and if some smart client tries to communicate with that discarded identity.4. and converts it into objects describing the functionality of the device. Every state in this group is sent as if it were in an independent group and the state numbers of all states in this device are added to the end of the stored list. a request is sent to the CSS to write the same onto the device. 4. The user interface of the ESS system would be used by the user to enter his authentication credentials. a bitwise OR would be performed among all the states in that group. where there is no union policy. Based on whether the action returned success or failure. However. if the policy of a certain group is OR. thereby connecting and verifying the user’s details. The ﬂow might change a little in certain extended use cases.1 shows an activity ﬂow diagram of the system. The ESS program would set up a communication channel with the CSS. The CSS in turn forwards the request to the ESS which does the actual action of writing the command to the parallel port. the CSS discards all dynamic entries for this connection. no signiﬁcant state changes occur in the CSS. 2. Figure 4. these bytes can be combined into one. Revision 1.2. 4.5 Changing the State For every state number generated by steps in section 4. Here is an enumerated description of the activities. 3. December 3.3. 2004 8 groups. These state numbers are ordered by their group numbers. The ESS still remains connected.
6. depending on the action groups. on the web service. 11. The client extracts a form out of the obtained description and displays it to the user. If the user suggests any changes in the form. 10. 8. The client knows the CSS. and categorizes them into batch requests to the server. The CSS. it sets up a set of functions for the device. If the client is able to establish a connection to the CSS. it sends the device description to the client. Revision 1. if asked. or else. and sets up callbacks on the CSS. 7. 13.1: Overall Activity Flow Diagram 5. The CSS maintains a table containing entries of which authenticated user is using which instance of the CSS-ESS messenger program. it asks authentication details to the user. the client parses those changes.V Sem Mini Project Report. 2004 9 Figure 4. so that it can receive interesting information from the same. to be remotely invoked. asks the user about the address of the CSS. The client calls the initialize function on the CSS by parameterizing it with the authentication details. The CSS veriﬁes the authentication and if the client is aﬃrmatively identiﬁed. along with the current state of the device. 9. when it receives the device details. December 3. 12. A user can switch on his smart client. ESS communicates the details of the device to the CSS on the already established channel. .
19. The ESS acknowledges the CSS which in turn nods to the client. including the device details of the disconnected ESS. In any use case.V Sem Mini Project Report. For each request that the client makes to the CSS. into garbage. the user can choose to disconnect his circuit by closing the ESS application. the CSS sends a word to the ESS that has to be written on the parallel port of the same. 15. Revision 1. 2004 10 14. there are no changes on the CSS and the ESS. 17. However. The client maintains state using some form of cookies and repeatedly keeps asking user for further change in the circuit. the CSS would dump all the connection details. The user can choose to logout or change his password. In such a case. 16. . the client shall not allow remote disconnection of the ESS application. Once logged out. December 3. 18.
Interacting with the Hardware This task involved writing a byte into the parallel port. a conﬁguration ﬁle format was formulated. 5.[Mic03] The other essential thing was to tell the software. Details of the protocol and how the transmission is sufﬁciently strongly encrypted can be found in Appendix C.Chapter 5 Design Issues In this chapter.e. To do this. 11 .1.1 ESS Client Design The ESS client task was subdivided into the following activities. and then an implementation of the same. i. Security Parlikar Alok Ulhas CSS (General Component) Shubham Shrestha Agrwal CSS (Web Service). Because the project team consists of four members. the Analysis and design phase. The Managed Runtime of the . Table 5. the work was distributed in blocks of modules as described in Table 5.1: Division of project work among team members Modules Primary Assignment Person Hardware Circuit Varun Khullar ESS Client. Communicating with the CSS This task involved formulating a protocol that works over TCP/IP channel. the design issues are separately sectioned. More details of the format can be found in Appendix D. details of the hardware connected. Architecture Nishant Shrivastava Because the modules have been designed almost independently. The protocol was formulated taking a skeleton of SMTP like RequestReply protocols.NET platform that was being used to develop the project does not allow “unsafe” I/O calls like this. we would give details about how the project was conceived and built. The format allows access to devices with up to 256 states. and hence a DLLImport followed by a call to one of the entry points in the DLL was to be performed. The Windows documentation mentions how the Kernel API can be used to interact with external devices.
2 shows the Element Statistics Summary of the ESS Software.2: ESS Software Model Element Statistics Summary Number of Interfaces 17 Number of Classes 41 Number of Data Types 2 Number of Attributes 81 Number of Parameters 62 Number of Operations 53 Number of Generalizations 45 Number of Packages 11 Number of Subsystems 1 Table 5. and the diagrams modiﬁed accordingly. Revision 1.V Sem Mini Project Report. Table 5.3 shows the Timeline Details imported as text from the Grant Chart. (That is. Then an automated code generation was done. Based on a state machine 3. and many times.3) involved splitting up a class into two. That code was edited. we had a basic class diagram. Table 5. adding more functionality was done from within the diagram. To start oﬀ. The class diagram was always synchronized.NET 2005 and Microsoft Visio Enterprise Architect 2005 were very handy in this kind of approach.NET provides. The key used for the purpose is HKEY\LocalMachine\Software\happyRC The ESS was designed in a round trip engineering mode. Dates speciﬁed herein are not Assigned Dates. December 3. and hence the counter for Generalizations is that high. these are a posteriori Grant Chart Details). Table 5. every object is a specialization of the Object class.3: ESS Timeline Summary Task Name Start Date Duration(Days) Analysis of Software Tue 3/8/04 8 Basic Use Cases Wed 11/8/04 7 Basic Class Diagram Sun 22/8/04 8 Coding Implementation Wed 1/9/04 25 Minute Design Changes Fri 24/9/04 3 Testing/Debugging Tue 28/9/04 25 Deployment Ready Wed 17/11/04 3 End Date Thu 12/8/04 Thu 19/8/04 Wed 1/9/04 Tue 5/10/04 Tue 28/9/04 Mon 1/11/04 Fri 19/11/04 The “Design Changes” mentioned in this Table (5. Strict validation of inputs 2. 2004 12 The User Interface This task involved creating a GUI for the user to interact with the system. It should be noted that the numbers in the table also count the classes and packages that the . . User friendly errors 4. For example. The tools Microsoft Visual Studio . Some salient features of the GUI are: 1. The Refactoring tools in Visual Studio were used for the purpose. Use of registry to save settings. but are Actual dates. with bare functionality built in.
However. . the CSS had to be implemented as a state machine based program.i. Choice of Technology to use Initially. TCP channel is used for the communication.NET Remoting . whether it is a PDA. The exported functionality is documented in Appendix E. Connection to a web server was practical solution also because it allows users to connect from any place which has Internet Access and also to do away with the need of the end systems to have a static IP address.Net provided mobile controls and all we needed was to make a . and more functionality was added in increments. December 3. Asynchronous read functions were made for robust state machine. To take care of many clients.3 WebService Design Thought behind the Design The basic aim of this project is to provide a method to general users who don’t want to go into the technical details and yet reap the beneﬁts of technological advances to their beneﬁts.This basic aim couldnot have been fulﬁlled if it required some expensive WindowsCE enabled mobile phone which costs something in excess of 40.000 rupees to remotely controll the user’s home appliances. But after some reading in this direction we discovered that we need not worry that much because ASP . certain issues which differed from the ESS was the presence of multiple ESS clients. we felt we would encounter some grave problems in correctly identifying the Mobile Device device making the request .V Sem Mini Project Report. 5. 2004 13 5. Revision 1. Therefore the method to be implemented on the mobile devices had to be something on the lines of a web service which could be access from any Internet enabled mobile phone. Communicating via . WAP enabled mobile phone or the ultimate smart device a computer and reply to the request in the suitable format .2 CSS Server Design The CSS Server has following functions to perform: Interacting With the ESS The implementation of the protocol formulated with the ESS was an obvious task.e WML if the requesting agent is a WAP enabled Mobile phone.Net Mobile page and the IIS server would do the task of identifying the requesting agent and generate the output in the suitable format. A basic prototype was ﬁrst built.NET remoting was used to export the functionality of the General CSS component to the smart client world. HTTP if the request comes from a Laptop or a Computer or in a format compatible with PDAs. The user Interface The task involved creating the GUI for the user to interact with the system. The GUI is also implemented as a state based machine. The CSS was designed using the prototyping principle.
the user is successfully authenticated.4: WebService Timeline Summary Task Name Start Date Duration(Days) Analysis of Software 6/8/04 8 Basic Use Cases 16/8/04 2 Coding Implementation Wed 12/9/04 13 Minute Design Changes Fri 24/10/04 3 Testing/Debugging Tue 28/10/04 4 Deployment Ready Wed 1/11/04 2 End Date 15/8/04 Thu 17/8/04 Tue 26/9/04 Tue 28/10/04 Mon 1/11/04 Fri 4/11/04 .Net Remoting by creating a Client Activated Object over a TCP channel with the CSS.Net using Mobile controls with C# as the script powering the ASP. the ﬁnal state of the end System is calculated and the words to output to the end system are transmitted to the CSS which in turn sends the data to the ESS. Table 5. December 3.V Sem Mini Project Report.Net page. After receiving the request of the user. 2004 14 Interaction with the CSS The basic interface was made in ASP. The CSS on request transmits to the Web Server data about the state of the User’s ESS and the groups and the policy associated with groups of the User’s appliances.The interaction with the CSS was using . Revision 1. as to what changes he wishes to make to the ﬁnal state of the appliances.Net Remoting Client Activated TCP channel is created with the CSS as soon as the user provides his login ID and password.[Gri02] Backend Implementation Summary A . If the username and the password match with those in the Database at the CSS.
• To provide a code-execution environment that guarantees safe execution of code. The .NET Framework. The class library. object-oriented collection of reusable types that you can use to develop 15 . is a comprehensive.NET Framework is designed to fulﬁll the following objectives: • To provide a consistent object oriented programming environment whether object code is stored and executed locally.[Mic03] The .NET Framework can integrate with any other code. executed locally but Internetdistributed. while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness. the concept of code management is a fundamental principle of the runtime. In fact. and remoting. including code created by an unknown or semi-trusted third party. Code that targets the runtime is known as managed code. or executed remotely. while code that does not target the runtime is known as unmanaged code. The common language runtime is the foundation of the .NET Framework The .NET Framework.1 . One can think of the runtime as an agent that manages code at execution time. providing core services such as memory management. thread management.NET Framework class library. • To make the developer experience consistent across widely varying types of applications.Chapter 6 Speciﬁc Technologies used 6. such as Windows-based applications and Web-based applications.NET Framework is a new computing platform that simpliﬁes application development in the highly distributed environment of the Internet. • To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. • To provide a code-execution environment that minimizes software deployment and versioning conﬂicts. • To build all communication on industry standards to ensure that code based on the . the other main component of the .NET Framework has two main components: the common language runtime and the .
and binding to types. 6. using. it beneﬁts from features such as cross-language integration. Objects whose lifetimes are managed in this way are called managed data. 2004 16 applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP. and debugging and proﬁling services. Metadata is stored with the code. For example.NET Remoting . 6. unmanaged data. enhanced security. and references in your code. The runtime uses metadata to locate and load classes. lay out instances in memory. and they follow the runtime’s rules for deﬁning new types. but also supports the development of third-party runtime hosts. Because language compilers supply their own types. generate native code. Revision 1. The . The runtime automatically handles object layout and manages references to objects. This cross-language integration is possible because language compilers and tools that target the runtime use a common type system deﬁned by the runtime. or both managed and unmanaged data in your .1.2 . as well as for creating.1 The Common Language Runtime Compilers and tools expose the runtime’s functionality and enable you to write code that beneﬁts from this managed execution environment. and set run-time context boundaries. cross-language exception handling. every loadable common language runtime portable executable (PE) ﬁle contains metadata. you can use managed data. versioning and deployment support. December 3. To enable the runtime to provide services to managed code.V Sem Mini Project Report. language compilers must emit metadata that describes the types. such as primitive types.NET Framework not only provides several runtime hosts. persisting. whether application components are all on one computer or spread out . releasing them when they are no longer being used. and their behaviors can be tightly integrated. Code that you develop with a language compiler that targets the runtime is called managed code. you might not always know (or need to know) whether your data is being managed. The . thereby creating a software environment that can exploit both managed and unmanaged features. If your code is managed. Objects written in diﬀerent languages can communicate with each other. you can deﬁne a class and then use a diﬀerent language to derive a class from your original class or call a method on the original class. a simpliﬁed model for component interaction.NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code. members.NET Framework application. The common language runtime makes it easy to design components and applications whose objects interact across languages. enforce security. Garbage collection eliminates memory leaks as well as some other common programming errors. such as Web Forms and XML Web services.NET. resolve method invocations.NET remoting enables the programmer to build widely distributed applications easily. You can also pass an instance of a class to a method of a class written in a diﬀerent language.
2004 17 across the entire world. Revision 1. a console application. One can also use .NET remoting provides an abstract approach to interprocess communication that separates the remotable object from a speciﬁc client or server application domain and from a speciﬁc mechanism of communication.V Sem Mini Project Report. One can replace one communication protocol with another. . One can build client applications that use objects in other processes on the same computer or on any other computer that is reachable over its network. In addition. a Windows Service from almost anything one wants to use. Any application can host remoting objects and provide its services to any client on its computer or network. the remoting system assumes no particular application model. One can communicate from a Web application. December 3. it is ﬂexible and easily customizable. .[Mic03] As a result.NET remoting to communicate with other application domains in the same process. Remoting servers can also be any type of application domain. or one serialization format with another without recompiling the client or the server.
A careful implementation of the idea suggested by the project can prove to be very beneﬁcial in promoting home automation and similar activities.NET as a project that helps us talk to devices that are connected to a remote computer. in rare cases. This project can be considered as a proof of concept – the concept that it is possible to mobilize the control of appliances. IPv6 is taking time to gain dominance. More over. This project lacks support for devices that have more than 256 states. not state based. 18 . would get replaced by a Mobile Control. there is no dearth of IP addresses. Agreed. almost every device could have an IP address. What this project does in the ESS. could as well be performed on an embedded system. this can control only state based devices. or more group policies. but assuming that in such a world. etc. the application might have to be slightly restructured. we described happyRC. For example. For most needs.Chapter 7 Conclusion and Future Scope In this report. interaction with the hardware. However. these changes could be – adding new action types. and an Embedded ESS of its own. There are some devices that are activity based. i. What is a Remote Control today.e. to make life of people even more easier. changes in the conﬁguration ﬁle format would suﬃce for getting a proper support for the required device.
1.1. Run the ﬁle Setup.Appendix A User Manuals The user manual of the ESS. If the folder resides on a network share. please read the license carefully and click the Accept button to proceed. This error had come because you had not installed the . the ESS client has been deployed as a Click Once application.NET Framework 2. Below are given the basic installation steps. and hence. 2. Locate the Installation Folder. and the Interface. A. 1.1.1 Manual for the ESS Client The ESS Client is a light weight application taking about 96KB on the disk. If you get a screen as shown in Figure A.0 or later • Network Connection • Parallel Port (LPT1) on the host system A. • . copy it to your local disk. A.exe. but does not run on Linux 19 . The deployment folder would contain a “Setup” utility which can be used to directly run the application. This section deals with the installation and usage details of that application.0. however the application as a part of this project compiles.1 Requirements Although eﬀorts were made to keep the ESS Client as light as possible. it required to be 1 It is possible to port the client to other operating systems like Linux. as follows: • Microsoft Windows1 98 and Later.2 Installing the Application Instead of using the default InstallShield types of installation. it still has a set of minimum system requirements. 3. CSS.NET Framework version 2.
Once you are done with the installation. Figure A.V Sem Mini Project Report. A shortcut would be added to the Start Menu.2: ESS Client Installation Requirements Veriﬁcation 5. Figure A.3.NET Framework 2. at the location All Programs -> IIITA.2. . you must be running the setup from a network location. Revision 1. 2004 20 installed.1: Installation of . If you get a dialogue as shown in Figure A. during which it would show a progress splash screen as shown in Figure A. 7. it would get successfully installed. 6. restart your system and continue with the installation of this application. December 3. You can use this shortcut to run the application.0 4. You may proceed to start using the same. Just after the installation. Make sure you have copied the installation ﬁles to your local system. the application would start running. The installation would check for system requirements. If your system had met the requirements of the application.
When the application runs. Revision 1. Figure A. You can run the application from the desktop. you would get a screen as shown in Figure A.3: ESS Client Installation Security Warning A. 2004 21 Figure A.4: ESS Application Login Screen .V Sem Mini Project Report. The shortcut would be installed at the location: Start -> All Programs -> IIITA -> happyRC Client.1.4. December 3. • You can also run the application from the start menu.3 Using the Program Running the Application • The application installation creates a desktop shortcut for the application.
Hover the mouse over that box to see what error was encountered.5: ESS Application Settings Dialogue 2. and that the password can not be blank. Enter the CSS server’s IP address or host name in the ﬁrst ﬁeld. Once you click the Update button. In the third ﬁeld. At the login screen (Figure A.V Sem Mini Project Report.4). the application would try to verify the settings. and take appropriate corrective steps. Revision 1.4) click the “Change Settings” link. 1. (Figure A. you must know the location of the CSS server and the location of the conﬁguration ﬁle for your device. the application would return back to the login screen. Figure A. select the location of the device conﬁguration ﬁle on your system. 6. 2. If the updation is successful. Please note that the username has to be alphanumeric word. From the Login screen. If any of the settings is incorrect. To change the existing settings. a red blinking icon would be placed next to that ﬁeld.5. 2004 Changing the Settings 22 Before using the program. Enter the CSS server’s port number (default: 8221) in the second ﬁeld. 3. enter your authentication credentials. . 5. You would be presented with a form that looks as in Figure A. December 3. 4. Logging in 1.
the application displays the “Logged In” dialogue as shown in Figure A. you would get a notiﬁcation of the same. December 3.6). On clicking the Login button. Figure A.7.6: ESS Application – User Logged In Changing the Password 1. 5.6). you would be taken back to the Logged In Screen (Figure A. . Revision 1. 4. 4. This would take you to the Logged In screen(Figure A. 3. and click the Change button. If the authentication fails. you would be notiﬁed about the same too. If the authentication times out. You may then try authenticating again.3 to log on from the ESS client. If the password change was successful. If the authentication is successful. Follow steps in Section A.V Sem Mini Project Report. 2004 23 3. You would be taken to the password change interface as shown in Figure A. Please read the error and take the suggested corrective action. a red blinking icon would be displayed on the screen which would show the exact error on hovering the mouse over it. In case there is some error changing the password. for conﬁrmation.6.1. Enter the old and new passwords. the application would try to log you onto the CSS server. Also enter the new password again. Click the Change Password link. 2.
A.7: ESS Application – Change Password Logging Out From the Logged In Screen (Figure A. December 3. The application will ask for a conﬁrmation during logout.1 or Higher • Windows Server 2003 (Recommended) or Windows XP (Professional) A. Here is a set of minimum requirements. 2004 24 Figure A.4) again. • . Revision 1.2.1 Requirements The CSS provides many to many connectivity for its users.8) where Administrator can Log on.V Sem Mini Project Report. Click OK to continue with the logout.Net Framework 1. This section deals with the usage details of the server.6).2 Manual for the CSS Server The CSS is a server application that runs on a system on the Internet and allows many end users to connect to the their devices attached through the ESS.2. You would be presented with the Login screen (Figure A.2 Using the Program The Interface of software on startup shows Login screen (Figure A. A. and thus it is required that the underlying OS of the system supports this heavy network load. click the Logout link in order to log out. After logging in the user has option of starting .
Start the application. Note: The server will keep running until you don’t close the application or you do not stop the server. you can click the Stop Server button to stop the server. The administrator can also start the server which will start the server on request of client will connect to ESS Client. 3. Stopping the Server If the server is running. 2004 25 the server and perform any of the admin tasks for which GUI interface. Figure A. December 3. Enter userId and password in the login screen. Click on start server button after logging in. Logging out The application would log the administrator out at the click of the Logout button. and you have administrator rights assigned. the system would log you in. Starting the Server 1. 2. Start the application. . Logging out would not stop the server.V Sem Mini Project Report. 2.8: CSS Login Screen Logging in 1. Log in with admin rights 3. Revision 1. and you are logged in. If your credentials are authentic.
(See Figure A. 3. Select the appropriate activity. December 3.9.9: Administration Tasks on the CSS A. Click the Admin task button after logging in. Write the user’s name for performing that activity and click OK.V Sem Mini Project Report.10: Smart Device: Logging in . 26 Figure A. 4.10) Figure A. 2004 User Management 1. from those shown in Figure A. Revision 1. The user is asked to authenticate at the ﬁrst page where he sees a Login Screen prompting for a Username and a Password to initiate the communication. Log in as told above. 2.3 Manual for the CSS Webservice The user interface of the webservice provides strict validation of inputs and generates proper messages reﬂecting the state of the connection.
December 3. Revision 1. On Authentication with a valid Username and Password.12) Figure A. he inputs the ﬁnal state of the end system device.12: Smart Device: Controlling Remote Device Any time during the process. 2004 27 If Authentication fails.11 Figure A. .V Sem Mini Project Report. user is asked to relogin with the new password. See Figure A. On selecting the selection Option.11: Smart Device: Authentication Process On successful change of password. the user can select the Logout link to securely log out from the control interface. the device List is shown on the Mobile Screen. he can choose either to change his password or to Control the devices thus fulﬁlling his dream of Home Automation. (See Figure A. If he selects to Control his devices screen generates the list of the appliances connected to his end system and by means of checkboxes and Text input. User makes his selection and sends the request back to the server. he is asked to re-enter his username and password.
1 kilo ohm. This power supply is now controlled by parallel port and can be used to run various appliances. Figure B.4N35 1. • Resistors. Figure B.1: Hardware Circuit Diagram 28 .2v to drive. The circuit consists of four independent sub-circuits which in turn can run four diﬀerent aplliances.3v to 3. This 12V is being used to Switch on the relay. • DC Adaptor or Transformer -12V. Bulb The relay is used as a electromechanical relay. The relay is connected to 220 volts AC power supply.5v which has been used to drive the optocoupler. The optocoupler is used as a switch for a 12v DC supply (given by a transformer). • Switch and socket.OMROM 5A/25 V DC : 10A/220 V Ac : 12V DC • Optocouplers. The parallel port gives a potential of 3. • Relays.1 shows the circuit diagram of the connection.Appendix B Hardware Details The following components were used to build the hardware.
One has to create this key and send it to the other. This text can not be decrypted by any other key than the corresponding private key.1 Security Paranoia and Encryption Two Types of Cryptography There are two basic kinds of cryptography[Tan00]. However.Appendix C CSS-ESS Protocol Details This Appendix mentions details about the protocol that the CSS and ESS use to talk to each other. If some person taps their connection.2. one just needs to send the public key. the encryption algorithms used are symmetric. one public key and other private key.2 C. every entity has a pair of keys containing. The following sections explain how diﬀerent issues are tackled in the protocol. A one liner description of the protocol is ”Request Reply protocol over Encrypted TCP/IP Channel”.[Sta02] 1 Generally. it establishes a regular TCP connection using Network Sockets. C. In Asymmetric Cryptography. Sharing the key becomes a crucial issue. his public key is used in the encryption algorithm. C. The ESS Client must know this port number in order to establish a connection. 29 . However. the concept of “shared key” presents a problem. and this shared key is required for the purpose. Algorithms like RSA are used to encrypt the text. Algorithms like DES are used to encrypt and decrypt a given text. Sharing keys1 is quite better with public key cryptography. To send encrypted data to someone. In Symmetric Cryptography. there still present problems of security attacks. the two entities that wish to communicate use the same key. the beauty of this algorithm gets pretty useless.1 Getting Connected The CSS has a General Component that listens to a speciﬁc TCP port on the server machine. The performance of symmetric key cryptography is better as compared to asymmetric key cryptography. Having known the same. but the key transfer is done by encrypting the symmetric key in a public key encryption.
the evesdropper this time sits in between them. The Solution Details • The system employs symmetric (shared key) cryptography • The Rijndeal algorithm is used for the encryption. and also proxies for the public keys.2 Security Attacks Trivial Network Tapping This kind of an attack can occur if the symmetric key is transferred over an insecure channel. and the user’s password.V Sem Mini Project Report. December 3. Instead of just tapping the network line between two parties. He can thus not only understand the conversation between the parties. He might not be able to understand their conversation. However. Defense against Attacks It is important to note the following.2 • The shared key is not ﬁxed. 2 .3 Security Solution in happyRC. 2004 30 C. Right from when the key transfer takes place.NET provides a class for the same. . The other party can not distinguish between the initial transaction and the replay attack. but is generated dynamically. Man in the Middle The biggest problem even with public key cryptography is this attack. all algorithms become very useless.NET The above mentioned attacks were carefully avoided in the security implementation of this system. may be. because he might not have the keys. an evesdropper can record a transaction between two parties by tapping the network line. but also change the same without the understanding of any of the parties. A synopsis of the encryption algorithms is explained followed by the details of how the above attacks are avoided.2. this evesdropper proxies the connection between the parties. • The user’s password is known to the ESS as the user is going to enter it for authentication purposes. Once an evesdropper gets hold of the key. C.2. • The key is generated from two salts – a random string. he can send back the same data and pretend to be the authorized user who was sending that data earlier. Because the key for their encryption and decryption are same at all times. Log and Replay Algorithms that have their keys hard coded are vulnerable to this attack. Revision 1.
It then retrieves the user’s password from the database and using this and the random string. in the ﬁrst message. at the end of this process. December 3. it ﬁrst calculates a random string and sends it back to ESS. at the end of this transaction. one of which is known to both the ESS and CSS. Also note that every message ends in a Line Feed Character(\n). Note: If the user enters an incorrect password in the ESS interface. both share the same key.3. even if he reads the random string. he can not generate the key that is shared by CSS and ESS. the CSS and ESS would have diﬀerent keys. and thus. Thus. C. and any message that is transferred plain text is written in Slanted Text. Because any evesdropper does not know the user’s password. it uses the user provided password and this random string to compute the shared key. This is handled during the authentication C. Please note that the text written in Typewriter Style is an encrypted message. the ESS initiates the dialogue. Log-Replay and man in the middle are defended by the system. the ESS proceeds with the authentication and the following dialogue takes place: . 2.3 The Request Reply Protocol The following text describes the messages that are passed between the CSS and ESS. After the connection. 2004 31 • The user’s password is known to the CSS because it has a password database. the “shared key” is diﬀerent for every connection.V Sem Mini Project Report. C.1 Key Transfer After connection. CSS generates a random string and transmits it plain text to the ESS. Because the generated key depends on a random string. the evesdropper can not replay his transaction log onto the network.3. generates the shared key. both of them generate a “shared” key. The ﬁrst messages between the systems is as follows: ESS: KEY userName CSS: KEY 50meR4nd0m5+r1ng When CSS receives the username. which ought to be diﬀerent for every connection. The key that we are using is generated from two parts. Using this string and the password. Thus we see that the attacks of tapping. Revision 1.2 Client Authentication After the key transfer. (The user is supposed to keep it secret) A Symmetric Cryptography algorithm begins with sharing of the key. 1. • No one else knows the user’s password. When ESS gets the second message.
it has to tell the ESS to write some byte to the port.5 Logging Oﬀ The user on the ESS may choose to log his client oﬀ. in some cases. the base 64 encoding is applied to the same. The ESS has an object containing the description. It is the job of the ESS to notify the CSS about the action and then close the network connection. ESS: WRITE byte CSS: OK OR ESS: WRITE byte CSS: ERR Given the byte. the CSS attempts to write it to the port. the CSS requests the ESS to send it the description of the device connected. 2004 ESS: CSS: 32 AUTH userName pA55w0rd OK OR ESS: AUTH userName pA55w0rd CSS: ERR The ESS sends an encrypted text containing the username and password of the user. the serialized text can not be passed as it is. and thus.3. Following is the dialogue that takes place. then this call would fail. December 3.3. Hence. every message terminates with a linefeed. CSS: DESC ESS: DESC base-64 encoded serialized object The serialized object is typically XML. In the protocol. it would reply with a plaintext OK saying that the authentication is done. C. and contains many line breaks. If it is not able to decrypt. the call succeeds. For example. This was necessary because if the user has entered incorrect password. Revision 1. and CSS replies with OK. C. the write to the port fails.4 Commanding the ESS When the CSS gets requests from the smart client. In such a case.3. for changing the device state. In most cases. ESS: OFF . if someone maliciously tried to write a number with value more than 255 (maximum for a byte). Note: The CSS replies to the authentication request in plain text. and there would be a inﬁnite loop in the state machine. It is serialized and base64-encoded and returned as a reply as follows. However. the message could be decrypted by the CSS. If the password was correct. and ESS would reply in an error. it would not be able to decrypt even the ERR response.V Sem Mini Project Report.3 Getting the Device Details After successful authentication. it understands that the ESS had a diﬀerent shared key because the user entered incorrect password. and hence returns ERR in plain text. C.
This should not happen with the actual clients. The ESS notiﬁes a fatal error on getting this response from the CSS. Revision 1.6 Exceptional Messages It might happen that even after the proper authentication. some error might creep in. WRITE. but some malicious hacker might attempt sending messages that are out of context. The CSS would close the connection after sending this message.1 shows a graphical overview of the protocol.V Sem Mini Project Report. 2004 33 The ESS closes the socket immediately after this transfer. The CSS should close its end too. EMERGENCY. C. Only in certain exceptional cases. like invalid description will this message be used. OK.1: CSS-ESS Protocol Overview . C.3. AUTH. CSS: EMERGENCY Note that an invalid operation usually results in just ERR. Figure C. To handle such situations. of the ESS with the CSS. OFF.4 Protocol at a glance The earlier section describes that the protocol uses the commands KEY. DESC. after it gets the notiﬁcation. and ERR. the CSS sends the following message whenever it does not understand what the message was. December 3. Figure C. etc.
The 34 . . then a byte would be generated by performing bitwise or of the bytes of the actions A. because the user should be able to identify this action completely.Appendix D Device Conﬁguration File Format This Appendix discusses the format for the ﬁle that speciﬁes details about the hardware connected to the ESS. This should be terse. Every policy is one character out of | & ^ which represent OR. Every record in this section contains four ﬁelds. This ﬁeld contains integer values 1.n. We had classiﬁed actions into groups in the earlier section. . the request would be repeated speciﬁed number of times to carry out the action. All actions of the same group have this ﬁeld value the same. Path to the correct ﬁle can be set from the ESS program. very descriptive. Group number 0 is used for such actions. The ﬁrst section stores information about the various “Actions” that can be performed on the devices. This Conﬁguration File is a tab separated text ﬁle. B. There might be some actions that can not be grouped. AND and XOR respectively. This section deﬁnes the policy. It could either be 0(for a toggle input) or 1(for numeric input). These policies are applied as bitwise operations. nonetheless. as follows: Byte This is the byte word that has to be written on the parallel port so as to perform that action.. For example. There has to be a policy so that the bytes for those actions can be combined. This Conﬁguration File can be located any where on the system that has ESS installed. if actions A. Group Actions can be grouped together. B and C.2. It is assumed that with numeric inputs. C are in one group with the policy OR. Description This is a string ﬁeld which would be displayed to the user. There are two sections in the ﬁle. Type This speciﬁes what kind of an input the Action should be provided with. . The second section stores information about the various “Groups”.
. Revision 1. EOF Device Conﬁguration File Format Type1 Description1 Group1 Type2 Description2 Group2 Type3 Description3 Group3 . . ### Group1 Group2 Group3 . 2004 35 ﬁle should ideally not contain a newline at the end of ﬁle.V Sem Mini Project Report. Policy1 Policy2 Policy3 . . . Table D.1: Byte1 Byte2 Byte3 . . . . . Table D. For this purpose. December 3. These two sections need to have a delimiter that is a sentinel to the ﬁle. . although that would result in no fatal error. .1 speciﬁes a general structure of the ﬁle. . . a line with just ### as the text is used. . . .
36 . Change Password(old. The Remoting Component of the CSS exports the following functionality for the clients: Authenticate(username. This object belongs to class ConﬁgData and details about the same can be found in the code documentation.Runtime. Returns success or failure as a boolean. Get Conﬁg() Returns an object containing the conﬁguration of the device.Net Remoting Client.Runtime.password) Returns true if the user was properly authenticated. Because the architecture of the CSS supports many clients to one server. we need to use the classes System. Logoﬀ() Sets the authentication state to false. Get LastByte() Returns the byte that was last written to the ESS client.Net Remoting Service depends on the type of server running the Remoting Service.Remoting and System.Channels.Appendix E Developer Details – Writing a client for CSS The Client for the . use of Server activated objects is not possible. new) Attempts to change the user’s password and returns a boolean that describes success or failure. Client-activated objects are analogous to common class instances where each caller gets its own copy of the object. Write Word(byte) Attempts to write the given byte as a state to the device connected to the ESS. In order to implement the . and maintain states (like authentication information) in the same.Remoting. Every client of this system must keep his own copy of the object.
2 edition. Microsoft . [Sta02] William Stallings. Cryptography and Network Security. Pearson Education. 37 .NET for Programmers. Computer Networks. [Tan00] Andrew S. Manning Publications Co. LATEX . 2003.. 2003. Prentice Hall of India.Bibliography [Gri02] Fergal Grimes.A document preparation system. 2 edition. Tanenbaum. [Lam03] Leslie Lamport. MSDN Documentation. Pearson Education Asia. 2000. 2002. 2002. [Mic03] Microsoft.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.