基本信息

【插图】

编辑推荐
Java安全领域的百科全书,密码学领域的权威经典
Java应用架构师的必备参考手册
内容简介
计算机书籍
本书是Java安全领域的百科全书,密码学领域的权威经典,4大社区一致鼎力推荐。
全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非对称加密算法、数字签名算法等现今流行的加密算法的原理进行了全面而深入的剖析,而且还结合翔实的范例说明了各种算法的具体应用场景;综合应用篇既细致地讲解了加密技术对数字证书和SSL/TLS协议的应用,又以示例的方式讲解了加密与解密技术在网络中的实际应用,极具实践指导性。
Java开发者将通过本书掌握密码学和Java加密与解密技术的所有细节;系统架构师将通过本书领悟构建安全企业级应用的要义;其他领域的安全工作者也能通过本书一窥加密与解密技术的精髓。
作译者
目录
第1章企业应用安全2
1.1 我们身边的安全问题2
1.2 拿什么来拯救你,我的应用3
1.3 捍卫企业应用安全的银弹8
1.4 为你的企业应用上把锁9
1.5 小结10
第2章企业应用安全的银弹—密码学11
2.1 密码学的发家史11
2.2 密码学定义、术语及其分类15
2.3 保密通信模型17
2.4 古典密码18
2.5 对称密码体制19
2.6 非对称密码体制26
2.7 散列函数28
2.8 数字签名29
2.9 密码学的未来30
2.10 小结32
第3章Java加密利器34
3.1 Java与密码学34
前言
2009年IT界的3大主题是:安全、移动应用开发和云计算。
当你在用IM与好友聊天时,当你通过B2C网站购物时,当你用邮件与客户交流时,当你公司的应用服务器与合作伙伴交换商业数据时你是否考虑过你的数据是否安全?你的隐私是否会被泄露?你的银行卡是否会被盗用?你的竞争对手是否能破解你的敏感数据?
任何一项通过网络交互的数据都有可能是不安全的,而我们却越来越依赖于网络。用户密码、聊天消息、银行卡号、邮件信息、商业敏感数据,如果通过明文传输,后果不堪设想:自己的账号被盗用、隐私成为公共话题、信用卡被人滥用、竞争对手盗用自己的数据于是,为了确保数据不被侵犯,数据加密与解密技术应运而生,成为众多应用中的一项核心技术。
众所周知,Java EE是目前企业应用中使用最广泛的语言之一,几乎在任何一个领域都能看到Java EE的身影。随着加密与解密算法的发展,Java加密与解密技术不断演进,不断提高着数据的安全性,已成为各大企业应用中一项关键性的技术。
很多企业应用领域的架构师都很关注加密与解密算法在应用中的使用,譬如用户密码加密、网络协议加密等。如何在名目繁多的Java加密与解密技术中选择合适的算法进行企业级应用开发,如何解决Java加密与解密技术开发过程中遇到的各种问题,这成为许多开发者,尤其是架构师关注的焦点问题。然而,国内目前还没有一本书能解决这些问题。本书的作者因工作需要,采用Java加密与解密技术成功构建了企业级网银系统。在开发过程中,作者感受到了Java加密与解密技术的精妙。作者希望把Java加密与解密技术在企业应用开发领域的经验和心得分享给广大读者,提升企业应用的安全性。
本书面向的读者
本书主要适合以下读者:
所有利用Java进行企业级应用开发的软件工程师
对于企业级应用软件工程师来讲,这将是一次系统的密码学之旅。本书将介绍密码学理论、Java相关算法实现、开源组件包介绍、数字证书与安全协议等相关内容,并配有相关实例为读者提供详尽实现指导,为构建企业级安全应用提供完整的技术支持。
系统架构师
对于系统架构师来讲,如何使用成熟技术快速构建安全企业应用是安全工作的第一要务。在算法方面,本书详述了Java 6对于密码学算法的相关实现,针对AES算法密钥长度受限问题给出解决办法。同时,针对当前Java 6不支持的算法,如SHA224、ElGamal和ECDSA等,本书详细介绍如何使用第三方开源加密组件包Bouncy Castle进行相关算法实现补充,并且还详细介绍了Apache Commons Codec,这些成熟的组件包都是构建安全企业应用必不可少的工具包。
在架构方面,本书浓墨重彩地介绍了数字证书的构建、SSL/TLS协议服务搭建,并通过相关实例介绍如何构建单向/双向认证服务。
其他安全领域的软件工程师
如今企业级应用已经逐步转变以服务为主的异构体应用,如Web Service应用等。Java加密算法实现遵循密码学相关国际标准,完全可以与其他计算机语言(如C++、C#等)构建的异构体应用进行数据加密交互。本书为读者选择合适的算法并提供详尽的技术实现。
如何阅读本书
全书共分为3个部分:基础篇、实践篇、综合应用篇。
基础篇
本篇共包含4个章节,主要对Java企业级应用安全、密码学理论和Java中与加密相关的API进行了详细介绍,并详细阐述了第三方组件包Bouncy Castle和Apache Commons Codec相关的API。
第1章主要阐述了当前的安全问题,并给出了安全的相关标准。本书将在后续章节内通过各个算法介绍逐一实现这些标准,这些标准也是评判系统安全级别的准则。
媒体评论
—Java开发者社区
作为一名架构师,构建系统时首先应该考虑的就是安全问题。如何才能让你构建的系统坚不可摧,没有安全隐患?掌握加密与解密的技术将会让你在进行系统架构时游刃有余。本书可谓是安全领域的权威经典,是所有Java应用架构师的必备参考手册,强烈推荐。
—架构师社区
本书是目前Java加密与解密领域最全面、最详尽、最前沿的著作之一,它将带领你领略Java安全之美。
—Java中文技术网
密码学是人类最伟大的发明创造之一,是一切安全问题的核心和基础。经过几千年的发展,它在很多行业都发挥着至关重要的作用,尤其是IT领域。本书以通俗的语言,详尽的示例对Java加密与解密的技术进行了详细的阐述,近乎完美。
—Spring开发者社区
对于Java企业级应用开发者而言,加密与解密技术是最重要、最关键的技术之一,必须掌握。本书是Java加密与解密领域的百科全书,不仅内容全面、翔实、实践性强,而且不乏深度。
—Ajax中国
书摘
当计算机将我们包围、当网络无处不在时,安全问题也成为我们日益关心的问题。我们依赖于网络,同时又受限于网络,而网络本身却是不安全的!如今越来越多的企业应用都架设在网络平台之上,虽然能为用户提供更快捷和便利的服务支持,但这些服务支持也越来越庞大。与此同时,为了满足用户日益增长的服务需求,企业应用不断在如何提供更好的服务支持和更大信息量的传输方面加大技术投入。而与此失衡的是,企业应用的安全性却未能受到足够的重视。单凭用户名和口令鉴别用户身份,继而授权用户使用的方式难以确保数据的安全性。
1.1 我们身边的安全问题
安全,似乎是个问题。但是,我们觉得这个话题似乎不是那么关键!通常情况下,我们为用户提供用户名和口令验证的方式就可以避免这个问题,但这不是最佳答案,因为这样做是远远不够的。安全隐患无处不在,还是先来看看我们所处环境的安全状况吧!
存储问题
闪存芯片的快速革命使得移动存储行业发生了质的变化,各种数据存储在各种不同的移动存储设备上。当一部优盘塞满了公司的年度报表、下一年企划策略等各种商业机密后,突然不翼而飞时,我们才会猛然惊醒——优盘中的数据没有任何安全措施,甚至连口令都没有!
通信问题
我们习惯于通过IM工具与好友聊天、交换心情、透漏隐私,甚至通过IM工具与合作公司交换公司私密数据!当你的隐私成为公共话题,当你的公司的商业数据被曝光,你突然发现原来IM工具是不安全的!没错,不管是哪一种IM工具,都在不遗余力地告诫用户聊天信息可能被盗取,“安全提示:不要将银行卡号暴露在您的聊天信息中!”相信大家都不会对这条提示信息感到陌生。
B2C、B2B交易问题
到邮局排队汇款的日子已经一去不复返了,取而代之的是网上银行,轻松地点击一下按钮就能顺利完成转账的操作。