-
内容大纲
本书详细阐述Linux下的信息安全和网络渗透技术,内容涵盖各大主流加解密算法的原理,用LinuxC/C++语言自主实现这些技术的方法,以及Linux内核开发技术和IPSec VPN的系统实现,这些都是以后打造自己信息安全工具所需的基本知识。最后介绍网络渗透技术Kail Linux,通过该环境可以了解常用的现成工具。本书共11章,内容包括Linux基础和网络优化、搭建LinuxC和C++安全开发环境、对称密码算法、杂凑函数和HMAC、非对称算法RSA的加解密、身份认证和PKI、实战PKI、IPSec VPN基础知识、VPN实战、SSL-TLS编程、内核和文件系统、KaliLinux的渗透测试研究、DPDK开发环境的搭建等。
本书适合Linux信息安全工程师或开发者阅读,也适合高等院校和培训机构相关专业的师生作为教学参考书。 -
作者介绍
-
目录
第1章 搭建Linux安全开发环境
1.1 准备虚拟机环境
1.1.1 在VMware下安装Linux
1.1.2 开启登录时的root账号
1.1.3 解决Ubuntu上的vi方向键问题
1.1.4 关闭防火墙
1.1.5 配置安装源
1.1.6 安装网络工具包
1.1.7 安装基本开发工具
1.1.8 启用SSH
1.1.9 创建一个快照
1.1.10 连接虚拟机Linux
1.1.11 通过终端工具连接Linux虚拟机
1.1.12 与虚拟机互传文件
1.1.13 支持图形软件的终端工具MobaXterm
1.2 搭建Samba网络文件共享服务
1.3 在VMware中添加一块硬盘
1.4 在Linux下搭建C/C++开发环境
1.5 在Windows下搭建LinuxC/C++开发环境
1.5.1 Windows下非集成式的LinuxC/C++开发环境
1.5.2 Windows下集成式的LinuxC/C++开发环境
1.6 安全密码库OpenSSL
1.6.1 OpenSSL源代码模块结构
1.6.2 OpenSSL加密库调用方式
1.6.3 OpenSSL支持的对称加密算法
1.6.4 OpenSSL支持的非对称加密算法
1.6.5 OpenSSL支持的信息摘要算法
1.6.6 OpenSSL密钥和证书管理
1.6.7 面向对象与OpenSSL
1.6.8 BIO接口
1.6.9 EVP接口
1.6.10 在Linux下编译安装OpenSSL 1.0.2
1.6.11 使用OpenSSL命令并查看版本号
1.7 国产密码函数库GmSSL
1.7.1 GmSSL的特点
1.7.2 GmSSL的一些历史
1.7.3 什么是国密算法
1.7.4 GmSSL的下载
1.7.5 在Linux下编译安装GmSSL
1.7.6 默认编译安装GmSSL
1.7.7 在旧版本的Linux下编译和安装GmSSL
第2章 对称密码算法
2.1 基本概念
2.2 流加密算法
2.2.1 基本概念
2.2.2 流密码和分组密码的比较
2.2.3 RC4算法
2.3 分组加密算法
2.3.1 工作模式
2.3.2 短块加密
2.3.3 DES和3DES算法
2.3.4 SM4算法
2.4 利用OpenSSL进行对称加解密
2.4.1 基本概念
2.4.2 对称加解密相关函数
第3章 杂凑函数和HMAC
3.1 杂凑函数概述
3.1.1 什么是杂凑函数
3.1.2 密码学和杂凑函数
3.1.3 杂凑函数的发展
3.1.4 杂凑函数的设计
3.1.5 杂凑函数的分类
3.1.6 杂凑函数的碰撞
3.2 SM3杂凑算法
3.2.1 常量和函数
3.2.2 填充
3.2.3 迭代压缩
3.2.4 杂凑值
3.2.5 一段式SM3算法的实现
3.2.6 三段式SM3算法的实现
3.2.7 GmSSL实现SM3算法
3.3 HMAC
3.3.1 什么是HMAC
3.3.2 产生背景
3.3.3 设计目标
3.3.4 算法描述
3.3.5 独立自主实现HMAC-SM
3.4 SHA系列杂凑算法
3.4.1 SHA算法概述
3.4.2 SHA的发展史
3.4.3 SHA系列算法的核心思想
3.4.4 单向性
3.4.5 主要用途
3.4.6 SHA256算法原理解析
3.4.7 SHA384和SHA512算法
3.5 更通用的基于OpenSSL的哈希运算
3.5.1 获取摘要算法的函数EVP_get_digestbyname
3.5.2 创建结构体并初始化的函数EVP_MD_CTX_create
3.5.3 销毁摘要上下文结构体的函数EVP_MD_CTX_destroy
3.5.4 摘要初始化的函数EVP_DigestInit_ex
3.5.5 摘要Update的函数EVP_DigestUpdate
3.5.6 摘要Final的函数EVP_Digest_Final_ex
3.5.7 单包摘要计算的函数EVP_Digest
第4章 非对称算法RSA的加解密
4.1 非对称密码体制概述
4.2 RSA概述
4.3 RSA的数学基础
4.3.1 素数
4.3.2 素性检测
4.3.3 倍数
4.3.4 约数
4.3.5 互质数
4.3.6 质因子
4.3.7 强素数
4.3.8 因子
4.3.9 模运算
4.3.10 模运算的操作与性质
4.3.11 单向函数
4.3.12 费马定理和欧拉定理
4.3.13 幂
4.3.14 模幂运算
4.3.15 同余符号≡
4.3.16 欧拉函数
4.3.17 最大公约数
4.3.18 实现欧几里得算法
4.3.19 扩展欧几里得算法
4.4 RSA算法描述
4.5 RSA算法实例
4.5.1 查找法计算私钥d
4.5.2 简便法计算私钥d
4.5.3 扩展欧几里得算法计算私钥d
4.5.4 加密字母
4.5.5 分组加密字符串
4.6 实战前的几个重要问题
4.6.1 明文的值不能大于模值N
4.6.2 明文的长度
4.6.3 密钥长度
4.6.4 密文长度
4.7 熟悉PKCS#
4.7.1 PKCS#1填充
4.7.2 OpenSSL中的RSA填充
4.7.3 PKCS#1中的RSA私钥语法
4.8 在OpenSSL命令中使用RSA
4.8.1 生成RSA公私钥
4.8.2 提取私钥的各个参数
4.8.3 使用RSA公钥加密一个文件
4.8.4 使用私钥解密一个文件
4.9 基于OpenSSL库的RSA编程
4.9.1 OpenSSL的RSA实现
4.9.2 主要数据结构
4.9.3 主要函数
4.10 随机大素数的生成
4.11 RSA算法的攻击及分析
4.11.1 因子分解攻击
4.11.2 选择密文攻击
4.11.3 公共模数攻击
4.11.4 小指数攻击
第5章 身份认证和PKI
5.1 身份认证概述
5.1.1 网络安全与身份认证
5.1.2 网络环境下身份认证所面临的威胁
5.1.3 网络身份认证体系的发展现状
5.2 身份认证技术基础
5.2.1 用户名/密码认证
5.2.2 智能卡认证
5.2.3 生物特征认证
5.2.4 动态口令
5.2.5 USBKey认证
5.2.6 基于冲击响应的认证模式
5.2.7 基于PKI体系的认证模式
5.3 PKI概述
5.3.1 PKI的国内外应用状态
5.3.2 PKI的应用前景
5.3.3 PKI存在的问题及发展趋势
5.4 基于X.509证书的PKI认证体系
5.4.1 数字证书
5.4.2 数字信封
5.4.3 PKI体系结构
5.4.4 基于X.509证书的身份认证
第6章 实战PKI
6.1 只有密码算法是不够的
6.2 利用OpenSSL实现CA的搭建
6.2.1 准备实验环境
6.2.2 熟悉CA环境
6.2.3 创建所需要的文件
6.2.4 CA自签名证书(构造根CA)
6.2.5 根CA为子CA颁发证书
6.2.6 普通用户向子CA申请证书
6.3 基于OpenSSL的证书编程
6.3.1 把DER编码转换为内部结构体的d2i_X509函数
6.3.2 获得证书版本的X509_get_version函数
6.3.3 获得证书序列号的X509_get_serialNumber函数
6.3.4 获得证书颁发者信息的X509_get_issuer_name函数
6.3.5 获得证书拥有者信息的X509_get_subject_name函数
6.3.6 获得证书有效期的起始日期的X509_get_notBefore函数
6.3.7 获得证书有效期的终止日期的X509_get_notAfter函数
6.3.8 获得证书公钥的X509_get_pubkey函数
6.3.9 创建证书存储区上下文环境的X509_STORE_CTX函数
6.3.10 释放证书存储区上下文环境的X509_STORE_CTX_free函数
6.3.11 初始化证书存储区上下文环境的X509_STORE_CTX_init函数
6.3.12 验证证书的X509_verify_cert函数
6.3.13 创建证书存储区的X509_STORE_new函数
6.3.14 释放证书存储区的X509_STORE_free函数
6.3.15 向证书存储区添加证书的X509_STORE_add_cert函数
6.3.16 向证书存储区添加证书吊销列表的X509_STORE_add_crl函数
6.3.17 释放X.509结构体的X509_free函数
6.4 证书编程实战
第7章 IPSec VPN基础知识
7.1 概述
7.1.1 IPSec VPN技术现状
7.1.2 国密VPN现状
7.2 IPSec协议研究
7.2.1 IPSec体系结构
7.2.2 传输模式和隧道模式
7.2.3 AH协议概述
7.2.4 AH数据包封装
7.2.5 ESP协议概述
7.2.6 ESP数据包封装
7.2.7 安全联盟
7.2.8 安全策略数据库和安全联盟数据库
7.3 IKE协议
7.3.1 IKE概述
7.3.2 IKE的安全机制
7.3.3 ISAKMP
7.4 IKEv1协议
7.4.1 第一阶段
7.4.2 第二阶段
7.4.3 主模式和快速模式的9个包分析
7.5 IKEv2协议
7.5.1 IKEv2概述
7.5.2 初始交换
7.5.3 创建子SA交换
7.5.4 通知交换
7.6 IKEv1与IKEv2的区别
7.7 IKEv2的优点
第8章 VPN实战
8.1 准备网络环境
8.2 strongSwan实战
8.2.1 编译安装strongSwan
8.2.2 常用程序概述
8.2.3 配置文件概述
8.2.4 使用ipsec.conf文件
8.2.5 使用swanctl.conf
8.2.6 strongSwan签发证书
8.3 OpenSwan实战
8.3.1 OpenSwan概述
8.3.2 OpenSwan的整体架构
8.3.3 OpenSwan的下载和编译
8.3.4 OpenSwan连接方式
8.3.5 OpenSwan的认证方式
8.3.6 配置文件ipsec.conf
第9章 SSL-TLS编程
9.1 SSL协议规范
9.1.1 SSL协议的优点
9.1.2 SSL协议的发展
9.1.3 SSLv3/TLS提供的服务
9.1.4 SSL协议层次结构模型
9.1.5 SSL记录协议层
9.1.6 SSL握手协议层
9.2 OpenSSL中的SSL编程
9.3 SSL函数
9.3.1 初始化SSL算法库的函数SSL_library_init
9.3.2 初始化SSL上下文环境变量的函数SSL_CTX_new
9.3.3 释放SSL上下文环境变量的函数SSL_CTX_free
9.3.4 以文件形式设置SSL证书的函数SSL_CTX_use_certificate_file
9.3.5 以结构体方式设置SSL证书的函数SSL_CTX_use_certificate
9.3.6 以文件形式设置SSL私钥的函数SSL_CTX_use_PrivateKey_file
9.3.7 以结构体方式设置SSL私钥的函数SSL_CTX_use_PrivateKey
9.3.8 检查SSL私钥和证书是否匹配的函数SSL_CTX_check_private_key
9.3.9 创建SSL结构的函数SSL_new
9.3.10 释放SSL套接字结构体的函数SSL_free
9.3.11 设置读写套接字的函数SSL_set_fd
9.3.12 设置只读套接字的函数SSL_set_rfd
9.3.13 设置只写套接字的函数SSL_set_wfd
9.3.14 启动TLS/SSL握手的函数SSL_connect
9.3.15 接受SSL连接的函数SSL_accept
9.3.16获取对方的X.50 9证书的函数SSL_get_peer_certificate
9.3.17 向TLS/SSL连接写数据的函数SSL_write
9.3.18 从TLS/SSL连接上读取数据的函数SSL_Read
9.4 准备SSL通信所需的证书
9.4.1 准备实验环境
9.4.2 熟悉CA环境
9.4.3 创建根CA的证书
9.4.4 生成服务端的证书请求文件
9.4.5 签发服务端证书
9.4.6 生成客户端的证书请求文件
9.4.7 签发客户端证书
9.5 实战SSL网络编程
第10章 内核和文件系统
10.1 认识QEMU
10.1.1 QEMU的两种执行模式
10.1.2 QEMU的用途
10.1.3 使用QEMU虚拟机的几种选择
10.2 安装Linux版的QEMU
10.3 下载和编译内核
10.4 制作简易的文件系统
10.4.1 BusyBox简介
10.4.2 编译和安装BusyBox
10.4.3 制作根文件系统的映像文件
10.5 非嵌入式方式启动内核
10.5.1 BusyBox启动过程简要分析
10.5.2 在新内核系统中运行C程序
10.6 基本功能的完善
10.6.1 挂载proc支持ifconfig
10.6.2 挂载sysfs支持lspci
10.6.3 实现文件系统可写
10.7 QEMU的用户网络模式
10.7.1 不使用-net选项
10.7.2 使用-net选项
10.8 QEMU桥接网络模式
10.8.1 网桥的概念
10.8.2 TUN/TAP的工作原理
10.8.3 带TAP的QEMU系统架构
10.8.4 brctl命令的简单用法
10.8.53 个网络配置选项
10.8.6 实战桥接模式网络
10.8.7 手工命令创建TAP网卡
10.8.8 使用qemu-ifup
10.9 QEMU运行国产操作系统
10.9.1 安装Windows版的QEMU
10.9.2 UEFI固件下载
10.9.3 安装麒麟操作系统
10.9.4 运行麒麟系统
10.10 开发一个内核模块
第11章 Kali Linux的渗透测试研究
11.1 渗透测试的概念
11.2 渗透测试的分类
11.2.1 基于信息量的测试
11.2.2 基于攻击强度的测试
11.2.3 基于范围的测试
11.2.4 基于方法的测试
11.2.5 基于技术的测试
11.2.6 基于初始攻击点的测试
11.3 渗透测试的局限性
11.4 渗透测试方法
11.4.1 开源安全测试方法手册
11.4.2 信息系统安全评估框架
11.4.3 信息安全测试与评估技术指南
11.4.4 开放式Web应用程序安全项目
11.4.5 渗透测试执行标准
11.5 渗透测试过程
11.5.1 计划与准备阶段
11.5.2 发现阶段
11.5.3 评估阶段
11.5.4 攻击阶段
11.5.5 报告阶段
11.6 渗透测试平台与工具
11.6.1 Kali Linux
11.6.2 Metasploit
11.6.3 Nmap
11.6.4 OpenVAS
11.6.5 VMware Workstation
11.6.6 VirtualBox
11.7 实验平台的设计
11.8 实验过程设计
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...