我们在项目的开发过程中,很多内容是非常机密的,但是这些机密的模块又要完整,还要具备可用的特性。也有很多时候我们项目中需要一些不可抵赖的内容,比如支付宝的余额和支付密码等,但是也要是可控的,不能因为保密就不让修改。这些内容都是计算机网络安全的内容,这个月我们就来看一下网络安全的内容。
1、信息加密技术
回想看日战争时期,日本捕获中国的电台信息非常简单,就是我国的设备落后、信息加密技术落后。如果我们不将信息加密,那很多信息就没有保密性可言了。所以现在的网络技术,都会将比较重要和机密的信息进行加密。
信息加密就是对数据的传输提供保护的手段,利用的是密码学的原理和方法,密码体制根据加密原理的不同可以分成两个部分,一种是对称密钥密码体制,另一种是非对称密钥密码体制。
我们看一下信息加密中经常提到的定义:
- 明文:需要加密、但还没有加密的数据
- 密文:已经加密后的信息内容
- 密钥:加密的时候加入的字符串,如果没有密钥很容易被人推出密码
- 加密算法:把明文加密成密文时使用的转换方法
- 解密:从密文中获取明文的过程
- 解密算法:解密时使用的转换方法
对称密钥密码体制的加密密钥和解密密钥相同,而非对称密钥密码体制的加密密钥和解密密钥不同,很难、甚至几乎不能从加密密钥推出解密密钥,所以比较安全。
对称加密最常用的算法有:DES和AES算法;非对称加密最简单的一种加密算法是:RSA,这也是数字签名最常用的算法。
除了上述的密码加密算法,还有散列算法也可以做到加密的效果,常用算法有:MD5和SHA1。
2、internet中的安全协议
常用的internet安全协议包括internet安全协议(IPsec)、安全套接字层协议(SSL)、传输层安全协议(TLS)。
我们主要来介绍一下SSL安全套接字层协议。
我们访问网站的时候,使用的协议一般是http协议,但是很多时候我们访问网站看到的都是https。https协议就是http协议和ssl协议组合使用而产生的一种安全协议,被称为“超文本传输安全协议”。
https通信协议,会先行和SSL通信,然后由SSL对接收方的身份进行验证,再对发送数据进行加密,在发送过程中将发送的数据进行完整性保护,再由SSL和TCP进行通信。
如果不使用SSL安全协议,http会直接和TCP进行通信,这样的话,发送的数据没被加密而容易被窃听;没有验证接收方身份,容易被伪装,也没有对内容的完整性进行保护,而发送信息容易被篡改。
而SSL参与的http恰好解决了这些问题,所以https就是一个安全的超文本传输协议。
上面提到对称加密和非对称加密,其中对称加密速度快,但是不安全;非对称加密加密速度慢,但是更安全。SSL中使用这两种密钥混合加密,混合加密的原理如下:
使用非对称加密技术将对称加密的密钥发送给客户端,这个过程效率虽然相对较低,但是可以将密钥安全的发送到客户端。
客户端和服务端以后的通信都是用上面发送过来的密钥进行交换数据,这样就效率比较高了。
有的同学又问了,你发送密钥时候进行的非对称数据加密技术,也需要客户端使用公开密钥对数据进行解密,那这个公开密钥从哪里获取呢?为了解决这个问题,权威机构CA提供了数字签名,数字签名里面包含开发者的信息以及公开密钥的信息。
3、防火墙技术
防火墙技术的基本思想是将内部网络和外部网络进行有目的的隔离和控制,保护内部网络不收外部网络的攻击。
防火墙对于计算机具有很好的保护,入侵者想要接触目标计算机,必须先穿越防火墙的防线。但是防火墙不能防病毒,及时很多收费防火墙声称可以防病毒。
防火墙是企业网使用最多的一种安全方案,即把公共数据和资源放在防火墙外部,而内部数据和资源放在防火墙内部,这样外网就访问不到企业的内部数据和资源了。
防火墙作为一种网络安全技术,具有以下的优点:安装简单和价格便宜。
4、计算机病毒与恶意代码的防范
计算机病毒是指在计算机程序中破坏计算机功能,或者毁坏数据影响计算机使用并能自我复制的一组计算机指令或程序代码。
网络蠕虫是一种自我复制的完全独立的恒旭,他的传播不需要借助主机的其他程序,无需人工干预即可进行。
计算机病毒和网络蠕虫,都是恶意代码的一种。
对于病毒的防范,最直接的方法就是安装和使用杀毒软件,比如360杀毒、百度杀毒、瑞星杀毒、卡巴斯基和金山毒霸等。
多数的病毒是使用基于汇编的语言编写的,比如C、C++等,病毒从制造者手中产生的时候都是免杀的,也就是杀毒软件并不会认为他是病毒,只有在传播过程中通过用户的反馈和举报,才能将此病毒收录在杀毒软件的病毒库中。
比较出名的“熊猫烧香”病毒,当初创建了自己的病毒升级服务器,更新速度非常快,让杀毒软件也更新完全跟不上,所以造成这个病毒扩散非常迅速,但是杀毒软件又无法识别的问题。
恶意代码的编写是违反我国刑法的,“熊猫烧香”病毒作者李俊,被判有期徒刑4年,同伙也分别收到惩罚。
5、保障网络安全的非技术手段
保障网络安全的非技术手段需要我们:计时的安装系统补丁和及时进行数据备份。
从web项目开发来说,我们需要使用安全框架开发,比如shiro、springSecurity等;对于数据库进行备份,如双机热备;对于重要数据进行加密,比如密码的加密和支付系统的安全证书等……
网络安全从来没有最安全,只有更安全,我们在项目开发的过程中,需要尽力将我们的系统达到更高的标准,尤其是银行、支付、理财等涉及资金的项目。