网络安全技术

栏目: 服务器 · 发布时间: 5年前

内容简介:1.对称加密2.非对称加密1.数字签名

本节索引:

一、网络安全基本概念

二、加密技术

1.对称加密

2.非对称加密

三、认证技术

1.数字签名

2.数字证书

四、安全套接层协议SSL与OpenSSL

五、操作:搭建私有根CA,并向CA申请证书

网络安全技术

一、网络安全基本概念

信息安全防护的目标有:

保密性 Confidentiality

信息不泄露给非授权用户、实体或过程,或供其利用的特性。

完整性 Integrity

数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。

可用性 Usability

可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;

可控制性Controlability

对信息的传播及内容具有控制能力。

不可抵赖性 Non-repudiation

不可抵赖性包括对自己行为的不可抵赖及对行为发生的时间的不可抵赖。通过进行身份认证和数字签名可以避免对交易行为的抵赖,通过数字时间戳可以避免对行为发生的抵赖。

对于运维工程师最关键的两个工作职责: 保证数据安全性、保证高可用性

安全防护环节

物理安全:各种设备/主机、机房环境

系统安全:主机或设备的操作系统

应用安全:各种网络服务、应用程序

网络安全:对网络访问的控制、防火墙规则

数据安全:信息的备份与恢复、加密解密

管理安全:各种保障性的规范、流程、方法

生产环境中可能遇到的安全攻击

Spoofing 假冒

假冒指的是某个实体(人或系统)发出含有其他实体身份信息的数据信息,假扮成其他实体,从而以欺骗方式获取一些合法用户的权利和特权。

Tampering 篡改

篡改消息是指一个合法消息的某些部分被改变、删除,消息被延迟或改变顺序,通常用以产生一个未授权的效果。如修改传输消息中的数据,将“允许甲执行操作”改为“允许乙执行操作”。

Repudiation 否认

Information Disclosure 信息泄漏

窃听是网络攻击中最常用的手段。目前应用最广泛的局域网上的数据传送是基于广播方式进行的,这就使一台主机有可能受到本子网上传送的所有信息。

Denial of Service 拒绝服务

拒绝服务即常说的DoS(Deny of Service),会导致对通讯设备正常使用或管理被无条件地终端。通常是对整个网络实施破坏,以达到降低性能、终端服务的目的。这种攻击也可能有一个特定的目标,如到某一特定目的地(如安全审计服务)的所有数据包都被组织。

Elevation of Privilege 提升权限

黑客可能通过一些漏洞来执行一些远程代码,来在你的系统中得到权限,当黑客得到管理者权限之后,就会通过一些特权命令或者提全程序来得到root权限。来达到控制你的系统的目的。

二、加密技术

加密技术 是电子商务采取的基本安全措施,交易双方可根据需要在信息交换的阶段使用。加密技术分为两

类,即 对称加密非对称加密

1.对称加密

对称加密: 加密key1与解密key2用的是用一把密钥

优势: 速度快、效率高,适合加密大量的数据

特性: 将原始数据分割成固定大小的块,逐个进行加密

缺点: 密钥过多;密钥分发;数据来源无法确认

算法: DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5等

对称加密命令:

1)gpg命令:

对称加密file文件

gpg -c file

ls file.gpg

在另一台主机上解密file

gpg -o file -d file.gpg

2)openssl命令:

对称加密:

工具:openssl enc, gpg

算法:3des, aes, blowfish, twofish

enc命令:

帮助:man enc

加密:

openssl enc -e -des3 -a -salt -in testfile

-out testfile.cipher

解密:

openssl enc -d -des3 -a -salt –in testfile.cipher

-out testfile

openssl ?

2.非对称加密

使用 一对密钥 来分别完成加密和解密操作,其中一个公开发布(即 公钥 ),另一个由用户自己秘密保存(即 私钥

举例来讲,Alice要与Bob进行通信:

Alice —> Bob

Alice:public-A(公钥),secret-A(私钥)

Bob:public-B(公钥),secret-B(私钥)

公钥公开,私钥不可公开,只有自己有

公钥加密—>需要对应私钥解密

优点: 解决了对称加密无法确认数据来源,密钥过多的缺点

缺点: 加密效率低、速度慢、密码长,适合加密较小的数据

算法: RSA(加密、数字签名),DSA(数字签名),ELGamal

data—加密Pb(data)—解密Sb{Pb(data)}—data    加密功能

data—加密Sa(data)—解密Pa{Sa(data)}—data     数据来源功能

非对称算法DES 对称算法RSA 和大概对应关系:

加密算法  文件大小  加密后大小  加密所需时间  解密所需时间

DES           1G               2G                    4m                   8m

RSA           1G               1G                    1m                 64hour

非对称加密命令:

1)gpg命令:

在hostB主机上用公钥加密,在hostA主机上解密

在hostA主机上生成公钥/私钥对

注:此步骤必须在图形界面下进行

gpg –gen-key          rng_tools

在hostA主机上查看公钥

gpg –list-keys

在hostA主机上导出公钥到wang.pubkey

gpg -a –export -o wang.pubkey

从hostA主机上复制公钥文件到需加密的B主机上

scp wang.pubkey hostB:

在需加密数据的hostB主机上生成公钥/私钥对

gpg –list-keys

gpg –gen-key

在hostB主机上导入公钥

gpg –import wang.pubkey

gpg –list-keys

用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg

gpg -e -r wangx file

file file.gpg

复制加密文件到hostA主机

scp fstab.gpg hostA:

在hostA主机解密文件

gpg -d file.gpg

gpg -o file -d file.gpg

删除公钥和私钥

gpg –delete-keys wangx

gpg –delete-secret-keys wangx

2)openssl命令:

生成密钥对:man genrsa

生成私钥

openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

(umask 077; openssl genrsa –out test.key –des 2048)

openssl rsa -in test.key –out test2.key 将加密key解密

从私钥中提取出公钥

openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE

openssl rsa –in test.key –pubout –out test.key.pub

三、认证技术

认证技术 是用电子手段证明发送者和接收者身份及其文件完整性的技术,即确认双方的身份信息在传送或存储过程中未被篡改过。

要想解释数字签名的原理,先来了解 hash单向散列 digest摘要 概念:

单向散列:将任意数据缩小成固定大小的“指纹”

特性:

任意长度输入

固定长度输出

若修改数据,指纹也会改变(“不会产生冲突”)

法从指纹中重新生成数据(“单向”)

功能: 数据完整性

常见hash算法:

md5: 128bits、sha1: 160bits、sha224

sha256、sha384、sha512

常用工具:

md5sum | sha1sum [ –check ] file

openssl、gpg

rpm -V

digest摘要=hash(data)

经过hash算法得出的结果我们称为 摘要 ,摘要单向不可推,即 只拿到摘要digest是无法反推出数据的

特性: 数据不变,摘要不变;数据有小变化,则摘要完全改变,雪崩效应

digest长度固定大小

md5:128

shal:160

1.数字签名

数字签名:对数据进行hash计算后的摘要进行私钥加密。

也称电子签名,如同出示手写签名一样,能起到电子文件认证、核准和生效的作用。

即:Sa{hash(data)}

数字证书完整流程:

网络安全技术 客户端:

1.对原文进行hash运算得到摘要digest

hash(data)

2.将摘要用本方私钥加密得到数字签名

Sa{hash(data)}

3.连同原文同签名一起发送

data+Sa{hash(data)}

服务器端:

1.接收到原文与签名后,用客户端公钥解锁摘要

pa–>hash(data)

2.再对原文进行hash计算

hash(data)

3.计算后的摘要与解锁摘要对比;如相同,则未被篡改;如不同,则发生过篡改

pa–>hash(data)对比 hash(data)

2.数字证书

数字证书 是一个经证书授权中心(CA)数字签名的包括公钥拥有者信息以及公钥的文件。

数字证书的最主要构成包括一个用户公钥,加上密钥所有者的用户身份标识符,以及用户信任的证书权威机构(CA)签名

数字证书相关概念:

签证机构:CA(Certificate Authority)

注册机构:RA

证书吊销列表:CRL

X.509:定义了证书的结构以及认证协议标准

版本号

序列号

签名算法

颁发者

有效期限

主体名称

根CA: 普通CA上端还有其他CA认证,一个CA认证链的最顶端称为根CA或Root CA,Root CA自己给自己签名。

数字证书类型:

普通域名证书:www.tmall.com 只签名一个网站地址

泛域名证书:*.tmall.com            签名一类网站地址

数字证书获取:

a)使用证书授权机构

生成签名请求(csr)

将csr发送给CA

从CA处接收签名

b)自签名的证书

自己签发自己的公钥

适用于公司内部网络加密,互联网中不认可

四、安全套接层协议SSL与OpenSSL

S SL协议 位于传输层和应用层之间,由 SSL记录协议、SSL握手协议和SSL警报协议 组成的。

SSL握手协议 被用来在客户与服务器真正传输应用层数据之前建立安全机制。当客户与服务器第一次通信时,双方通过握手协议在版本号、密钥交换算法、数据加密算法和Hash算法上达成一致,然后互相验证

对方身份,最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户和服务器各自根据此秘密信息产生数据加密算法和Hash算法参数。

SSL记录协议 根据SSL握手协议协商的参数,对应用层送来的数据进行加密、压缩、计算消息鉴别码MAC,然后经网络传输层发送给对方。

SSL警报协议 用来在客户和服务器之间传递SSL出错信息。

Record 协议: 包括对消息的分段、压缩、消息认证和完整性保护、加密等

HTTPS 协议: 就是“HTTP 协议”和“SSL/TLS 协议”的组合。HTTP over

SSL”或“HTTP over TLS”,对http协议的文本数据进行加密处理后,成为二

进制形式传输

OpenSSL:

OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

三个组件:

openssl:多用途的命令行工具,包openssl

libcrypto:加密算法库,包openssl-libs

libssl:加密模块应用库,实现了ssl及tls,包nss

openssl命令:

两种运行模式:交互模式和批处理模式

openssl version:程序版本号

标准命令、消息摘要命令、加密命令

标准命令:

enc, ca, req, …

对称加密与非对称加密命令上面已经提到,介绍下openssl的其他功能:

单向加密:

工具:md5sum, sha1sum, sha224sum,sha256sum…

openssl dgst

dgst命令:

帮助:man dgst

openssl dgst -md5 [-hex默认] /PATH/SOMEFILE

openssl dgst -md5 testfile

md5sum /PATH/TO/SOMEFILE

MAC: Message Authentication Code,单向加密的一种延伸应用,用于实现

网络通信中保证所传输数据的完整性机制

CBC-MAC

HMAC:使用md5或sha1算法

生成用户密码:

passwd命令:

帮助:man sslpasswd

openssl passwd -1 -salt SALT(最多8位)

openssl passwd -1 –salt centos

生成随机数:

帮助:man sslrand

openssl rand -base64|-hex NUM

NUM: 表示字节数;-hex时,每个字符为十六进制,相当于4位二进制,出现的字符数为NUM*2

随机数生成器:伪随机数字

键盘和鼠标,块设备中断

/dev/random:仅从熵池返回随机数;随机数用尽,阻塞

/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞

五、操作:搭建私有根CA,并向CA申请证书

一、建立Root CA

1.生成私钥

vim /etc/pki/tls/openssl.conf

(umask 066;openssl genrsa -out private/cakey.pem  4096)

2.自签名证书

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

-x509代表自己给自己前面

交互式填写:

国家:CN

省份:beijing

城市:beijing

公司名称:magedu

部门:M30

Common name:Magedu.com

查看生成的签名证书

openssl x509 -in cacert.pem  -noout -text

二、用户或服务器

1.生成私钥

(umask 066;openssl genrsa -out app.key 1024)

2.生成证书申请

openssl req -new -key app.key -out app.csr

交互式填写:

国家:CN

省份:beijing

城市:beijing

公司名称:magedu

部门:M30

Common name:app.Magedu.com

注:国家,省份,公司必须一致才能申请成功

3.将申请文件发给CA

scp app.csr   CA:IP

三、CA颁发证书

touch index.txt     建立已颁发证书信息列表文件;V:生效;R:吊销;

echo 0F > serial     建立证书序列号

openssl ca -in app.csr -out  certs/app.crt  -days 100

四、证书发送给客户端

scp app.crt   Client:IP

五、应用软件使用证书

本文来自投稿,不代表 Linux 运维部落立场,如若转载,请注明出处:http://www.178linux.com/98805


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精通正则表达式

精通正则表达式

弗里德尔 / 东南大学出版社 / 2005-9 / 72.00元

正则表达式是一种用来操作文本和数据的强大工具。近年来,它们快速广泛传播,并被多种流行工具和语言作为标准特性提供,如Perl、Java、VB.NET、C#(及任何使用.NET框架的语言)、PHP、Python、Ruby、Tcl、MySQL、awk、Emacs等。 如果还未使用过正则表达式,从本书中您将发现一个掌控数据的全新世界。如果使用过它们,您将会充分意识到本书空前的深度和广度。如果您认为自己已经......一起来看看 《精通正则表达式》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器