`

关于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 写道
感谢关注,目前销售趋势正常,欣喜中!
这本书前几章只是一个大体的介绍,如果哪些部分不明白,可以参照上述问题,提出疑惑。



兄弟有有这方面的书卖?

相关推荐

    Flex企业应用开发实战-迷你版-电子书

    本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时。

    Flex企业应用开发实战.rar

    《Flex企业应用开发实战》共分为4大部分,涵盖企业级应用开发的... 本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解

    FLEX企业应用开发实战.pdf

    《Flex企业应用开发实战》对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而...

    Spring Boot带前后端 渐进式开发企业级博客系统

    企业级应用中,难免会涉及到全文搜素。对于Java应用来说,ElasticSearch在全文搜索方面是一把“利器”。 本章节会将带领学员了解全文搜索的概念,并熟悉如何用ElasticSearch来实现全文搜索。 第8章 架构设计与分层...

    FLEX企业开放实战

    本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时

    微信开发完整java项目基于SSM微信公众号项目开发SpringMyBatisSpringMVC.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    Flex企业应用开发实战源代码

    本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时。 第1章 Flex...

    Java语言基础.docx

    Java广泛应用于网站、移动应用、企业级应用等领域。 环境搭建 下载JDK:首先,您需要下载并安装Java开发工具包(JDK)。可以从Oracle官网获取最新版本。 配置环境变量:安装完成后,配置环境变量,确保您可以从...

    《Learn Java for Web Development》是一本面向 Web 开发者的书籍

    Java EE 和 Spring Framework: 简要介绍 Java EE(Enterprise Edition)平台和 Spring Framework,以及如何使用它们来开发企业级 Web 应用程序。 数据库连接和 ORM: 探讨如何使用 JDBC(Java Database ...

    Java数据编程指南

    本书将向读者介绍如何使用Java开发企业级的分布式应用程序,其中涉及生成、处理、存储、 与检索各种类型的数据与不同的数据库。 本书按照一定的逻辑顺序分为六个部分。在相互的基础上,前四部分深入广泛地探讨了...

    基于SSM框架的Java电商项目.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    Java EE电商项目(使用SSM框架).zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    计算机毕业设计:Java实现的企业固定资产管理系统(源码+说明+论文),保证可靠运行,附赠计算机答辩PPT模板

    通过这套源码,用户可以深入了解Java在企业级应用开发中的实际应用,掌握固定资产管理系统的核心技术和实现方法。 说明文档则对系统的功能、架构、数据流程以及关键代码进行了详细的解释和说明。用户可以通过阅读...

    SSM实战项目——Java高并发秒杀API,详细流程+学习笔记.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    一个整合SSM框架的高并发和商品秒杀项目,学习目前较流行的Java框架组合实现高并发秒杀API.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    SpringBoot企业级博客系统(未加密+源码)

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,在企业级应用中被广泛使用。本章节不会对该框架做深入探讨,仅从基于角色的权限管理角度,来实现对系统的权限...

    商城,基于SSM开发的JavaWeb项目.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    使用主流框架组合SSM开发,并引入新技术,全面丰富的一个商城项目.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

    本项目是基于 SpringMVC+Spring+MyBatis (SSM) 架构的高效率便捷开发框架.zip

    适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 ...

Global site tag (gtag.js) - Google Analytics