linux内核加密
linux中有md5sum这个命令可以对文件计算md5值 在内核中要计算文件的md5值只能先将文件的内容读到内存中了,在内核中打开文件用filp_open函数,读写数据也要struct file这个结构体
⑵ 如何在Linux系统上加密文件和目录
有很多linux系统上的加密工具,
文件系统级别加密
EncFS:尝试加密的最简单方式之一。EncFS工作在基于FUSE的伪文件系统上,所以你只需要创建一个加密文件夹并将它挂载到某个文件夹就可以工作了。
eCryptFS:一个POSIX兼容的加密文件系统,eCryptFS工作方式和EncFS相同,所以你必须挂载它。
磁盘级别加密
Loop-AES:最古老的磁盘加密方法。它真的很快,并且适用于旧系统(如,2.0内核分支)。
DMCrypt:最常见的磁盘加密方案,支持现代Linux内核。
CipherShed:已停止的TrueCrypt磁盘加密程序的一个开源分支。
⑶ 如何在Linux系统上加密文件和目录
加密类型
我们主要有两种加密文件和目录的方法。一种是文件系统级别的加密,在这种加密中,你可以选择性地加密某些文件或者目录(如,/home/alice)。对我而言,这是个十分不错的方法,你不需要为了启用或者测试加密而把所有一切重新安装一遍。然而,文件系统级别的加密也有一些缺点。例如,许多现代应用程序会缓存(部分)文件你硬盘中未加密的部分中,比如交换分区、/tmp和/var文件夹,而这会导致隐私泄漏。
另外一种方式,就是所谓的全盘加密,这意味着整个磁盘都会被加密(可能除了主引导记录外)。全盘加密工作在物理磁盘级别,写入到磁盘的每个比特都会被加密,而从磁盘中读取的任何东西都会在运行中解密。这会阻止任何潜在的对未加密数据的未经授权的访问,并且确保整个文件系统中的所有东西都被加密,包括交换分区或任何临时缓存数据。
可用的加密工具
在Linux中要实施加密,有几个可供选择的工具。在本教程中,我打算介绍其中一个:eCryptFS,一个用户空间文件系统加密工具。下面提供了一个Linux上可用的加密工具摘要供您参考。
文件系统级别加密
EncFS:尝试加密的最简单方式之一。EncFS工作在基于FUSE的伪文件系统上,所以你只需要创建一个加密文件夹并将它挂载到某个文件夹就可以工作了。
eCryptFS:一个POSIX兼容的加密文件系统,eCryptFS工作方式和EncFS相同,所以你必须挂载它。
磁盘级别加密
Loop-AES:最古老的磁盘加密方法。它真的很快,并且适用于旧系统(如,2.0内核分支)。
DMCrypt:最常见的磁盘加密方案,支持现代Linux内核。
CipherShed:已停止的TrueCrypt磁盘加密程序的一个开源分支。
eCryptFS基础
eCrypFS是一个基于FUSE的用户空间加密文件系统,在Linux内核2.6.19及更高版本中可用(作为encryptfs模块)。eCryptFS加密的伪文件系统是挂载到当前文件系统顶部的。它可以很好地工作在EXT文件系统家族和其它文件系统如JFS、XFS、ReiserFS、Btrfs,甚至是NFS/CIFS共享文件系统上。Ubuntu使用eCryptFS作为加密其家目录的默认方法,ChromeOS也是。在eCryptFS底层,默认使用的是AES算法,但是它也支持其它算法,如blowfish、des3、cast5、cast6。如果你是通过手工创建eCryptFS设置,你可以选择其中一种算法。
就像我所的,Ubuntu让我们在安装过程中选择是否加密/home目录。好吧,这是使用eCryptFS的最简单的一种方法。
Ubuntu提供了一个用户友好的工具集,通过eCryptFS可以让我们的生活更轻松,但是在Ubuntu安装过程中启用eCryptFS只创建了一个指定的预配置的设置。所以,如果默认的设置不适合你的需求,你需要进行手工设置。在本教程中,我将介绍如何在主流Linux发行版上手工设置eCryptFS。
eCryptFS的安装
Debian,Ubuntu或其衍生版:
代码如下:
$ sudo apt-get install ecryptfs-utils
注意,如果你在Ubuntu安装过程中选择加密家目录,eCryptFS应该已经安装了。
CentOS, RHEL or Fedora:
代码如下:
# yum install ecryptfs-utils
Arch Linux:
代码如下:
$ sudo pacman -S ecryptfs-utils
在安装完包后,加载eCryptFS内核模块当然会是一个很好的实践:
代码如下:
$ sudo modprobe ecryptfs
配置eCryptFS
现在,让我们开始加密一些目录,运行eCryptFS配置工具:
代码如下:
$ ecryptfs-setup-private
它会要求你输入登录密码和挂载密码。登录密码和你常规登录的密码一样,而挂载密码用于派生一个文件加密主密钥。这里留空可以生成一个(复杂的),这样会更安全。登出然后重新登录。
你会注意到,eCryptFS默认在你的家目录中创建了两个目录:Private和.Private。~/.Private目录包含有加密的数据,而你可以在~/Private目录中访问到相应的解密后的数据。在你登录时,~/.Private目录会自动解密并映射到~/Private目录,因此你可以访问它。当你登出时,~/Private目录会自动卸载,而~/Private目录中的内容会加密回到~/.Private目录。
eCryptFS怎么会知道你拥有~/.Private目录,并自动将其解密到~/Private目录而不需要我们输入密码呢?这就是eCryptFS的PAM模块捣的鬼,它为我们提供了这项便利服务。
如果你不想让~/Private目录在登录时自动挂载,只需要在运行ecryptfs-setup-private工具时添加“--noautomount”选项。同样,如果你不想要~/Private目录在登出后自动卸载,也可以自动“--noautoumount”选项。但是,那样后,你需要自己手工挂载或卸载~/Private目录:
[/code]$ ecryptfs-mount-private ~/.Private ~/Private
$ ecryptfs-umount-private ~/Private
你可以来验证一下.Private文件夹是否被挂载,运行:
代码如下:
$ mount
现在,我们可以开始把任何敏感文件放进~/Private文件夹里头了,它们会在我们登出时自动被加密并锁在~/.Private文件内。
所有这一切看起来是那么得神奇。这主要是ecryptfs-setup-private工具让一切设置变得简单。如果你想要深究一点,对eCryptFS指定的方面进行设置,那么请转到官方文档。
结尾
综上所述,如果你十分关注你的隐私,最好是将基于eCryptFS文件系统级别的加密和全盘加密相结合。切记,只进行文件加密并不能保证你的隐私不受侵犯。
⑷ Linux系统的几种加密
启动流程:
BIOS ——》 MBR(主引导记录,找到系统在哪个分区) ——》 boot loader(grub) ——》kernel(内核)——》进入启动级别init
硬盘的最小读取单位是一个扇区,一个扇区大小是512字节
查看操作系统的版本:cat /etc/redhat-release
查看内核版本:uname -r
查看内核信息:uname -a
系统的启动级别:
init 0:关机
init 1:单用户模式,只能root用户登录的模式,可以直接跳过密码
init 2:多用户模式,但是没有NFS(network filesystem),即无网络模式
init 3:完全多用户模式,也是命令行模式
init 4:安全模式,一般开发者调试使用
init 5:图形模式
init 6:重启
更改系统启动级别:
vim /etc/inittab:在最后一行的 id 修改,如下图
通过单用户模式跳过用户密码登录:
通过grub界面进入内核,操作参数,改变启动级别,进入单用户模式
在系统读秒时,按任意键进入grub界面,然后按 e 进入kernel
选择kernel,按 e 进入
进入之后,按 空格 进入启动级别设置
输入启动级别为 1 ,再按 enter 返回内核,再按 b 进入单用户模式
grub加密:
首先设置grub密码:
grub-md5-crypt
passwd:123456
这里会得到一串加密字符串
然后编辑grub的配置文件:
vim /etc/grub.conf
grub的配置文件内容:
default=0:代表默认使用第一个内核
timeout=5:代表进入系统时的读秒时间,这里是5秒
hiddenmenu:隐藏它下面的内容
password --md5:添加得到的grub密码的加密字符串
title:内核信息
将加密的字符串添加好之后,再通过grub进入kernel时就需要输入密码
如果grub被加密了,可以进入BIOS,通过外接光盘进入救援安装模式,然后进入到系统中,
再 vi /mnt/sysimage/etc/grub.conf,编辑配置文件,删除grub加密,就可以再用单用户模式跳过用户密码登陆
转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证
⑸ 如何在Linux系统上加密
打开虚拟机,进入安装好的Linux系统,创建一个属于自己的目录,这里我创建的是test
在创建的目录中新建一个文件,名字为test.txt
在文件中输入“北京欢迎你”,然后保存
执行openssl加密命令
openssl enc -des-ede3-cbc -in test.txt -out JMtest.txt -k 12345678
查看生成的文件JMtest.txt,发现是乱码,说明已经加密成功
然后执行openssl的解密命令
openssl enc -des-ede3-cbc -in JMtest.txt -out test_after.txt -d -k 12345678
查看生成的文件test_after.txit,可以清楚的看到“北京欢迎你”,说明解密成功
⑹ linux如何一机一码加密
使用命令。Linux是一种自由和开放源代码的类UNIX操作系统,整个系统采用代码命令进行操作,加密可以使用/etc/passwd命令进行加密。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统。
⑺ 如何调用linux内核自带的加密算法函数库
参见/proc/version的实现 static int version_proc_show(struct seq_file *m, void *v) { seq_printf(m, linux_proc_banner, utsname()->sysname, utsname()->release, utsname()->version ); return 0; }
⑻ linux 文件加密
linux文件加密需要分五步进行,下面是具体介绍:1、进入linux系统,打开待加密文件;
2、进入命令模式,输入大写字母X;
3、点击回车输入密码;
4、命令模式输入w,、回车确定;
5、打开文件vibase.sh,即可加密成功。
以上就是今天的分享了,希望可以帮助到大家。
本文章基于thinkpadE15品牌、centos7系统撰写的。
⑼ 如何在Linux系统上加密文件和目录
设定分区您的硬盘(hda)最少应该包含三个分区:hda1:这个小的没加密的分区应该要求一个口令为了加载加密的根文件系统hda2:这个分区应该包含你的加密根文件系统;确保它足够大hda3:这个分区就是你的当前的GNU/Linux系统在这时,hda1和hda2没有使用。hda3就是当前你安装的linux发行版;/usr和/boot不能另外分区装载。你的分区分布也许会像下面这样:#fdisk-l/dev/hdaDisk/dev/hda:255heads,63sectors,2432cylindersUnits=cylindersof16065*/dev/hda111800183Linux/dev/hda22263210451583Linux/dev/hda3264525210451583Linux/dev/hda452620471222546583Linux安装Linux-2.4.27有两种主要的方案可用于在内核上添加loopback加密支持:cryptoloop和loop-AES。本文是基于loop-AES方案的,因为因为它的特点是非常快和非常优化实行ofRijndael用汇编语言。如果你有一个IA-32(x86)CPU,它将为您提供最大的性能。另外,还有一些关于cryptoloop的安全关切.首先,下载和解压loop-AES软件包:wgetsleeprmsleep.c创建初始化脚本(不要忘记替换掉你之前报选的种子"xxxxxx"):cat>ramdisk/sbin/initbootcd/isolinux.cfg把iso映像刻录到可启动光盘中:mkisofs-obootcd.iso-bisolinux.bin-cboot.cat\-no-emul-boot-boot-load-size4-boot-info-table\-J-hide-rr-moved-Rbootcd/cdrecord-dev0,0,0-speed4-vbootcd.isorm-rfbootcd{,.iso}从硬盘启动当你丢失了你的可启动光盘时,启动分区就可以派上用场了。请记住hda1是个可写分区,因而并不是很可靠的,只有当你遇到紧急的情况时才使用它!创建并挂载ext2文件系统:ddif=/dev/zeroof=/dev/hda1bs=8192mke2fs/dev/hda1mount/dev/hda1/loader复制内核和initialramdisk:cp/boot/{vmlinuz,initrd.gz}/loader如果你使用的是grub:mkdir/loader/bootcp-av/boot/grub/loader/boot/cat>/loader/boot/grub/menu.lst/loader/etc/lilo.conf/etc/init.d/loop/dev/tty$idoneEOFchmod700/etc/init.d/loopln-s../init.d/loop/etc/rcS.d/S00loopvi/etc/fstab/dev/loop2/homeext3defaults02
⑽ linux内核加密目录下的回归测试文件tcrypt.c如何使用
INTRODUCTION
The Scatterlist Crypto API takes page vectors (scatterlists) as arguments, and works directly on pages. In some cases (e.g. ECB mode ciphers), this will allow for pages to be encrypted in-place with no ing.
Scatterlist Crypto API使用页向量(scatterlists)作为参数,并且直接按页面工作。在某些情况下(例如ECB模式密码),这将允许页面不需复制而按原地加密。
One of the initial goals of this design was to readily support IPsec, so that processing can be applied to paged skb's without the need for linearization.
这个设计的初始目标之一是快捷地支持IPsec,因此处理过程能够应用于页面式缓冲区(paged skb)而无需线性化。
DETAILS
At the lowest level are algorithms, which register dynamically with the API.
处于最底层的是算法,需动态地注册到API中。
'Transforms' are user-instantiated objects, which maintain state, handle all of the implementation logic (e.g. manipulating page vectors) and provide an abstraction to the underlying algorithms. However, at the user level they are very simple.
“转换”是由用户实例化的对象,它维护状态、处理所有执行逻辑(例如操纵页面向量)并且对底层算法提供一个抽象接口。然而,在用户层它们是非常简单的。
Conceptually, the API layering looks like this:
[transform api] (user interface)
[transform ops] (per-type logic glue e.g. cipher.c, compress.c)
[algorithm api] (for registering algorithms)
从概念上讲,API分层看似这样:
[“转换”API](用户界面)
[“转换”OPS](每种类型的接口逻辑模块,例如cipher.c, compress.c)
[“算法”API](用于注册算法)
The idea is to make the user interface and algorithm registration API very simple, while hiding the core logic from both. Many good ideas from existing APIs such as Cryptoapi and Nettle have been adapted for this.
这样做是为了使得“用户界面”和“算法注册”API更加简单,而隐藏了两者之间的核心逻辑。诸如Cryptoapi和Nettle等许多现存API的良好设计都做了这方面改编。
The API currently supports five main types of transforms: AEAD (Authenticated Encryption with Associated Data), Block Ciphers, Ciphers, Compressors and Hashes.
API目前支持五种主要类型“转换”:AEAD(带关联数据的加密认证)、分组加密、加密、压缩和哈希算法。
Please note that Block Ciphers is somewhat of a misnomer. It is in fact meant to support all ciphers including stream ciphers. The difference between Block Ciphers and Ciphers is that the latter operates on exactly one block while the former can operate on an arbitrary amount of data, subject to block size requirements (i.e., non-stream ciphers can only process multiples of blocks).
请注意,分组加密多少有些用词不准。它实际上意味着支持所有加密,包含流加密。分组加密和加密之间不同之处是后者作用于一个精确的数据块而前者可以作用于任意数量的数据,但要求以数据块大小为单位(例如非流密码只能处理数据块整数倍的数据)
Support for hardware crypto devices via an asynchronous interface is under development.
通过一个异步接口支持硬件加密设备的工作正在开发中。