第九周作业2019-08-19

1、判断UID是否大于等于500,如果为真就显示为普通用户,如果为假就显示为系统或管理用户

awk -F:'{if($3>500){print $1" is 普通用户"}else{print $1" is 系统账户"}}'/etc/passwd

2、显示用户id为奇数的用户。

awk -F:'$3%2==1{print $0}'/etc/passwd

3、统计web服务访问日志中的ip访问量

awk'{ip[$1]++}END{for(i in ip){print i,ip[i]}}'/var/log/httpd/access_log

4、简述加密类型以及数据加密解密过程

1.对称加密:加密和解密使用同一个密钥;加密算法和解密算法可能不同;

常见对称加密算法:

DES:Data Encryption Standard;

加密端64位明文产生64位密文,解密端使用64位密文还原64位明文;64位为一个块即8个字节,加密和解密使用56位的密钥,DES使用16个迭代块;是现代加密算法,很多s核,p核进行计算;后来被破解;

3DES:Triple DES;

是DES的三个数量级,一个数量级是10的一次方;

AES:Advanced Encryption Standard;

(密钥可为128bits, 192bits, 256bits, 384bits)安全程度非常高;

Blowfish加密算法

Twofish加密算法

IDEA商业加密算法

RC6加密算法

CAST5加密算法

特性:

1、加密、解密使用同一个密钥;

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

缺陷:

1、密钥过多;

2、密钥分发困难;

2. 公钥加密:密钥分为公钥与私钥,成对儿出现

特点:

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

密钥长度较大,例如512bits,2048bits,4096bits;效率低下;

用途:

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

密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方

数据加密

常见算法:

RSA:即能签名、又能加密解密;

DSA:数字签名算法(标准)

ELGamal:

公钥加密工作模式

image

梳理:

---身份认证的实现:

发送方用自己的私钥加密数据特征码,接收方用对方的公钥解密,如果加密成功即可实现身份认证,因为公钥的成对出现的,私钥只有自己有,公钥所有人都有;

---数字签名的实现:

在身份验证中就依赖到了数字签名,发送方用自己的私钥加密数据特征码这个结果就叫数字签名;因此,数据签名就为了完成身份验证的;

---密钥交换的实现:

自己先生成一个密码,要用对方的公钥加密这个自己生成的密码,然后发送给对方,只有对方能解密,对方解密出来的就得到密码了;所以就能使用这个密码来解密使用对称加密方式加密的数据了;

3. 单向加密:即提出数据指纹(特征码);只能加密,不能解密

特性:

定长输出:无论原来的数据是多大级别,其加密结果长度一样;

雪崩效应:原始数据微小改变,将会导致结果巨大变化;

不可逆

用途:

数据完整性校验

系统帐号密码校验

常见算法:

MD5:128bits定长输出

SHA1: 160bits定长输出

SHA256:

SHA384:

SHA512:

CRC32:

密钥算法:

密钥交换: IKE(Internet Key Exchange)

1、公钥加密:实现密钥交换;

密钥是在网上发送的;

2、DH(Deffie-Hellman)算法

不发送密钥就能使双方完成密钥交换

认证PKI:Public Key Infrastructure

公钥基础设施:包括四部分

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库

X.509v3:国际标准化组织定义了证书的结构以及认证协议标准,x.509有三版本;

版本号:x.509的版本号;

序列号

签名算法ID:签名的使用算法;

发行者名称:CA的名称

有效期限:两个日期,起始日期和终止日期

主体名称:证书拥有者名称;

主体公钥:证书拥有者自己的公钥

发行者的惟一标识

主体的惟一标识:证书拥有者

ssl协议

SSL:Secure sockets Layer

Netscape网警公司: 1994发布,有3个版本;

V1.0, V2.0, V3.0(有漏洞)

TLS: Transport Layer Security

IETF: 1999发布,有4个版本;

V1.0(从来没公开,漏洞多), V1.1, V1.2(主流), V1.3(2014年,没到成熟期)

TLS协议采用分层设计:

1、最底层:基础算法原语的实现,aes, rsa, md5

2、第2层:各种算法的实现;

3、第3层:组合算法实现的半成品;

4、最高层:用各种组件拼装而成的各种成品密码学协议软件;

ssl的认证过程:

image

第一步:Visitor生成一个随机数,客户端支持的加密方法,发送给服务端

第二步:Server确认双方使用的加密方法,以及一个服务端生成的随机数(Server random)、以及把服务端的数字证书发送个客户端

第三步:客户端验证数字证书,用CA公钥解密证书,查看证书有效期,和是否被吊销,验证通过后,生成一个新的随机数,(称为预备主密钥Pre-master secret),并使用Server的公钥加密预备主密钥发给Server。公钥自然在证书里提取。

第四步:Server使用自己的私钥,解密Visitor发来的预备主密钥。

第五步:Visitor和Server双方都具有了(客户端随机数+服务端随机数+预备主密钥),它们两者都根据约定的加密方法,使用这三个随机数生成对称密钥——主密钥(也称为对话密钥session key),用来加密接下来的整个对话过程。

之后所有的数据在这次会话中只需要使用“对话密钥”即可,不需要多余的机制

5、搭建私有CA并实现证书颁发

第一步:设置openssl的配置文件:/etc/pki/tls/openssl.conf

match:要求申请填写的信息必须和CA设置的信息一致

optional:可有可无,跟CA设置的信息可以不一致

supplied:必须填写的信息

vim /etc/pki/tls/openssl.conf[ CA_default ]dir            = /etc/pki/CA# Where everything is kept 存放CA的根目录certs          =$dir/certs# Where the issued certs are kept  客户申请证书的存放位置crl_dir        =$dir/crl# Where the issued crl are kept  crl(证书吊销列表)目录的位置database        =$dir/index.txt# database index file.  数据库文件#unique_subject = no                    # Set to 'no' to allow creation of# several ctificates with same subject.new_certs_dir  =$dir/newcerts# default place for new certs.  新证书的存放位置certificate    =$dir/cacert.pem# The CA certificate  CA自签名证书serial          =$dir/serial# The current serial number  存放序列号的文件crlnumber      =$dir/crlnumber# the current crl number  # must be commented out to leave a V1 CRLcrl            =$dir/crl.pem# The current CRL  CRL文件private_key    =$dir/private/cakey.pem# The private key  自己的私钥文件policy          = policy_match  匹配下方哪个中括号里面的策略# For the CA policy[ policy_match ]countryName            = match  国家名称stateOrProvinceName    = match  省名称organizationName        = match  组织名称organizationalUnitName  = optional  组织单位commonName              = supplied  域名emailAddress            = optional  邮件

第二步:  创建配置文件中所需要的文件

touch /etc/pki/CA/index.txt#创建证书索引数据库文件echo01 > /etc/pki/CA/serial#创建第一个证书颁发的序列号文件,以后颁发会自动增长

第三步:生成CA私钥

cd/etc/pki/CA(umask066; openssl genrsa -out private/cakey.pem 2048 )

第四步:生成自签名证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pemYou are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter'.', the field will be left blank.-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:hunanLocality Name (eg, city) [Default City]:changshaOrganization Name (eg, company) [Default Company Ltd]:aaOrganizational Unit Name (eg, section) []:MISCommon Name (eg, your name or your server's hostname) []:ns1.aa.com

Email Address []:

-new:生成新证书签署请求

-x509:专用于CA生成自签证书

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

-days n:证书的有效期限

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

至此CA创建完成

第五步:颁发证书

在需要使用证书的主机上生成证书请求

生成私钥

(umask066; openssl genrsa -out test.key 2048 )

生成证书请求文件

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

国家,省,公司必须一致

将CSR文件传给CA

第六步:CA签署证书,并将证书颁发给请求者

openssl ca -intest.csr -out /etc/pki/CA/certs/test.crt -day 365

你可能感兴趣的:(第九周作业2019-08-19)