Security-for-Domain-Name-System-Java projectThe mapping or binding of IP addresses to host names became a major problem in the rapidly growing Internet and the higher level binding effort went through different stages of development up to the currently used Domain Name System (DNS) Java project  . 

                   The DNS Security is designed by CSE Final year students using java programming to provide security by combining the concept of both the Digital Signature and Asymmetric key (Public key) Cryptography. Here the Public key is send instead of Private key. The DNS security uses Message Digest Algorithm to compress the Message(text file) and PRNG(Pseudo Random Number Generator) Algorithm for generating Public and Private key. The message combines with the Private key to form a Signature using DSA Algorithm, which is send along with the Public key

                   The receiver uses the Public key and DSA Algorithm to form a Signature. If this Signature matches with the Signature of the message received, the message is Decrypted and read else discarded.

[cc lang="php" tab_size="2" lines="40"]

import java.io.*;

import java.awt.*;

import java.awt.event.*;
import java.util.*;
import java.net.*;
import javax.swing.*; 

class Client extends JFrame implements ActionListener
{
	Button Send,Clear,Exit;
	TextField  SystemName,SystemIp,ReceiverName,ReceiverIp,SenderName,SenderIp;
	TextField SenderPassword;
	Label n1,n2,n3,n4,n5;
	Byte str[];

	Client()
	{
		super("Sender");
		Container c = getContentPane();
		setSize(400,300);
		setResizable(false);
		JPanel jp = new JPanel();
		jp.setLayout(null);
		SenderName= new TextField(20);
		SenderPassword = new TextField(20);
		SenderPassword.setEchoChar('*');
		ReceiverName=new TextField(20);
		n3= new Label("SENDERNAME    :",Label.LEFT);
		n4= new Label("SENDERPASSWORD:",Label.LEFT);
		n5= new Label("RECEIVERNAME  :",Label.LEFT);
		//n6= new Label("RECEIVER-IP    :",Label.LEFT
		Send=new Button("Send");
		Clear=new Button("Clear");
		Exit=new Button("Exit");
		jp.add(n3);
		jp.add(SenderName);
		jp.add(n4);
		jp.add(SenderPassword);
		jp.add(n5);
		jp.add(ReceiverName);
		jp.add(Send);
		jp.add(Clear);
		jp.add(Exit);
		c.add(jp);
		n3.setBounds(40,25,120,25);
		SenderName.setBounds(200,25,120,25);
		n4.setBounds(40,70,140,25);
		SenderPassword.setBounds(200,70,120,25);
		n5.setBounds(40,115,120,25);
		ReceiverName.setBounds(200,115,120,25);
		Send.setBounds(80,200,50,25);
		Clear.setBounds(140,200,50,25);
		Exit.setBounds(200,200,50,25);
		Send.addActionListener(this);
		Clear.addActionListener(this);
		Exit.addActionListener(this);

	}

	public void actionPerformed(ActionEvent ae)

	{
		String st;
		st=ae.getActionCommand();

		if(st.equals("Send"))
		{

			try
			{
				SwingMes sm = new SwingMes(this);
		 		sm.setVisible(true);
				setVisible(false);

			}

			catch(Exception e)
			{
				//System.out.println(e);
			}

		}

		else if(st.equals("Clear"))
		{
			SenderName.setText("");
			SenderPassword.setText("");
			ReceiverName.setText("");

		}

		else if(st.equals("Exit"))
		{
			System.exit(0);
		}

	}

}
[/cc]

The DNS as an Internet standard to solve the issues of scalability surrounding the hosts.txt file. Since then, the widespread use of the DNS and its ability to resolve host names into IP addresses for both users and applications alike in a timely and fairly reliable manner, makes it a critical component of the Internet. The distributed management of the DNS and support for redundancy of DNS zones across multiple servers promotes its robust characteristics. However, the original DNS protocol specifications did not include security. Without security, the DNS is vulnerable to attacks stemming from cache poisoning techniques, client flooding, dynamic update vulnerabilities, information leakage, and compromise of a DNS server’s authoritative files.

In order to add security to the DNS to address these threats, the IETF added security extensions to the DNS, collectively known as DNSSEC. DNSSEC provides authentication and integrity to the DNS. With the exception of information leakage, these extensions address the majority of problems that make such attacks possible. Cache poisoning and client flooding attacks are mitigated with the addition of data origin authentication for RRSets as signatures are computed on the RRSets to provide proof of authenticity. Dynamic update vulnerabilities are mitigated with the addition of transaction and request authentication, providing the necessary assurance to DNS servers that the update is authentic. Even the threat from compromise of the DNS server’s authoritative files is almost eliminated as the SIG RR are created using a zone’s private key that is kept off-line as to assure key’s integrity which in turn protects the zone file from tampering. Keeping a copy of the zone’s master file off-line when the SIGs are generated takes that assurance one step further.

DNSSEC can not provide protection against threats from information leakage. This is more of an issue of controlling access, which is beyond the scope of coverage for DNSSEC. Adequate protection against information leakage is already provided through such things as split DNS configuration.

Conclusion.

DNSSEC demonstrates some promising capability to protect the Internet infrastructure from DNS based attacks. DNSSEC has some fairly complicated issues surrounding its development, configuration, and management. Although the discussion of these issues is beyond the scope of this survey, they are documented in RFC 2535 and RFC 2541 and give some interesting insight into the inner design and functions of DNSSEC. In addition to keep the scope of this paper down, many topics such as secure zone transfer have been omitted but are part of the specifications in RFC 2535. The first official release of a DNSSEC implementation is available in BIND version 8.1.2.

download Project Report, project Code and  paper presentation  of  Domain Name System (DNS) Java project.