Sunteți pe pagina 1din 18

1.

INTRODUCTION
Anonymizing networks such as Tor route traffic through independent nodes in separate administrative domains to hide a clients IP address. Unfortunately, some users have misused such networksunder the cover of anonymity, users have repeatedly defaced popular Web sites such as Wikipedia. Since Web site administrators cannot blacklist individual malicious users IP addresses, they blacklist the entire anonymizing network. Such measures eliminate malicious activity through anonymizing networks at the cost of denying anonymous access to behaving users. In other words, a few bad apples can spoil the fun for all. There are several solutions to this problem, each providing some degree of accountability. In pseudonymous credential systems users log into Web sites using pseudonyms, which can be added to a blacklist if a user misbehaves. Unfortunately, this approach results in pseudonymity for all users, and weakens the anonymity provided by the anonymizing network. Anonymous credential systems employ group signatures. Basic group signatures allow servers to revoke a misbehaving users anonymity by complaining to a group manager. Servers must query the group manager for every authentication, and thus lacks scalability. Traceable Signatures allow the group manager to release a trapdoor and that allows all
signatures generated by a particular user to be traced; such an approach does not provide the backwardunlinkability that we desire, where a users accesses before the complaint remain anonymous. Backward unlink ability allows for what we call subjective blacklisting, where servers can blacklist users for whatever reason since the privacy of the blacklisted user is not at risk. In contrast, approaches without backward unlinkability need to pay careful attention to when and why a user must have all their connections linked, and users must worry about whether their behaviours will be judged fairly. Subjective blacklisting is also better suited to servers such as Wikipedia, where misbehaviours such as questionable edits to a Webpage, are hard to define in mathematical terms. In some systems, misbehaviour can indeed be defined precisely. For instance, double spending of an e-coin is considered misbehaviour in anonymous e-cash systems, following which the offending user is deanonymized. Unfortunately, such systems

work for only narrow definitions of misbehaviourit is difficult to map more complex notions of misbehaviour onto double spending or related approaches. With dynamic accumulators, a revocation operation results in a new accumulator and public parameters for the group, and all other existing users credentials must be updated, making it impractical. Verifier-local revocation (VLR), fixes this shortcoming by requiring the server(verifier) to

perform only local updates during revocation. Unfortunately, VLR requires heavy computation at the server that is linear in the size of the blacklist. For example, for a blacklist with 1,000 entries, each authentication would take tens of seconds,2 a prohibitive cost in practice. In contrast, our scheme takes the server about one millisecond per authentication, which is several thousand times faster than VLR. We believe these low overheads will incentivize servers to adopt such a solution when weighed against the potential benefits of anonymous publishing (e.g., whistle-blowing, reporting, anonymous tip lines, activism, and so on.)

2.PROBLEM DEFINITION
In this section we describe about the existing system and features of our proposed system . Problem definition is the process of gathering and interpreting facts, diagnosing problems and using the information to recommended improvement to the system.

2.1 EXISTING SYSTEM


In the present systems administrators cannot blacklist individual IP addresses. They used to blacklist entire anonymizing network.

2.2 PROPOSED SYSTEM


The proposed is a system that allows websites to selectively blacklist users of anonymizing networks such as Tor without knowing the user's IP-address. Nymble users not on the blacklist enjoy anonymity while blacklisted users are not allowed future connections for a duration of time while their previous connections remain unlinkable.

2.3 PURPOSE
Our project Nymble: Blocking Misbehaving Users in Anonymizing Networks can be used as a powerful tool for websites to selectively blacklist users of anonymizing network.

3.SYSTEM REQUIREMENT SPECIFICATION


The section of hardware configuration is an important task related to the software development. Insufficient random access memory may adversely on the speed and efficiency of the entire system. The purpose should have sufficient capacity to store and file applications. Every system we use in this project should have the following specifications.

3.1 HARDWARE REQUIREMENTS


PROCESSOR: PENTIUM IV 2.6 GHz RAM MONITOR : 128 MB or HIGHER : 15th COLOR

HARD DISK : 40 GB or HIGHER

3.2 SOFTWARE REQUIREMENTS


Front End Server Client side Script : Server side Script : Back End : Java 1.6,JSP : Glass Fish v2server JavaScript Java Server Pages : My Sql

Operating System : 32/64-bit Operating System

3.3 TOOL STUDY


3.3.1 JAVA
The concept of Write-once-run-anywhere (known as platform independent) is one of the important key feature of java language that makes java as the most powerful language. Not even a single language is idle to this feature but java is closer to this feature. The

programs written on one platform can run on any platform provided the platform must have the JVM. There are various features that make the java as a simple language. Programs are easy to write and debug because java does not use the pointers explicitly. It is much harder to write the java programs that can crash the system but we cannot say about the other programming languages. Java provides the bug free system due to the strong memory management. It also has the automatic memory allocation and deallocation system. Features of Java includes It is simple and object oriented. It helps to create user friendly interfaces. It is very dynamic. It supports multithreading. It is platform independent. It is highly secure and robust. It supports internet programming. Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Suns Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically combined to byte code, which can run on any Java Virtual Machine (JVM) regardless of computer architecture. The original and reference implementation Java compilers, virtual machines and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the technologies as free software under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Class path. The Java language was created by James Gosling in June 1991 for use in a set top box project. The language was initially called Oak, after an oak tree that stood outside Goslings office-and also went by the name Green-and ended up later being renamed to Java, from a list of random words. Goslings goals were to implement a virtual machine and a language that had a familiar C/C++ style of notation.

3.3.2 JSP
JSP is focused on the presentation of our application. The order entry screens, the inventory screens, etc. Build dummy HTML pages for all of these, then convert them to JSPs. They work as templates. We type out the HTML for what we want to see, and then at various points we insert special little JSPs that do the scripting. Java Server Page is a java technology that allows software developers to dynamically generate HTML, XML or other type of documents in response to a web client request. The technology allows java code and, XML or other type of documents in response to a web client request. The technology allows java code and certain predefined actions to be embedded into static content. The JSP syntax adds additional XML- like tags, called JSP action, to be used to invoke built in functionality.JSP syntax is a fluid mix of two basic content forms: scriptlet elements and markup. Markup is typically standard HTML or XML, while scriptlet elements are delimited blocks of Java code which may be intermixed with the markup. When the page is requested the Java code is executed and its output is added, in situ, with the surrounding markup to create the final page. JSPs must be compiled to Java bytecode classes before they can be executed, but such compilation is needed only when a change to the source JSP file has occurred. JSPs are compiled into servlets by a JSP compiler. The compiler either generates a servlet in Java code that is then compiled by the Java compiler, or it may compile the servlet to byte code which is directly executable. JSPs can also be interpreted on-the-fly, reducing the time taken to reload changes.Regardless of whether the JSP compiler generates Java source code for a servlet or emits the byte code directly, it is helpful to understand how the JSP compiler transforms the page into a Java servlet. The new version of the JSP specification includes new features meant to improve programmer productivity. Namely: An Expression Language (EL) which allows developers to create Velocity-style templates (among other things). A faster/easier way to display parameter values. A clear way to navigate nested beans.

3.3.3 NETBEANS
Netbeans refers to both a platform frame work for Java desktop applications, and an integrated development environment (IDE) for developing with Java, Java Script, PHP, Python, Ruby, Groovy, C, C++, Scala, Clojure, and others. The NetBeans IDE is written in Java and can run anywhere a JVM is installed, including Windows, Mac OS, Linux, and Solaris. A JDK is required for Java development functionality, but is not required for development in other programming languages. NetBeans IDE is an open-source integrated development environment. NetBeans IDE supports development of all Java application. Among other features are an Ant-based project system, Maven support, refactorings, version control (supporting CVS, Subversion, Mercurial and Clearcase). All the functions of the IDE are provided by modules. Each module provides a well defined function, such as support for the Java language, editing, or support for the CVS versioning system, and SVN. NetBeans contains all the modules needed for Java development in a single download, allowing the user to start working immediately. Modules also allow NetBeans to be extended. New features, such as support for other programming languages, can be added by installing additional modules. For instance, Sun Studio, Sun Java Studio Enterprise, and Sun Java Studio Creator from Sun Microsystems are all based on the NetBeans IDE.

3.3.4 MYSQL SERVER


MySQL is a true multi user, multithreaded SQL database server. MySQL is client server implementation that consists of a server daemon MySQL and many client programs and libraries. MySQL is very fast, multithreaded, multiuser, Robust SQL database server. Strengths of MYSQL Reliability Performance Ease-of-access ACID transactions The SELECT statement is the heart of SQL. It allows us to get the data out of the database and do things with it. When we perform a SELECT against a table or tales the result is compiled into a further temporary table which is displayed. Data manipulation language is

the area of SQL that allows you to change data within the database. It consists of only three command statements grow; they are INSERT, UPDATE and DELETE. Data Definition Language is a set of SQL commands used to create, modify and delete database structures. These are normally used by the DBA, a database designer or application designer or application developer. MySQL is the world's most used relational database management system (RDBMS)] that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My. The SQL phrase stands for Structured Query Language. The MySQL development project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL was owned and sponsored by a single for-profit firm, the Swedish company MySQLAB, now owned by Oracle Corporation. Free-software-open source projects that require a full-featured database management system often use MySQL. For commercial use, several paid editions are available, and offer additional functionality. MySQL is also used in many high-profile, large-scale World Wide Web products. MySQL is primarily an RDBMS and ships with no GUI tools to administer MySQL databases or manage data contained within the databases. Users may use the included command line tools or download MySQL front-ends from various parties that have developed desktop software and web applications to manage MySQL databases, build database structures, and work with data records.

3.3.5 GLASSFISH
GlassFish is an open-source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server. GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception. GlassFish supports all Java EE API specifications (by definition since it is the Java EE Reference implementation), such as JDBC, RMI, e-mail, JMS, web services, XML, etc., and defines how to coordinate them. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBeans, Connectors, servlets, portlets (following the Java Portlet specification), JavaServer Pages and several web service

technologies. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. GlassFish is based on source code released by Sun and Oracle Corporation's TopLink persistence system. It uses a derivative of Apache Tomcat as the servlet container for serving Web content, with an added component called Grizzly which uses Java New I/O (NIO) for scalability and speed

4.SYSTEM DESIGN
System design deals with the base structure of the project i.e. Data Flow Diagrams for the various modules of the project. The DFD is classified into various levels which gives the step wise description of the designing phase of our project.

4.1 DATA FLOW DIAGRAMS


4.1.1 LEVEL 0 DFD:-

Request

Nymble id

USER

0
NYMBLE

SERVER

Web Page

Web Page

Fig 4.1: level 0 DFD

4.1.2 LEVEL 1 DFD

Pseudo id

0.2 0.1
Pseudo id Generator
Nymble id Generator

Data store

0.3
Black listing &

Status Verification

0.4
New Server Registration

Fig 4.2: Level 1 DFD

4.2 DATABASE DESIGN Table 1: Pseudo

FIELD id macaddr random_no date

TYPE int varchar int varchar

SIZE

60

20

Table 2 : Pseudo log

FIELD id pseudo_id time

TYPE int int varchar

SIZE

100

Table 3: Blacklist details

FIELD nymble_id servername history_file

TYPE int varchar varchar

SIZE

100 200

Table 4 : Nymble

FIELD nymble_id pseudo_id server_name status time

TYPE int int varchar varchar varchar

SIZE

200 20 30

Table 5 : Nymble_log

FIELD id pseudoid nymbleid url time

TYPE int int int varchar varchar

SIZE

200 50

Table 6 : Statistics

FIELD id servername traffic visitorslist blacklist port ipaddress password url

TYPE int varchar int varchar varchar int varchar varchar varchar

SIZE

100

200 200

20 20 100

5. IMPLEMENTATION
MODULES
5.1 Client
Client registers in the system through the pseudonym manager. The system provides a webbrowser. Client can enter the required URL in the web-browser. Each client will have their own IP address and MAC address. Client will register using the Mac address. The system takes URL and mac address from the browser. The Mac address denotes the users identity.

5.2 Pseudonym Manager


Pseudonym Manager will collect the URL and mac address of the client and maps clients Mac address with a pseudonym or pseudo id which is a pseudo random number. The pseudomanager will divert the user to the blacklisting manager. It will send the pseudonym and URL to the blacklisting manager.

5.3 Nymble Manager


Nymble manager converts pseudonym to blacklisting ticket or Nymble ticket. Using blacklisting ticket BM verifies whether it is a misbehaving or behaving user. The blacklisting manager also creates lock table which contains fields for entering the requested URL and a status field for saving the status of the user. It also assigns a time limit for the user to access a particular server. Using the blacklisting ticket it is verified that whether user is behaving or misbehaving. If a behaving user is requesting a server he will be directly connected with the server. If a user is misbehaving or if the user is accessing a server beyond the time limit he/she will be put in a blacklist.

5.4 Blacklisting a user


Users who make use of anonymizing networks expect their connections to be anonymous.

If a server obtains a seed for that user, however, it can link that users subsequent connections. It is of utmost importance, then, that users be notified of their blacklist status before they present a nymble ticket to a server. The user can download the servers blacklist and verify her status. If blacklisted, the user disconnects immediately.

5.5 Server Registration and Visitors Tracking


New servers can register with the Nymble Manager. All connections to the registered servers with the Nymble Manager goes through the Nymble Network and the entire system is monitored. Registered servers can keep track of all the connections to their server with time and its blacklist status.

6. FEATURES
This section describes different features provided by our system Anonymous Authentication Backward Unlinkability Subjective Blacklisting Fast Authentication Speeds Rate-Limited Anonymous Connections Revocation Auditability Sybil attack In Nymble, users acquire an ordered collection of nymbles,a special type of pseudonym, to connect to Websites. Without additional information, these nymbles are computationally hard to link,4 and hence, using the stream of nymbles Simulates anonymous access to services. Web sites, however, can blacklist users by obtaining a seed for a particular nymble, allowing them to link future nymbles from the same user,those used before the complaint remain unlinkable. Servers can therefore blacklist anonymous users without knowledge of their IP addresses while allowing behaving users to connect anonymously.

8. CONCLUSION
We have proposed and built a comprehensive credential system called Nymble, which can be used to add a layer of accountability to any publicly known anonymizing network. Servers can blacklist misbehaving users while maintaining their privacy, and we show how these properties can be attained in a way that is practical, efficient, andsensitive to the needs of both users and services. We hope that our work will increase the mainstream acceptance of anonymizing networks such as Tor, which, has, thus far, been completely blocked by several services because of users who abuse their anonymity.

S-ar putea să vă placă și