- 浏览: 2869350 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
静态密码存在着比较多的安全隐患,攻击者有很多手段获得静态密码,管理密码也具有较高的成本,我在前文《中国网上银行系统安全性分析》中曾经论证过,使用硬件安全产品“动态密码锁”或者“USB Key”可以较好的解决这个问题,但是会带来加密锁的成本,在不增加硬件成本的情况下,我们也可以通过一些设计上的技巧和措施在一定程度上来保证登录者的身份。
一、客户端和服务器端的安全
客户端的安全,主要是用户密码本身的安全性(密码长度和复杂性等)以及用户电脑的安全性,包括用户电脑没有安装黑客木马软件,登录程序没有被第三方程序加载调试,用户录入框组织键盘Hook程序等等,通过一些代码即可解决。
服务器端的安全,包括服务器自身的安全(系统漏洞等等)以及程序设计上的安全,我这里主要讲一下程序设计上的安全。最基本的问题是,用户的密码不应该直 接保存在服务器的数据库上,也不应该将密码用单钥算法加密后保存,最基本的认证方式是通过单向散列函数对密码进行认证。在《软件加密技术和注册机制》一文中介绍了一些单向散列函数可以实现简单的认证。目前大多数网站都使用MD5函数进行登录认证,不过我推荐使用安全性更高的SHA1散列函数来进行登录认证。
二、网络传输上的安全
目前的网络协议通过HTTP协议进行通讯,存在很大的安全隐患,黑客可以通过SNIFFER工具进行抓包分析网络数据包,因此用户名和密码的传输应该使用非明文的方式传输,这里就用到了“公开密钥密码”的概念。
学过基本的“密码学”的人都应该知道“公开密钥算法(也叫非对称算法、双钥算法)”这个概念,即用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。
加密的传输过程分为两部分,一部分为身份认证,用户鉴别这个用户的真伪;另外一部分为数据加密,用于数据的保密。这两部分功能都需要用到非对称加密技术。
首先是身份认证,通讯的数据可以这样进行处理,将用户的信息(用户名、密码等)用该用户的私钥进行加密,然后再进行传输,而在服务器端会保存此用户的公钥,用此用户的公钥对传过来的信息进行解密,就可以得到正确的明文,这样就完成了一次安全的网络通讯。
通讯过程的示例如下图所示,Alice用自己的私钥对明文进行加密后传输到服务器,服务器上的用户(例如Bob)拥有很多用户的公钥,因此使用Alice的公钥对密文进行解密,如果密钥正确的话,就可以解密出明文,也就完成了对Alice的身份认证。
然后是数据加密,数据加密和数据认证正好相反,使用接收方的公钥对数据进行加密,传输的过程中,即使数据被黑客截获,也无法使用这些密文,接收方收到密文后,用自己的私钥对密文进行解密,从而完成了一次数据的加密传输。
通讯过程的示例如下图所示,Alice需要发给Bob一段加密的信息,因此Alice就用Bob的公钥对明文进行加密后传输给Bob,Bob收到信息后,使用自己的私钥对密文进行解密,就可以解密出明文,也就完成了对Alice的发来密文的解密过程。
目前的公开密钥算法主要有RSA和ECC,RSA是比较老的算法,基于大质数分解,速度较慢,ECC(椭圆曲线)是最新的公钥加密算法,基于离散对数计算,速度比RSA快,安全性据说更高一些。
当然,上面的所说的技术只是最为基本的身份认证技术,只是适合一般网站应用,对于电子商务和银行来说需要更为复杂和权威的安全认证系统。目前比较流行的 是PKI技术。PKI(Public Key Infrastructure)是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成 的。PKI技术已经被广泛应用于电子政务和电子商务,被证明是保证基于互联网的电子政务和电子商务安全的最佳解决方案。完整的PKI建设需要大量的资金和 人力才能完成,这里就不多介绍了。
发表评论
-
高级Java程序员值得拥有的10本书
2015-05-04 07:24 810Java是时下最流行的编程语言之一。市面上也出现了适合初学者 ... -
深入理解java异常处理机制
2015-01-30 09:30 13271. 引子 try…catch…fi ... -
java 运行时参数设置
2015-01-07 09:13 865JVM的运行时参数: -Xms为执行单元内存的1/4, ... -
每个Java开发者都应该知道的5个JDK工具
2014-12-29 12:37 1139JDK是Java语言的软件开 ... -
使用双重锁判定可以大幅降低锁的征用
2014-12-29 12:30 746class ObjInstance { //单例 pri ... -
MAVEN Scope使用说明
2014-11-24 09:40 757在Maven的依赖管理中,经常会用到依赖的scope设置。这 ... -
Spring4 quartz job xml configuration
2014-11-11 09:46 14371. 定义job details public ... -
Add items into list in one line using guava
2014-11-10 10:54 721//@formatter:off fina ... -
配置动态读取(变化)文件 in Spring
2014-11-10 08:51 13231. 从环境变量中读取路径: <bean id=&q ... -
JAVA实现AES加密与解密
2014-11-04 15:34 659package com.eifesun.monitor.up ... -
Netty4.x分析
2014-07-31 11:06 1461官网定义: netty是一个异步、事件驱动的网络应用框架,用 ... -
Ways to sort lists of objects in Java based on multiple fields
2014-07-21 17:19 7711. the first way: Sorting wit ... -
how to parse a String to BigDecimal
2014-07-21 10:08 917private BigDecimal parsePrice( ... -
order list using google guava
2014-07-21 09:08 883Predicate<String> filter ... -
Java 读文件操作
2014-07-08 14:09 8861. only use java core, no exte ... -
怎样使Java 中测试按一定顺序执行
2014-03-10 11:27 1318@FixMethodOrder(MethodSorters. ... -
如何实现在当类初始化时,自动调动某个方法
2014-02-14 14:44 964有两种思路, 1. 将这个类实现为thread类 (or ... -
持续集成JenkinsAPI常见用法
2014-02-10 13:54 43jenkins(持续集成开源工具)提供了丰富的api接口,基 ... -
Sonar 安装与使用
2014-01-13 10:49 1730Sonar 是一个用于代码质量管理的开放平台。通过插件机制, ... -
源代码管理分析工具 Source Navigator的安装与使用
2014-01-13 09:51 1891Source-Navigator是原来redhat开发的一个 ...
相关推荐
- **增强安全性**:统一认证和鉴权,减少因多系统登录导致的安全隐患。 ### 2. 统一登录的Web实现 #### 2.1 Cookie与跨域问题 - **Cookie机制**:当用户访问网站时,浏览器会存储网站的域和会话ID,但默认情况下...
### 基于身份认证和RBAC_WEB技术的安全网站设计:深入解析 #### 一、引言 在当今数字化时代,网络安全成为企业运营的关键因素之一。随着社会经济网络化的不断深化,采用各种技术的信息网络日益普及,其中基于公钥...
MaxKey单点登录认证系统是一款专业且功能强大的...总之,MaxKey单点登录认证系统v3.5.19提供了全面的身份管理和安全认证功能,对于开发者、学生和IT专业人士来说,它是一个宝贵的资源,可以用来学习、研究或实际应用。
2. 电子商务网站安全监控:对电子商务网站中的用户计算机和网络访问行为进行监控和保护。 3. 政府机构网络安全监控:对政府机构网络中的用户计算机和网络访问行为进行监控和保护。 网络安全检测系统是一款重要的...
MySSL安全认证图标是一种常见的信任标志,它向访问者表明网站已经通过了SSL/TLS安全验证,数据传输过程是加密的,可以保护用户的隐私信息不被窃取。本文将详细介绍如何在网站上添加MySSL安全认证图标,并探讨相关...
通过设计和实现Web网站统一口令认证系统,不仅可以简化用户的认证流程,还能显著提高系统的安全性。该系统通过一次性的动态口令认证,使得用户能够方便地访问权限范围内的所有应用服务,同时通过采用先进的安全技术...
毕业设计、课程设计适用 HTML、css、js代码完整,图片... 全套模板,总共包括注册、登录、个人中心首页、实名认证、安全设置、购物车、意见投诉、自营店铺、我的购物券、店铺收藏等56个网站模板页面,可直接使用。
用户认证管理设计方案是确保系统安全性的重要组成部分,它涉及到用户、角色和权限的管理。在设计这样的系统时,首要目标是创建一个可扩展性强且易于维护的架构。以下是关于这一主题的详细阐述: 1. 用户管理:用户...
网站登录页面设计是用户体验的重要组成部分,它不仅是用户进入网站的入口,也是展示品牌形象的第一步。在设计一个好看且实用的登录界面时,有几个关键知识点需要考虑: 1. 用户友好性:登录界面应简洁明了,避免...
【网站单点登录详细设计】 单点登录(Single Sign-On,简称SSO)是一种现代企业级应用程序集成的重要技术,允许用户在一次登录后访问多个相互信任的系统,无需重复输入凭证。SSO的核心在于提供一个统一的身份认证...
《精通PKI网络安全认证技术与编程实现》是深入理解网络安全领域的重要教材,尤其在电子商务网站应用方面具有极高的实用价值。本资源包含了光盘源码的第五篇——ASP(Active Server Pages)相关的内容,旨在帮助读者...
网站认证源码是一个重要的安全机制,它涉及到网络应用的身份验证过程。这个压缩包"网站认证源码.rar"包含了实现这一过程的源代码,允许开发者深入理解并学习如何构建自己的网络认证系统。源码可能经过了他人的修改和...
标题中的“由浅入深玩转华为WLAN---11 安全认证配置(4)AC内置Portal认证(网页认证)1”表明本篇内容主要聚焦于华为无线局域网络(WLAN)的安全配置,特别是关于AC(Access Controller,接入控制器)内置的Portal...
【网络技术-网管软件-某房产交易网站安全机制的设计与实现】 摘要: 本文主要探讨了电子商务领域中,特别是房产交易网站的安全问题及其解决方案。随着电子商务的快速发展,它已成为企业和消费者不可或缺的交易方式...
这个毕业设计项目的核心目标是创建一个集中的在线平台,能够有效地分享网络安全相关的知识、资讯、预警和解决方案,同时对内容进行有效管理和控制。 **Apache服务器**:Apache是最广泛使用的Web服务器软件,它支持...
### iKey 1032实现WEB网站安全登录方案的核心知识点 #### 一、背景介绍与问题阐述 在当前互联网环境中,确保用户信息安全至关重要。传统WEB登录方式主要依赖于“用户名/口令”验证,这种方式虽然简单易用,但也存在...