码迷,mamicode.com
首页 > 其他好文 > 详细

安全和加密

时间:2017-09-25 09:38:33      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:linux   安全   加密   

安全和加密需要注意的事项

讲到安全机制,我们信息安全防护的首要目标应该是保密性、完整性、可用性、可控制性、不可否认性。而在安全防护环节,物理安全(各种设备/主机、机房环境)、系统安全(主机或设备的操作系统)、应用安全(各种网络服务、应用程序)、网络安全(对网络访问的控制、防火墙规则)、数据安全(信息的备份与恢复、加密解密)等环节是尤其需要注意的。

受到攻击常出现的状况是:

假冒

篡改

否认

信息泄漏

拒绝服务

提升权限

设计安全机制的基本原则是:

使用成熟的安全系统

严格把控输入数据

外部系统是不安全的

最小授权

减少外部接口

缺省使用安全模式

安全不是似是而非

STRIDE思考

在入口处检查

从管理上保护好你的系统

 

不安全的传统协议:

TelnetFTPPOP3等待;不这全密码

httpsmtpNFS等等;不安全信息

LdopNISrsh等等;不安全验证

 

密码算法和协议:

对称加密:加密和解密都使用一个同一个密钥

属于对称加密的有:DES(56),  AES, Blowfish, Twofish, IDEA, RC6, CAST5

特性:加密、解密使用同一个密钥,效率高

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

缺陷:密钥过多

  密钥分发

  数据来源无法确定

 

公钥加密:密钥是成对出现

公钥:公开给所有人;public key

私钥:自己留存,必须保证其私密性;secret key

特点:用公钥加密数据,从能使用与之配对的私钥解密;反之亦然;

功能:

数字签名:主要在于让接收方确认发送方身份

对称密钥交换:发送方用对方的公钥加密一个对称密钥后以给对方

数据加密:适合加密较小数据

缺点:密钥长,加密解密效率低下

算法:

RSA(加密,数字签名),DSA(数字签名),ELGamal

单向加密:hash算法的工作原理是将任意数据缩小成固定大小的“指纹”

任意长度输入

固定长度输出

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

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

功能:数据完整性

常见算式:

md5: 128bitssha1160bitsha224sha256sha384sha512

常用工具:

md5sum|sha1sum  [ --check ] file

openssl, gpg

rpm -V

 技术分享

技术分享 

由上图可知:要想知道一个程序是否被改变,可以比对二者的sha1sum

查看文件完整性的两种实施方式:

(1)被安装过的文件:

MD5单向加密

rpm --verify package_name (or -V)

(2)发行的软件包文件

GPG公钥签名

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat*

Rpm --checksig pakage_file_name (or -K

         使用gpg实现对称加密:

(1)对称加密file文件

gpg -c file

ls file.gpg

(2)在另一台主机上解密file

gpg -o file -d file.gpg

使用gpg工具实现公钥加密:

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

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

gpg --gen-key

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 xiaochun file

file file.gpg

复制加密文件到hostA主机

scp fstab.gpg hostA

hostA主机解密文件

gpg -d file.gpg

gpg -o file -d file.gpg

删除公钥和私钥

gpg --delete-keys xiaochun

gpg --delete-secret-keys xiaochun

Eg:

[root@localhost bin]# gpg --gen-key

gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

 

gpg: directory `/root/.gnupg‘ created

gpg: new configuration file `/root/.gnupg/gpg.conf‘ created

gpg: WARNING: options in `/root/.gnupg/gpg.conf‘ are not yet active during this run

gpg: keyring `/root/.gnupg/secring.gpg‘ created

gpg: keyring `/root/.gnupg/pubring.gpg‘ created

Please select what kind of key you want:

   (1) RSA and RSA (default)

   (2) DSA and Elgamal

   (3) DSA (sign only)

   (4) RSA (sign only)

Your selection? 1

RSA keys may be between 1024 and 4096 bits long.

What keysize do you want? (2048) 1024

Requested keysize is 1024 bits

Please specify how long the key should be valid.

         0 = key does not expire

      <n>  = key expires in n days

      <n>w = key expires in n weeks

      <n>m = key expires in n months

      <n>y = key expires in n years

Key is valid for? (0) 1

Key expires at Wed 20 Sep 2017 03:00:47 PM CST

Is this correct? (y/N) y

 

GnuPG needs to construct a user ID to identify your key.

 

Real name: xiaohong

Email address:

Comment:

You selected this USER-ID:

    "xiaohong"

 

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

You need a Passphrase to protect your secret key.

 

can‘t connect to `/root/.gnupg/S.gpg-agent‘: No such file or directory

gpg-agent[5795]: directory `/root/.gnupg/private-keys-v1.d‘ created

 

 

 

 

 

              ┌─────────────────────────────────────────────────────┐

              │ Enter passphrase                                    

              │                                                     │

              │                                                     │

              │ Passphrase **********______________________________

              │                                                     │

              │       <OK>                             <Cancel>     

              └─────────────────────────────────────────────────────┘

 

 

 

 

 

              ┌─────────────────────────────────────────────────────┐

              │ Please re-enter this passphrase                     

              │                                                     │

              │ Passphrase **********______________________________

              │                                                     │

              │       <OK>                             <Cancel>     

              └─────────────────────────────────────────────────────┘

 

 

 

 

 

We need to generate a lot of random bytes. It is a good idea to perform

some other action (type on the keyboard, move the mouse, utilize the

disks) during the prime generation; this gives the random number

generator a better chance to gain enough entropy.

在上面文字下方界面,你可以一直敲击键盘或移动鼠标,就可以了,

下面是在/root/.gnupg/下面生成了以下文件

技术分享 

用下面命令查看公钥

技术分享 

以同样的方法在另一台主机上生成公钥私钥对

技术分享 

导出公钥到xiaohong.pubkey

技术分享 

查看公钥内容

技术分享 

从主机A复制到主机B

技术分享 

然后,将从主机A导入的公钥也导入,由图可知,主机B有了两把公钥

技术分享 

/boot/bin/for6.15.sh加密

 

认证协议

 


本文出自 “12028281” 博客,谢绝转载!

安全和加密

标签:linux   安全   加密   

原文地址:http://12038281.blog.51cto.com/12028281/1968218

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!