【计算机安全】相关整理


归纳整理,便于回顾。

1.计算机安全是什么

计算机安全是指保护计算机系统、网络和数据免受未经授权的访问、破坏、篡改或泄露的一系列措施和技术。随着计算机技术的发展,计算机安全变得越来越重要,因为许多个人和组织都依赖于计算机系统来存储和处理敏感信息。
计算机安全是指采取一系列技术、政策、程序和措施,旨在保护计算机系统、网络、数据和服务免受未经授权的访问、破坏、篡改和泄露的威胁和攻击。计算机安全的目标是确保信息技术资源的保密性、完整性和可用性。

具体来说,计算机安全包括以下方面:

  1. 保密性(Confidentiality): 确保只有授权用户能够访问敏感信息,防止未经授权的信息泄露。

  2. 完整性(Integrity): 确保数据和系统在未经授权的修改或篡改的情况下保持原样,防止数据被恶意篡改或破坏。

  3. 可用性(Availability): 确保计算机系统和服务随时可用,防止因攻击或故障导致系统不可用。

  4. 身份验证(Authentication): 确认用户或系统的身份,确保只有合法用户或设备能够访问系统资源。

  5. 访问控制(Access Control): 管理和限制用户对系统资源的访问,确保只有经过授权的用户能够执行特定的操作。

  6. 加密(Encryption): 使用加密算法将敏感信息转换为不可读的形式,以防止未经授权的访问者获取敏感数据。

  7. 防火墙和入侵检测系统(Firewalls and Intrusion Detection Systems): 防火墙用于监控和控制网络流量,入侵检测系统用于检测和响应潜在的入侵行为。

  8. 反病毒和恶意软件防护(Antivirus and Malware Protection): 使用反病毒软件和其他恶意软件防护工具,防止计算机感染恶意软件。

  9. 安全更新和漏洞修复(Security Patching): 定期更新操作系统、应用程序和安全软件,修复已知的漏洞和弱点。

  10. 社交工程防范和用户培训(Social Engineering Prevention and User Training): 提高用户对社交工程攻击的警惕性,通过培训教育减少人为因素引起的安全风险。

2.计算机安全研究与解决什么问题

计算机安全研究旨在解决和缓解计算机系统、网络和数据面临的各种威胁和问题,计算机基本安全要保证对于数据访问的保密性(Confidentiality),完整性(Integrity),可用性(Availavility)。以下是计算机安全研究主要关注和解决的一些问题:

1. 未经授权访问: 研究如何防止未经授权的用户或恶意攻击者进入计算机系统、网络或应用程序,确保只有合法用户能够访问敏感信息。

2. 恶意软件和病毒: 研究和开发防御机制,以检测、防止和清除计算机系统中的病毒、蠕虫、木马和其他恶意软件。

3. 漏洞和弱点: 研究计算机系统和软件中存在的漏洞和弱点,寻找并修复这些安全漏洞,以减少攻击者利用这些漏洞的可能性。

4. 数据泄露和隐私问题: 研究如何保护敏感数据,包括在数据传输和存储中采用加密技术,以防止未经授权的访问和泄露。

5. 社交工程攻击: 研究和开发方法,以预防和对抗通过欺骗和操纵人为因素引发的攻击,如钓鱼和欺诈。

6. 网络攻击和入侵: 研究网络攻击的类型,包括入侵、拒绝服务攻击、中间人攻击等,并设计相应的防御机制。

7. 身份验证和访问控制: 研究有效的身份验证方法,如多因素认证,以及如何实施强大的访问控制策略,确保只有授权用户能够访问系统和数据。

8. 物理安全: 研究和设计物理安全措施,以防止未经授权的物理访问或设备损坏。

9. 移动设备和应用程序安全: 研究如何保护智能手机、平板电脑等移动设备以及相应的应用程序,以防范移动环境中的安全威胁。

10. 云安全: 研究云计算环境中的安全问题,包括数据隔离、合规性和对云服务提供商的信任等方面。

11. 网络监测和响应: 研究实时监测网络活动,及时发现潜在的安全事件,并制定有效的响应计划。

12. 新兴技术和威胁: 研究面向新兴技术(如人工智能、物联网)的安全挑战,以及相应的解决方案。

3.设计原理:计算机安全构建在计算机的弱点之上

保证计算机安全的方法本质上是需要了解计算机的基本组成与工作原理,计算机擅长处理的是重复的、有规律的计算,相比于人类而言有更快的计算速度,即便如此,对于NP难问题的计算,目前的计算机架构与计算模式仍然从时间上来说比较漫长甚至说是不太可能的。因此,目前的计算机(网络)安全空间构建都基于某个NP难问题,亦即计算机安全定义的下界要大于计算机计算能力的上界,非常期待更高等计算机(生物计算机/量子计算机)的出现来打破现有的安全体系,设计目标上来讲,It’s funny永远是一个水涨船高的相对关系,矛与盾,攻与防。
当然,其他的更常见的网络攻击,主要是对协议栈/工具的设计漏洞,系统漏洞,也是目前对于大多数企业、公司而言真正需要关注和解决的问题。

4.不得不聊的密码学

密码学是研究通信和计算机系统安全性的领域,主要涉及到加密、解密、身份验证和数据完整性等方面的技术。密码学的目标是设计和分析一种安全的通信方式,确保信息在传输和存储过程中不被未经授权的访问者获取或篡改。

4.1 关键概念和基本技术:

  1. 加密和解密(Encryption and Decryption): 加密是将原始信息转换为不可读的形式,而解密是将加密的信息还原为原始形式。这涉及使用密钥(key)进行算法操作,其中密钥可以是对称的(同一个密钥用于加密和解密)或非对称的(使用一对公钥和私钥)。

  2. 对称加密(Symmetric Encryption): 在对称加密中,相同的密钥用于加密和解密数据。DES(数据加密标准)、AES(高级加密标准)是常见的对称加密算法。

  3. 非对称加密(Asymmetric Encryption): 非对称加密使用一对密钥,一个是公钥(用于加密),另一个是私钥(用于解密)。RSA(Rivest-Shamir-Adleman)是非对称加密的例子。

  4. 哈希函数(Hash Functions): 哈希函数将任意长度的输入数据转换为固定长度的哈希值。常用于确保数据的完整性,任何数据的改变都会导致哈希值的变化。MD5、SHA-256是常见的哈希函数。

  5. 数字签名(Digital Signatures): 数字签名用于验证数据的来源和完整性。发送者使用其私钥对数据进行签名,接收者使用发送者的公钥来验证签名。

  6. 公钥基础设施(Public Key Infrastructure,PKI): PKI是一种框架,用于管理公钥和数字证书的创建、分发和撤销。它是在非对称加密中广泛使用的基础设施。

  7. 密钥管理(Key Management): 密钥管理涉及生成、分发、存储和撤销密钥的过程。这对于确保密钥的安全性和合理使用至关重要。

  8. 随机数生成器(Random Number Generators): 随机数是许多密码学算法的基础,用于生成密钥和初始化向量等。强密码学需要强随机数生成器。

4.2 应用场景

1. 网络通信安全: 用于保护在互联网上进行的数据传输,包括网页浏览、电子邮件通信、文件传输等。SSL/TLS协议用于加密Web通信,保护用户的敏感信息。

例子: 当用户在浏览器中访问网银或在线购物网站时,SSL/TLS协议通过加密通信确保用户的登录凭据和交易信息的机密性。这防止了中间人攻击和窃听风险。
2. 电子支付和在线交易: 为了保护在线支付和金融交易的安全性,采用了密码学技术。加密算法确保支付信息的机密性,数字签名用于验证交易的完整性。

例子: 在移动支付应用中,使用密码学技术保护用户的支付信息。数字签名确保交易的完整性,加密算法确保支付过程中的机密性。
3. 密码学哈希在密码存储中的应用: 存储用户密码时,通常使用密码学哈希函数,如SHA-256或bcrypt,来保护密码的安全性。这防止了在密码泄露时对用户密码的直接攻击。

例子: 网站和应用通常使用密码学哈希函数对用户密码进行散列存储。这样即使数据库泄露,攻击者也难以还原用户密码。
4. 数字签名: 用于验证文档、电子邮件和软件的来源和完整性。数字签名使用私钥对文件进行签名,接收者使用公钥来验证签名,确保文件未被篡改并来自合法来源。

例子: 在软件分发过程中,数字签名用于验证软件的真实性和完整性。开发者使用私钥签名软件,用户使用公钥验证签名,确保软件未被篡改。
5. 身份验证: 密码学技术用于身份验证,包括密码、生物特征识别(如指纹、虹膜扫描)、智能卡等。多因素认证(MFA)利用多个身份验证因素提高系统的安全性。

例子: 企业网络中的用户身份验证通常要求用户提供用户名和密码,并可能结合多因素认证(MFA),如手机生成的验证码或生物特征。
6. 公钥基础设施(PKI):用于建立和管理数字证书的基础设施,确保公钥的可信性。PKI用于认证用户和服务器,以及为加密通信提供安全通道。

例子: 当您访问安全网站时,PKI确保网站的数字证书有效且合法,确保您与网站之间的通信是加密的。
7. 虚拟专用网络(VPN): 使用密码学协议(如IPsec)实现的VPN确保通过互联网的远程访问是加密的,从而保护敏感数据不受非法访问。

例子: 在远程办公时,员工通过使用VPN建立安全的加密通道来访问公司内部网络,确保远程连接的安全性。
8. 电子邮件加密: 为了保护电子邮件通信的机密性,使用加密算法(如PGP或S/MIME)对邮件内容进行加密,确保只有合法的接收者能够阅读邮件。

例子: 使用PGP或S/MIME加密电子邮件内容,确保只有授权的收件人能够解密和阅读邮件,提高通信的保密性。
9. SSL/TLS(安全套接层/传输层安全性): 用于在Web浏览器和服务器之间建立加密通信通道,确保通过网页提交的敏感信息(如信用卡号)不会被恶意攻击者截取。

例子: 在网上银行中,SSL/TLS用于加密用户与银行服务器之间的通信,保护用户的账户信息和交易数据。
10. 物联网安全: 在物联网设备之间的通信中,密码学用于确保设备之间的数据传输是安全和私密的。
例子: 在智能家居中,通过使用密码学技术确保智能设备之间的通信是安全的,例如智能门锁和智能手机之间的通信。
11. AIGC大模型安全: ***

5. 面向面经学习

1. 基础概念和定义:
什么是计算机安全?
解释一下机密性、完整性和可用性的概念。
什么是防火墙(Firewall)?它的作用是什么?

2. 加密和密码学:
什么是对称加密和非对称加密?可以举例说明吗?
讨论一下最常用的哈希函数有哪些。
Answer: sha1,sha-256,md5
解释一下数字签名的工作原理。
Answer:

数字签名是一种确保数据完整性、认证数据来源以及防止抵赖的技术手段。其基本工作原理如下:
1.创建消息摘要(Hash): 发送方首先使用哈希函数对原始数据进行摘要计算,生成固定长度的哈希值。这个哈希值代表了原始数据的内容,即消息摘要。
2.使用私钥进行加密: 发送方使用自己的私钥对消息摘要进行加密,形成数字签名。只有私钥的持有者能够进行有效的数字签名。
3.发送原始数据和数字签名: 发送方将原始数据和数字签名一同发送给接收方。这可以通过公共通信渠道发送,因为数字签名的目的就是为了在公共通信中确保数据的完整性和来源可信。
4.验证数字签名: 接收方收到原始数据和数字签名后,首先使用相同的哈希函数对原始数据生成消息摘要。
使用公钥进行解密: 接收方使用发送方的公钥对数字签名进行解密,得到另一个消息摘要。
5.比较消息摘要: 接收方将使用相同哈希函数得到的消息摘要与解密得到的消息摘要进行比较。如果两者一致,说明数据没有被篡改,并且签名确实是由私钥持有者生成的。
数字签名的关键在于私钥的保密性和公钥的广泛传播。私钥只有签名方知道,而公钥可以被任何人获得。这使得任何人都能够验证签名,但只有私钥的持有者能够生成有效的数字签名。这样的机制确保了数据的完整性、认证来源和防止抵赖。

3. 网络安全:

什么是DDoS攻击?如何防范?

解释一下入侵检测系统(IDS)和入侵防御系统(IPS)的区别。
什么是虚拟专用网络(VPN)?它如何确保通信的安全性?
VPN VS 正向代理?

4. 身份验证和访问控制:
什么是多因素认证(MFA)?为什么它比单因素认证更安全?
解释一下基于角色的访问控制(RBAC)的概念。
什么是生物特征识别技术?它在身份验证中的应用有哪些?

5. 应用安全:
讨论一下跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的区别。

这里是引用跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是两种完全不同类型的网络安全威胁,它们的目标和实施方式有很大的区别。
1.目标不同:
XSS(跨站脚本攻击): 主要目标是攻击用户的浏览器,通过在受害者的浏览器上执行恶意脚本,获取用户的敏感信息,或者执行对用户帐户的恶意操作。
CSRF(跨站请求伪造): 主要目标是利用受害者在已经登录的状态下对受害者账户执行未经授权的操作。攻击者通过诱使受害者在浏览器中访问恶意站点,利用受害者在其他站点上的登录状态发起伪造的请求。
2.攻击方式不同:
XSS: 攻击者注入恶意脚本代码到受害者访问的网页中。这些脚本代码会在用户的浏览器上执行,可以用于窃取用户的cookie、会话信息,或者修改页面内容。
CSRF: 攻击者在受害者的浏览器上伪造一个请求,然后利用受害者已经登录的状态,通过受害者的浏览器向目标站点发送伪造的请求,执行某些敏感操作。
3.影响范围不同:
XSS: 影响用户的浏览器,可能导致对用户个人信息的泄露、账户劫持等。
CSRF: 影响用户在已登录状态下与其他站点的交互,可能导致在用户不知情的情况下执行某些敏感操作。
4.防御方式不同:
XSS: 防御XSS攻击的方式包括对输入进行过滤和转义,使用HTTP头部中的Content Security Policy(CSP)等。
CSRF: 防御CSRF攻击的方式包括使用Anti-CSRF令牌,验证Referer头部等。
虽然XSS和CSRF是两种不同的攻击类型,但它们经常结合使用,攻击者可能通过XSS漏洞获取用户的cookie,然后利用CSRF攻击执行未经授权的操作。因此,在开发和维护Web应用程序时,综合考虑和实施各种安全措施是非常重要的。

什么是SQL注入攻击?如何防范?
讨论一下安全开发生命周期(SDLC)的步骤和原则。

安全开发生命周期(Security Development Lifecycle,SDLC)是一种将安全性集成到软件开发过程中的方法,旨在确保在整个开发生命周期中考虑和实施安全性。以下是SDLC的一般步骤和原则:
SDLC步骤:
规划和设计: 在项目规划和设计阶段考虑安全性,定义安全需求、威胁建模和攻击面分析。确定系统的安全架构和设计原则。
实施: 在编写和开发代码时,采用最佳的安全编码实践。使用安全的API、库和框架,避免使用已知的不安全函数和方法。
测试: 进行全面的安全测试,包括静态代码分析、动态代码分析、安全测试和渗透测试。确保发现并修复潜在的安全漏洞和弱点。
部署: 在部署应用程序之前,进行安全审查和配置审查。确保服务器和系统的安全配置,并采用适当的访问控制和身份验证机制。
监控和响应: 部署安全监控和日志记录机制,以便检测和响应安全事件。及时修复已知的漏洞,并不断改进系统以适应新的威胁。
SDLC原则:
全员参与: SDLC要求整个开发团队,包括开发人员、测试人员、架构师等,都参与到安全过程中。安全不是一个单一责任,而是整个团队的责任。
持续改进: 安全开发是一个持续改进的过程。通过学习先前的安全事件和漏洞,不断改进开发流程、工具和培训,以适应新的威胁和漏洞。
安全教育和培训: 提供开发团队成员必要的安全培训,使其了解常见的安全风险、最佳实践和工具。培训可以涵盖代码审查、漏洞分析、安全测试等方面。
自动化: 利用自动化工具进行静态和动态代码分析,自动化安全测试和部署过程,以提高效率和减少人为错误。
合规性: 将安全开发流程整合到法规和合规性要求中。确保应用程序符合相关的法规、标准和行业规范。
开源和第三方组件: 定期审查和更新使用的开源和第三方组件,确保它们的安全性,并及时响应已知漏洞。
漏洞管理: 建立漏洞管理流程,确保及时发现、评估和修复发现的漏洞。建议使用漏洞跟踪系统,并实施安全补丁管理。
通过遵循这些步骤和原则,SDLC能够确保在软件开发的每个阶段都考虑到安全性,从而减少潜在的安全漏洞和风险。

6. 操作系统安全:
什么是权限继承?如何在操作系统中管理用户权限?
解释一下最小特权原则(Principle of Least Privilege)。
如何确保操作系统的及时更新和漏洞修复?

7. 云安全:
讨论一下云安全的挑战和解决方案。
什么是共享责任模型在云安全中的作用?
解释一下虚拟化中的安全考虑因素。

8. 物联网安全:
什么是物联网(IoT)?物联网安全面临的挑战有哪些?
如何保护智能设备免受物联网攻击?
讨论一下物联网中的隐私问题。

others. 面经大全供参考:
https://blog.csdn.net/admin_man/article/details/126956401
https://zhuanlan.zhihu.com/p/157111231
https://zhuanlan.zhihu.com/p/635924266

参考:
计算机安全学习笔记:https://zhuanlan.zhihu.com/p/344322394
计算机安全简介(易懂):https://zhuanlan.zhihu.com/p/103696962

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值