TLS全称"transport layer security"指的是传输层安全,传输层是OSI参考模型的第四层,提供数据可靠或不可靠的传输,我们这里只讲可靠的传输.可以说现在没有绝对安全的网络,比方说Randy和Merry通信,网络上有个Hacker使用Sniffer,他很容易就能抓到他们之间通信的数据包,而且还可以对数据进行篡改,你想想,若是像国家银行这样的部门的数据被人嗅探走了进行篡改,那会是什么样的结果,岂不乱了套...所以我们要对传输的数据进行加密,这样会安全些...
对于PKI和PSK两种Provision方法有了一定的了解。随着学习的深入感觉AMT技术如果从两个大的方面来看的话,可以说是分为网络技术和嵌入式技术。对于ME的provision方法,可以说就是网络技术的综合运用。首先是建立一个安全的网络通信环境,然后是通过网络传输数据,对ME进行远程的配置。在本地端,ME可以说是一个嵌入式系统,如果从非常广的从面来看的话,BIOS也可以看为一个嵌入式操作系统。
Intel提供了对于ME控制的API函数,我们如果掌握了对于ME的PROVISOION的方法之后,知道一定的编程方法之后,就可以对于ME进行一定的设置,可以实现一定的功能。如果要是非常厉害的话,就可以编写自己的AMT控制软件。如果我们只是从功能的层面来看的话,我们可以将AMT技术认为是远程控制的BIOS任务。个人感觉ME和BIOS之间有数据的通信,ME可以读取和修改BIOS当中的数据。在DTK工具当中,我们一般用SOL来读取BIOS当中的信息。在网络当中,有一类比较简单的PPP通信协议,可以实现数据的传输,这种协议比较简单,容易实现。AMT支持OOB通信,在OS崩溃或是没有OS的时候,也能够传输数据,需要ME有单独的TCP/IP协议栈,能够使他实现上述功能。
PSK 全称是Pre-shared Key,是一种算法,主要用来建立网络上的安全的通信连接。在这种算法当中,包含了一个标准的TLS_PSK handshake。Intel AMT 作为Tls Server,配置Server作为TLS Client。
下面我们谈谈加密的方式....
单向加密:保证数据完成性...(双方进行通信的时候,防止被第三方将嗅探到的数据进行更改在发给受害者.所以要检查数据的完整性..)
对称加密:加密数据...(对数据进行加密,对称加密需要双方有共同的密码.使用密码变换机制.即使hacker捕获到数据包,也是一堆乱码.他要进行破解会得很长时间..)
非对称加密:身份验证,密钥交换..(Randy和Merry通信,Randy必须保证他是在和Merry通信,而不是冒充Merry的人,所以两人要进行密钥的交换,确保是对方后再通信.)
先简单介绍一下openssl的一些用法...
#openssl version (显示当前使用openssl版本信息..)
#openssl version -a (除了显示当前openssl版本信息外,还显示加密算法..)
#openssl ? (我们可以使用此命令来查看openssl支持的加密命令...)
#openssl speed (分别显示所有加密算法的速度,也可以指定某个算法.查看其加密速度..)
#openssl ciphers (显示常用的加密算法...)
下面我们来举个加密档案的列子,比方说我们现在又个档案名字叫test,指定加密方式为des3,默认使用MD5...
#openssl enc -des3 -a -sal
t -in test -out test.des3 (执行完此命令后输入密码,密码为redhat,记住test.des3是加密后的文件,后面指定加密方式,为了以后解密时用到..)
#rm -rf test
#openssl enc -d -des3 -a -salt -in test.des3 -out test (输入密码redhat,解密文件后输出到test文件中,然后我们用cat命令去查看会发现和以前test文件内容一样..)
#openssl rand -base64 5 (生成一个随机数...在创建密钥的时候用到..)
单向加密用来提取一段数据的特征码...
sha是指安全的哈希算法,sha1安全但是据算起来很慢...所以一般采用MD5
#sha1sum FILENAME > FILENAME.SHA (计算一个文件的效验码追加到FILENAME.SHA中)
#openssl dgst -sha1 FILENAME (也是计算文件效验码,和上一个命令差不多,只是显示结果格式不同而已)
#sha1sum --check FILENAME.SHA (可以查看FILENAME中的内容是否被改动过,这些我第一测试过,如果文件内容被改动执行结果会报错,否则就显示OK,证明没改动过..)
接下来我们配置一个CA服务器,这个至关重要,很多一些重要的机构中都要用到....
配置一个CA服务器...(这儿我们把CA服务器也当成客户机,方便测试用)
#cd /etc/pki/CA
为CA服务器生成一个2048位的密钥追加到cakey.pem中...
#openssl genrsa 2048 > private/cakey.pem
CA服务器为自己签发证书,有效期限为3655天...
#openssl req -new -x509 -key private/cakey.pem -out .cacert.pem -days 3655
编辑此文件找到[ CA_default ]
#Vim /etc/pki/tls/openssl.cnf
将dir = ../../CA改成dir = /etc/pki/CA
创建工作目录和所需要的文件...
mkdir ./newcerts
touch ./{serial,index.txt}
向serial文件中写入一个编号,这里我们就以00开始...
echo "00" > ./serial
客户端的配置...
创建工作目录...
mkdir /root/testcrt ;cd /root/testcrt
为客户端生成一个1024位的密钥追加到test.key中...
openssl genrsa 1024 > test.key
从客户端的私钥中提取公钥放到test.pub中...
openssl rsa -in test.key -pubout -out test.pub
用自己的密钥生成一个请求提交给CA服务器...
openssl req -new -key test.key -out test.csr
查看自己提交的请求,确认没有错误然后提交请求...
openssl req -in test.csr -noout -text
CA签发来自客户机请求的证书
openssl ca -in test.csr -out test.crt
查看签发的证书...
openssl x509 -in test.crt -noout -text