精华内容
下载资源
问答
  • 安全性定义
    千次阅读
    2022-03-19 20:46:52

    事前防范,事中控制,事后审计。

    就整个信息系统的安全而言,数据的安全是最重要的。数据库系统的安全性在技术上依赖于两种方式:
    1)DBMS本身提供的用户身份识别、视图、权限控制和审计等管理措施
    2)由应用程序实现对数据库的访问控制和管理

    应用程序写代码来实现对数据的访问控制,不必多言,而数据库本身的安全性措施,如下所示

    1、用户标识和鉴别

    最外层的安全保护措施,即身份认证。常用方式有
    1)口令认证

    2)强身份认证
    口令方式可能容易被窃听,不够安全。强身份认证过程使认证可以结合信息安全领域一些更深入的技术保障措施来强化用户身份的鉴别,比如与数字证书、智能卡或用户指纹识别等多种身份识别技术相结合。

    2、存取控制(数据授权)

    对用户进行授权,包括操作类型(如查找、更新或删除)和数据对象的权限。

    用户通过身份认证以后,需要区分角色来区别对待。一般可以将权限角色分为三类:
    1)数据库登录权限类
    2)资源管理权限类
    除了拥有登录权限,还有创建和修改表、‘索引等权限
    3)DBA权限类

    DBMS除了提供基于功能角色的操作权限,还提供了对数据对象的访问控制。控制粒度从大到小,分别是 数据库级、关系级(表级)、元组级(行级)、属性级(列级)。

    3、密码存储和传输

    对远程终端信息加密传输。

    4、视图的保护

    通过视图的方式进行授权。

    视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含一系列带有名称的列和行数据,但并不存储数据,数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。使用视图可以实现以下功能:

    1)将用户限定在关系中的特定元组上。即只能看到特定的数据行。

    2)将用户限定在特定属性上,即只能看到特定的列。

    3)将多个关系中的属性连接起来,使它们看起来像一个关系(即表)。

    4)聚合信息,比如显示一个属性的和,或者属性最大值,等等。

    【物化视图】
    特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,本身只存储查询定义,并不存储数据。而物化视图是物理表,存储基于查询的数据,它可以理解为数据表的快照。

    5、审计

    使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来。

    如果身份认证是一种事前防范措施,审计则是一种事后监督手段。审计作为一种安全检查措施,会将系统的运行状况和用户访问数据库的行为以日志的形式记录并保存下来,作为稽查的证据。审计分为

    1)用户审计
    系统记录所有对表或视图进行访问的企图(包括成功或不成功的),以及相关的用户名、时间和操作代码等信息。这些信息通常记录在日志中。

    2)系统审计
    由DBA进行,审计内容主要为系统一级命令和数据对象的使用情况。

    更多相关内容
  • EBS-安全性配置文件的作用、定义及使用 1、路径:HRMS->安全性->配置文件 在MOAC中主要是使用按组织限制访问,在按组织访问设置的过程中该处定义的OU既是多OU的根本。 安全性配置文件的类型如下图所示,...

    EBS-安全性配置文件的作用、定义及使用

     

    1、路径:HRMS->安全性->配置文件 

    MOAC中主要是使用按组织限制访问,在按组织访问设置的过程中该处定义的OU既是多OU的根本。

    安全性配置文件的类型如下图所示,按组织层次结构和(或)组织列表列出的安全组织,就能实现多OU操作。

    按组织层次结构和(或)组织列表列出的安全组织:

    1.1通过预定义组织层次结构,来定义安全性配置文件。每次新增组织的时候,不需修改已有的安全性配置文件,只需要在组织层次结构里面新增组织即可。

    组织层次结构里面可选择已经定义好的组织层次。

     

    1.2组织层次结构的定义 HRMS->工作结构->组织->层次结构

     

    1.3通过安全性配置文件的组织列表进行组织隔离,对下面列表的组织进行选择,并进行区分是要包括还是要排除,来限制组织的安全性。这种方法也可以针对一个组织,下面的列表里面只填写一个组织既可。

     

     

     

     

     

     

    2、安全性配置文件定义或者修改后,需要运行以下请求,新的安全性配置文件才会生效。

    路径:HRMS->[查看]-请求 

    在定义好安全性控制文件后需要在HRMS职责下运行请求维护安全性清单请求,否则在打开业务实体首选项页面时会出现如下错误:APP-FND-02901: 您没有访问任何业务实体的权限。请检查您的配置文件选项“MO:安全性配置文件是否包括任何业务实体,或是否设置了配置文件选项“MO:业务实体

     

    3、安全性配置文件生效之后,可以根据职责或者用户等维度,进行分配。

    系统管理员->配置文件->系统

     如下图示例:将能看到所有组织的安全性配置文件1000-XX分配给所有地点,然后再根据责任进行区分。

    系统管理员的责任给与能查到所有组织的安全性配置文件,单个组织的责任,分配给只能查看这个组织的安全性配置文件。

     

     

    展开全文
  • 如何分析软件安全性需求

    千次阅读 2021-02-20 14:33:31
    软件安全性需求是指系统可靠地控制、监控和审计谁能够在哪种资源上执行哪种动作的能力,以及检测安全漏洞并从中恢复的能力。

    作者简介

    Gavin,程序员、软件架构师、企业架构师,关注智能制造。

    本文是专栏《智能制造系统架构》中的文章,其它文章请参阅入坑智能制造系统架构

    软件安全性需求是指系统可靠地控制、监控和审计谁能够在哪种资源上执行哪种动作的能力,以及检测安全漏洞并从中恢复的能力。

    安全策略与安全机制

    软件系统通过安全策略定义安全性需要。安全策略定义了系统对资源的控制和保证,以及应该给当事人赋予的表示,以确定对系统中的每种资源(或者每种类型的资源)有什么样的访问。典型的安全策略会根据系统内不同类型的当事人,各种类型的信息,以及每组当事人所需要的访问类型来定义信息访问策略。安全性策略还需要定义如何控制特定敏感系统操作的执行。策略也应该定义必须执行的信息完整性约束以及保护信息不会收到授权变更。

    安全策略通过安全机制来保证。安全机制是执行安全策略确定规则所需的技术、配置选项以及过程,它还会提供系统所需的机密性、完整性、可说明性和可用性的保证。

    常见安全机制包括:

    • 验证、授权和审计
    • 信息私有性和完整性机制
    • 不可否认机制
    • 系统可用性机制
    • 安全监控机制

    分析软件安全性需求的步骤

    分析软件安全性需求的步骤包括:

    1. 确定敏感资源:首先要确定要确保哪些资源的安全。系统所有的安全性都需要由关键的关注点来驱动。
    2. 定义安全策略:通过安全策略定义谁应该被信任、对哪些系统资源做出什么样的访问(以及所有在这种访问上的约束,如限制在特定的时间段或者每周特定的几天)、系统需要确保的完整性,以及访问敏感资源时所需要的可说明性。策略一般应该根据资源和用户的分组来定义(通常基于组织的单元和角色),而不是列举大量特定的情况。并且注意策略不是设计,因此它需要定义哪种访问会提供给谁,而不是定义如何到达这种访问方式。
    3. 识别对系统的威胁:识别出对安全策略可能存在的威胁。识别威胁清晰地定义了需要保护什么,以及需要针对什么威胁来保护。
    4. 设计安全实现:设计系统范围的安全性基础架构,从而可以在面临威胁模型中的风险时执行系统安全策略。这个步骤中,要考虑使用特定的安全技术,像单点登录系统、网络防火墙、SSL通信链接安全性、加密技术、策略管理系统等。
    5. 评估安全风险:为系统设计好安全性基础架构之后,需要重新评估风险,考虑安全性基础架构是否达到了可接受的成本和风险之间的平衡。

    安全性原则

    安全性原则包括:

    • 尽可能赋予最少量的权限:总是给安全性用户赋予他们执行任务所需的最少量权限。
    • 保证最弱环节的安全性:识别并改善系统安全性的最弱环节,直到安全性风险达到一种可接受的等级。
    • 深度防御:与其依赖于一种安全措施来应对系统的所有威胁,不如考虑对防御进行分层来提供更好的防护。
    • 分离和划分:应该尽量清晰地分离不同的责任,从而在需要的情况下,把各种责任的权限分配给不同的用户,并划分系统不同部分的职责,以实现独立控制。
    • 保持安全设计简单:安全性需求较强的系统需要足够简单,以使我们能够保证它的安全并加以验证。
    • 不要依赖于隐晦:系统的设计假设潜在的攻击者知道它如何实现。
    • 使用安全默认值:确保安全的默认行为对使用的系统安全性有效。
    • 安全地出现故障:确保即使系统出现了故障,也能安全地处理。
    • 假设外部实体不受信任:要确保所有外部实体在验证之前都是不受信任的,从而避免意料之外的情况违背安全性原则。
    • 审计敏感事件:大多数系统都包含了大量与安全相关的关键事件,如重新设置密码,分配强大的角色,以及操作审计轨迹等。这些敏感事件需要安全地进行审计,从而监控对它们的使用。

    安全性需求

    在软件架构设计时,应该考虑如下安全性相关的需求:

    遵守安全性原则

    对用户进行身份验证

    身份验证是要可靠地识别使用系统的参与者。特别是对于制造企业,随着网络化建设,互联网与企业的进一步融合,用户和设备及应用程序和数据正在向传统企业边界和控制区域之外迁移。这意味着,如果有人拥有正确的用户凭据,则他们将被允许进入他们请求的任何站点、应用程序或设备。这导致暴露的风险增加,从而瓦解了曾经值得信任的企业控制区域,并使许多公司面临数据泄露、恶意软件和勒索软件攻击的风险。因此企业网络的内部越来越不值得信任。因此,基于严格身份验证过程,定义了称为零信任的网络安全模式,只有经过身份验证和授权的用户和设备才能访问应用程序和数据。

    具体要求包括:

    • 唯一标识:系统中的每位参与者都应该由唯一标识
    • 账户管理方式:账户的产生、修改、变更、删除以及身份认证应采用统一的身份认证平台来实现。当参与者可能需要通过多种身份验证技术在不同系统作多重登录时,推荐在不同的底层系统上使用某种形式的单点登录技术作统一层。
    • 认证失败后的处理方式设计,防止黑客暴力猜测:连续失败登录后锁定账户。账户锁定后可以由系统管理员解锁,也可以在一段时间后自动解锁。
    • 区分公共区域和受限区域:将站点分割为公共访问区域和受限访问区域,受限区域只能接受特定用户的访问,而且用户必须通过站点的身份验证。当未经认证的用户试图访问受限资源时,应用应自动提示用户认证。
    • 使用强密码策略:内部系统的口令规则需要符合口令管理规则, 要求输入至少 8 位字符,其中要包含大写字母、小写字母、数字和特殊字符。
    • 能够禁用账户:在系统受到威胁时使凭证失效或禁用账户,则可以避免遭受进一步的攻击。
    • 不在用户存储中存储密码:如果必须验证密码,可以不实际存储密码。相反,可以存储一个单向哈希值,然后使用用户所提供的密码重新计算哈希值。为减少对用户存储的词典攻击威胁,可以使用强密码,并将随机 salt 值与该密码结合使用。
    • 支持密码有效期:密码不应固定不变,而应作为常规密码维护的一部分,通过设置密码有效期对密码进行更改。
    • 不在网络上以纯文本形式发送密码:以纯文本形式在网络上发送的密码容易被窃听。为了解决这一问题,应确保通信通道的安全,例如,使用 SSL 对数据流加密。
    • 保护身份验证 Cookie:身份验证 cookie 被窃取意味着登录被窃取。可以通过加密和安全的通信通道来保护验证凭证。另外,还应限制验证凭证的有效期,以防止因重复攻击导致的欺骗威胁。
    • 同一用户同时只允许登录一个:对进入保护区域的用户需要进行重新认证(比如从普通用户操作改变到管理员级别权限的操作、修改个人密码的操作)。
    • 不使用多重关键字查找:使用多重关键字查找用户记录可能会导致SQL或LDAP注入问题。比如同时使用用户名和密码作为键来查找用户记录,且不检测SQL或LDAP注入,则任一字段都可能产生风险。

    授权访问

    一旦识别了参与者,授权就会涉及限制和强迫允许那些参与者在系统中能做什么。具体要求包括:

    • 应用软件应包含用户权限分配和管理功能设计。如:
      • 系统读、写、执行权限设计。
      • 系统查看、配置、修改、删除、登录、运行等权限设计。
      • 数据访问范围的权限设计
      • 应用功能模块使用权限的设计
      • 限制用户对系统级资源的访问(系统级资源包括文件、文件夹、注册表项、Active Directory 对象、数据库对象、事件日志等。)
      • 应用使用的数据库账户必须是普通权限账户,只能访问允许的数据库;
      • 应用启动进程的权限应遵循“最小授权”原则
    • 应用使用的系统账号(运行环境中的)应遵循“最小授权”原则。不使用“Administrator”, “root”, “sa”, “sysman”, “Supervisor”或其它所有的特权用户被用来运行应用程序或连接到网站服务器,数据库,或中间件。
    • 调用方被映射到应用程序逻辑中间层中的角色,并基于角色成员身份限制对类和方法的访问权限。使用由当前调用方的角色成员身份所确定的有限标识集来执行下游资源访问。
    • 在条件允许的情况下,尽量采用统一的访问控制机制。

    确保信息保密性

    保密性确保只有信息的所有者以及他们选择的共享者才能够读取信息。

    保护敏感信息,具体要求包括:

    • 尽量避免存储机密:在软件中以完全安全的方式存储机密是不可能的。可以接触到服务器的系统管理员可以访问这些数据。例如,当仅仅是验证用户是否知道某个机密时,则没有必要存储该机密。在这种情况下,可以存储代表机密的哈希值,然后使用用户提供的值计算哈希值,以验证该用户是否知道该机密。
    • 不要在代码中存储机密:不要在代码中对机密进行硬编码。即使不将源代码暴露在 Web 服务器上,但从编译过的可执行文件中仍然可以提取字符串常量。配置漏洞可能会允许攻击者检索可执行文件。
    • 不要在永久性 cookie 中存储敏感数据:避免在永久性 cookie 中存储敏感数据。如果存储的是纯文本数据,最终用户能够看到并修改该数据。如果对其加密,必须考虑密钥管理。
    • 不要使用 HTTP-GET 协议传递敏感数据:避免使用 HTTP-GET 协议存储敏感数据,因为该协议使用查询字符串传递数据。使用查询字符串不能确保敏感数据的安全性,因为查询字符串经常被服务器记录下来。
    • 对数据进行加密或确保通信通道的安全:如果在网络上向客户端发送敏感数据,应对数据进行加密或确保通信通道的安全。通常的做法是在客户端与 Web 服务器之间使用 SSL。当应用系统无法达到此要求时可以通过网络访问控制等手段限制可以访问应用系统的用户。
    • 不要向客户端泄漏信息:发生故障时,不要暴露将会导致信息泄漏的消息。例如,不要暴露包括函数名以及调试内部版本时出问题的行数的堆栈跟踪详细信息。应向客户端返回一般性错误消息。
    • 记录详细的错误信息:向错误日志发送详细的错误消息。应该向服务或应用程序的客户发送最少量的信息,如一般性错误消息和自定义错误日志 ID,随后可以将这些信息映射到事件日志中的详细消息。确保没有记录密码或其他敏感数据。
    • 捕捉异常:使用结构化异常处理机制,并捕捉异常现象。这样做可以避免将应用程序置于不协调的状态,这种状态可能会导致信息泄漏。它还有助于保护应用程序免受拒绝服务攻击。

    选择合适的加密方法,具体要求包括:

    • 不使用自创加密方法:成功开发出加密算法和例程是非常难的。因此,应尽量使用平台提供的经过验证和测试的加密服务。
    • 使用正确的算法和密钥大小:选择了正确的算法非常重要,另外,应确保所使用的密钥大小能提供足够的安全级别。密钥越大,安全性越高。
    • 确保加密密钥的安全:加密密钥是输入加密及解密进程的秘密数字。为保证加密数据的安全,必须保护好密钥

    确保信息完整性

    完整性确保信息在未授权的情况下不会被变更(特别是在消息传递的过程中)。正确的输入验证是防御目前应用程序攻击的最有效方法之一。具体要求包括:

    • 对所有的输入进行安全验证:开始输入验证时,首先假定所有输入都是恶意的,除非有证据表明它们并无恶意。无论输入是来自服务、共享文件、用户还是数据库,只要其来源不在可信任的范围之内,就应对输入进行验证。
    • 采用集中验证方法:将输入验证策略作为应用程序设计的核心元素。考虑集中式验证方法,例如,通过使用共享库中的公共验证和筛选代码。这可确保验证规则应用的一致性。此外,还能减少开发的工作量,且有助于以后的维护工作。
    • 在服务器端进行验证:应使用服务器端代码执行其自身的验证。使用客户端验证可以造成攻击者绕过客户端或关闭客户端脚本例程(例如,通过禁用JavaScript 脚本)。
    • 确保用户没有绕过检查:确保用户没有通过操作参数而绕过检查。防止最终用户可以通过浏览器地址文本框操作 URL 参数。
    • 不信任 HTTP 头信息:HTTP 头在 HTTP 请求和响应开始时发送。应确保 Web 应用程序的任何安全决策都不是基于 HTTP 头中包含的信息,因为攻击者很容易操作 HTTP 头。
    • 注意标准化问题:标准化是指将数据转化为标准形式的过程。接受输入文件名、URL或用户名时必须先进行标准化。
    • 限制、拒绝和净化:输入输入验证的首选方法是从开始就限制允许输入的内容。按照已知的有效类型、模式和范围验证数据。使用以下策略:
      • 限制输入:定义一个筛选器,根据类型、长度、格式和范围来筛选输入的数据。定义应用程序字段可以接受的数据输入,并强制应用该定义。拒绝一切有害数据。
      • 验证数据的类型、长度、格式和范围:在适当的地方对输入数据使用强类型检查,检查字符串字段的长度,检查字符串的格式是否正确。
      • 拒绝已知的有害输入:要拒绝有害数据,需假定应用程序知道恶意输入的所有变体。
      • 净化输入:向客户端写回数据时,对用户输入的数据进行 HTML 编码和 URL 编码检查,过滤特殊字符(包括HTML关键字以及&,\r\n,两个\n等字符)。
    • SQL注入防范:进行数据库操作的时候,对用户提交的数据必须过滤 ’ ; -- 等特殊字符。
    • XML注入防范:当使用XML文件格式存储数据时,若使用Xpath和XSLT功能,必须过滤用户提交数据中的< >  / ' = " 等字符。

    确保可负责性

    很多系统都要求某些或者所有用户对他们的动作负责。在信息系统中可能需要两种不同形式的可负责性:消息的审计和不可抵赖性。审计通过记录系统用户所执行的操作日志,用于确定特定的情况是如何发生的。不可抵赖性要求能够以某种方式确定地识别出消息的创建者,而让他无法抵赖。

    审计的要求包括:

    • 审核并记录跨应用层的访问:审核并记录跨应用层的访问,以便用于认可。考虑应用程序如何在多重应用层间传送调用方标识。
    • 确保日志数据的安全:限制对日志数据的访问,加大了攻击者篡改日志数据以掩饰其攻击行为的难度。应将有权操作日志数据的个人数量减到最小。只为高度信任的账户(如管理员)授予访问权限。
    • 定期备份和分析日志数据:如果从不对日志数据进行分析,则记录活动没有任何意义。应定期(至少一月一次)备份生产服务器上的日志数据。

    保护可用性

    系统可用性既包括可靠性、软件复制、灾难恢复等,也包括可用性相关的安全性内容,保护系统使其免受降低可用性的恶意攻击。这样的攻击叫做拒绝服务(Denial Of Service, Dos)。

    应能设置系统会话时间,防止会话劫持和重复攻击的风险。

    • 限制会话寿命:对于高度保护的应用系统,可将超时时间设置为5分钟,低风险的应用系统设置不能超过20分钟。
    • 对身份验证 cookie 的内容进行加密:如果Cookie信息包含了身份验证信息,则必须对 cookie 内容进行加密。

    整合安全性技术

    安全性一般需要跨系统的多个部分来实现,所以需要对如何在系统中实现端到端的安全性尽早做出设计决定。在系统的安全设计方面,部分重要工作使确保安全性一致地实现,并且将不同部分的技术组合到一起,组成完整、整合的安全系统。

    提供安全性管理

    要确保计划和安全性实现能够得到有效的管理。

    对配置管理必须的安全要求包括:

    • 确保配置存储的安全:基于文本的配置文件、注册表和数据库是存储应用程序配置数据的常用方法。应避免在应用程序的 Web 空间使用配置文件,以防止可能出现的服务器配置漏洞导致配置文件被下载。应避免以纯文本形式存储机密,如数据库连接字符串或账户凭据。通过加密确保这些项目的安全,然后限制对包含加密数据的注册表项、文件或表的访问权限。
    • 使用最少特权进程和服务账户:应用程序配置的一个重要方面是用于运行 Web 服务器进程的进程账户,以及用于访问下游资源和系统的服务账户。应确保为这些账户设置最少特权。

    使用第三方的安全性基础架构

    尽可能地策略执行推到系统的底层基础设备中。

    检查列表

    获取需求的检查列表

    • 你是否确定了系统中包含的敏感资源?
    • 你是否确定了一系列需要访问资源的用户?
    • 你是否确定了系统对信息完整性保证的需求?
    • 你是否确定了系统的可用性需求?
    • 你是否确定了一种安全性策略,来定义系统所需要的安全性,包括允许哪些用户在哪些资源上执行哪些操作以及需要实施的信息完整性?
    • 安全策略是否简单?
    • 你是否已创建出正式的威胁模型,来识别系统所面临的安全性风险?
    • 你是否考虑了系统外部人员和内部人员的威胁?
    • 你是否考虑了系统外部人员和内部人员的威胁?
    • 你是否考虑了系统的部署环境如何根据系统的威胁而改变?
    • 你是否和利益相关者一起推出了示例场景,从而他们理解计划使用的安全策略以及系统所面临的安全性风险?
    • 你是否与外部专家一起对安全性需求进行了评审?

    架构定义的检查列表

    • 你是否在威胁模型中按照要求程度说明了每种威胁?
    • 你是否尽可能多地使用了第三方安全技术?
    • 你是否为安全性解决方案创建了集成的总体设计?
    • 在设计安全性基础架构的时候,你是否考虑了所有标准的安全性原则?
    • 你的安全性基础架构是是否尽量简单?
    • 你是否定义了如何识别违背安全性的情况以及如何从中恢复?
    • 你是否对所有影响到的视图都应用了安全性视角?
    • 外部专家是否评审了你的安全设计?

    参考资料

     

    展开全文
  • 密码系统的安全性

    千次阅读 2020-03-30 00:06:07
    (1)无条件安全性 这种评价方法考虑的是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统。 (2)计算安全性 这种方法是指使用目前最好的方法攻破它所需要的计算远远超出攻击者的计算资源水平,则可以定义...

    1,评估密码系统安全性主要有三种方法:

    (1)无条件安全性

    这种评价方法考虑的是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统。

    (2)计算安全性

    这种方法是指使用目前最好的方法攻破它所需要的计算远远超出攻击者的计算资源水平,则可以定义这个密码体制是安全的。

    (3)可证明安全性

    这种方法是将密码系统的安全性归结为某个经过深入研究的数学难题(如大整数素因子分解、计算离散对数等),数学难题被证明求解困难。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。

    2,实际安全性

    对于实际应用中的密码系统而言,由于至少存在一种破译方法,即强力攻击法,因此都不能满足无条件安全性,只提供计算安全性。密码系统要达到实际安全性,就要满足以下准则:
    (1)破译该密码系统的实际计算量(包括计算时间或费用)十分巨大,以致于在实际上是无法实现的。
    (2)破译该密码系统所需要的计算时间超过被加密信息有用的生命周期。例如,战争中发起战斗攻击的作战命令只需要在战斗打响前需要保密;重要新闻消息在公开报道前需要保密的时间往往也只有几个小时。
    (3)破译该密码系统的费用超过被加密信息本身的价值。
    如果一个密码系统能够满足以上准则之一,就可以认为是满足实际安全性的。

    3,可证明安全性

    3.1 可证明安全性体系的三大要素

    在可证明安全体系中,有三大要素:安全模型,安全性定义和困难性问题。
    安全模型分为安全目标和敌手能力。安全目标描述了安全模型要达到什么程度的安全,例如,对于加密算法的不可区分性(Indistinguishablity 简称 IND)、对于签名算法的存在性不可伪造(Existable Unforgeble 简称 EU)等。

    其中不可区分性(IND)也称为语义安全(Semantic scurity),其定义如下。敌手即使获得了密文,也不能得到其对应明文的任何信息,哪怕是 1bit 的信息。其形式化的表示方法为:已知 m0,m1以及 Cb=Enc(pk,mb),其中 m0是 m0或 m1中的任意一个,即 Cb是 m0、m1其中之一的密文,敌手无法有效判断加密过程中 b 到底是 0 还是 1。

    3.2 安全性定义

    刻画敌手的能力,主要有四类,选择明文攻击(Chosen Plaintext Attacke 简称 CPA)、选择密文攻击(Chosen Ciphertext Attack 简称 CCA)、惟密文攻击(Ciphertext-Only Attack)、已知明文攻击(Known Plaintext Attack)。常用的刻画敌手能力是前面两类,选择明文攻击(CPA)是指由敌手选择明文并且可以得到对应的密文。选择密文攻击(CCA)是指敌手不仅可以选择明文获得密文,还能选择有限次的密文,获得对应的明文。CCA比 CPA 描述敌手的能力更强。

    下面介绍一下常用的安全性定义。

    CPA 安全。我们把选择明文攻击(CPA)描述成一个游戏以方便我们更好的理解。首先声明一点,这个游戏的目的是在选择明文攻击的前提下攻破系统的不可区分性(Indistinguishablity),所以下面简称这个游戏为 IND-CPA。其次,还要定义两个角色挑战者 C 和敌手 A。挑战者(challenger)的任务相当裁判,主持游戏并且对敌手的行为进行反馈。敌手顾名思义,就是去攻击当前系统,而且对于这个游戏来说是采用选择明文攻击的方法进行攻击。游戏的描述如下:

    A. 初始化:挑战者 C 创建 IND-CPA 系统,并且将公钥发送给敌手 A。

    B. 敌手 A 选择两个长度相同的明文 m0,m1发送给挑战者 C。挑战者 C 随机选择 b∈{0,1},并将 mb加密记作 cb,然后将密文cb发送给敌手 A。

    C. 敌手 A 猜测挑战者 C 上一步进行加密的明文是 m0还是 m1,并且将猜测结果输出,输出结果记为 b‘。若 b‘=b,那么敌手攻击成功。

    敌手攻击的优势可以定义为如下函数:

    在这里插入图片描述

    其中 w 是加密方案密钥的长度。因为随机猜测就有 1/2 的概率赢得 IND-CPA 游戏。所以

    在这里插入图片描述

    才是敌手经过努力得到的优势。如果对任何多项式时间的敌手 A,存在一个可忽略的优势σ,使得

    在这里插入图片描述

    那么就称这个加密算法在选择明文攻击下具有不可区分性,或者称为 IND-CPA 安全。

    3.3 困难问题

    有了安全模型和安全性定义,通常使用规约到困难问题的方法来进行安全性证明。密码学中常用的困难问题有离散对数困难问题(discrete logarithm problem,简称 DLP)、CDH 问题(Computational Diffie-Hellman) 、DDH 问题(Decisional Diffie-Hellman)以及 BDH 问题(Bilinear Diffie-Hellman)。

    The Discrete Logarithm Problem(DLP)
    在这里插入图片描述

    The Computational Diffie-Hellman Problem(CDH)
    在这里插入图片描述

    The Decisional Diffie-Hellman Problem (DDH)
    在这里插入图片描述

    3.4 可证明安全性理论

    有了前面叙述了安全模型,安全性定义,困难性问题,可证有了前面叙述了安全模型,安全性定义,困难性问题,可证明安全体系也变得可行。可证明安全性是指利用“规约”的方法,将攻击密码算法或安全协议的方法规约到一个攻击困难问题上。首先确定加密体制的安全目标,如签名体制的安全目标是签名的不可伪造性(Existable Unforgeble),加密体制的安全目标是信息的不可区分性(Indistinguishablity)。然后根据安全性定义确定敌手的能力构建一个安全性模型。

    规约是复杂性理论中的概念, 一个问题P1规约到问题P2是指,已知解决问题 P1的算法 M1,我们能构造另一算法 M2,M2可以以 M1作为子程序,用来解决问题 P2。

    将规约的方法应用在密码算法或安全协议的安全性证明上,例如,可以将敌手对密码算法或安全协议(P1)的攻击规约到一些已经得到深入研究的困难问题(P2)。即若敌手能够对算法或协议发起有效的攻击,就可以利用敌手构建一个算法来攻破困难问题,然而困难问题是已经被证明无法攻破的,这样就出现矛盾。根据反证法,敌手可以攻破算法或协议假设不成立,证明完毕。

    一般来说,为了证明方案 1 的安全性,我们可以将方案 1 规约到方案 2,即如果敌手 A 可以攻破方案 1,那么敌手 B 同样也可以攻击方案 2,而方案 2 已经被证明是安全的,或者是一个难题。

    证明过程通过一个思维游戏来描述。首先,挑战者创建方案2,B 表示方案 2 中的敌手,A 表示方案 1 中的敌手。B 为了攻破方案 2,利用 A 作为子程序来攻击方案 1。B 想要利用 A,就需要对 A 进行训练,所以 B 模拟了 A 的挑战者。

    在这里插入图片描述
    例如,如果要对加密算法进行安全性证明,那么方案 1 就是具 体 的 加 密 算 法 。 假 设 安 全 目 标 是 信 息 的 不 可 区 分 性(Indistinguishablity),敌手 A 的能力是可以选择明文攻击,即 CPA。敌手 B 模拟敌手 A 的挑战者,与 A 进行 IND-CPA 游戏。在游戏过程中,B 为了实现自己的目的利用 A。如果 A 无法判断自己是与 B 还是与挑战者做游戏,那么称 B 的模拟是完备的。

    对于其他加密算法或加密协议,我们必须首先确定它想要实现的安全目标,例如签名方案的不可伪造性,然后根据安全性定义确定敌手的能力构建一个安全性模型,再把对加密算法或加密协议的攻击规约到已被证明的困难问题上。 这就是可证明安全性。

    结语:可证明安全性理论是密码学理论与计算复杂性理论的一次完美结合,也是现代密码学的基石。在过去的 30 年终,现代密码学最大的突破就是把密码学体系建立在计算复杂理论上,这使得密码学从一门艺术发展成为一门严谨的学科。

    转载链接:https://www.cnblogs.com/xdyixia/p/11610091.html
    参考链接:https://www.cnblogs.com/zhuowangy2k/p/11901028.html

    展开全文
  • 系统安全性综述

    千次阅读 2021-11-04 19:21:03
    系统安全性的内容和性质 系统安全性的内容 系统安全性包括三个方面的内容,即物理安全、逻辑安全和安全管理。物理安全是指系统设备及相关设施受到物理保护,使之免遭破坏或丢失;安全管理包括各种安全管理的政策和...
  • 网络安全定义:在分布式网络环境中对信息载体和信息的处理、传输、存储、访问、提供安全保护,以防止数据和信息内容遭到破坏、更改和泄露、或网络服务中断、或拒绝服务、或被非授权使用和篡改。 网络安全具有信息...
  • 软件定义安全的一点点理解

    千次阅读 2019-01-15 10:39:17
    文章内容部分来源绿盟的《软件定义下的新型安全架构和实践》、《软件定义安全》以及《软件定义安全:SDN/NFV新型网络的安全揭秘》这本书。 1.SDN/NFV 软件定义网络(SDN),是网络一种新型网络创新架构,是网络...
  • 密码学之前后向安全性

    千次阅读 2022-02-25 13:51:29
    本文将讨论密码学中的 前向安全性(Forward Security) 与 后向安全性(Backward Security) ,希望读完本文后,你再也不会混淆这两个概念。 在开始本文之前,希望你有如下预备知识: 密码学(Cryptography)是一门...
  • 功能安全学习笔记002-功能安全定义

    万次阅读 多人点赞 2018-04-07 21:52:59
    1,功能安全定义1.1 本质安全与功能安全为了了解功能安全的概念,先得熟悉下 和“本质安全”和“功能安全”的概念。假如以铁道的路口为例,比较一下基于两种安全概念的避免路口事故的方法。这里避免路口事故就是...
  • IPv6的安全性

    千次阅读 2019-09-25 14:29:55
    IPv6的安全性 IPv6的优势及特点 扩展地址空间及应用。IPv6设计之初主要是解决互联网迅速发展使IPv4地址空间将被耗尽问题,以免影响整个互联网的进一步扩展。由于IPv4采用32位地址长度,大约只有43亿个地址,而...
  • 数据库题目之数据库安全性

    千次阅读 2019-01-10 15:11:46
    安全性 B.可移植性 C.完整性 D.并发控制 【答案:】B 2、保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的 。 A.安全性 B.完整性 C.并发控制 D.恢复 【答案:】A 3...
  • 理解什么是线程安全性、原子性

    万次阅读 2019-12-29 11:56:30
    •原子 加锁机制 •写在前面 进程想要执行任务需要依赖线程,换句话说就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。提到多线程这里要说两个概念,就是串行和并行,搞清楚这个我们才能更好...
  • 【数据库系统设计】数据库安全性

    千次阅读 2020-04-04 22:46:24
    数据库安全性4.1 数据库安全性概述4.1.1 数据库的不安全因素4.2 数据库安全性控制4.2.1 用户身份鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法4.3 视图...
  • 数据库安全性

    万次阅读 多人点赞 2018-05-19 19:24:10
    数据库的数据保护主要包括数据的安全性和完整性。 一、安全性概述 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或损坏。系统安全保护措施是否有效是数据库系统的主要技术指标之一。 ...
  • 用户定义完整约束

    千次阅读 2020-03-31 22:40:15
    2.用户定义完整约束: 用户定义的完整规则,包括非空约束、自增约束、默认值约束等、check约束以及触发器约束,本次主要学习非空约束、自增约束、默认值约束,check约束以及触发器约束在这里暂时不做介绍。 ...
  • 软件安全性与软件可靠性

    千次阅读 2020-06-25 21:57:35
    在功能安全强调软件安全性的时候,往往与软件可靠性密不可分,航空领域一般讲究可靠性,而轨道交通领域和汽车领域通常讲究安全性,那么对于软件而言,安全性与可靠性到底是怎么的关系与区别,很多人存在这方面的疑惑...
  • 定义 Access Control Decision Function ADF 访问控制判决功能 Access Control Decision Information ADI 访问控制判决信息 Access Control Enforcement Function AEF 访问控制实施功能 Access Control...
  • 密码的定义:采用特定变换的方法对信息进行加密保护、安全认证的技术、产品和服务 信息系统的要素有:计算机硬件、...商用密码应用安全性评估(简称“密评”)的定义:指在采用商用密码技术、产品和服务集成建设的网
  • 【吐血整理】数据库的安全性

    万次阅读 多人点赞 2020-04-05 12:10:02
    本文主讲 数据库的安全性,欢迎阅读~ ????目录一、数据库安全性概述二、数据库安全性控制1. 用户标识与鉴别2. 存取控制3. 自主存取控制方法4. 授权与回收5. 数据库角色6. 强制存取控制方法三、视图机制四、审计...
  • 一个密码系统的安全性主要与两个方面的因素有关。 (1)一个是所使用密码算法本身的保密强度。密码算法的保密强度取决于密码设计水平、破译技术等。可以说一个密码系统所使用密码算法的保密强度是该系统安全性的...
  • 文章目录脑图线程安全性定义线程安全性的体现原子性使用AtomicInteger改造AtomicInteger#incrementAndGet分析CAS操作中可能会带来的ABA问题ABA问题的解决办法AtomicLong 和 LongAdderLongAdder的优化思路LongAdder...
  • 2、启用全局方法安全性2.1 理解调用授权2.1.1 使用预授权保护对方法的访问2.1.2 使用后授权保护对方法的调用2.2 在项目中启用全局方法安全性3、对权限和角色应用预授权3.1 UserDetailsService和Password的配置类3.2 ...
  • 银行家算法和安全性算法笔记

    万次阅读 多人点赞 2018-07-01 15:57:55
    condition: 资源请求合法检查 op1=&amp;amp;gt;operation: 进行尝试的资源分配 op2=&amp;amp;gt;operation: 不合法处理 st-&amp;amp;gt;cond1 cond1(no)-&amp;amp;gt;op2
  • 数据库安全性概述及TCSEC/TDI安全性能指标

    千次阅读 多人点赞 2020-04-23 11:34:06
    文章目录数据库安全问题数据库安全性概述数据库的不安全因素1.非授权用户对数据库的恶意存取和破坏2.数据库中重要或敏感的数据被泄露3.安全环境的脆弱性安全标准简介TCSEC/TDI安全性能的指标 数据库安全问题 有...
  • 前向安全性(转)

    千次阅读 2018-08-07 16:06:49
    1997年,Anderson提出了前向安全数字签名的概念。前向安全的签名把公钥的生存期...前向安全(forward security)该定义最早是由Mihir Bellare和Sara K. Miner在 CRYPTO’99上提出的关于数字签名的性质,而perfect fo...
  • 定义访问权限集是一项分配至责任层的可选的安全功能,是对Oracle 11i应用产品弹性域安全性定义的功能扩展,对总帐管理模块的一些内容进行安全性定义和权限分配的集合,以控制不同的责任对一些内容的访问权限,如成批...
  • 2、 掌握实体完整、参照完整和用户自定义完整定义和维护方法; 3、 掌握数据库触发器的设计和使用方法。 二、 实验内容 3.2数据库完整实验 打开ScoreDB数据库,完成以下操作: (1)分别定义ScoreDB数据库...
  • 数据库的安全性和完整性

    千次阅读 2020-01-17 11:22:05
    1.安全性 数据库的安全性是防止不合法的操作...存取控制是数据库安全性的重点,其机制包括用户安全定义和合法权限检查,有两类方法:自主存取控制(DAC)方法和强制存取控制(MAC)方法。重点是前者 1.2.1自主存取控...
  •  随着数据安全性的越来越重要,很有必要介绍一下数据库的安全方面的内容。本文兼容SQL Server 2016,但是由于安全这个范围太大,不可能完全说清楚,所以以重点介绍常用功能,同时兼顾新特性。系列中以SQL Server ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,120,360
精华内容 448,144
关键字:

安全性定义