theme: juejin
网络安全(计网补充)
三要素:
- 机密性:攻击者不知道通信内容
加密算法+密钥等信息统称秘密信息, 网络是明文的,不安全
- 完整性:攻击者篡改内容时会被发现
- 身份验证(通信双方需先有秘密信息,如根证书的公钥):攻击者无法伪装
数字签名(对公开内容如包含公钥的证书):对明文内容哈希值使用私钥加密,验证者用公钥验证
数字签名(指纹)=私钥加密(密码散列函数原文)
消息=原文+数字签名
根证书是证书链(验证一连串证书)的尽头,分发并验证证书PKI
加密方式:
- 对称加密:加密解密同样密钥
- 非对称加密:加密、解密使用不同的密钥(公钥和私钥),公钥加密用私钥解密,反之亦然
密码散列函数(哈希函数)
输入:任意长度内容
输出:固定长度的哈希值
性质:找到两个不同输入,使得经过密码散列函数后,有相同哈希值,在计算上不可能
https
即把http的明文换成密文,再验证身份 HTTPS=HTTP+TLS
TLS=身份验证+加解密
服务端身份验证靠PKI,客户端身份验证靠HTTP协议
Linux基础
计算机基本单元
控制器、运算器、存储器单元(内存、外存))、输入单元、输出单元
操作系统
承上启下,管理和控制计算机系统中的软硬件资源
操作系统本身是个程序
启动模式1:Power UP-- BIOS--BIOS 自检--Bootloader --OS
启动模式2(优化升级):Power UP--UEFI --Bootloader--OS
Linux系统概览
1969 Unix诞生贝尔实验室
内核版本、发行版本(=linux内核+常用软件)
发行版本如Debian系列、Red Hat系列、Slackware系列、国产(龙芯、鲲鹏、飞腾)
shell命令
uname -a和
cat /proc/version查看当前linux内核版本
cat /etc/os-release查看是哪个发行版本
应用领域
IT服务器(操作系统、虚拟化、云计算)、 嵌入式、智能设备、个人办公桌面、学术研究和软件研发
Linux 系统包括:
- 内核
- shell(命令解释器)
- 文件系统
- 应用程序
体系结构:用户空间(应用程序+glbc)和内核空间(系统调用、内核、与平台架构相关
内核是软硬件间的中间层、是资源管理程序、提供一组面向系统的命令
底层至上层:
文件系统--进程管理监控(如22的ssh端口)目前是主流的--命令行
进程管理
进程=正在执行的一个程序或命令
每个进程执行时间几乎相同
对于逻辑CPU 进程调度使用轮询方式,轮询完成则回到第一个进程反复(防止被饿死)
拥有自己的地址空间、占用一定系统资源
1个CPU核同时只能进行1个进程-->进程调度
进程由进程ID(PID)和父进程ID(PPID)唯一识别
ps -ef | grep nginx 查看启动点nginx进程
top -p 93824 查看某个进程
kill 93824 关闭指定进程
top 全部进程动态实时视图
进程调度
R 可执行状态
S 可中断的睡眠状态
D 不可中断的睡眠状态
T 暂停或跟踪状态
Z 退出状态 进程是僵尸进程
X 退出状态 进程将被摧毁
用户态转内核态需要中断
文件系统
负责管理持久数据的子系统,把用户文件存到磁盘硬件,持久化保存文件
Linux一切皆文件
- 普通文件
- 目录
- 设备
- 套接字
采用树状的目录结构
虚拟文件系统VFS
查看文件系统类型
df -T文件系统磁盘空间利用率mount挂载文件系统,不带任何参数运行,会打印包含文件系统在内的磁盘分区信息
ls查看文件夹下内容
mkdir demo创建文件夹
mv demo /home移动文件夹到home目录
rm -r demo 删除文件夹
touch file.txt创建空文件
cp file.txt file_bak.txt 复制文件
用户权限
用户账号
- 普通用户
- 超级用户 组账号
- 标准组:多个用户
- 私有组:仅用户自己
w 查看当前登录的用户信息
groups 查看当前用户所属的组
id xxxx 查看用户的UID 信息
用户的三个概念:所有者、所在组、其他人
权限:读R、写W、执行X
drwxr-xr-x 第一个字母是文件类型,接着后三个三位分别是所有者,所在组,其他人
软件包
通常指一个应用程序(可以是GUI应用程序、命令行工具或其他软件需要的软件库)
底层工具(安装删除软件包文件)、上层工具(数据搜索任务、依赖解析任务)
Debian APT常用命令
列出所有可更新的软件清单命令:apt update
安装指定的软件:apt install 文件名
安装多个软件包:apt install 包名1 包名2
更新指定的软件命令:apt update 文件名
删除软件包:apt remove 文件名
查找软件包:apt search 关键词
列出已安装的包: apt list --install
通常Debian系的Linux软件源配置文件:/etc/apt/sources.list
/dists 查看系统代号
/pool 查看软件分支