🐳概述
图源:文心一言
信息安全证书已经考了一年有余,尽管我目前没有从业安全的打算,况且自己的实践能力与从业标准依然有所差距,但其中的内容也值得再温习一遍~🥝🥝
另外,如果你对目录感兴趣,请查看网页右上角↗~🥝🥝
- 第1版:整理信息安全工程师教程~🧩🧩
参考教材:《信息安全工程师教程》(第2版) 蒋建春 主编 / 文伟平 焦健 副主编
🐳1 网络信息安全概述
1.1 网络发展现状与重要性认识
网络信息安全分类
- 网络信息安全的狭义定义:特指网络信息系统的各组成要素符合安全属性的要求,主要包括机密性、完整性、可用性、抗抵赖性和可控性。
- 网络信息安全的广义定义:则涉及更为广泛的领域,它包括了国家安全、城市安全、经济安全、社会安全、生产安全以及人身安全等在内的“大安全”。
《中华人民共和国网络安全法》已于2017年6月1日起实施。
1.2 网络信息安全现状问题
2018年,CNCERT(国家互联网应急中心)协调处理网络安全事件约10.6万起,其中网页仿冒时间最多,其次是安全漏洞、恶意程序、网页篡改、网站后门、DDoS攻击等事件。
1.3 网络信息安全基本属性
网络安全CIA三性
- 机密性(Confidentiality):机密性是指保证信息不被非授权访问,即使非授权用户得到信息也无法知晓信息内容,因而不能使用。换句话说,机密性确保只有授权用户可以获取信息,通常是通过访问控制和加密技术来实现。
- 完整性(Integrity):完整性是指维护信息的一致性,即信息在生成、传输、存储和使用过程中不应该发生人为或非人为的非授权篡改。这包括数据完整性和系统完整性两个方面。数据完整性保证数据没有被未授权修改或损坏,而系统完整性则确保系统未被非法操纵,按既定的目标运行。
- 可用性(Availability):可用性是指保障信息资源随时可提供服务的能力特性,即授权用户可根据需要可以随时访问所需信息。换句话说,可用性保证合法用户对信息和资源的使用不会被不正当地拒绝。
网络安全其它特性
不可抵赖性:也称为不可否认性,是指在网络环境中,用户无法否认其曾经进行过的操作或行为。这一特性主要通过数字签名、时间戳等技术手段来实现,确保网络行为的可追溯性和责任明确性。
可控性:指对网络信息系统的责任主体具有管理、支配能力,能根据授权规则对系统进行有效掌握和控制。可控性确保管理者能够有效地控制系统的行为和信息的使用,以符合系统运行的目标。
真实性:是指信息的来源和内容是真实可靠的,没有被伪造或篡改。在网络环境中,真实性通常通过身份验证、数字签名等技术手段来保障。
时效性:是指信息在特定时间内是有效的,超过该时间则可能失去其价值。在网络安全中,时效性要求信息和系统能够及时响应和处理各种安全事件,以确保信息的最新性和有效性。
隐私性:是指个人信息在网络环境中得到保护,不被未经授权的第三方获取、使用或泄露。隐私性保护是网络安全的重要组成部分,涉及个人数据的加密、匿名化处理等技术手段。
1.4 网络信息安全目标与功能
网络信息安全功能
- 防御功能:通过采取各种技术手段和措施,如防火墙、入侵检测系统等,阻止或抵御网络攻击和威胁,保护网络系统的安全。
- 监测功能:对网络系统的运行状态进行实时监控,及时发现和处理安全事件和异常情况,确保网络系统的正常运行。
- 应急响应功能:在发生安全事件时,能够迅速做出响应和处理,减轻安全事件对网络系统的影响和损失。
- 恢复功能:在网络系统受到攻击或发生故障后,能够及时恢复数据和系统的正常运行,确保业务的连续性。
1.5 网络信息安全基本技术需求
- 物理环境安全:这是指包括环境、设备和记录介质在内的所有支持网络系统运行的硬件的总体安全。它是网络系统安全、可靠、不间断运行的基本保障。物理安全需求主要包括环境安全、设备安全和存储介质安全。
- 网络信息安全认证:这是实现网络资源访问控制的前提和依据,是有效保护网络管理对象的重要技术方法。网络认证的作用是标识和鉴别网络资源访问者的身份,防止用户假冒身份访问网络资源。
- 访问控制:访问控制是有效保护网络管理对象,使其免受威胁的关键技术方法。其主要目标是限制非法用户获取或使用网络资源,并防止合法用户滥用权限,越权访问网络资源。
- 安全保密:网络信息安全保密的目的是防止非授权的用户访问网上信息或网络设备。因此,重要的网络物理实体可以采用辐射干扰技术,防止电磁辐射泄露机密信息。
- 漏洞扫描和恶意代码防护:这两项技术可以及时发现并修补网络系统中的安全漏洞,防止恶意代码的侵入和破坏。
- 网络信息内容安全:这是指保护网络信息的完整性和真实性,防止信息被篡改或伪造。
- 安全监测与预警:通过实时监控网络系统的运行状态和安全事件,及时发现和处理异常情况,提供预警和报警功能。
- 应急响应:在发生安全事件时,能够迅速做出响应和处理,减轻安全事件对网络系统的影响和损失,确保业务的连续性。
1.6 网络信息安全管理内容与方法
网络信息安全管理要素
- 网络管理对象:这是网络信息安全管理的核心,通常指的是企业、机构等需要保护的资产,这些资产可以是有形的,如网络设备硬件、软件、文档,也可以是无形的,如服务质量、网络带宽等。这些资产直接或间接地赋予了价值,因此需要得到保护。
- 网络威胁:网络威胁是网络信息安全管理中需要对抗的因素。由于网络管理对象具有一定的价值,因此会面临来自不同方面的威胁。这些威胁可能来自国家、黑客、恐怖分子、网络犯罪、内部不满员工等。根据威胁的自然属性,可以分为自然威胁和人为威胁。
- 网络脆弱性:网络管理对象自身可能存在的一些弱点或缺陷,这些脆弱性使得威胁有可能发生并造成影响。网络脆弱性可能存在于硬件、软件、通信协议等各个方面。
- 网络风险:网络风险是指由于网络系统的脆弱性,以及人为或自然的威胁,导致安全事件发生并造成损失的可能性。网络风险管理是网络信息安全管理的重要环节,需要对网络风险进行评估和控制。
- 网络保护措施:为了降低网络风险,需要采取一系列的网络保护措施。这些措施包括制定安全策略、实施访问控制、加密通信、定期备份数据、安装防病毒软件、进行安全审计等。
网络信息安全管理工具(工具为AI推荐)
- 网络安全管理平台(SOC):
- 工具介绍:SOC,即安全运营中心,是一个集中化的网络安全管理平台。它能够整合各种安全设备、系统和应用程序的日志和警报,提供统一的监控、分析和响应功能。
- 常用工具:例如IBM QRadar、Palo Alto Networks Cortex XSOAR、Microsoft Azure Sentinel等。
- IT资产管理系统:
- 工具介绍:IT资产管理系统用于跟踪和管理组织内部的硬件和软件资产。它可以帮助组织了解其网络中的设备、软件许可证、配置和其他关键信息。
- 常用工具:例如ServiceNow Asset Management、SnapIT Asset Management、LANDesk Management Suite等。
- 网络安全态势感知系统:
- 工具介绍:网络安全态势感知系统通过收集、分析和可视化网络流量、安全事件和其他相关数据,提供对组织网络安全状况的实时洞察。
- 常用工具:例如FireEye Helix、Cisco SecureX、Palo Alto Networks Cortex XDR等。
- 网络安全漏洞扫描器:
- 工具介绍:网络安全漏洞扫描器用于自动检测网络系统和应用程序中的安全漏洞。它可以帮助组织及时识别和修补潜在的安全风险。
- 常用工具:例如Nessus、OpenVAS、Qualys Vulnerability Management等。此外,之前提到的Acunetix和Nmap也具有漏洞扫描功能。
- 网络安全协议分析器:
- 工具介绍:网络安全协议分析器用于捕获和分析网络流量中的协议数据。它可以帮助网络管理员和安全专家了解网络通信的细节,识别潜在的安全威胁和问题。
- 常用工具:之前提到的Wireshark是最著名的网络协议分析器之一。其他类似的工具还包括OmniPeek、CommView等。
- 上网行为管理:
- 工具介绍:上网行为管理工具用于监控和管理组织内部员工的互联网使用行为。它可以帮助组织确保员工遵守网络安全政策,防止不当的网络活动和潜在的安全风险。
- 常用工具:例如深信服上网行为管理、网康上网行为管理、Websense等。这些工具通常提供URL过滤、内容过滤、应用程序控制、流量管理等功能。
1.7 网络信息安全法律与政策文件
网络安全审查和认证的专门机构
- 中国网络安全审查技术与认证中心(CRCC)
网络安全产品测评机构
- 国家保密科技测评中心
- 中国信息安全认证中心
- 国家网络与信息系统安全产品质量监督检验中心
- 公安部计算机信息系统安全产品质量监督检验中心
信息安全标准化工作的技术组织
- 全国信息安全标准化技术委员会
1.8 网络信息安全科技信息获取
网络信息安全会议
- 四大顶级学术会议:S&P、CCS、NDSS、USENIX Security;
- 国外知名安全会议:RSA Conference、DEF CON、Black Hat;
- 国内知名安全会议:中国网络安全年会、互联网安全大会、信息安全漏洞分析与风险评估大会;
网络信息安全期刊(AI推荐)
- 国内期刊
- 《信息安全研究》:该期刊由国内知名信息安全研究机构主办,涵盖了信息安全领域的最新研究成果和技术进展。它涉及密码学、网络安全、应用安全、数据安全等多个方面。
- 《信息安全与通信保密》:这是一本专注于信息安全和通信保密技术的期刊,内容涵盖了密码学、网络安全协议、入侵检测、安全通信等方面。该期刊发表了许多高质量的学术论文和技术报告。
- 《计算机研究与发展》:虽然这不是一个专门的信息安全期刊,但它经常发表与网络信息安全相关的研究论文。作为国内计算机科学领域的顶级期刊之一,它涵盖了广泛的计算机科学领域,包括网络安全和信息安全。
- 国际期刊
- IEEE Transactions on Information Forensics and Security (TIFS):这是IEEE旗下的顶级信息安全期刊,涵盖了信息取证和安全领域的最新研究成果。它涉及数字水印、多媒体安全、网络安全、加密和隐私保护等方面。
- ACM Transactions on Privacy and Security (TOPS):这是ACM旗下的专注于隐私和安全领域的期刊。它发表了许多关于隐私保护技术、网络安全协议、访问控制等方面的研究论文。
- Journal of Computer Security (JCS):这是一本国际知名的计算机安全期刊,涵盖了广泛的计算机安全领域,包括操作系统安全、网络安全、数据库安全等。它发表了许多高质量的学术论文和技术报告。
- Computers & Security:这是一本专注于计算机和网络安全领域的期刊,内容涵盖了网络安全管理、入侵检测、恶意软件分析、加密技术等方面。该期刊经常发表最新的研究成果和行业趋势分析。
网络信息安全网站(AI推荐)
国家互联网应急中心 (CNCERT):这是中国的网络安全应急组织,负责协调处理国家重大网络安全事件,提供网络安全信息发布、预警通报等服务。它的网站(http://www.cert.org.cn)提供了大量的网络安全公告、漏洞信息和安全建议。
中国信息安全测评中心 (CNITSEC):作为国内信息安全测评的权威机构,其网站(http://www.itsec.gov.cn)提供了关于信息安全测评、认证和咨询服务的最新动态和标准信息。
中国信息安全网 (China Information Security):这是一个专注于信息安全领域的综合性门户网站,涵盖了新闻动态、政策法规、技术标准、产品评测等多方面内容。
360安全中心:作为国内知名的安全公司,360提供了包括病毒查杀、漏洞修复、木马防御等一系列安全服务,并通过其网站发布最新的安全资讯和解决方案。
腾讯电脑管家安全中心:腾讯电脑管家也提供了类似的安全服务,并在其安全中心网站上发布与网络安全相关的信息。
安全客 (Anquanke):这是一个提供网络安全资讯和技术文章的网站(http://www.anquanke.com),内容涵盖了漏洞分析、恶意软件研究、安全事件报道等。
FreeBuf:FreeBuf是国内知名的网络安全媒体和社区,聚焦于网络安全前沿技术、行业动态和安全漏洞等内容。
红黑联盟 (2cto):红黑联盟是一个老牌的网络安全论坛,汇集了大量的安全爱好者和技术人员,是交流学习的好地方。
黑客之门:黑客之门是一个中文黑客网站导航,收录了许多国内外知名的黑客网站和论坛。
威胁情报平台:如微步在线、360威胁情报中心等,这些平台提供威胁情报的收集、分析和共享服务。
国际网络安全组织网站:如FIRST(Forum of Incident Response and Security Teams)等,这些网站提供了国际网络安全事件响应和安全团队的最新动态和标准。
网络信息安全术语
- 基础技术类
- 加密 (Encryption):将信息转换为不可读的形式,以保护其机密性。
- 解密 (Decryption):将加密的信息还原为原始可读形式的过程。
- 公钥 (Public Key) / 私钥 (Private Key):在非对称加密中使用的一对密钥,公钥用于加密和验证签名,私钥用于解密和签名。
- 证书 (Certificate):由可信第三方颁发的数字文档,用于验证实体(如网站或人)的身份。
- 编码 (Encoding):将信息从一种格式转换为另一种格式,以便存储或传输。
- 风险评估技术类
- 拒绝服务攻击 (Denial of Service, DoS):通过大量请求拥塞目标系统的资源,使其无法为合法用户提供服务的攻击。
- 分布式拒绝服务攻击 (Distributed Denial of Service, DDoS):从多个来源同时发起的拒绝服务攻击。
- 网页篡改 (Website Defacement):非法更改网站内容的行为。
- 域名劫持 (DNS Hijacking):通过欺骗DNS服务器,将域名解析到错误的IP地址。
- 网络钓鱼 (Phishing):通过电子邮件、社交媒体等手段发送伪造的消息,诱骗用户泄露个人信息。
- 恶意代码 (Malicious Code):包括病毒、蠕虫、特洛伊木马等,旨在破坏、干扰或利用目标系统的代码。
- 防护技术类
- 防火墙 (Firewall):网络安全系统的一部分,用于监控和控制进出网络的数据流。
- 入侵检测系统 (Intrusion Detection System, IDS):用于监控网络或系统中可疑活动的系统或软件。
- 访问控制 (Access Control):管理和限制用户对网络资源的访问权限的技术。
- 安全套接层 (Secure Sockets Layer, SSL) / 传输层安全协议 (Transport Layer Security, TLS):提供通信安全的协议,用于加密网络通信。
- 检测技术类
- 漏洞扫描 (Vulnerability Scanning):自动检查系统或应用程序中的安全漏洞的过程。
- 恶意软件分析 (Malware Analysis):对恶意软件进行详细检查,以了解其功能、来源和目的的过程。
- 网络监控 (Network Monitoring):实时监视网络流量和活动的过程,以识别潜在的安全威胁。
- 响应/恢复技术类
- 事件响应 (Incident Response):对安全事件进行识别、分析、处理和报告的过程。
- 数据备份与恢复 (Data Backup and Recovery):创建数据的副本并在必要时还原它们的过程,以防止数据丢失。
- 灾难恢复计划 (Disaster Recovery Plan):为应对自然灾害、人为错误或恶意攻击等导致的重大数据丢失或系统故障而制定的计划。
- 测评技术类
- 渗透测试 (Penetration Testing):模拟黑客攻击以评估系统安全性的过程。
- 安全审计 (Security Audit):对系统、网络或应用程序的安全性进行全面检查和评估的过程。
- 风险评估 (Risk Assessment):识别、分析和评估潜在安全威胁对组织资产的影响的过程。
🐳2 网络攻击原理与常用方法
2.1 网络攻击概述
攻击者 | 攻击工具 | 攻击访问 | 攻击效果 | 攻击意图 |
---|---|---|---|---|
黑客 间谍 恐怖主义者 公司职员 职业犯罪份子 破坏者 | 用户命令 脚本或程序 自治主体 电磁泄露 | 本地访问 远程访问 | 破坏信息 信息泄密 窃取服务 拒绝服务 | 挑战 好奇 获取情报 经济利益 恐怖事件 报复 |
网络攻击模型
- 攻击树模型:攻击树是一种图形化的表示方法,用于描述从初始入侵到最终目标的整个攻击过程。它采用树状结构,其中根节点表示攻击者的最终目标,而叶节点代表攻击者可以采取的具体行动或利用的漏洞。攻击树模型有助于系统地识别和分析潜在的攻击路径和漏洞,并为防御者提供有针对性的防御建议。
- MITRE ATT&CK模型:这是一种基于真实世界观察的对抗性战术、技术和知识库。ATT&CK模型提供了一个全面的框架,用于描述攻击者在不同阶段(如侦察、资源开发、初始访问、执行、持久性、提权、防御规避、凭证访问、发现、横向移动、收集和数据渗出等)所采取的行动和使用的技术。这个模型对于理解攻击者的行为模式、制定针对性的防御策略以及进行安全测试非常有用。
- 网络杀伤链(Kill Chain)模型:这是一个描述网络攻击过程的模型,它将攻击活动分为多个阶段,包括目标侦察、武器构造、载荷投送、漏洞利用、安装植入、指挥和控制以及目标行动。这个模型有助于了解攻击者在不同阶段所采取的行动和技术,并为防御者提供了在不同阶段阻断攻击的机会。
2.2 网络攻击一般过程
网络攻击步骤
- 隐藏攻击源
- 利用被侵入的主机作为跳板
- 免费代理网关(之前有大佬推荐过飞鱼,可以打CTF)
- 伪造IP地址
- 假冒用户账号
- 收集攻击目标信息
- 目标系统一般信息:IP地址、DNS服务器、邮件服务器、网站服务器、操作系统软件类型及版本号、数据库软件类型及版本号、应用软件类型及版本号、系统开发商等;
- 目标系统配置信息:系统是否进制root远程登录、缺省用户名/默认口令等;
- 目标系统的安全漏洞信息:目标系统的有漏洞的软件及服务;
- 目标系统的安全措施信息:目标系统的安全厂商、安全产品等;
- 目标系统的用户信息:目标系统的用户的邮件账号、社交网账号、手机号、固定电话号码、照片、爱好等个人信息。
- 挖掘漏洞信息
- 系统或应用服务软件漏洞:如系统提供了finger服务,攻击者就能因此得到系统用户信息,进而通过猜测用户口令获取系统的访问权;如系统还提供其他的一些远程网络服务,如邮件服务、WWW服务、匿名FTP服务、TFTP服务,攻击者就可以使用这些远程服务中的漏洞获得系统中的访问权;
- 主机信任关系漏洞:攻击者利用CGI的漏洞,读取/etc/hosts.allow文件等,通过这个文件,就可以大致了解主机的信任关系;
- 目标网络的使用者漏洞:网络邮件钓鱼、用户弱口令破解、U盘摆渡攻击、网页恶意代码等;
- 通信协议漏洞:IP协议中的地址伪造漏洞、Telnet/Http/Ftp/POP3/SMTP等协议的明文传输信息漏洞;
- 网络业务系统漏洞:业务服务申请等级非实名漏洞;
- 获取目标访问权限
- 获得系统管理员的口令:如专门针对root用户的口令攻击;
- 利用系统管理上的漏洞:如错误的文件许可权,错误的系统配置,某些SUIC程序中存在的缓冲区溢出问题等;
- 让系统管理员运行一些特洛伊木马:如经过篡改之后的LOGIN程序等;
- 窃听管理员口令
- 隐蔽攻击行为
- 连接隐藏:如冒充其他用户、修改LOGNAME环境变量、修改utmp日志文件、使用IP SPOOF技术等;
- 进程隐藏:如使用重定向技术减少ps给出的信息量、用特洛伊木马代替ps程序等;
- 文件隐蔽:如利用字符串相似麻痹系统管理员,或修改文件属性使得普通显示方法无法看到;利用操作系统可加载模块特性,隐瞒攻击时产生的信息;
- 实施攻击
- 攻击其他被信任的主机和网络;
- 修改或删除重要数据;
- 窃听敏感数据;
- 停止网络服务;
- 下载敏感数据;
- 删除数据账号;
- 修改数据记录;
- 开辟后门
- 放宽文件许可权;
- 重新开放不安全的服务,如REXD、TFTP等;
- 修改系统的配置,如系统启动文件、网络服务配置文件等;
- 替换系统本身的共享库文件;
- 修改系统的源代码,安装各种特洛伊木马;
- 安装嗅探器;
- 建立隐蔽信道;
- 清楚攻击痕迹
- 篡改日志文件中的审计信息;
- 改变系统时间造成日志文件数据紊乱以迷惑系统管理员;
- 删除或停止审计服务进程;
- 干扰入侵检测系统的正常运行;
- 修改完整性检测标签;
2.2 网络攻击常见技术方法
网络攻击常见技术方法
端口扫描:目标是找出目标系统上提供的服务列表。端口扫描程序挨个尝试与TCP/UDP端口连接,然后根据端口与服务的对应关系,结合服务器端的反应推断目标系统上是否运行了某项服务,攻击者通过这些服务可能获得关于目标系统的进一步的知识或通往目标系统的途径。
图源:【转载】服务协议常用端口_22端口-CSDN博客
口令破解:使用社工库字典暴力破解。
缓冲区溢出:可以使攻击者有机会获得一台主机的部分或全部的控制权。缓冲区溢出成为远程攻击主要方式的原因是,缓冲区溢出漏洞会给与攻击者控制程序执行流程的机会。这个需要划重点,在我印象中考试很喜欢考这个。如果对内存感兴趣,可以参考这个:🌸计组+系统02:30min导图复习 存储系统-CSDN博客,其中的主存储器—软件—进程的内存映像;
图源:缓冲区溢出漏洞分析技术研究进展
恶意代码:计算机病毒、网络蠕虫、特洛伊木马、后门、逻辑炸弹、僵尸网络等。有时考试会给一段很简单的恶意代码,询问这段代码有什么漏洞,如何修复。
拒绝服务:攻击者利用系统的缺陷,执行一些恶意的操作,使得合法的系统用户不能及时得到应得的服务或系统资源。这个需要划重点,在我印象中考试很喜欢通过nmap或者是wireshark捕获的网络通信记录记录的截图,询问考生对应哪种服务攻击。
图源:Nmap Scan Wireshark 04 TCP SYN-ACK first run | Weberblog.net
- 网络钓鱼:通过假冒可信方提供网上服务,以欺骗手段获取敏感个人信息的攻击方式。
- 网络窃听:指利用网络通信技术缺陷,使得攻击者能够获取到其他人的网络通信信息。常见的网络窃听技术手段主要有网络嗅探、中间人攻击。一般计算机系统只接受目的地址的保,在完全的广播子网中,网络攻击者将主机网络接口的方式设成“杂乱”模式,就可以接受整个网络上的信息报,从而可以或许敏感的口令,甚至将其充足,还原为用户传递的文件;
- SQL注入:在Web服务中,一般采用三层架构模式:浏览器+Web服务器+数据库。考题可能会让考生手写SQL注入语句,常见的语句可以参考这个:🌸SQL注入;
- 社交工程:伪造系统管理员的身份,给特定的用户发电子邮件骗取他的密码口令,有的攻击者会给用户送免费实用程序,其中隐藏将用户计算机信息发送给攻击者的功能;
- 电子监听:网络攻击者采用电子设备远距离地监视电磁波的传送过程;
- 会话劫持:攻击者在初始授权后建立一个连接,在会话劫持以后,攻击者具有合法用户的权限;
- 漏洞扫描:自动检测远程或本地主机安全漏洞的软件,通过漏洞扫描器可以自动发现系统的安全漏洞;
- 代理技术:网络攻击者通过免费代理服务器进行攻击,其目的是以代理服务器为“攻击跳板”,即使攻击目标的网络管理员发现了,也难以追踪到网络攻击者的真实身份或IP地址。
- 数据加密:网络攻击者常常采用数据加密技术来逃避网络安全管理人员的追踪。
2.4 黑客常用工具
- 扫描器:NMAP、Nessus、SuperScan;
- 远程监控:冰河、网络精灵、Netcat;
- 密码破解:John the Ripper、LOphtCrack;
- 网络嗅探器:Tcpdump/WireShark、DSniff;
- 安全渗透工具箱:Metasploit、BackTrack5、Cobalt Strike;
NMAP、WireShark均属于简单且常考的软件,建议VMware上安装kali系统以后运行,Kali系统自带这些软件~
🐳3 密码学基本理论
3.1 密码学概况
密码学分类
- 密码编码学:研究信息的变换处理以实现信息的安全保护;
- 密码分析学:通过密文获取对应的明文消息;
密码安全性分析
- 唯密文攻击(Ciphertext-only attack):密码分析者仅知道一些密文。在这种攻击中,密码分析者知道密码算法,但只能根据截获的密文进行分析,以得出明文或密钥。这是对密码分析者最不利的情况,因为他们所能利用的数据资源仅为密文。
- 已知明文攻击(Plaintext-known attack):密码分析者知道一些明文和相应密文。除了截获的密文外,密码分析者还有一些已知的“明文-密文对”来破译密码。他们的任务目标是推出用来加密的密钥或某种算法,该算法可以对用该密钥加密的任何新的消息进行解密。
- 选择明文攻击(Chosen-plaintext attack):密码分析者可以选择一些明文,并得到相应的密文。在这种攻击中,密码分析者不仅能够得到一些“明文-密文对”,还可以选择被加密的明文,并获得相应的密文。这样,密码分析者能够选择特定的明文数据块去加密,并比较明文和对应的密文,以分析和发现更多的与密钥相关的信息。
- 密文验证攻击(Ciphertext-verification attack):密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
- 选择密文攻击(Chosen-ciphertext attack):密码分析者可以选择一些密文,并得到相应的明文。密码分析者的任务目标是推出密钥。这种密码分析多用于攻击公钥密码体制。
从上到下的攻击难度依次变容易,通常(1)(2)是军方级别的攻击,(3)适合计算机文件系统与数据库系统,(5)需要劫持解密机。
3.2 密码体制分类
分类标准
- 明文转密文:置换和易位;
- 明文处理:分组和序列;
- 密钥使用:对称和非对称;
对称和非对称
- 私钥密码体制,也称为对称密码体制,是一种加密和解密使用相同密钥的密码体制。在这种体制中,发送方和接收方必须共享一个密钥,该密钥用于加密要发送的信息以及解密接收到的信息。私钥密码体制的优点是加密和解密速度快,适合加密大量数据。但是,这种体制的主要缺点是如何在通信双方之间安全地分配密钥。常见的私钥加密算法有DES、AES等。
- 公钥密码体制,也称为非对称密码体制,使用一对密钥:公钥和私钥。公钥用于加密信息,私钥用于解密信息。公钥可以公开,而私钥必须保密。在这种体制中,任何人都可以使用公钥加密信息,但只有知道私钥的人才能解密信息。公钥密码体制的优点是解决了私钥密码体制中密钥分配的问题,因为公钥可以公开传输。此外,公钥密码体制还提供了数字签名的功能,可以用于验证信息的完整性和来源。常见的公钥加密算法有RSA、ElGamal等。
- 混合密码体制,结合了私钥密码体制和公钥密码体制的优点。在这种体制中,公钥密码体制用于分配私钥密码体制的密钥,然后双方使用该密钥进行加密和解密操作。混合密码体制的工作原理如下:首先,发送方使用对称密钥(也称为会话密钥)加密要发送的信息。然后,发送方使用接收方的公钥将会话密钥加密,形成一个数字信封。接着,发送方将加密的信息和数字信封一起发送给接收方。接收方使用自己的私钥解密数字信封,获取会话密钥,然后使用会话密钥解密加密的信息。
图源:HTTP协议-19:对称加密与非对称加密、数字签名与证书
3.3 常见密码算法
- 对称密码算法:这种算法在加密和解密时使用相同的密钥。常见的对称密码算法有流密码算法,如RC4,以及分组密码算法,如DES、IDEA、RC2、AES和SM4等。这些算法对明文或密文进行加密或解密,生成等长的密文或明文块,然后按照顺序组合起来得到最终的密文或明文。其中,DES是最常考的算法:
DES算法是一种分组加密算法,它首先将输入的明文按64位进行分组。输入的密钥名义上是64位,但实际上有效的密钥长度是56位(因为每8位中的第8位被用作校验位或被忽略)。
这个56位的密钥经过置换选择1(PC-1)后,被压缩并重新排列成56位,然后分成左右两部分。这两部分密钥会分别进行循环左移和置换选择2(PC-2)操作,生成16个48位的子密钥。
明文分组经过初始置换(IP)后,进入Feistel网络结构,与这些子密钥一起进行加密操作。在每一轮中,使用一个48位的子密钥与经过扩展和置换的明文分组的一部分相结合,通过S盒进行非线性替换。S盒的输出再经过P盒置换,并与前一轮的输出进行异或操作,形成下一轮的输入。最后一轮的输出经过逆初始置换(IP^-1),并输出为64位的密文分组。
DES加密算法存在一些弱电和不足,主要有密钥太短和存在弱密钥。
- 非对称密码算法:这种算法在加密和解密时使用不同的密钥,即公钥和私钥。公钥用于加密数据或验证签名,私钥用于解密数据或进行签名。常见的非对称密码算法有RSA、DH、DSA、ECDSA、ECC和SM2等。非对称密码算法的安全性基于数学问题的难度,如大数分解和离散对数等。其中,RSA算法是最常考的算法:
- 密钥生成:
选择两个大素数:随机选择两个不相等的大素数p和q。这两个数需要保密,并且应该足够大以确保安全。通常,这两个数的长度应该是相似的,并且在选择时应该避免某些已知的弱素数。
计算n和Φ(n):计算n = p * q,这是公钥的一部分,可以公开。然后计算欧拉函数Φ(n) = (p - 1) * (q - 1),这个函数的结果需要保密。
选择e:随机选择一个整数e,满足1 < e < Φ(n),并且e与Φ(n)互质(即最大公约数为1)。通常,65537是一个常用的选择,因为它具有较好的性能和安全性。e也是公钥的一部分,可以公开。
计算d:计算e对于Φ(n)的模反元素d,即找到一个整数d,使得(e * d) % Φ(n) = 1。这个计算可以通过扩展欧几里得算法来完成。d是私钥的一部分,必须保密。
生成密钥对:公钥是(e, n),私钥是(d, n)。公钥可以公开给任何人,私钥必须保密。
加密:
准备明文:将明文(要加密的信息)转换为数字(如果它还不是数字的话)。通常,这涉及将明文编码为一系列数字或将其分组并转换为数字。
加密运算:使用公钥(e, n)对明文进行加密。对于每个明文块m(m < n),计算密文c = m^e % n。这里的“%”表示取模运算。
解密:
解密运算:使用私钥(d, n)对密文进行解密。对于每个密文块c,计算明文m = c^d % n。这样,就可以恢复原始的明文信息。
其中,DES一般考选择题,而RSA计算是必须会手算的,考试每年都在考~
3.4 Hash函数与数字签名
基本概念
摘要算法:这种算法将任意长度的输入数据转化为固定长度的输出数据,也称为散列函数、哈希函数或杂凑函数等。摘要算法没有密钥,主要用于数据完整性的验证。常见的摘要算法有MD系列(如MD2、MD4、MD5)、SHA系列(如SHA-1、SHA-256、SHA-512)以及MAC系列(如HMAC)等。
代表算法
- MD5算法:全称Message Digest Algorithm 5,即消息摘要算法第五版,是一种被广泛使用的密码散列函数,以512位数据块作为输入,可以产生出一个128位(16字节)的散列值(hash value)。MD5使用广泛,常用在文件完整性检查。王小云教授及其研究团队提出了Hash函数快速寻找碰撞攻击的方法,相关研究表明MD5的安全性已不足。
- SHA算法:
- (Security Hash Algorithm)是由美国的NIST和NSA设计的一种标准的Hash算法,被广泛用于数字签名的标准算法DSS中,也是安全性很高的一种Hash算法。它的主要思想是接收一段明文,以一种不可逆的方式将它转换成一段(通常更小)的密文,即散列值。这个散列值通常被称为信息摘要或信息认证代码。
- SHA算法的主要特点包括单向性和雪崩效应。单向性意味着从散列值无法推导出原始的明文信息,保证了信息的安全性。雪崩效应则是指输入数据的微小变化会导致输出散列值的显著不同,进一步增强了算法的安全性。
- SHA算法有多个版本,包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等。其中,SHA-1是最早的版本,以512位数据块作为输入,可以生成长度为160位的散列值。已发布的版本有SHA-2、SHA-3。而SHA算法则可以生成不同长度的散列值,以满足不同的安全需求。
Hash函数的安全性
- 单向性、抗弱碰撞性、抗强碰撞性,安全性依次递增:
- 单向性:
数学表示:对于给定的Hash函数 ( H ) 和Hash值 ( h ),很难找到原始数据 ( m ),使得 ( H(m) = h )。
简化解释:如果某人给你一个Hash值(比如一个数字指纹),你无法轻易找到或构造出原始的数据,这个数据在经过Hash函数处理后会得到这个Hash值。
- 抗弱碰撞性:
数学表示:给定一个消息 ( m_1 ) 和它的Hash值 ( h_1 = H(m_1) ),很难找到另一个不同的消息 ( m_2 ),使得 ( H(m_2) = h_1 )。
简化解释:如果你知道一个消息和它的Hash值,你很难找到另一个完全不同的消息,但是这两个消息经过Hash处理后会得到相同的Hash值。
- 抗强碰撞性:
数学表示:很难找到任意两个不同的消息 ( m_1 ) 和 ( m_2 ),使得 ( H(m_1) = H(m_2) )。
简化解释:在所有可能的消息中,你很难找到两个不同的消息,它们经过Hash处理后会得到相同的Hash值。这比抗弱碰撞性更强,因为它不依赖于任何特定的消息或Hash值。
哈希加盐:在存储字段后增加随机值,而后生成Hash值。即使被破解,也不一定能猜测到原数据。
国产密码算法
图源:国密算法分类及介绍(sm系列密码算法)_sm加密算法-CSDN博客
- 对称密码算法:
- SM1的加密强度与AES相当,采用硬件实现,已经广泛应用于电子政务、电子商务及国民经济的各个应用领域。
- SM4也是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算。
- 非对称密码算法:
- 国产的SM2是非对称加密算法的代表,它是基于椭圆曲线密码(ECC)的公钥算法,其签名速度与秘钥生成速度都快于RSA。
- 而SM9则是一种基于标识的非对称密码算法,利用身份标识作为公钥,简化了密钥管理过程。这两种算法都在保障信息安全方面发挥着重要作用。
- 哈希算法:
- SM3是国产的密码杂凑算法,适用于数字签名等密码应用场景。
数字签名
数字签名:是一种用于验证数字信息真实性和完整性的技术。通过数字签名,可以确认信息在传输过程中是否被篡改,以及确认信息的来源。
数字签名的步骤:
- 生成信息摘要:首先,使用哈希算法对原始信息进行计算,生成一个固定长度的信息摘要。哈希算法是一种单向的散列函数,它可以将任意长度的输入转换为固定长度的输出。
- 私钥加密摘要生成数字签名:然后,使用签名者的私钥对信息摘要进行加密,生成数字签名。私钥是签名者独有的,只有签名者才能使用自己的私钥进行加密操作。
- 发送信息和数字签名:签名者将原始信息和数字签名一起发送给接收者。在发送过程中,信息可能会经过多个网络节点,但由于数字签名的存在,信息在传输过程中无法被篡改。
- 接收方验证数字签名:接收方收到信息和数字签名后,使用签名者的公钥对数字签名进行解密,还原出信息摘要。公钥是公开的,任何人都可以使用公钥进行解密操作。然后,接收方使用相同的哈希算法对原始信息进行计算,生成一个新的信息摘要。最后,接收方将两个信息摘要进行对比,如果一致,则说明信息在传输过程中没有被篡改,且确实是由签名者发送的。
图源:关于软件数字签名原理分析 - 安全技术 - 亿速云
3.5 密码管理与数字证书
密码管理
密码管理是信息安全领域中的一个重要环节,涵盖了密钥管理、密码管理政策以及密码测评等多个方面。下面将分别介绍这些概念,并重点详细介绍密钥管理。
密钥管理
密钥管理是关于密钥的生成、存储、分发、更新、备份、恢复和销毁等全生命周期的管理过程。密钥是加密算法中的核心要素,用于保护数据的机密性、完整性和认证性。因此,密钥管理对于确保加密系统的安全性至关重要。
密钥管理的主要任务包括:
- 密钥生成:确保生成的密钥具有足够的随机性和复杂性,以抵抗密码分析攻击。
- 密钥存储:采用安全的物理或逻辑措施保护密钥,防止未经授权的访问和泄露。
- 密钥分发:确保密钥在传输过程中的安全性,防止被截获或篡改。
- 密钥使用:密钥使用要根据不同的用途而选择正确的使用方式。
- 密钥更新:定期或不定期地更换密钥,以减少密钥被破解的风险。
- 密钥撤销:当密钥到期、密钥长度增强或密码安全应急事件出现的时候,则需要进行撤销密钥,更换密码系统参数。
- 密钥备份与恢复:建立可靠的密钥备份机制,以防密钥丢失;同时,确保在必要时能够安全地恢复密钥。
- 密钥销毁:当密钥不再需要时,必须采用安全的方式彻底销毁密钥,以防止其被滥用。
- 密钥审计:密钥审计是对密钥声明周期的相关活动进行记录。
密钥管理的挑战:
- 安全性与可用性的平衡:密钥管理需要在确保安全性的同时,保持系统的可用性。过于复杂的密钥管理策略可能导致系统性能下降或用户体验不佳。
- 密钥泄露风险:密钥在生成、存储、分发等过程中都可能面临泄露风险。一旦密钥泄露,整个加密系统的安全性将受到严重威胁。
- 跨平台兼容性:在异构网络环境中,不同系统和应用可能采用不同的密钥管理标准和算法,这给跨平台的密钥管理带来了挑战。
密码管理政策
密码管理政策是一组指导和规范密码使用的规则和准则。它通常包括密码的长度、复杂度要求、更换周期、禁止使用的密码列表等内容。密码管理政策的目的是确保用户使用的密码具有足够的安全性,以抵抗常见的密码猜测和破解攻击。
密码测评
密码测评是对密码算法、密码协议和密码系统等进行安全性评估的过程。它旨在发现密码实现中的漏洞和弱点,为改进密码设计和使用提供依据。密码测评通常包括理论分析、实验测试和模拟攻击等多个环节,以确保密码系统的安全性和可靠性。
数字证书
数字证书是一种电子文档,用于在互联网通讯中标识通讯各方的身份信息,它提供了一种在互联网上验证身份的方式,类似于现实生活中的身份证。数字证书是由权威的第三方机构,即电子商务认证中心(CA中心)颁发的。这些证书包含了持有者的公钥和一些其他信息,公钥用于加密信息,只有证书的持有者才能使用相应的私钥进行解密。
数字证书的主要作用是在网络环境中确保信息和数据的安全性、完整性和真实性。它使用加密技术来保护数据,防止数据在传输过程中被窃取或篡改。同时,数字证书还可以用于验证网站的身份,确保用户访问的是真实的、可信的网站,而不是伪造的或恶意的网站。
数字证书通常包含以下信息:
- 证书持有者的名称:这是证书的主要标识,用于表明证书的所有者。
- 证书颁发机构的名称:这是颁发证书的权威机构的名称。
- 证书的有效期:证书从何时开始生效,到何时过期。
- 证书的公钥:用于加密信息或验证数字签名的公钥。
- 证书的签名:由证书颁发机构使用其私钥对证书进行签名,以确保证书的真实性和完整性。
以SSL证书为例,这是一种常见的数字证书,用于保护网站与用户之间的通信安全。当用户在浏览器中访问一个使用SSL证书的网站时,浏览器会检查证书的有效性、颁发机构和签名等信息,以确保网站的身份和安全性。如果证书有效,浏览器会显示一个锁形图标或绿色地址栏等安全指示符,表示连接是安全的。
在实际应用中,数字证书广泛用于各种需要身份验证和安全通信的场景,如网上银行、电子商务、电子邮件等。通过使用数字证书,人们可以在互联网上进行安全、可信的交易和通信。
如果你对数字证书好奇(反正也会考),点击https地址栏的锁→连接安全→右上角的证书小图标,就可以看到了~
3.6 安全协议
Diffie-Hellman密钥交换协议
Diffie-Hellman密钥交换协议(Diffie-Hellman Key Exchange/Agreement Algorithm)是一种安全协议,它可以让双方在完全没有对方任何预先信息的条件下,通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。
该协议的原理是基于幂模运算的单向函数特性。具体来说,协议中的双方(假设为A和B)会选择一个大素数P及其原根G,然后各自生成一个秘密数字(私钥)并进行幂模运算得到公钥。接着,双方将各自的公钥发送给对方。在收到对方的公钥后,双方再次进行幂模运算,得到的结果就是共享的密钥。
需要注意的是,这个密钥交换协议只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实现加密和解密消息。此外,虽然Diffie-Hellman密钥协议本身是一种非认证的密钥协商协议,但它为各种经过身份验证的协议提供了基础,并用于在传输层安全性的短暂模式中提供前向保密。
义臻 - 知乎博文连接:一文搞懂Diffie-Hellman密钥交换协议 - 知乎
SSH协议
SSH(Secure Shell)协议是一种建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性。它通过对传输的数据进行加密,可以有效防止远程管理过程中的信息泄露问题。SSH协议由IETF(Internet Engineering Task Force)的网络小组制定,最初是UNIX系统上的一个程序,后来迅速扩展到其他操作平台。几乎所有UNIX平台,包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix等,以及其他平台如Windows,都可运行SSH,SSH的服务端口通常为22。
SSH协议主要由三部分组成:传输层协议、用户认证协议和连接协议。传输层协议提供服务器认证、数据保密性和完整性等功能(SSH不支持UDP,仅支持TCP)。此外,SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。用户认证协议则用于向服务器提供客户端用户的鉴别功能。
在实际的应用中,SSH在端口转发技术的基础上,能够支持远程登录、rsh、rlogin、文件传输(scp)等多种安全服务。虽然SSH是一个安全协议,但也有可能受到中间人攻击和拒绝服务攻击。
图源:《信息安全工程师教程》(第2版)
执行流程:
版本号协商阶段[图中2]:
- 服务器端打开端口22,等待客户端连接。
- 客户端向服务器端发起TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>-<软件版本号>”。
- 客户端收到报文后,解析该数据包,如果服务器的协议版本号比自己的低,且客户端能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。
- 客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。
- 服务器比较客户端发来的版本号,决定是否能同客户端一起工作。如果协商成功,则进入密钥和算法协商阶段,否则服务器断开TCP连接。
密钥和算法协商阶段[图中3-5]:
- 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code)算法列表、压缩算法列表等。
- 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。
- 服务器和客户端利用DH交换算法、主机密钥对等参数,生成会话密钥和会话ID(客户端和服务端各自计算)。
认证阶段[图中6]:SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证。此阶段可能涉及用户名/密码认证、公钥认证等多种方式。
会话请求阶段:认证通过后,客户端向服务器端发送会话请求,包括会话类型(如shell、sftp等)、伪终端参数等。
交互会话阶段[图中7]:会话请求通过后,服务器端和客户端进行信息的交互。在这个阶段,客户端和服务器端通过之前协商好的算法进行数据的加密和解密,保证通信的安全性。
3.7 密码学网络安全应用
- 数据加密:利用加密算法和密钥,将明文数据转换为密文,以保护数据的机密性。在网络通信中,加密技术可以确保数据在传输过程中不被窃听或篡改。例如,SSL/TLS协议就是基于非对称加密和对称加密技术,用于实现网络通信中的安全传输。
- 数字签名:密码学还可以用于数字签名,保证数字文档的真实性和完整性,防止篡改和伪造。数字签名技术广泛应用于电子商务、电子邮件安全等领域。
- 身份认证:通过数字识别技术,进行身份认证,避免伪造、冒充他人身份获取非法权限。例如,在电子银行系统中,通过数字证书和身份认证技术,可以确保只有合法用户才能访问和操作账户。
- 虚拟专用网络(VPN):VPN技术利用隧道协议在公共网络上建立安全的加密通道,实现远程访问和数据传输的安全性。VPN的加密通道可以保证数据在公共网络上的机密性和完整性。
- 区块链技术:密码学也是区块链技术的基础之一,可以保证区块链上交易的安全性和隐私性。区块链技术中的加密算法、哈希函数等密码学工具,确保了区块链的不可篡改性和去中心化特性。
🐳结语
至此,这篇博文告一段落。原本我计划一天之内复习完整本书,结果吭哧吭哧才总结了3章,看来600页的厚度真不是盖的。或许哪天心情好的时候再总结一些内容。
如果你对这本书感兴趣,不妨直接购买《信息安全工程师教程》来深入研读。虽然它更侧重于理论知识,且略微偏向管理而非实践操作(具体来说,考察重点偏向管理与运维,而非渗透测试),但其中的知识体系仍然值得探索~~😶🌫️😶🌫️
写得模糊或者有误之处,欢迎小伙伴留言讨论与批评,督促博主优化内容{例如有错误、难理解、不简洁}等,博主会顶锅前来修改~~😶🌫️😶🌫️
此外,期待小伙伴推荐一些游戏,适合我这种没有入门的菜鸟消遣的,类似于Orwell、全网公敌、Hacknet、Uplink、Grey Hack、NITE Team、信号法则、装机模拟器这样子的。作为回报,我会推荐你玩《锈湖》(?)。
我是梅头脑,本片博文若有帮助,欢迎小伙伴动动可爱的小手默默给个赞支持一下,感谢点赞小伙伴对于博主的支持~~🌟🌟
同系列的博文:🌸暂无
同博主的博文:🌸随笔03 笔记整理-CSDN博客