信息安全技术

物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
| OSI的体系结构 | TCP/IP的体系结构 |
|---|---|
| 应用层 | 应用层(各种应用层协议) |
| 表示层 | 应用层(各种应用层协议) |
| 会话层 | 应用层(各种应用层协议) |
| 运输层 | 运输层(TCP或UDP) |
| 网络层 | 网际层IP |
| 数据链路层 | 网络接口层 |
| 物理层 | 网络接口层 |

用户数据报协议:提供面向事务的简单不可靠信息传送服务
特点
TCP/UDP通过16bit端口号来识别应用程序
- 标识:标识是实体身份的一种计算机表达,每个实体与计算及内部的一个身份表达绑定
- 鉴别:确定是提示它所声明单位,提供了关于某个实体身份的保证,某一实体确信与之打交道的实体正是所需要的实体
- 作为访问控制的一种必要支持,访问控制的执行依赖于确知的身份
- 作为数据源认证的一种方式
- 作为审计追踪的支持
鉴别系统的构成
基于实体特征的鉴别
实体特征鉴别的有效性判断
基于实体特征鉴别的设备拒绝一个已授权的个人,成为第一类错误,又称为错误拒绝率(False Rejection Rate,FRR)
设备接受了一个本应该拒绝的冒名顶替者,称为第二类错误,又称为错误接受率(False Acceptance Rate,FAR)
可以通过交叉错误率(Crossover Error Rate,CER)比较设备的整体质量,低 CER 的设备比高 CER 的设备更准确
1.单点登录
单点登录就是指用户只需在网络中进行一次身份认证,便可以访问其授权的所有网络资源,而不再需要其他的身份认证过程,实质是安全凭证在多个应用系统之间的传递或共享
它使用对称密码算法实现通过可信第三方的认证服务
Kerberos 的运行环境由密钥分配中心(Key Distribution Center,KDC)、应用服务器和客户端 3 个部分组成
KDC 提供认证服务(Authentication Server,AS)和会话授权服务(Ticket Granting Service,TGS)
AS 对用户的身份进行初始认证,若认证通过便给用户发放票据授权票据(Ticket Granting Ticket,TGT)
用户使用该票据课访问 TGS,从而获得访问应用服务器时所需的服务票据(Service Ticket,ST)
应用服务器接受用户的服务访问请求,验证用户身份,并向合法用户提供所请求的服务
客户端在用户登录时发送各种请求信息,并接收从 KDC 返回的信息
2.Kerberos 基本认证过程
(1)第一阶段:获得票据许可票据
(2)第二阶段:获得服务许可票据
(3)第三阶段:获得服务
随着用户量的增加,第三方集中认证的方式容易形成系统性能的瓶颈
什么是AAA协议
常见的AAA协议
什么是访问控制

自主访问控制模型(DAC)
访问许可与访问模式
ACL 可以决定任何一个特定的主体是否可对某一个客体进行访问。它是利用在客体上附加一个主题明细表的方法来表示访问控制矩阵的。表中的每一项包括主体的身份以及对该客体的访问权。
目前访问控制表是自主访问控制实现中比较好的一种方法
能力(Capabilities)决定用户对客体的访问权限,系统必须对每个用户维护一份能力表,即按行读取访问控制矩阵,表示每个主体可以访问的客体及权限
用户可以将自己的部分能力传给其他用户,这样那个用户就获得了读写该文件的能力
在用户较少的系统中,这种方式比较好,但一旦用户数增加,便要花费系统大量的时间和资源来维护系统中每个用户的能力表
访问许可的类型
等级型

有主型
自由型
强制访问控制(Mandatory Access Control,MAC)是主体和客体都有一个固定的安全属性,系统通过比较客体和主体的安全属性,根据已经确定的访问控制规则限制来决定主体是否可访问客体
能有效防范特洛伊木马
适用于专用或安全性要求较高的系统
Bell-LaPadula 模型,简称 BLP 模型
它是最早也是最常用的一种多级访问控制模型,该模型用于保证系统信息的机密性
BLP 模型基于两个规则保障数据的机密性
简单安全规则
*_规则
BLP 模型可有效防止低级用户和进程访问安全级别更高的信息资源,同时,安全级别高的用户和进程也不能向安全级别低的用户和进程写入数据,从而有效地保护机密性
Biba 对系统的完整性进行了研究,提出了一种与 BLP 模型在数学上对偶的完整性保护模型——Biba 模型
Biba 模型基于两条规则确保数据的完整性
即“不下读”
即“不上写”
上读下写
Clark-Wilson 模型是一个确保商业数据完整性的访问控制模型
(1)Clark-Wilson 模型定义
(2)Clark-Wilson 模型分析
是一种同等考虑保密性和完整性的访问控制模型,主要用于解决商业应用中的利益冲突问题,它在商业领域的应用与 BLP 模型在军事领域的作用相当
(1)Windows 的身份标识与鉴别
本地安全授权机构(LSA)
安全标识符是一串字符串,通常在安全主体创建时生成,由计算机名、当前时间、当前用户态线程的 CPU 耗费时间的总和 3 个参数决定以保证它的唯一性
一个完整的 SID 包括以下内容
用户和组的安全描述
48-bit 的身份特权(ID authority)
修订版本
可变的验证值
Windows 本地用户信息加密存储在注册表中,并且只有 system 账户才有权限进行访问
用户对鉴别信息的操作,例如更改密码等都通过一个以 system 权限运行的服务“Security Accounts Manager”来实现
(2)Linux 的身份标识与鉴别
在系统内部管理进程和文件保护时使用 UID 字段
系统中可以存在多个拥有不同注册名、但 UID 相同的用户,这些使用不同注册名的用户是同一个用户
Linux 的用户信息存储在 /etc/passwd 中
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 shell
/etc/passwd 是全局可读
Linux 系统使用 shadow 文件机制,将用户口令散列转移到该文件中,shadow 文件只有 root 可读可写,而同时 /etc/passwd 文件的密文域显示为一个 x,从而保护用户口令避免泄露
安全主体类型
安全表示符(Security Identifier,SID)
例:cmd中输入C:\WINDOWS\system32>sc showsid server
文件系统类型
文件系统安全
特权划分
特权保护:保护root账号
什么是漏洞
漏洞的含义
Metasploit平台
关于Metasploit平台介绍请点这里
数据库面临的安全威胁
检查、监控、审计
事前检查
始终监控
事后审计





按照恶意代码运行平台
按照恶意代码传播方式
按照恶意代码工作机制
按照恶意代码危害
恶意代码传播方式-移动存储

恶意代码传播方式-文件传播
文件感染
软件捆绑
- 强制安装:在安装其他软件是被强制安装上
- 默认安装:在安装其他软件是被默认安装上
恶意代码传播方式-网络传播
将木马伪装成页面元素
利用脚本运行的漏洞
利用社会工程学用一个欺骗人的标题等等方式
或者邮件文件中放置病毒
恶意代码传播方式-主动放置
利用系统提供的上传渠道(论坛贴吧等等)
攻击者已经是获得系统控制权的人
攻击者是系统开发者
恶意代码传播方式-软件漏洞
利用各种系统的漏洞
利用服务漏洞
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
我遇到了这个奇怪的错误.../Users/gideon/Documents/ca_ruby/rubytactoe/lib/player.rb:13:in`gets':Isadirectory-spec(Errno::EISDIR)player_spec.rb:require_relative'../spec_helper'#theuniverseisvastandinfinite...itcontainsagame....butnoplayersdescribe"tictactoegame"docontext"theplayerclass"doit"musthaveahumanplay
默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同