`

关于Java企业级应用开发中的安全知识的探讨

阅读更多
相信绝大多数做Java的朋友或多或少都会接触到Java安全技术。消息摘要算法,对称/非对称加密算法,数字签名算法等等都可经过合理组合,构建一套安全的网络交互平台。此外,数字证书作为公钥载体,可以用于HTTPS安全网络平台。这些Java安全技术都有哪些实现上的特点,哪种技术更适合你?

1.对于明文交互的网络系统,安全的定义就是保证网络交互内容的一致性。这恰恰是网络安全以及密码学领域的范畴,而消息摘要算法正是该系统最好的校验工具。Java 6提供了最基本的消息摘要算法实现,Commons Codec对其保持提供了更为实用的算法包装,而Bouncy Castle则提供了更多的算法扩展。
许多人误将消息摘要算法视为密码学领域之外的学科,这是大错特错的!

2.对于一般非安全领域公司,大多都会涉及机密数据的加密传输,或者是机密数据的加密存储。DES算法是否足够安全?AES算法的密钥长度是否受到出口限制?Java 6所不支持的IDEA算法又该如何实现?

3.对称加密算法是机密领域中最核心的算法。尽管如此,却无法逃避密钥安全传递的问题。而非对称加密算法很好的解决了这一问题,通过公钥和私钥有效地将交互双方分离,并透过非对称加密算法进行密钥交换。DH算法无疑非对称加密算法的鼻祖,而RSA更是非对称加密算法的典范,同样ElGamal也是较为广泛使用的非对称加密算法,而这一算法必须通过Bouncy Castle来实现。

4.RSA算法不仅仅只是非对称加密算法中的一个经典,它同样是数字签名算法中的典范。根据RSA数字签名算法实现原理,DSA算法得以出现,并随之产生了许多新的数字签名算法,如ECDSA。而这一算法同样没有在Java 6中获得支持,但Bouncy Castle又一次提供了及时的支持。数字签名算法在结合了消息摘要算法与非对称加密算法的特点后,将其有机结合便具有了身份认证的作用。

5.数字证书是非对称加密算法公钥的载体,是作为身份认证最有效的凭证之一。OpenSSL和Java原生的KeyTool是数字证书管理中最常用的工具,但OpenSSL构建数字证书步骤繁杂,KeyTool构建的数字证书又无法构建双向认证服务。这一难题成为步入HTTPS网络安全平台的最后一个门槛!

6.基于HTTPS平台进行网络安全交互,是绝大多数B2B、B2C平台必选的安全架构,但同样适用于其他领域的安全需要。但这一技术,常常涉及到很多密码学多项加密算法的理论,数字证书的构建,以及服务器的配置,往往成为许多公司渴望而不可及的安全技术。

当然,通过HTTPS平台进行网络交互当然是最安全的手段之一。但对于一些安全要求较为低的环境,有机结合各种技术是提高系统安全性极为有效的一种手段。

在实际应用中,哪种安全技术你更常用?那种技术你更需要?哪种技术你有疑惑?欢迎大家一起讨论!
分享到:
评论
27 楼 snowolf 2010-06-03  
beneo 写道

密码没有那么神秘,你看看教科书就可以了。现在实现那么多,装化成Java不就好了吗?

信息安全里面的5大特性什么不都是扯淡么?国内密码算法不公开的氛围,早就注定了国内密码技术比不上国外的。

兄弟你还是转行吧,别在密码这行业倒腾了,除非你当专家,然后跟着地方政府骗国家的钱。

而且兄弟你把密码归类为安全,OK这点我真的不否认,但是慕名过来看安全的很多想了解Java的安全,而不是电子商务认证、获得证书这方面的知识。

我学了2年的密码,做了好几个政府电子政务,我就感觉,密码在国内呀,那TM就是忽悠。

国内的情况的确如此,这主要是因为大部分人不了解密码学,更惧怕密码学。甚至自行实现了很多私有加密算法,算法的不公开严重影响算法的安全强度,同时也违反了『柯克霍夫原则』(即算法公开,密钥私有)!这也是国内密码学实践层面的误区!因此,也更有必要写这样一本书!

我相信这位兄弟在密码学行业已经锤炼的炉火纯青,或许对这行业产生了『审美疲劳』!这里讨论的不只是B2C、B2B乃至C2C的HTTPS平台安全性,也讨论其他领域,如单纯的加密网络交互,本地加密存储数据!还有很多很多人正需要了解这些信息!
同时,感谢您的真知灼见!
26 楼 beneo 2010-06-02  
snowolf 写道
相信绝大多数做Java的朋友或多或少都会接触到Java安全技术。消息摘要算法,对称/非对称加密算法,数字签名算法等等都可经过合理组合,构建一套安全的网络交互平台。此外,数字证书作为公钥载体,可以用于HTTPS安全网络平台。这些Java安全技术都有哪些实现上的特点,哪种技术更适合你?

1.对于明文交互的网络系统,安全的定义就是保证网络交互内容的一致性。这恰恰是网络安全以及密码学领域的范畴,而消息摘要算法正是该系统最好的校验工具。Java 6提供了最基本的消息摘要算法实现,Commons Codec对其保持提供了更为实用的算法包装,而Bouncy Castle则提供了更多的算法扩展。
许多人误将消息摘要算法视为密码学领域之外的学科,这是大错特错的!

2.对于一般非安全领域公司,大多都会涉及机密数据的加密传输,或者是机密数据的加密存储。DES算法是否足够安全?AES算法的密钥长度是否受到出口限制?Java 6所不支持的IDEA算法又该如何实现?

3.对称加密算法是机密领域中最核心的算法。尽管如此,却无法逃避密钥安全传递的问题。而非对称加密算法很好的解决了这一问题,通过公钥和私钥有效地将交互双方分离,并透过非对称加密算法进行密钥交换。DH算法无疑非对称加密算法的鼻祖,而RSA更是非对称加密算法的典范,同样ElGamal也是较为广泛使用的非对称加密算法,而这一算法必须通过Bouncy Castle来实现。

4.RSA算法不仅仅只是非对称加密算法中的一个经典,它同样是数字签名算法中的典范。根据RSA数字签名算法实现原理,DSA算法得以出现,并随之产生了许多新的数字签名算法,如ECDSA。而这一算法同样没有在Java 6中获得支持,但Bouncy Castle又一次提供了及时的支持。数字签名算法在结合了消息摘要算法与非对称加密算法的特点后,将其有机结合便具有了身份认证的作用。

5.数字证书是非对称加密算法公钥的载体,是作为身份认证最有效的凭证之一。OpenSSL和Java原生的KeyTool是数字证书管理中最常用的工具,但OpenSSL构建数字证书步骤繁杂,KeyTool构建的数字证书又无法构建双向认证服务。这一难题成为步入HTTPS网络安全平台的最后一个门槛!

6.基于HTTPS平台进行网络安全交互,是绝大多数B2B、B2C平台必选的安全架构,但同样适用于其他领域的安全需要。但这一技术,常常涉及到很多密码学多项加密算法的理论,数字证书的构建,以及服务器的配置,往往成为许多公司渴望而不可及的安全技术。

当然,通过HTTPS平台进行网络交互当然是最安全的手段之一。但对于一些安全要求较为低的环境,有机结合各种技术是提高系统安全性极为有效的一种手段。

在实际应用中,哪种安全技术你更常用?那种技术你更需要?哪种技术你有疑惑?欢迎大家一起讨论!



密码没有那么神秘,你看看教科书就可以了。现在实现那么多,装化成Java不就好了吗?

信息安全里面的5大特性什么不都是扯淡么?国内密码算法不公开的氛围,早就注定了国内密码技术比不上国外的。

兄弟你还是转行吧,别在密码这行业倒腾了,除非你当专家,然后跟着地方政府骗国家的钱。

而且兄弟你把密码归类为安全,OK这点我真的不否认,但是慕名过来看安全的很多想了解Java的安全,而不是电子商务认证、获得证书这方面的知识。

我学了2年的密码,做了好几个政府电子政务,我就感觉,密码在国内呀,那TM就是忽悠。
25 楼 snowolf 2010-06-01  
johnsoncr 写道
KeyTool构建的数字证书又无法构建双向认证服务

这个怎么说?我在一个测试项目中,用的是双向认证,而且证书也都是通过keyTool生成的自签名的证书,它们之间都可以正常交互。

KeyTool只能构建自签名证书,不能构建双向认证意义上的根证书、服务器证书、客户证书,也就是说KeyTool不能构建证书链。所以KeyTool只能构建单向认证服务!
双向认证,可以使用OpenSSL构建所需要的一系列数字证书! 服务器提供证书证明自己的身份,客户提供证书证明自己的身份,从而达到双向认证的作用,关键一点,这两份证书都是源于同一份根证书派发而来!

如果仅仅通过KeyTool就能够做到双向认证,我很乐意求教!
24 楼 johnsoncr 2010-06-01  
KeyTool构建的数字证书又无法构建双向认证服务

这个怎么说?我在一个测试项目中,用的是双向认证,而且证书也都是通过keyTool生成的自签名的证书,它们之间都可以正常交互。
23 楼 snowolf 2010-05-31  
swit1983 写道
这本书主要是介绍密码学吗,还是信息安全应用方面的?  对asn.1有介绍吗?bouncy castly的文档太简单了,我发现需要配合asn.1来看才行。

基于Java语言平台的密码学+信息安全应用,对Bouncy Castle的算法支持有详述内容,ASN.1编码未涉及!
看来你用的比较深!
22 楼 swit1983 2010-05-31  
这本书主要是介绍密码学吗,还是信息安全应用方面的?  对asn.1有介绍吗?bouncy castly的文档太简单了,我发现需要配合asn.1来看才行。
21 楼 snowolf 2010-05-25  
qinzy 写道
您好,我已经买了您写的"JAVA加密与解密的艺术"一书,请问书中源码哪里可以下载.

您好,源码正在整理中,稍后奉上!
20 楼 qinzy 2010-05-25  
您好,我已经买了您写的"JAVA加密与解密的艺术"一书,请问书中源码哪里可以下载.
19 楼 snowolf 2010-05-08  
grandboy 写道
如果是三年前,我可能会买这本书的,但是现在不会买了。不过还是要支持一下。

只要对大家有价值,就算是成功!
不论是谁都经历过菜鸟阶段,不论是谁都尝试过无人求教滋味。
不求无愧于读者,但求无愧于自己!
能把我所知道的内容,原原本本分享给需要的人,这就足够了!
18 楼 grandboy 2010-05-07  
如果是三年前,我可能会买这本书的,但是现在不会买了。不过还是要支持一下。
17 楼 snowolf 2010-05-06  
sichanlandag 写道
对于安全系数而言我一点概念都没有,目前就是会用ssh做好一个项目,但针对于安全开发的这个模块我却是一点感应都没有,如果要让我去做一个安全系数颇高的项目,我还真没法下手....
具体的java项目的加密 我想你还可以深入的讲解下吧 至少是很多人都会想知道

比如说,
用消息摘要算法对传递的数据做校验,确保交互数据一致。其实在网络中,一条数据是经过多个“传话筒”传递,中途很有可能发生“变声”!
用对称加密算法对网络数据加密,密钥如何分发?交互双方可以先分发一套密钥,然后进行交互。这就需要安全传递密钥了。
使用对称加密算法进行加密网络交互,这种方式是很多的!如果有可能还可附加MAC算法确保加密的数据没有被篡改。
复杂一点的用非对称加密算法加密对称加密算法的秘密密钥形成信封,用这个秘密密钥对数据加密,然后把加密的数据和信封一同发给对方,对方先用公钥解密出秘密密钥,再用秘密密钥解密数据。这种方式就是数字信封了~!
更复杂的,就是用数字证书,在服务器上配置SSL/TLS模块,构建HTTPS平台进行交互。

希望这些内容,能给你一个启示!

16 楼 sichanlandag 2010-05-06  
对于安全系数而言我一点概念都没有,目前就是会用ssh做好一个项目,但针对于安全开发的这个模块我却是一点感应都没有,如果要让我去做一个安全系数颇高的项目,我还真没法下手....
具体的java项目的加密 我想你还可以深入的讲解下吧 至少是很多人都会想知道
15 楼 newwpp 2010-05-06  
敬佩你的为人,感谢分享。让我这个小白菜能成长
14 楼 snowolf 2010-05-06  
呵呵,感谢大家的关注,对这本书,或是这些话题有什么观点都可以提出来!!!
也许你感兴趣的内容,将是下一版中的重点!!!呵呵!
13 楼 mysyche 2010-05-06  
能出书的人,一定要支持一下,敬仰一下。
12 楼 waitingmyself 2010-05-06  
原来这是书的作者~  敬仰了~
11 楼 freej 2010-05-06  
hzbook 写道
freej 写道
兄弟,你那书卖的怎么样?畅销与否?


目前这本书卖得不错,算是很畅销了,繁体版版权已经输出到台湾了。



挺好,希望有越来越多的书可以走出中国大陆。
10 楼 hzbook 2010-05-05  
freej 写道
兄弟,你那书卖的怎么样?畅销与否?


目前这本书卖得不错,算是很畅销了,繁体版版权已经输出到台湾了。
9 楼 snowolf 2010-05-05  
bryande 写道
snowolf 写道
感谢关注,目前销售趋势正常,欣喜中!
这本书前几章只是一个大体的介绍,如果哪些部分不明白,可以参照上述问题,提出疑惑。



兄弟有有这方面的书卖?

《Java加密与解密的艺术》 http://snowolf.iteye.com/blog/656287
8 楼 bryande 2010-05-05  
snowolf 写道
感谢关注,目前销售趋势正常,欣喜中!
这本书前几章只是一个大体的介绍,如果哪些部分不明白,可以参照上述问题,提出疑惑。



兄弟有有这方面的书卖?

相关推荐

    Java企业级应用程序开发指南

    《Java企业级应用程序开发指南》是一本面向Java开发者的重要参考资料,尤其适合那些希望在企业环境中构建大型、可扩展系统的人员。这本书深入浅出地讲解了Java在企业级应用中的核心概念和技术,通过丰富的实例帮助...

    java企业级应用开发指南电子书

    ### Java企业级应用开发指南知识点概述 #### 一、引言 随着Java技术的发展与成熟,它已经成为构建大型企业级应用程序的重要平台之一。本书《Java企业级应用开发指南》为开发者提供了一个全面深入地了解如何利用Java...

    Java企业级开发项目实践

    在“Java企业级开发项目实践”这一主题中,我们探讨的是使用Java编程语言进行大型、复杂、分布式系统开发的关键技术和实践经验。Java作为一种强类型、面向对象的语言,因其跨平台的特性,广泛应用于企业级应用系统。...

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》_源代码.zip

    《Java EE企业级应用开发教程Spring+Spring MVC+MyBatis》是一本深入探讨Java企业级应用程序开发的书籍,源代码包含多个章节的实例,旨在帮助读者理解和掌握使用Spring、Spring MVC和MyBatis框架进行实际开发的关键...

    Java企业级开发课程设计

    总的来说,“Java企业级开发课程设计”是一个综合性的实践项目,涵盖了Java基础、Spring框架、数据库交互等多个重要知识点,旨在培养开发者解决实际问题的能力,为将来从事企业级应用开发打下坚实的基础。...

    java 开发 J2EE企业级应用

    9. **Spring框架**:虽然Spring不属于J2EE规范,但它在企业级应用开发中广泛应用,提供依赖注入、AOP(面向切面编程)、MVC框架、事务管理等服务。 10. **Web服务(SOAP/WSDL/RESTful)**:J2EE支持创建和消费Web...

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》.zip

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》是一本专注于Java后端开发的实战型教材,特别适合于对Java EE感兴趣并希望深入学习的企业级开发者。本书结合了Spring框架、Spring MVC以及MyBatis这三大...

    Java 企业级开发项目实践

    在当今快速发展的信息技术领域中,Java作为一种广泛使用的编程语言,在企业级应用开发中占据着举足轻重的地位。本文将根据所提供的标题、描述及标签等信息,深入探讨与Java企业级开发项目实践相关的知识点。 #### ...

    使用java企业级技术开发大型系统课程ppt

    该课程基于ACCP6.0(Advanced Certified Computer Professional)认证体系,旨在为学员提供全面的Java企业级应用开发知识。以下是课程涵盖的一些核心知识点: 1. **Java基础**: 课程首先会回顾Java语言的基础知识,...

    桌面java企业级开发项目实践

    《桌面Java企业级开发项目实践》是一本深入探讨企业级Java开发的重要参考资料,它涵盖了从基础到高级的各种技术,旨在帮助开发者提升在实际工作中的应用能力。在这个领域,Java以其强大的稳定性和可扩展性,成为了...

    《精通NetBeans——Java桌面、Web与企业级程序开发详解》光盘

    通过学习本书,读者不仅能够熟练掌握NetBeans IDE的使用,还能深入理解Java编程的各个方面,无论是桌面应用、Web应用还是企业级应用的开发,都能游刃有余。源代码的提供则让理论知识与实践相结合,确保了学习效果。...

    企业级java安全

    《企业级Java安全》一书深入探讨了Java平台在构建安全的企业级应用程序中的核心技术和实践。J2EE(Java 2 Platform, Enterprise Edition)和J2SE(Java 2 Platform, Standard Edition)是Java开发的重要分支,分别...

    java程序高级应用及开发

    在Java程序的高级应用中,我们会接触到并发编程、网络编程、数据库连接(JDBC)、远程方法调用(RMI)、Java服务器页面(JSP)和Servlet、JavaFX图形用户界面(GUI)开发,以及Spring框架、Hibernate ORM等企业级...

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》.zip

    《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》是一门深入探讨Java后端开发技术的课程,主要围绕Java EE平台上的Spring、Spring MVC和MyBatis这三个核心框架进行讲解。Java EE,全称Java Platform, ...

    企业级java安全性(构建安全的j2ee应用)

    在企业级Java应用程序开发中,安全性是至关重要的一个环节,特别是在构建J2EE(Java 2 Platform, Enterprise Edition)应用时。J2EE为大型分布式系统提供了强大的框架,但同时也面临着各种安全挑战,如数据泄露、...

    SpringMVC框架及其核心组件的Java企业级开发实践

    内容概要:本文详细介绍了SpringMVC框架的概念、配置与具体应用,探讨了Java企业级开发所需的Java基础知识、Spring框架核心特性和MVC设计模式。覆盖SpringMVC的工作流程、主要组件如控制器、模型、视图、数据绑定及...

Global site tag (gtag.js) - Google Analytics