admin管理员组

文章数量:1516870

无线网络安全的隐患

1 无线路由器隐患

无线路由在出厂时配置的账号和密码大多相同的,因此无线路由可能被非法入侵,并且被控制。入侵者可以随意更改无线路由参数,对提供无线的客户端进行攻击,甚至获得宽带的上网账号和密码。

2 无线WEP密码威胁

网上有许多WEP破解软件,简单的无线WEP太容易被破解,在网上存在的非法程序,可以捕捉到无线信号,对密钥加密的无线网络进行破解。

3.窃取信息

入侵者可以让ARP去欺骗局域网,重新定向数据流,进一步获取用户信息,造成网络入侵。

利用中间人进行欺骗攻击,使用一个非法的AP欺骗客户端,再欺骗客户终端,从而获得了用户信息,进行窃取和修改。

网络信息大多数不进行加密,因此被截取了信息就可以读取其内容,也会入侵用户的网络信息。

关于隐患的解决方案

配置防火墙

网络防火墙技术的主要功能之一就是入侵检测功能,主要有反端口扫描、检测拒绝服务工具、检测CGI/IIS服务器入侵、检测木马或者网络蠕虫攻击、检测缓冲区溢出攻击等功能,可以极大程度上减少网络威胁因素的入侵,有效阻挡大多数网络安全攻击,它的主要用途是在网络信息传输过程中控制访问的程度。如果得到授权,就可以访问用户的计算机网络,未得到授权就可以阻止访问,这样可以防御未知的网络进入计算机网络内部,防止网络黑客入侵用户的电脑盗窃信息和资料。防火墙对于保护用户信息有至关重要的作用,是计算机网络不可缺少的一部分。

无线WEP密码威胁

无线路由加密:

一个好的加密方式及密码,可以给无线路由进行安全防护。市场出售的无线路由器的账号及密码都基本相同,所以要自行修改无线路由的参数,密码要求尽可能的复杂,数字字母交叉会更好。无线访问密码一定要设置,如果没有是很容易被“蹭网”的,蹭网的后果会导致自己的网速下降, 或者产生其他的安全问题。目前的加密方式主要有WEP加密、WPA加密等,WEP使用率很高,也很好设置,但容易被破解,所以为了自身无线的安全起见,建议采用WPA加密方式。

IP 地址过滤:启用IP地址过滤功能。大多数无线路由器都有过滤IP地址功能,可以在无线路由器页面设置,将熟悉的IP地址设为允许访问。其他IP地址统一设置为不允许访问,这样可以隔离外部的IP地址连接。

MAC 地址过滤:启用过滤MAC地址功能。MAC地址的设置和IP地址设置差不多,多数无线路由器都有过滤MAC地址功能。收集家庭电脑等终端的MAC地址,在无线路由器的相关设置中,写入允许接入此网络的无线终端的MAC地址,这样及时有人搜索到了自己的无线网络,也不能进行连接。

对于窃取信息采用RSA非对称算法进行加密

package keshe;
 
import java.io.*;
import java.math.BigInteger;
import java.util.ArrayList;
public class keshe {
	private long p = 0;
	private long q = 0;
	private long n = 0;
	private long t = 0; // 欧拉函数
 
	private long e = 0; // 公匙
	private long d = 0; // 密匙
 
	private String mc; // 明文
	private long c = 0; // 密文
	private long word = 0; // 解密后明文
 
	// 判断是一个数 x 否为素数素数就是判断在 (2,√x)范围内有没有除1外的因数,如果没有则x数素数
	public boolean isPrime(long t) {
		long k = 0;
		k = (long) Math.sqrt((double) t);
		for (int i = 2; i <= k; i++) {
			if ((t % i) == 0) {
				return false;
			}
		}
		return true;
	}
 
	// 随机产生大素数(1e6数量级,注意,太大了要超出范围)
	public void bigprimeRandom() {
		do {
			p = (long) (Math.random() * 1000000);
		} while (!this.isPrime(p));
		do {
			q = (long) (Math.random() * 1000000);
		} while (p == q || !this.isPrime(q));
	}
 
	// 输入PQ
	public void inputPQ() throws Exception {
 
		this.bigprimeRandom();
		System.out.println("自动生成两个大素数p,q分别为:" + this.p + " " + this.q);
 
		this.n = (long) p * q;
		this.t = (long) (p - 1) * (q - 1);
 
		System.out.println("这两个素数的乘积为p*q:" + this.n);
		System.out.println("所得的t=(p-1)(q-1):" + this.t);
	}
 
	// 求最大公约数
	public long gcd(long a, long b) {
		long gcd;
		if (b == 0)
			gcd = a;
		else
			gcd = gcd(b, a % b);
		return gcd;
 
	}
 
	// 生成公匙
	public void getPublic_key() throws Exception {
		do {
 
			this.e = (long) (Math.random() * 10000);
			// e满足 e∈(1, ψ(n))且e与ψ(n)最大公约数为1,即 e与t互质
		} while ((this.e >= this.t) || (this.gcd(this.t, this.e) != 1));
		System.out.println("生成的公钥为:" + "(" + this.n + "," + this.e + ")");
	}
 
	// 生成私钥 e*d=1(modψ(n))==> d = (kψ(n)+1) / e
	public void getPrivate_key() {
		long value = 1; // value 是e和d的乘积
		outer: for (long k = 1;; k++) {
			value = k * this.t + 1;
			if ((value % this.e == 0)) {
				this.d = value / this.e;
				break outer;
			}
		}
		System.out.println("产生的一个私钥为:" + "(" + this.n + "," + this.d + ")");
	}
 
	// 输入明文
	public void getText() throws Exception {
		System.out.println("请输入明文:");
		BufferedReader stdin = new BufferedReader(new InputStreamReader(
				System.in));
		mc = stdin.readLine();
 
	}
 
	// 解密密文
	public void pascolum() throws Exception {
		this.getText();
		System.out.println("输入明文为: " + this.mc);
		// 加密
		ArrayList cestr = new ArrayList();
		for (int i = 0; i < mc.length(); i++) {
			this.c = this.colum((long) mc.charAt(i), this.n, this.e);
			cestr.add(c);
		}
		System.out.println("加密后所得的密文为:" + cestr);
		
		// 解密
		StringBuffer destr = new StringBuffer();
		for (int j = 0; j < cestr.size(); j++) {
			this.word = this.colum(Long.parseLong(cestr.get(j).toString()),
					this.n, this.d);
			destr.append((char) word);
		}
		System.out.println("解密后所得的明文为:" + destr);
 
	}
 
	// 加密、解密计算
	public long colum(long mc, long n, long key) {
		BigInteger bigy = new BigInteger(String.valueOf(mc));
		BigInteger bign = new BigInteger(String.valueOf(n));
		BigInteger bigkey = new BigInteger(String.valueOf(key));
		return Long.parseLong(bigy.modPow(bigkey, bign).toString());// 备注1
	}
 
	public static void main(String[] args) {
		try {
			keshe t = new keshe();
			t.inputPQ();
			t.getPublic_key();
			t.getPrivate_key();
			t.pascolum();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
}

本文标签: 破解加密无线路由