linux -对称加密、 非对称加密

简介:

对称加密

加密和解密用的是相同的密码。

安全强度依赖密码的强度。

加密和解密效率非常快。


非对称加密

加密和解密用的是不相同的密钥。

效率非常低,不适合对大尺寸数据进行处理。



私钥

是钥匙持有人自己生成并且自行保管,绝对不能泄漏的。它是用于对数据的“签名”---其实最终效果也就是加密。使用私钥对经过公钥加密后的数据进行解密,这个过程叫“校验”。


公钥

是在私钥的基础上生成对应的密钥文件,是对签名的数据进行“解密”---对数据解密。也能使用公钥处理明文数据,这个过程叫“加密”。


证书

通过ca的私钥对某个公钥和公钥持有人的信息进行签名得来。--- 其实就是用ca的私钥“加密” 某个公钥和公钥信息得到的加密文件。



例子: 部署一个https的加密网站


一个IP只能支持建立一个加密网站。



1、安装apache的ssl模块


# yum install mod_ssl -y


安装玩之后,默认会自定成生配置文件。


2、编辑

# vim /etc/httpd/conf.d/ssl.conf


LoadModule ssl_module modules/mod_ssl.so

Listen 443


...

<VirtualHost _default_:443>

DocumentRoot "/share/weeken_03" <---修改

ServerName 10.1.1.21:443 <---修改

...

SSLEngine on

..


SSLCertificateFile /etc/httpd/conf.d/tanpao.crt

SSLCertificateKeyFile /etc/httpd/conf.d/tanpao.key

....

</VirtualHost>






我们生成的证书:

smtp+ssl == smtps

pop3 +ssl == pop3s

imap + ssl == imaps



=========================================================================



本地磁盘数据加密



加密前:

普通文件--> 挂载(调用文件系统驱动读取分区上的对应格式数据)---格式化---sda7


加密后:

普通文件--> 挂载----普通文件系统格式化--->加密驱动--初始化-->sda7




1、准备一个没有重要数据的分区进行加密初始化


初始化后,原有的数据是不可恢复



# cryptsetup -y luksFormat /dev/sda10


WARNING!

========

This will overwrite data on /dev/sda10 irrevocably.


Are you sure? (Type uppercase yes): YES

Enter LUKS passphrase:

Verify passphrase:



2、使用密码打开被加密驱动保护的分区



# cryptsetup luksOpen /dev/sda10 sda10_crypt

Enter passphrase for /dev/sda10: <---输入密码


# ll /dev/mapper/sda10_crypt <---被加密驱动监视的设备文件,所有数据读写都必须经过该设备文件,而对该设备文件的数据读写都是经过加密驱动的解密和加密。



3、首次使用加密分区,需要使用普通文件系统进行首次的格式化

# mkfs.ext4 /dev/mapper/sda10_crypt



4、挂载、测试


# mount /dev/mapper/sda10_crypt /mnt



使用完毕,就取消挂载并且关闭加密设备


# umount /mnt

# cryptsetup luksClose /dev/mapper/sda10_crypt




修改密码: 先增加一个新密码,再删除原有的其中一个旧密码

# cryptsetup luksAddKey /dev/sda10

Enter any passphrase: <---输入原来的任意一个旧密码

Enter new passphrase for key slot:  <---输入新密码

Verify passphrase:


# cryptsetup luksRemoveKey /dev/sda10

Enter LUKS passphrase to be deleted: <--输入之前的旧密码

==========================================================================================


Linux下磁盘加密——luks

LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。 www.2cto.com

工具:cryptsetup(默认已经安装)

常用参数:luksFormat、luksOpen、luksClose、luksAddKey

使用cryptsetup对分区进行了加密后,这个分区就不再允许直接挂载。LUKS也是一种基于device mapper 机制的加密方案。如果要使用这个分区,必须对这个分区做一个映射,映射到/dev/mapper这个目录里去,我们只能挂载这个映射才能使用。然而做映射的时候是需要输入解密密码的。

Crypsetup工具加密的特点:

加密后不能直接挂载

加密后硬盘丢失也不用担心数据被盗

加密后必须做映射才能挂载

步骤:

1.  创建分区并加密分区

2.  映射分区

3.  格式化分区并挂载使用

4. 关闭映射分区

创建一个磁盘分区/dev/sdb1,不进行格式化

1、 加密分区 www.2cto.com

# cryptsetup -v -y -c aes-cbc-plain luksFormat /dev/sdb1

WARNING!

========

This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES --> 注意这里必须是大写的YES

Enter LUKS passphrase:

Verify passphrase:

Command successful.

#

2、 映射分区

# cryptsetup luksOpen /dev/sdb1 sx_disk //把sdb1映射为sx_disk

Enter passphrase for /dev/sdb1:

# ll -d /dev/mapper/sx_disk

lrwxrwxrwx. 1 root root 7 6月 25 03:24 /dev/mapper/sx_disk -> ../dm-0

# cryptsetup status /dev/mapper/sx_disk //查看映射分区状态

/dev/mapper//dev/mapper/sx_disk is active.

type: LUKS1

cipher: aes-cbc-plain

keysize: 256 bits

device: /dev/sdb1

offset: 4096 sectors

size:  16767701 sectors

mode:  read/write

# www.2cto.com

3、挂载使用

# mkdir /mnt/sx_disk

# mkfs.ext3 /dev/mapper/sx_disk

# mount /dev/sdb1 /mnt/sx_disk/  //直接挂载是不可以的

mount: unknown filesystem type 'crypto_LUKS'

# mount /dev/mapper/sx_disk /mnt/sx_disk/ //挂载映射设备,挂载成功

4、关闭映射,先卸载后关闭

# umount /mnt/sx_disk/

# cryptsetup luksClose sx_disk //关闭映射

# ll /dev/mapper/ //映射设备已经不见了

总用量 0

crw-rw----. 1 root root 10, 58 6月 25 03:01 control

#

5、设置开机自动挂载

生成密钥文件,如果想开机时手动输入密码可以不生成

# touch /root/cryptpasswd

# cryptsetup luksAddKey /dev/sdb1 /root/cryptpasswd

Enter any passphrase:

# cat /root/cryptpasswd //直接查看密钥为空

# www.2cto.com

设置开机启动

# vim /etc/crypttab

# cat /etc/crypttab

sx_disk /dev/sdb1 /root/cryptpasswd

//sx_disk为映射名称,/dev/sdb1是加密设备设备,/root/cryptpasswd为密码文件,如果想开机手动输入密码,密码文件处空着即可

# vim /etc/fstab

# tail -1 /etc/fstab

/dev/mapper/sx_disk    /mnt/sx_disk       ext4 defaults  0 0

#

==========================================================================================



webshell ---> 是否能够被传到服务器,关键还是看程序员写的web程序是否存在相关的漏洞


webshell带来的危害:

跨目录的访问:

解决: 对apache、php设定

开启selinux


针对apache,php设定,防止webshell跨目录



<VirtualHost *:8081>


DocumentRoot /share/weeken_03

。。。。

。。。。

<IfModule mod_php5.c>

php_admin_value open_basedir "/share/weeken_03:/var/lib/php/session:/tmp"

</IfModule>


</VirtualHost>


<VirtualHost *:8082>


DocumentRoot /share/weeken_06

。。。。

。。。。

<IfModule mod_php5.c>

php_admin_value open_basedir "/share/weeken_06:/var/lib/php/session:/tmp"

</IfModule>


</VirtualHost>



webshell可以通过php执行一些危险函数:运行命令、结束进程等等

# vim /etc/php.ini

..

disable_functions = exec,shell_exec,system,passthru,popen



webshell可以通过编译程序,执行危险的程序,例如:进行反向连接、提权。

解决:

上线的服务器,一般会把编译工具卸载掉,就算不卸载,也要把权限修改成700,只有root可以执行。


如果确定服务器不会主动向外连接,那么建议在iptables上的filter--> OUTPUT添加一条规则,记录所有主动向外发起连接规则

# iptables -t filter -A OUTPUT -m state --state NEW -j LOG --log-prefix "hacker"




建议:

一个独立的应用就有具有一个独立的数据库和数据库帐号,千万不能使用root帐号。

做好日志统计:

哪些页面不应该被访问到,却被访问。

www.upl.com/admin/login.php 404 报错

哪些页面只有限定IP才能访问,却被其他IP访问了。





      本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1275962,如需转载请自行联系原作者



相关文章
|
1月前
|
安全 网络安全 数据安全/隐私保护
非对称加密的日常实践应用:以RSA加密为例
**RSA加密简介与Python实现** RSA,一种非对称加密技术,基于大数因子分解,用于数据加密和完整性保护。本文介绍了RSA基本原理,包括密钥生成(选取大质数p和q,计算n和φ(n),选择公钥指数e和私钥指数d),并展示了使用Python `cryptography` 库生成密钥对、加密和解密消息的代码示例。通过这些步骤,读者可理解RSA在网络安全中的应用,如HTTPS和数字签名。
31 3
|
1月前
|
存储 安全 算法
三种常见的加密算法:MD5、对称加密与非对称加密的比较与应用
网络安全聚焦加密算法:MD5用于数据完整性校验,易受碰撞攻击;对称加密如AES快速高效,密钥管理关键;非对称加密如RSA提供身份验证,速度慢但安全。三种算法各有所长,适用场景各异,安全与效率需权衡。【6月更文挑战第17天】
64 2
|
1月前
|
存储 安全 数据库
对称加密的日常实践应用:以AES为例的加密解密指南
**摘要:** 本文介绍了对称加密算法AES在数据安全中的应用,强调了其在文件、通信和数据库加密中的重要性。通过Python示例展示了如何使用`cryptography`库实现AES-256的加密和解密,涉及密钥生成、CBC模式及PKCS7填充。同时,提醒注意密钥管理、模式选择和填充方式的选择对加密安全性的影响。
47 1
|
16天前
|
数据安全/隐私保护
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
11 0
|
18天前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
2天前
|
存储 监控 安全
网络安全的守护者:漏洞、加密与意识
【7月更文挑战第19天】本文深入探讨了网络安全领域的核心要素,包括网络漏洞的识别与防御、先进的加密技术,以及培养必要的安全意识。文章不仅提供了关于网络攻击手段和防御策略的实用信息,还讨论了如何通过教育提高个人和组织的安全素养。通过分析最新的网络安全趋势和案例研究,本文为读者提供了一套全面的网络安全知识框架。
|
3天前
|
安全 网络安全 量子技术
数字堡垒之下:网络安全漏洞、加密技术与安全意识的三重奏
【7月更文挑战第18天】本文旨在揭示网络安全领域的关键要素——安全漏洞、加密技术和用户安全意识,并分析它们如何共同作用以维护我们的数字世界。文章将探讨最新的安全漏洞案例,介绍加密技术的最新进展,以及强调培养安全意识的重要性。通过深入浅出的分析,读者将获得必要的知识,以更好地理解和应对日益复杂的网络安全挑战。
|
3天前
|
SQL 安全 算法
网络防线的构筑者:漏洞、加密与意识
【7月更文挑战第18天】在数字化浪潮中,网络安全与信息安全成为维护信息资产的重要屏障。本文将深入探讨网络安全漏洞的类型与应对策略,解析当前加密技术的作用与局限,并强调提升个人与企业的安全意识对于构建坚固网络防线的重要性。
10 4
|
3天前
|
SQL 安全 网络安全
网络安全漏洞与信息安全:加密技术与安全意识的重要性
在数字化时代,网络安全已成为一个日益重要的议题。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容。我们将分析常见的网络安全漏洞,如恶意软件、钓鱼攻击和SQL注入等,并讨论如何通过加强加密技术和提高安全意识来应对这些威胁。最后,我们将总结网络安全的重要性,并提出一些建议,以帮助读者更好地保护自己的信息安全。
|
3天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:漏洞、加密技术与安全意识的深度剖析
在数字化时代,网络安全与信息安全成为了全球关注的焦点。本文旨在深入探讨网络安全中的漏洞问题、加密技术的应用以及提升个人和组织的安全意识。通过分析最新的统计数据和具体案例,文章揭示了网络攻击的常见形式及其对个人隐私和企业数据的潜在威胁。同时,本文还将介绍当前最先进的加密技术,并讨论如何有效提升整个社会的安全防范意识。