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

加密和安全

时间:2017-09-13 21:16:35      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:imp   分离   ftp   目标   证书管理   备份   pat   zed   配置   

目录:

  • 安全机制
  • 安全算法 
  • gpg
  • PKI和CA
  • openssl
  • 证书管理
  • ssh服务和dropbear
  • aide
  • Sudo
  • TCP Wrappers
  • PAM模块。

 

1--[安全机制]

信息安全防护的目标      保密性 Confidentiality      完整性 Integrity      可用性 Usability       可控制性Controlability        不可否认性 Non-repudiation

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

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

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

                      网络安全:对网络访问的控制、防火墙规则 数据安全:信息的备份与恢复、加密解密

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

安全设计原则:使用成熟的安全系统     以小人之心度输入数据     外部系统是不安全的     最小授权     减少外部接口    缺省使用安全模式    安全不是似是而非    从STRIDE思考   在入口处检查    从管理上保护好你的系统

2--[安全算法]

常用安全技术

  认证

  授权

  安全通信

  审计

密码算法和协议: 对称加密      公钥加密      单向加密       认证协议

Linux系统:OpenSSL, gpg(pgp协议的实现)

不安全的传统协议 ? telnet、FTP、POP3等等;

不安全密码 ? http、smtp、NFS等等;

不安全信息 ? Ldap、NIS、rsh等等;不安全验证

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

      DES:Data Encryption Standard,56bits 3DES:

      AES:Advanced (128, 192, 256bits) Blowfish,Twofish IDEA,RC6,CAST5

               特性: 1、加密、解密使用同一个密钥,效率高 2、将原始数据分割成固定大小的块,逐个进行加密

          缺陷: 1、密钥过多 2、密钥分发 3、数据来源无法确认

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

        公钥:公开给所有人;public key           私钥:自己留存,必须保证其私密性;secret key

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

      功能: 数字签名:主要在于让接收方确认发送方身份    对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给 对方     数据加密:适合加密较小数据

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

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

   非对称加密:基于一对公钥/密钥对 ? 用密钥对中的一个加密,另一个解密

      实现加密: ? 接收者 生成公钥/密钥对:P和S 公开公钥P,保密密钥S

            ? 发送者 使用接收者的公钥来加密消息M 将P(M)发送给接收者

              ? 接收者 使用密钥S来解密:M=S(P(M))

      实现数字签名以确认身份:? 发送者 生成公钥/密钥对:P和S 公开公钥P,保密密钥S 使用密钥S来加密消息M 发送给接收者S(M)

                  ? 接收者 使用发送者的公钥来解密M=P(S(M))

   结合签名和加密

   分离签名

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

   密钥交换:IKE( Internet Key Exchange )公钥加密: DH (Deffie-Hellman):生成会话密钥

   DH:

  •               1、A: a,p 协商生成公开的整数a, 大素数p
  •                     B: a,p
  •               2、A:生成隐私数据 :x (x<p ),计算得出 a^x%p,发送给B
  •                    B:生成隐私数据 :y,计算得出 a^y%p,发送给A
  •               3、A:计算得出 [(a^y%p)^x] %p = a^xy%p,生成为密钥
  •                    B:计算得出 [(a^x%p)^y] %p = a^xy%p,生成为密钥

 3--[gpg]


        1.使用gpg实现对称加密:gpg -c file ;输入密码;

   技术分享

        技术分享

        技术分享

        2.在另一台主机上解密:gpg  -o  file -d file.gpg

   技术分享

  3.使用gpg实现公钥加密:在hostB主机上用公钥加密,在hostA主机上解密 

  1.  在hostA主机上生成公钥/私钥对 gpg --gen-key  
  2.  在hostA主机上查看公钥 gpg --list-keys
  3.  在hostA主机上导出公钥root.pubkey gpg -a --export -o root.pubkey
  4.  从hostA主机上复制公钥文件到需加密的B主机上 scp root.pubkey hostB:
  5. 在需加密数据的hostB主机上生成公钥/私钥对 gpg --list-keys gpg --gen-key
  6. 在hostB主机上导入公钥 gpg --import root.pubkey gpg --list-keys
  7. 用从hostA主机导入的公钥,加密hostB主机的文件file,生成 file.gpg gpg -e -r mima file file file.gpg
  8. 复制加密文件到hostA主机 scp fstab.gpg hostA:
  9. 在hostA主机解密文件 gpg -d file.gpg gpg -o file -d file.gpg
  10. 删除公钥和私钥 gpg --delete-keys mima gpg --delete-secret-keys mima

4--[PKI和CA]

       PKI: Public Key Infrastructure

  •        签证机构: CA(Certificate Authority)
  •        注册机构:RA
  •        证书吊销列表:CRL 

       X.509:定义了证书的结构以及认证协议标准、 版本号、 序列号、 签名算法 、颁发者 、有效期限 、主体名称。

     证书类型: 证书授权机构的证书 、服务器、 用户证书

     获取证书两种方法:

      ?          使用证书授权机构 生成签名请求(csr ) 将csr发送给CA 从CA处接收签名

      ?          自签名的证书 自已签发自己的公钥

5--[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

      生成用户密码: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

      公钥加密:

    算法:RSA, ELGamal

    工具:gpg, openssl rsautl(man rsautl)

   数字签名:

    算法:RSA, DSA, ELGamal

    密钥交换:

    算法:dh

    DSA: Digital Signature Algorithm

    DSS:Digital Signature Standard

    RSA:生成密钥对儿:

             生成私钥 openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS (umask 077; openssl genrsa –out test.key –des 2048)

             从私钥中提取出公钥 openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE Openssl rsa –in test.key –pubout –out test.key.pub

6--[证书管理]

         创建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf

    三种策略:匹配、支持和可选

         匹配指要求申请填写的信息跟CA设置信息必须一致,支持指必 须填写这项申请信息,可选指可有可无

        1、创建所需要的文件 touch /etc/pki/CA/index.txt 生成证书索引数据库文件 echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

        2、 CA自签证书 生成私钥 cd /etc/pki/CA/ (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

                         3、生成自签名证书 openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem -new:

             生成新证书签署请求 -x509: 专用于CA生成自签证书

           -key: 生成请求时用到的私钥文件

                                      -days n:证书的有效期限

                                      -out /PATH/TO/SOMECERTFILE: 证书的保存路径

                         4、颁发证书

           ? A 在需要使用证书的主机生成证书请求 给web服务器生成私钥 (umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048) 生成证书申请文件                                                     openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr

           ? B 将证书请求文件传输给CA

                ? C CA签署证书,并将证书颁发给请求者 openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 365 注意:默认国家,省,公司名称三项必须和                                               CA一致

                                       ? D 查看证书中的信息: openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates openssl ca -status SERIAL 查看指定编号的                                                证书状态

        5、吊销证书

            ? A 在客户端获取要吊销的证书的serial openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

                                        ? B 在CA上,根据客户提交的serial与subject信息,对比检验是 否与index.txt文件中的信息一致,吊销证书:openssl ca -revoke /etc/pki/CA/newcerts

                                             /SERIAL.pem      

                                        ? C 指定第一个吊销证书的编号 注意:第一次更新证书吊销列表前,才需要执行 echo 01 > /etc/pki/CA/crlnumber

                                        ? D 更新证书吊销列表 openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem 查看crl文件: openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text

 

7--[ssh服务和dropbear]

         ssh: secure shell, protocol, 22/tcp, 安全的远程登录

         具体的软件实现: OpenSSH: ssh协议的开源实现,CentOS默认安装

                                      dropbear:另一个开源实现

         两种方式的用户登录认证: 基于password

                                                    基于key

         基于用户名口令登录验证原理:

        技术分享

          基于key认证原理:

              (1) 在客户端生成密钥对 ssh-keygen -t rsa [-P ‘‘] [-f “~/.ssh/id_rsa"]

         (2) 把公钥文件传输至远程服务器对应用户的家目录 ssh-copy-id [-i [identity_file]] [user@]host

         (3) 测试

       (4) 在SecureCRT或Xshell实现基于key验证 在SecureCRT工具—>创建公钥—>生成Identity.pub文件 转化为openssh兼容格式(适合SecureCRT,Xshell不需要转化                               格式),并复制到需登录主机上相应文件authorized_keys中, 注意权限必须为600,在需登录的ssh主机上执行: ssh-keygen -i -f Identity.pub >>                                                       .ssh/authorized_keys 47 基于key认证

       (5)重设私钥口令: ssh-keygen –p

       (6)验证代理(authentication agent)保密解密后的密钥 ? 这样口令就只需要输入一次 ? 在GNOME中,代理被自动提供给root用户 ? 否则运行ssh-agent bash

                        (7)钥匙通过命令添加给代理 ssh-add

           ssh客户端组件:ssh, 配置文件:/etc/ssh/ssh_config

       Host PATTERN StrictHostKeyChecking no 首次登录不显示检查提示

                 格式:ssh [user@]host [COMMAND] ssh [-l user] host [COMMAND]

             -p port:远程服务器监听的端口

             -b:指定连接的源IP

             -v:调试模式

             -C:压缩方式

             -X:支持x11转发

             -Y:支持信任x11转发   ForwardX11Trusted yes

                -t: 强制伪tty分配 ssh -t remoteserver1 ssh remoteserver2

 

加密和安全

标签:imp   分离   ftp   目标   证书管理   备份   pat   zed   配置   

原文地址:http://www.cnblogs.com/heiye123/p/7507531.html

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