精华内容
下载资源
问答
  • 前向安全
    千次阅读
    2018-08-07 16:06:49

    1997年,Anderson提出了前向安全数字签名的概念。前向安全的签名把公钥的生存期划分为很多时段,每个时段的私钥各不相同,在当前时段的签名私钥泄露后不影响在泄露以前时段的私钥与签名的安全。

     

    分类

     

    前向安全(forward security)该定义最早是由Mihir Bellare和Sara K. Miner在 CRYPTO’99上提出的关于数字签名的性质,而perfect forward secrecy则是由Christoph G. Günther在EUROCRYPT ’89提出的,其最初用于定义会话密钥交换协议的一种安全性保证机制

     

    完美前向安全
    Perfect Forward secrecy的主要含义是:用来产生会话密钥(session key)的长期密钥(long-term key)泄露出去,不会造成之前通讯时使用的会话密钥(session key)的泄露,也就不会暴漏以前的通讯内容。简单的说,当你丢了这个long-term key之后,你以后的行为的安全性无法保证,但是你之前的行为是保证安全的。
        

    Perfect的意义是包含了无条件安全的性质,大部分的forward secrecy方案是无法达到Perfect的。而forward security的保证的是:攻击者获取到了你当前的密钥,但是也无法成功伪造一个过去的签名。
     

    弱完美前向安全
    弱完美向前安全(Weak perfect forward secrecy)是较弱的属性,当代理商的长期密钥泄露,先前建立的会话密钥的保密性会被保证,但这只对恶意攻击方没有活跃干扰的会话而言。Hugo Krawczyk 在2005年提出了这个新概念,这之间的区别和转发保密。这种较弱的定义隐式地要求完美前向安全保持先前建立会话密钥的安全,即使在这个会话中恶意攻击方做活跃的干扰攻击,或试图充当中间人。

     

    简单的说,这两个概念是用在不同的环境中,但是其意图是一样的:保证密钥丢失之前的消息安全性或签名的不可伪造性。一般而言,满足forward security的公钥环境下的签名、密钥交换或加密方案,其公钥是固定的,而密钥则随着时间进行更新。这个更新过程是单向的,因此也就保证了拿到当前的密钥,是无法恢复出以前的密钥,从而保证了前向安全。与之相对应的还有“后向安全( backward secrecy或security)”的概念

     

    应用价值

     

    前向安全可以广泛使用在IPsec的可选功能(RFC 2412),SSH,SSL/TLS等常见网络通讯协议中,2014年时候,由于心脏出血漏洞(存在服务器私钥泄漏的可能),没有使用前向安全的站点,加密通信的数据可以通过私钥来解密,导致信息泄漏,这使得前向安全被重视起来。

     

    如果服务器的私钥泄漏,任何可以访问私钥的人都可以在会话建立时解密消息查看会话密钥,然后用会话密钥解密会话中交换的所有数据。所以确保你的私钥绝对私密至关重要。

     

    但有时私钥确实会泄漏,或者因为系统被黑,或者因为有访问权限的内部人士,或者因为政府的命令。如果你知道密钥已经暴露了,可以生成新的公私密钥对和新的证书,把旧证书撤销掉,这样客户端就不会再接受它(这一步很重要,否则拿到旧私钥的人仍然可以用旧证书冒充你)。但这样只是照顾到了将来的数据交换,如果窃取了私钥的人监测并记录下了以前的会话,他们仍能用旧密钥解密并查看以前会话中交换的数据。

     

    完美前向安全的保护方法甚至连这种回溯性破解也可以防护。它为客户端和服务器端提供了一种为会话创建共享密钥的办法,而这个密钥不会暴露给任何监测数据交换的人,即便监测者能够得到服务器的私钥,只要它只是个监测者而不是中间人。

     

    实现原理

     

    常见的前向安全标准实现是采用某种Diffie-Hellman 密钥交换。Diffie-Hellman 的基本思想是利用整数模素数群的乘法性质。计算某个数的幂在群中的值很容易,即便这个群和幂都很大也没关系。但用已知的数学知识做逆向计算非常困难,即给定一个数和一个值,很难根据这个群中的值算出这个数的幂是多少(这被称为离散对数问题)。Diffie-Hellman 密钥交换的双方都使用相同的群和原根,但所用的幂和生成的值不同,然后他们互相交换由各自的幂生成的值。最终双方都得到了一个结合了两个私密幂的共享值。任何监测数据交换的人要想得到私密幂,都要做逆向工作去解决计算困难的离散对数问题,并且只要值足够大,以现有的技术计算出结果所需要的时间让这种计算失去了实际意义。

    更多相关内容
  • Σoφoς – Forward Secure Searchable Encryption, Bost...这篇论文提出了一个可搜索加密的方案Σoφoς(Sophos),是一个比较简单好理解的方案,并且能达到前向安全。当然也存在一些问题,会在之后的论文笔记中指出。

    本文是阅读了论文[1]之后写的笔记,为了能对论文提出的方案和核心思想有更透彻的了解。这篇论文提出了一个可搜索加密的方案Σoφoς(Sophos),是一个比较简单好理解的方案,并且能达到前向安全。当然也存在一些问题,会在之后的论文笔记中指出。

    0. 一些定义

    一些关于可搜索加密的定义参见文章:可搜索加密简要介绍与相关概念_风间九青的博客-CSDN博客

    陷门置换

    Trapdoor Permutation, TDP

    本文方案的核心思想之一。如下图所示,简单来说就是,在一个关键字w对应的搜索令牌序列ST_0, ST_1, \cdots, ST_c中,服务器可以从后往前(从已有的ST_c到最早的ST_0)计算ST,而只有用户可以从前往后生成(从已有的ST_c生成更新的ST_{c+1}),以控制服务器可以搜索的索引范围,确保前向安全。使用TDP除了可以让方案满足前向安全,还有一个好处是,可以减少服务器和用户的存储开销:因为都只需要存储当前的ST_c

    图中的UT是更新令牌(update token),在更新数据时使用。π是陷门置换函数,需要保证它是单向(one-way)的。

    1. 核心思想

    旧的搜索令牌不能用于搜索新添加的文档,因此保证了前向安全。

    为每个关键字/文档对(w, ind)生成对应的搜索令牌(search token, ST),也就是说,每个关键字w对应一个令牌序列ST_0, ST_1, \cdots, ST_c, 其中c=n_w-1. 初始时令ST_0为一个随机数,c=-1;以后每当添加了一个w上的对(w, ind),就用ST_c生成ST_{c+1},同时c自增1.这个过程只能由用户使用陷门密钥SK进行。而为了减少存储开销,TDP应该满足这样的要求:使用公钥PK可以很方便地从ST_i计算ST_{i-1},而只有使用密钥SK才能从ST_i计算ST_{i+1},这样用户和服务器都只需要存储ST_c;当需要检索时,用户把最新的ST_c发给服务器,以生成前面的ST。 

    2. 具体方案

    方案伪代码如下图所示,即Σoφoς-B。这个方案只能实现对文档的添加;不过想要实现删除也很容易,只需要再增加一个Σoφoς-B实例用于删除,每当一个删除操作到达,把对应的(w, ind)添加到删除实例中,在进行搜索时同时运行两个实例,返回两个结果的差。需要注意的是,使用两个实例,从用户的角度来看,(w, ind)已经从数据库中删除;但对服务器来说它还存在,因此并不能实现后向安全。想要实现后向安全,即对服务器来说删除的(w, ind)不存在于数据库中,还需要一些其他的技术,比如Janus使用的穿刺加密[2]。

    需要注意的是,这个方案只能保证在新的搜索查询到达之前,更新的关键字和旧的搜索令牌没有关联(unlinkable)。因为要对新的关键字进行搜索,就必定要提交更新过的搜索令牌。

    方案主要使用了两个映射W、T和两个哈希函数H1、H2。

    • H1:使用公钥K_w和搜索令牌ST作为输入,输出一个与ST对应的长度为μ的更新令牌UT。

    • H2:使用公钥K_w和搜索令牌ST作为输入,输出一个与ST对应的长度为l的位串。l是ind的长度。  

    • W:用户使用的映射,它把关键字w映射到对应的搜索令牌ST_c和一个整数c=n_w-1,其中n_w是关键字的数量。如果不存在这样的ST和c,则随机生成一个ST_0,设c为-1。需要注意,w对应的ST并不是只有一个,而是有一个序列。为了节省开销,只存储了一个最新的ST_c

    • T:服务器使用的映射,它把更新令牌UT_i映射到对应的索引加密e。e是ind和H2(K_w, ST_i)的异或,也就是加密形式的索引ind。当需要取出ind时,只需要计算H2(K_w, ST_i)T[UT_i],并把结果相异或。 

    参考文献

    [1] Σoφoς – Forward Secure Searchable Encryption, Bost R. CCS 2016

    [2] Forward and Backward Private Searchable Encryption from Constrained Cryptographic Primitives, Bost R. et al. CCS 2017

    展开全文
  • 这几天在研究如何保障数据可溯源,想从前向安全的方法中得到点启发,顺便把前向安全的知识发出来供大家参考1997年,Anderson提出了前向安全数字签名的概念。前向安全的签名把公钥的生存期划分为很多时段,每个时段的...

    这几天在研究如何保障数据可溯源,想从前向安全的方法中得到点启发,顺便把前向安全的知识发出来供大家参考

    1997年,Anderson提出了前向安全数字签名的概念。前向安全的签名把公钥的生存期划分为很多时段,每个时段的私钥各不相同,在当前时段的签名私钥泄露后不影响在泄露以前时段的私钥与签名的安全。

    分类

    前向安全(forward security)该定义最早是由Mihir Bellare和Sara K. Miner在 CRYPTO’99上提出的关于数字签名的性质,而perfect forward secrecy则是由Christoph G. Günther在EUROCRYPT ’89提出的,其最初用于定义会话密钥交换协议的一种安全性保证机制

    完美前向安全
    Perfect Forward secrecy的主要含义是:用来产生会话密钥(session key)的长期密钥(long-term key)泄露出去,不会造成之前通讯时使用的会话密钥(session key)的泄露,也就不会暴漏以前的通讯内容。简单的说,当你丢了这个long-term key之后,你以后的行为的安全性无法保证,但是你之前的行为是保证安全的。
        

    Perfect的意义是包含了无条件安全的性质,大部分的forward secrecy方案是无法达到Perfect的。而forward security的保证的是:攻击者获取到了你当前的密钥,但是也无法成功伪造一个过去的签名。

    弱完美前向安全
    弱完美向前安全(Weak perfect forward secrecy)是较弱的属性,当代理商的长期密钥泄露,先前建立的会话密钥的保密性会被保证,但这只对恶意攻击方没有活跃干扰的会话而言。Hugo Krawczyk 在2005年提出了这个新概念,这之间的区别和转发保密。这种较弱的定义隐式地要求完美前向安全保持先前建立会话密钥的安全,即使在这个会话中恶意攻击方做活跃的干扰攻击,或试图充当中间人。

    简单的说,这两个概念是用在不同的环境中,但是其意图是一样的:保证密钥丢失之前的消息安全性或签名的不可伪造性。一般而言,满足forward security的公钥环境下的签名、密钥交换或加密方案,其公钥是固定的,而密钥则随着时间进行更新。这个更新过程是单向的,因此也就保证了拿到当前的密钥,是无法恢复出以前的密钥,从而保证了前向安全。与之相对应的还有“后向安全( backward secrecy或security)”的概念

    应用价值

    前向安全可以广泛使用在IPsec的可选功能(RFC 2412),SSH,SSL/TLS等常见网络通讯协议中,2014年时候,由于心脏出血漏洞(存在服务器私钥泄漏的可能),没有使用前向安全的站点,加密通信的数据可以通过私钥来解密,导致信息泄漏,这使得前向安全被重视起来。

    如果服务器的私钥泄漏,任何可以访问私钥的人都可以在会话建立时解密消息查看会话密钥,然后用会话密钥解密会话中交换的所有数据。所以确保你的私钥绝对私密至关重要。

    但有时私钥确实会泄漏,或者因为系统被黑,或者因为有访问权限的内部人士,或者因为政府的命令。如果你知道密钥已经暴露了,可以生成新的公私密钥对和新的证书,把旧证书撤销掉,这样客户端就不会再接受它(这一步很重要,否则拿到旧私钥的人仍然可以用旧证书冒充你)。但这样只是照顾到了将来的数据交换,如果窃取了私钥的人监测并记录下了以前的会话,他们仍能用旧密钥解密并查看以前会话中交换的数据。

    完美前向安全的保护方法甚至连这种回溯性破解也可以防护。它为客户端和服务器端提供了一种为会话创建共享密钥的办法,而这个密钥不会暴露给任何监测数据交换的人,即便监测者能够得到服务器的私钥,只要它只是个监测者而不是中间人。

    实现原理

    常见的前向安全标准实现是采用某种Diffie-Hellman 密钥交换。Diffie-Hellman 的基本思想是利用整数模素数群的乘法性质。计算某个数的幂在群中的值很容易,即便这个群和幂都很大也没关系。但用已知的数学知识做逆向计算非常困难,即给定一个数和一个值,很难根据这个群中的值算出这个数的幂是多少(这被称为离散对数问题)。Diffie-Hellman 密钥交换的双方都使用相同的群和原根,但所用的幂和生成的值不同,然后他们互相交换由各自的幂生成的值。最终双方都得到了一个结合了两个私密幂的共享值。任何监测数据交换的人要想得到私密幂,都要做逆向工作去解决计算困难的离散对数问题,并且只要值足够大,以现有的技术计算出结果所需要的时间让这种计算失去了实际意义。

    关于本文

    前向安全方面的资料非常少,我觉得弄懂原理即可,密码学是非常细分的专业,您也可以将本文分享出去让更多人关注,您的支持和鼓励是我最大的动力,长按二维码关注


    长按关注,看到未来

    相关内容阅读

    区块链安全体系介绍(从零开始学区块链 75)

    面对Grover量子算法区块链安全吗(从零开始学区块链 49)

    一文让你成为区块链安全专家(从零开始学区块链 101)

    你必须知道的椭圆曲线算法(从零开始学区块链 31)

    密码小故事合集,汇总原来的密码文章

    让暴力破解者吃蜂蜜吧(干货分享)

    展开全文
  • 密码学之前后向安全

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

    本文将讨论密码学中的 前向安全性(Forward Security) 与 后向安全性(Backward Security) ,希望读完本文后,你再也不会混淆这两个概念。

    在开始本文之前,希望你有如下预备知识:

    • 密码学(Cryptography)是一门什么样的学科?
    • 单向函数(One Way Function)是什么?有哪些例子?
    • 密码算法与密钥是什么?敌手(Adversary)在密码学中是一个怎样的概念?

    单向函数与密码算法

    现代密码学的基石:伪随机性

    Pseudorandomness,即伪随机性,是一个现代密码算法必须要具备的性质,因为从反面考虑,如果你设计的密码算法都做不到「看起来」是随机的,那岂不是很容易就被攻破了?

    当然,伪随机性在数学上有着更严格的定义与论证,在密码学中也有更深厚的历史背景(比如其实是姚期智院士率先给出的伪随机性正式定义[1])。伪随机作为现代密码学的核心要素,如何更好地实现它一直是许多科学家追逐的目标,比如采用物理的随机熵源(真随机数发生器),或者使用一个秘密的随机种子(密钥)等等。一个算法的根基如果不具备良好的伪随机性,Rivest也不能打包票对你说“哦我的老伙计,试试这个RSA吧,它真的很棒”。

    在现代密码算法中,伪随机性可以由伪随机数发生器(PseudoRandom Number Generator,PRNG)来提供。这就是说,要设计一个具备伪随机性的密码算法,你可以先明确怎么得到一个PRNG。因此,PRNG这个部件的好坏,将直接决定了算法是否足够安全。PRNG在现代密码学语义中的定义如下:

    G G G为一多项式时间算法,其输入为 s ∈ { 0 , 1 } n s\in \{0, 1\}^{n} s{0,1}n,即为一长度为 n n n的01比特串,输出的长度记作 l ( n ) l(n) l(n);其中, l ( ⋅ ) l(\cdot ) l()也为一多项式时间算法,但与 G G G不同的是, l ( n ) l(n) l(n)只是表示是 n n n的多项式界下的一个值, l ( ⋅ ) l(\cdot ) l()可以等于 n 2 n^{2} n2,也可以等于 n n n,只要是多项式界内的即可。若G为一PRNG,则应同时满足如下两个条件:

    1. 对于任意的 n n n,都有 l ( n ) > n l(n) > n l(n)>n
    2. 若此时对于任意一具有多项式资源的敌手 A \mathcal{A} A,都存在一个可忽略(negligible)的概率 ϵ \epsilon ϵ,使得下式成立:

    ∣ P r [ A ( r ) = 1 ] − P r [ A ( G ( s ) ) = 1 ] ∣ ≤ ϵ |\mathrm{Pr}[\mathcal{A}(r)=1] - \mathrm{Pr}[\mathcal{A}(G(s))=1]| \le \epsilon Pr[A(r)=1]Pr[A(G(s))=1]ϵ

    其中, r r r为一随机比特串(不用管它从哪来的),而 G ( s ) G(s) G(s)即为 G G G的输出,为一伪随机比特串. 而 A ( r ) = 1 \mathcal{A}(r)=1 A(r)=1 A ( G ( s ) ) = 1 \mathcal{A}(G(s))=1 A(G(s))=1分别表示敌手 A \mathcal{A} A能正确区分出所给比特串是真随机串还是伪随机串。

    因此,条件2表明敌手 A \mathcal{A} A面对 G G G的输出时,只能以一个可忽略的、极小的概率将其与真随机串区分开来,这保证了每个PRNG的输出都会足够贴近真实的随机输出。而对于条件1,如果我们先假设 l ( n ) ≤ n l(n) \le n l(n)n,那这意味着输入与输出都不一定能满足双射的条件,即PRNG的一个输出甚至可能对应着多个输入。由此,这样的PRNG很容易就被攻击者猜解碰撞出来了;因此如果令 l ( n ) > n l(n) > n l(n)>n,如 l ( n ) = 2 n l(n)=2n l(n)=2n,那么一个输入 s s s则平均对应着 2 n = 2 2 n / 2 n 2^{n}=2^{2n}/2^{n} 2n=22n/2n个PRNG输出,也就是这是一种非常稀疏的映射关系,这种「扩展性」保证了采取穷举手段从PRNG的输出空间来进行碰撞是困难的。

    现在我们有了伪随机性这把(简陋)的螺丝刀,还能造出更好的工具吗?

    单向函数

    首先便是直接由伪随机性抽象而来的、更加直观的,但也非常重要的性质:One-Wayness,即单向性。顾名思义,再结合PRNG的定义,相信大家此时对单向性及单向函数(One-Wayness Function, OWF)也会有这样一个模糊理解:

    给函数一个 x x x,可以跟容易算出对应的函数值 y y y,但是对于函数值 y y y,很难逆推得到原来的 x x x

    这种理解其实已经非常接近单向函数的正式定义了,如下所示:

    一个函数f若称为单向函数,则应满足如下两个条件:

    1. (容易计算)存在一多项式时间算法 A f ( ⋅ ) A_{f}(\cdot ) Af(),对于任意输入 x ∈ { 0 , 1 } ∗ x \in \{0, 1\}^{*} x{0,1},都能在多项式时间内输出 A f ( x ) = f ( x ) A_{f}(x)=f(x) Af(x)=f(x);
    2. (难以求逆)对于所有的多项式时间算法 D ( ⋅ ) D(\cdot ) D(),都存在一个极小的可忽略概率 ϵ \epsilon ϵ,使得下式成立:

    P r [ D ( f ( x ) ) ∈ f − 1 ( f ( x ) ) ] ≤ ϵ Pr[D(f(x)) \in f^{-1}(f(x))] \le \epsilon Pr[D(f(x))f1(f(x))]ϵ

    其中, x x x的选取是从 { 0 , 1 } n \{0,1\}^{n} {0,1}n中随机均匀采样。在上述定义中,难以求逆这一性质只需要在输入是均匀选取的这一条件下成立即可,即对于极个别的输出点,攻击者还是有可能还原其对应的输入的。在某些比较极端的定义里,难以求逆这一性质甚至只要求在输入 x x x足够长时才满足。

    此时你可能会说,既然一个单向函数是容易计算的,那对于一个特定的输出 y y y,那我为什么不能试着遍历所有 x i x_{i} xi,从而找到 f ( x ∗ ) = y f(x^{*})=y f(x)=y?没错,任何单向函数在给出足够时间和计算资源的条件下,都是可求逆的;但不要忘记条件2中面向的是多项式时间算法,对于那些指更高级的攻击算法,单向函数可能真的一下就被攻破了。因此,条件2所谓的难以求逆,实际上是难以「高效」求逆。

    实际上,任意一个PRNG都可看作是一个单向函数 [2],而要证明这一点,即证「对于一个PRNG算法 G \mathcal{G} G,如果存在敌手 D \mathcal{D} D能以不可忽略的概率对 G \mathcal{G} G的输出结果求逆,那么存在一敌手 D ′ \mathcal{D}^{'} D也能以不可忽略的概率分辨 G \mathcal{G} G的输出与真随机串」。一般而言这种证明采取“安全性归约”的方法即可,不过这和本文内容无关。总之,基于PRNG可以构造出单向函数,而有了单向函数这个「高级扳手」,我们就可以造出更方便的工具了,比如大名鼎鼎的(密码学安全的)哈希函数。

    阿克琉斯之踵:密钥的管理

    PRNG与OWF由于其简洁但重要的计算性质,常被用于生成密码算法的密钥,而PRNG这种「看起来」随机的特点,正是方便我们生成一些别人不想预测出的敏感信息。另外,OWF则能帮助我们为已有密钥提供一个「陷门」(Trapdoor),陷门的输出(通常为OWF的输出)可以作为新密钥、或者某个公开校验值等等。

    二者的配合让一个系统中,密钥的在线更新成为了可能。如果一个OWF提供的伪随机性足够好,那我们是不是可以用它源源不断地生成新密钥呢?当然可以!

    在这里插入图片描述

    如上图所示,系统管理员可以使用当前密钥 K i K_{i} Ki、当前时间戳 t i t_{i} ti以及一个盐值Salt(如0x12345),在MD5这一哈希函数的帮助下源源不断的迭代出新密钥 k i + 1 = M D 5 ( k i ∣ ∣ t I ∣ ∣ S a l t ) k_{i + 1} = \mathrm{MD5}( k_{i} || t_{I} || Salt) ki+1=MD5(kitISalt)。当然,MD5可以替换为其他常见的、更安全的哈希函数。

    可是,随着密码分析技术的不断增强,原来认为安全的MD5目前来看也不那么安全了,原本的单向函数也不再那么单向了。而管理员此时还觉得:

    反正我密钥一直都在给你们更新,况且MD5也没那么容易被攻击,这个方案又不是不能用😄

    管理员笑了,黑客也笑了。

    在这里插入图片描述

    这种做法有一个无法忽视的风险在于,如果系统中某些用户喜新厌旧,他只会好好保管手头上的新密钥,那么若攻击者获取了他曾经的密钥,目前的系统或目前的密钥还是安全的吗?另外,如果攻击者获取了他目前的密钥,系统中的历史状态或历史密钥还会是安全的吗?

    这样的密钥管理问题一直是许多密码学专家的心头之恨:“明明这算法本身已经天衣无缝了,攻击者还是能从一些奇怪的地方拿到密钥”,而根据Kerkoff准则,一旦密钥不安全了,那整个密码系统也就不安全了。因此,密钥管理就像是一个信息系统的阿克琉斯之踵一样,只要攻击者拥有足够精妙的攻击方法,他便能一击致命。

    前向安全性 与 后向安全性

    铺垫了那么多,终于要介绍正题了。

    直觉上的判断

    如果你直接Google “Forward/Backward Security”,你很可能会看到两种截然相反的定义:

    版本一[3]:

    • 前 向安全性是指,当前密钥被攻击者获取后,历史 的密钥仍然是安全的
    • 后 向安全性是指,当前密钥被攻击者获取后,未来 的密钥仍然是安全的

    版本二[4]:

    • 前 向安全性是指,当前密钥被攻击者获取后,未来的密钥仍然是安全的
    • 后 向安全性是指,当前密钥被攻击者获取后,历史 的密钥仍然是安全的

    直觉上理解,可能有的读者在看到「前向」一词时,脑海里自然而然会浮现出一根时间轴,前向安全性似乎在告诉你,如果当前时间点的密钥泄露了,之“前”走过的所有密钥节点都还是安全的。这样一来,前向安全性就是说历史密钥是安全的,而后向安全性自然就是未来密钥是安全的嘛(版本一)

    诚然,有的读者可能是这么理解的:前向安全性的英文是Forward Security,而后向是Backward;而直觉上当你看到「Backward」一词时,脑海里同样会浮现出一根时间轴,这个词似乎在告诉你,如果当前时间点的密钥泄露了,那么往“回”(Backward)走的所有密钥节点都还是安全的。这样一来,后向安全性就是说历史密钥仍是安全的,而前向安全性自然就是未来密钥仍是安全的嘛(即版本二)

    说实话,我自己的直觉理解是版本二,但实际上,目前学术界公认的正确定义其实是版本一。

    如何理解?

    可能和我一样认为版本二是正确的读者不是很能理解版本一中的 前(Forward)与后(Backward) 究竟指的是何处的 前与后,明明让Backward对应“曾经”,Forward对应“未来”就很通顺嘛。其实这种对应关系本身在语义逻辑上并没有问题,只是在密码学家看来,二者并非这么去理解。

    在版本二的错误定义中,Forward 与 Backward 被理解为在当前密钥泄露之后,哪个时刻是否还是安全的?即 前与后 修饰的其实是 结果时刻 相对于 密钥泄露的发生时刻,如下图所示。

    在这里插入图片描述

    而在版本一的正确的定义中,Forward 与 Backward 被理解为哪个时刻的密钥被泄露了,目前是否还是安全的?即 前与后 修饰的其实是 密钥泄露的发生时刻 相对于 结果时刻,如下图所示。

    在这里插入图片描述
    因此,在两种版本的理解中,Forward与Backward的方向是相反的(如图中的虚线箭头),而至于为什么版本一是正确的,而版本二并不太被接受呢?

    个人认为,这是因为正确定义刻画的是当系统从安全的正常状态,逐渐转移到不安全的不正常状态(密钥被泄露了)的过程中,安全性的变化,即强调出了密钥泄露这一时刻的位置。错误定义虽然看起来更符合人们的思考逻辑,即面对着当前不正常的系统状态,那些正常的系统状态中安全性是如何的。然而正确定义更能描述清楚系统安全性的演化过程,这比单纯符合人们第一印象来的要更为「学术化」一些。

    总结一下吧

    前后向安全性是很多密码方案都会考虑的一个安全目标,例如密钥协商、可搜索加密等等。本文对这一概念重新进行了梳理,也讨论了两种版本定义该如何去理解。最后,如果大家懒得看这么多,可以按照“前”是以“前”还安全,“后”是以“后”还安全,这样去记就好。

    啰嗦了这些,其实本质上只是文字游戏罢了,而且两个版本的定义并不存在绝对的正确与错误,有些专业论文也都在混用。读者还是要把握前后向安全性的精髓,以及这两个定义究竟有什么意义,这才是最为重要的。

    感谢你的阅读,最后同样以一句歌词作为结束。

    “十年之前你不认识我,我不属于你,我们还是一样” —— 林夕《十年》

    参考

    [1] https://www.di.ens.fr/users/phan/secuproofs/yao82.pdf
    [2] https://crypto.stackexchange.com/questions/41140/is-every-pseudorandom-generator-a-one-way-function
    [3] https://en.wikipedia.org/wiki/Forward_secrecy
    [4] https://users.ece.cmu.edu/~adrian/projects/sec/node6.html

    其他参考阅读

    https://crypto.stackexchange.com/questions/39761/definitions-of-secrecy
    https://www.zhihu.com/question/45203206
    https://www.quora.com/What-is-exactly-backward-secrecy-property-in-cryptography-attribute-based-encryption
    https://en.wikipedia.org/wiki/Forward_secrecy
    https://sunhuachuang.gitbooks.io/sun-note/content/cryptography/forward_backward_secrecy.html
    https://users.ece.cmu.edu/~adrian/projects/sec/node6.html

    展开全文
  • 区块链内生安全的密码技术

    千次阅读 2022-04-25 10:09:17
    区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础...
  • 一、网络安全概述 1.1 网络中的“安全”问题 信息安全经历两大变革: 从物理和管理方法 转变成 自动化工具保护信息安全 终端普遍使用网络传输数据并保证数据安全 网络中的“安全”问题 监听 截获 篡改 假冒 ...
  • 组合图层 生成最终的页面0 浏览器每次可以接收多少数据 64KB CDN CDN(Content Delivery Networks) 内容发布网络 CDN是一组发布在多个不同地理位置的web服务器,用于更有效的用户发布内容 应用场景:假设拼多多今天开...
  • 网络安全--安全攻防概述

    千次阅读 2021-08-18 18:27:21
    课程目标:这节课我们来介绍安全攻防以及信息安全的职业发展历程,去了解什么是安全攻防以及安全攻防的基本概念,攻击和防御的由来。 任务目标:通过对这节课的学习,能够对安全攻防有进一步的了解和认识,掌握安全...
  • RFID应用安全+物联网安全标准

    万次阅读 2022-03-12 09:04:16
    RFID应用系统安全1.1 RFID系统分类1.2 RFID典型应用1.3 RFID安全假定1.4 RFID安全需求1.5 RFID隐私保护措施1.7 RFID隐私保护协议1.8 距离限定协议的安全威胁1.9 HK协议2. 物联网安全相关标准2.1 ISO/IEC安全标准...
  • HTTP安全

    千次阅读 2020-10-24 09:35:09
    正如我们反复指出的, HTTP 的特性让它不容易被居心叵测的人控制,但是同样使得让 http 变得非常安全变得富于挑战性。现在你知道 Web 应用如何优雅的解决了 HTTP 无状态的问题,但是也可想而知还是有一些安全问题...
  • • 物联网感知层信息安全问题是物联网安全的核心内容 • 物联网感知层面临的安全威胁主要表现为 感知层中节点自身故障(如节点被捕获、被控制、功能失效或服务中断、 身份伪造等) 节点间的链接关系不正常(如...
  • 一、信息安全产品认证 1. 什么是中国国家信息安全产品认证证书 中国信息安全认证中心是经中央编制委员会批准成立,由国务院信息化工作办公室、国家认证认可监督管理委员会等八部委授权,依据国家有关强制性产品认证...
  • 数据安全实践指南

    千次阅读 2022-04-07 11:25:30
    大数据不断各个行业渗透,在深刻影响国家政治、经济、民生和国防的同时,也给国家安全、社会稳定和个人隐私等带来了潜在威胁与挑战。在此背景下,国内外数据安全相关法律法规相继出台,以完善大数据安全领域的防护...
  • 要建立防御体系应从通信网络、网络边界、局域网络内部、各种业务应用平台等各个层次落实各种安全措施,形成纵深防御体系。单靠一种或几种安全设备就想保护整个网络是不可能的事情。因此,为了满足不同防护需求的安全...
  • 随着云计算逐渐成为主流,云安全也获得了越来越多的关注,传统和新兴的云计算厂商以及安全厂商均推出了大量云安全产品。但是,与有清晰定义的“云计算”(NIST SP 800-145和ISO/IEC 17788)不同,业界对“云安全”...
  • 向来都是钱看齐的黑客(在业务安全中,我们称之为黑产),自然就将攻击的重心放到了业务中。业务安全也变得越来越热门,成为各大公司安全投入的重心之一。 对比于传统的基础安全,业务安全有哪些特点呢?为什么它...
  • 【网络安全】---web网络安全总结

    千次阅读 2022-05-28 00:09:46
    我们页面常见的web安全问题有: 一、保证我们的前端页面没有漏洞可循 xss跨站点脚本攻击: 不要新人任何用户的输入, 能跟用户产生交互的地方都需要对参数进行转译或者过滤 文件上传漏洞攻击: 校验文件格式, ...
  • 一、数据安全文件体系 数据安全文件体系,即一系列管理、标准与规范、流程、指南、模板等文件的文档化记录。 当企业开始规范化运作的时候,特别是需要通过外部的认证、测评的时候,文档化的文件体系就是必不可少的...
  • 数据安全生命周期管理,是从数据的安全收集或生成开始,覆盖数据的安全使用、安全传输、安全存储、安全披露、安全流转与跟踪,直到安全销毁为止的全过程安全保障机制。 对于数据的隐私生命周期,一般分为以下几个...
  • 网络安全法学习整理笔记

    千次阅读 2022-04-08 01:06:21
    网络安全法 一、背景 概念 网络:是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息进行收集、存储、传输、交换、处理的系统。 网络安全:是指通过采取必要措施,防范对网络的攻击、侵入、...
  • 第2章 物联网安全基础

    万次阅读 2022-03-30 14:47:17
    第2章 物联网安全基础前言第二章 物联网安全基础2.1 安全性攻击2.1.1 安全性攻击的主要形式2.1.2 安全性攻击的分类2.2 物联网面临的安全问题2.2.1 传统的网络安全威胁2.2.2 物联网面临的新威胁2.3 物联网安全概念...
  • 车联网网络安全技术研究

    千次阅读 2022-01-20 20:50:29
    车联网近几年的迅速发展,在推进汽车网联化、智能化发展的同时,也带来了一定的网络安全风险。为了提高汽车的网络安全防护水平,针对汽车联网部件、云平台等的防护技术成为汽车领域的研究热点。文章从车端安全、...
  • Java编码安全规范

    千次阅读 2022-01-16 22:44:48
    简述:入职菊厂第一周,没什么任务,正全力准备java安全编码考试,跟阿里规范类似,不过要多很多安全攻防的内容和一些之前没注意的知识点,所以记录分享自己学到的经验 断言滥用 断言应该只存在于测试类,而不应该...
  • 网络安全知识点(全)

    千次阅读 2022-04-18 10:41:18
    数据库漏洞--数据库的安全是以操作系统的安全为基础的 网络服务漏洞 匿名FTP 电子邮件 域名服务 Web服务 网络安全机制–OSI网络安全体系 书本P9 八项 加密机制 数据加密是提供信息保密的主要方法,可以保护数据...
  • 安全区域和安全级别 通过设置安全区域,将网络通过防火墙不同接口划分为不同等级安全级别的区域。 1、本地逻辑安全区域的概念。 2、一个或者多个接口所连接的网络。 防火墙支持多个安全区域,缺省支持非受信区域...
  • 第五章 应用安全1.漏洞概念和特点2.软件漏洞利用及其防护3.软件开发生命周期4.软件安全监测技术5.软件安全保护技术6.恶意程序的传播方法7.Web 应用威胁8.Web 安全监测 1.漏洞概念和特点 1.软件漏洞的概念:硬件...
  • 账号安全基本措施

    千次阅读 2021-11-24 12:13:30
    文章目录系统账号清理锁定账户文件 演示如下...批量设置终端登陆安全控制禁止普通用户登陆密码破解工具(Joth the Ripper)网络端口扫描 账号安全基本措施 系统账号清理 将非登录用户的Shell设为/sbin/nologin userm
  • 2021年9月17日,阿里云用户组(AUG)第二期「云安全」主题线下沙龙活动在南京召开。随着国家对网络安全监管要求趋严,企业需要转变思路,从被动安全合规转变到主动战略风控。现场,阿里云首席安全架构师苏建东结合...
  • 网络安全常见问题

    千次阅读 2022-02-16 11:19:06
    网络安全问题 1、各类弱口令 最主要,并且最严重的安全问题,人员安全技能提高后,也是最容易解决的安全问题。 系统层弱口令 数据库弱口令 Web中间件弱口令 ftp弱口令 SNMP弱口令 Web应用登录页面弱口令 2、补丁类...
  • 物联网信息安全复习资料

    千次阅读 2019-12-18 17:06:09
    前向安全性 后向安全性与所有权转移 RFID的安全机制(PPT有具体的Hash锁的介绍,可看) ①物理安全机制: (1) Kill命令机制 (2) 电磁屏蔽 (3) 主动干扰 (4) 阻塞标签 (5) 可分离标签 ②逻辑安全机制 (1)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 644,806
精华内容 257,922
关键字:

前向安全

友情链接: hammer-time.min.zip