Thursday, June 5, 2008

Anonymous communication Over The Internet

In the modern economic world purchasing products from online stores is rapidly increasing. On the other hand cyber criminals who steal personal information and tracking online activities are also increasing. Hence people need to be more careful when exposing or giving out any personal information about them. Therefore a reliable anonymous communication system on internet is very crucial.

Anonymous communication means communicating without revealing their identity to each other or to an outside observer. Here, the communication maybe carried out over the general telephone network or the Mobile Phone network or the Internet. Many researchers have proposed solutions for achieving anonymous communication over these types of communication methods. But in this review I’m considering only about anonymous communication on Internet.

In the context of anonymous communication we first need to understand what is meant by “Anonymity” and “Unobservability”. As discussed in [Pftzmann and Waidner 1987], the anonymity is “the state of not being identifiable within a set of subjects”. There are three anonymity levels,

Anonymous Communication Systems

Follwing Systems can be used to communicate via the Internet Anonymously.

1. Web proxies
2. Mix-nets
3. Onion Routing
4. Tor Network
5. Crowds

Tuesday, February 5, 2008

Creating RPC Application

RPC stands for Remote Procedure Call which allows heterogeneous applications to communicate over a Network.

RPC can be used to communicate java applications with c++ applications. Netbula ORPC is a rich framework which allows to develop RPC applications.

First thing you need to do is creating an IDL(Interface Definition Language) file and compile it using an IDL compiler. Netbula's jrpcgen.exe is an IDL compiler which generates necessary java source codes to begin RPC application. It generate three code files:-

Interface
Server skeleton
Client stub

Here is a sample RPC IDL file.

struct cardStruct{
string cardName<>;
int cardWeight;
boolean status;
int id;
};

struct stringStruct{
string sName<>;
};

struct sArray{
stringStruct cardSet[13];

};

struct playStruct{
int cId;
cardStruct cStruct;
};

program HEARTSERV {

version HEARTSERV_V1 {

int getConnect(String)=1;
int winScore(void)=6;
sArray getCards(int)=4;
sArray getCurrentCards(void)=2;
sArray getScore(void)=3;
sArray playCards(playStruct)=5;

} = 0;

} = 1234567;

You can start building your RPC application by extending the server skeleton in server application. In client application you just need to create an instance of the client stub and call methods in that object.

When you need to run the application first thing you need to do is run the portmapper deamon which registers the processes with method names. Then run the server application and finally client application.
It's easy isn't it?