精华内容
下载资源
问答
  • TLS协议分析 (七) 安全性分析

    千次阅读 2017-04-11 09:13:28
    9. TLS协议的安全分析 安全分析,重中之重,也是大家最关心的。 安全分析的第一步是建立攻击模型,TLS的攻击模式是: 攻击者有充足的计算资源 攻击者无法得到私钥,无法得到客户端和服务器内存...

    转自:http://chuansong.me/n/1281554752937

    9. TLS协议的安全分析

    安全分析,重中之重,也是大家最关心的。

    安全分析的第一步是建立攻击模型,TLS的攻击模式是:

    • 攻击者有充足的计算资源

    • 攻击者无法得到私钥,无法得到客户端和服务器内存里面的密钥等保密信息

    • 攻击者可以抓包,修改包,删除包,重放包,篡改包。

    这个模型其实就是密码学里面一般假定的攻击模型。

    好了,在这个模型下,TLS的安全性分析如下:

    9.1. 认证和密钥交换 的安全性

    TLS有三种认证模式:双方认证,服务器认证,无认证。
    只要包含了有服务器端认证,就可以免疫 man-in-the-middle 攻击。但是完全匿名的会话是可以被 MITM 攻击的。匿名的服务器不能认证客户端。

    密钥交换的目的,是产生一个只有通信双方知道的共享密钥 pre_master_secret 。pre_master_secret 用来生成 master_secret 。 master_secret 用来生成 Finished 消息,加密key,和MAC key。通过发送正确的Finished消息,双方可以证明自己知道正确的 pre_master_key。

    9.1.1 匿名密钥交换

    匿名密钥交换是一种历史遗留的不安全方式。 匿名密钥交换缺失认证(Authentication),所以绝大多数场景下,我们应该禁用这种方式。

    9.1.2. RSA 密钥交换和认证

    当使用RSA的时候,合并了密钥交换 和 服务器端认证。
    RSA公钥包含在服务器证书中。要注意的是,一旦服务器证书的RSA私钥泄露,之前用该证书保护的所有流量都会变成可以破解的,即没有前向安全性(Perfect Forward Secrecy)。
    需要前向安全性的TLS用户,应该使用 DHE 或者 EC
      TLS users desiring Perfect Forward Secrecy should use DHE 类的CcipherSuite。这样,如果私钥泄露,只需要更换私钥和证书就行,不会有更大的损失。

    RSA密钥交换和认证的安全性基于,在验证了服务器的证书之后,客户端用服务器的公钥加密一个 pre_master_secret 。成功地解密 pre_master_secret 并产生正确地 Finished 消息之后,就可以确信服务器拥有证书对应的私钥。

    如果使用了客户端认证,通过 CertificateVerify 消息来认证客户端。客户端会签署一个之前所有握手消息的hash值,这些握手消息包括 服务器的证书,ServerHello.random 。其中服务器证书确保客户端签署了和本服务器有关的绑定(即不能重放和别的服务器的握手),ServerHello.random 确保签名和当前握手流程绑定(即不能重放)。

    9.1.3. Diffie-Hellman 密钥交换和认证

    当使用 DH 密钥交换的时候,服务器:

    1. 或者发送包含固定 DH参数的证书

    2. 或者发送一组临时DH参数,并用 ECDSA/RSA/DSA 证书的私钥签署。而且在签署之前,临时DH参数和 hello.random 都参与hash计算,来确保攻击者不能重放老的签名值。

    无论如何,客户端都可以通过验证证书,或者验证签名,来确保收到的DH参数确实来自真正的服务器。

    如果客户端有一个包含固定 Diffie-Hellman 参数的证书,则证书包含完成密钥交换所需的参数。要注意的是,这种情况下,客户端和服务器每次都会协商出相同的 DH 结果(就是 pre_master_secret)。
    为了尽可能减少 pre_master_secret 存在在内存里面的时间,当不再需要的时候,尽快将其清除,pre_master_secret 应该尽早转换成 master_secret 的形式。
    为了进行密钥交换,客户端发送的 Diffie-Hellman 参数必须和服务器发送的兼容。

    如果客户端有一个标准的 DSA 或者 RSA 证书,或者 客户端没有被认证,那么客户端在ClientKeyExchange中发送一组临时参数,或者可选地发送一个CertificateVerify消息来证明自己的身份。

    如果相同的 DH 密钥对,被多次用于握手协商,不管是由于客户端或服务器使用了固定DH密钥的证书,还是服务器在重用 DH 密钥,都必须小心避免 small subgroup 攻击。实现都必须遵循 rfc2785 中的标准。

    最简单避免 small subgroup 攻击的方法是使用一种 DHE CipherSuite,并且每次都握手都生成一个新的 DH 私钥 X。如果选择了一个合适的base(例如2),g^X mod p 的计算可以非常快,因而性能开销会最小化。并且每次都使用一个新的DH密钥,可以提供前向安全性。当使用  DHE 类的CipherSuite时,实现必须每次握手都生成一个全新的DH私钥(即 X )。

    由于TLS允许服务器提供任意的 DH 群,客户端必须确认服务器提供的DH 群的大小适合本地策略。
    客户端必须确认 DH 公共指数有足够的大小。
    如果DH群已知的话,客户端做简单比对就行了,因此服务器可以使用一个已知的群,来方便客户端的检查。

    9.2. 版本回退攻击

    由于 TLS 历史上出现过多个版本,服务器端实现可能会兼容多个版本的协议,而像 SSL 2.0 这样的版本是有严重安全问题的,因此攻击者可能会尝试诱骗客户端和服务器,来使TLS连接回退到 SSL 2.0这种老版本。

    TLS 对此的解决办法,就是PreMasterSecret里面包含版本号。

    9.3. 针对握手过程的攻击

    攻击者可能会尝试影响握手过程,来使双方选择不安全的加密算法。

    对这种攻击的解决办法是,如果握手消息被篡改了,那么在Finished消息里,客户端和服务器都会计算 握手消息的hash,如果攻击者篡改了握手消息,那么双方得出的hash就不一样,这样Finished消息就会验证不过。就会发现攻击。

    9.4. 针对 Resuming Sessions 的攻击

    当使用 session resuming的时候,会产生新的 ClientHello.random 和 ServerHello.random ,并和session的 master_secret 一同被hash。只要master_secret没有泄漏,并且PRF中用来生成加密key和MAC key的hash算法是安全的,连接就是安全的,并且独立于前一个连接(被恢复的前一个连接)。

    只有在客户端和服务器都同意的情况下,才会做session resuming。只要有任意一方怀疑 session 泄漏,或者证书过期/被吊销,就可以要求对端做完整的握手。
    一个session的生命周期建议定位24小时。由于如果攻击者获得了 master_secret 就可以在session ID过期之前伪装成被泄漏者,所以要加一个生命期限制。
    运行在不安全环境的应用程序,不应该把session ID写入持久存储。

    9.5. 针对应用数据保护的攻击

    master_secret 和 ClientHello.random 及   ServerHello.random 一起做 hash,来生成每个连接唯一的加密key和MAC key(就算是session resuming得到的连接,也是不同的)。

    在CBC和stream cipher的情况下,
    发送出去的数据,在发送前用MAC保护,来避免消息重放,避免篡改。
    MAC根据 MAC key,序列号,消息长度,消息内容,固定字符串算出。
    消息类型字段(content type)是必须的,来确保握手消息,ChangeCipherSpec消息,应用数据消息不会被混淆。
    序列号用来确保删除包或者打乱包顺序的攻击无法得逞。
    由于序列号是64位的,可以认为不会回绕。
    从一方发给对端的消息,不能被插入对端发来的字节流中,这是用于两端使用不同的 MAC key。
    类似地,server write key 和 client write key相互独立。因此stream cipher的key只使用了一次,避免了类似问题。

    如果攻击者获取了加密key,那么就可以解密所有的消息。
    类似地,泄漏MAC key,会使攻击者可以篡改消息。

    AEAD就简单了。

    9.6. 显式 IV的安全性

    如前文所述,TLS 1.0是把前一条消息的最后一个block,当作下一条消息的第一个IV的,这促成了2004年公开的 BEAST 攻击,后来就改成这种显式IV的更安全的方式了。

    9.7. 加密和MAC组合模式的安全性

    前文介绍CBC和AEAD时已有分析,此处略过。

    9.8. DOS 攻击下的安全性

    TLS容易遭受某些 DoS 攻击。例如,攻击者创建很多TCP连接,就可以让服务器忙于做 RSA 解密计算。然而,由于TLS运行在TCP之上,只要操作系统TCP栈的 SYN-ACK里seqnum是随机的,攻击者就无法隐藏自己的ip,这样就可以和一般的TCP连接一样做DOS防御。

    由于TLS运行在TCP上,每个独立的连接都可能遭受一系列DOS攻击。尤其是,攻击者可以伪造RST包,来中断一条TCP+TLS连接。或者伪造部分TLS记录,导致连接阻塞挂起。不过这些攻击都是任何TCP协议都有问题,不是TLS特有的。

    9.9.Session Ticket 的安全分析

    Ticket必须: 1.有MAC (即 authenticated,不可篡改),2.加密(即保密)。

    下面分析在各种攻击方法下的安全性。

    9.9.1. 无效的Session

    TLS协议要求当发现错误的时候,把TLS session变为无效。

    这不会影响到ticket的安全性。

    9.9.1. 窃取 Tickets

    攻击者或者中间人,可能会窃取到ticket,并且尝试用来和server建立会话。
    然而,由于ticket是加密过的,并且攻击者不知道密钥,窃取到的ticket无法使攻击者恢复会话。
    TLS服务器必须使用强加密和MAC算法,来保护ticket。

    9.9.2. 伪造 Tickets

    一个恶意用户可能会伪造,或者篡改一个ticket,来恢复一个会话,来延长ticket的生命周期,或者假装成另一个用户。

    然而,由于服务器使用了强的校验保护算法,比如带密码的 HMAC-SHA1 ,因此无法得逞。

    9.9.3. DoS 攻击

    推荐ticket 格式中的 key_name 字段帮助服务器有效地拒绝不是自己签发的票据。
    因此,一个攻击者可能发送大量的ticket,让服务器忙于验证ticket。
    然而,只要服务器使用了高效的加密和MAC算法,就不会有问题。(现实中,加密和MAC算法效率都极高,这根本不是问题)

    9.9.4. 加密 Ticket 的key 的管理

    加密ticket的key的管理,推荐的做法:

    • key 应该用密码学安全的随机数生成器生成,按照RFC4086。

    • key 和加密算法最少应该是 128 比特安全程度的。

    • key 除了加密和解密ticket以外,不应该有其他用途。

    • key 应该定期更换

    • 当ticket格式更换,或者算法更换时,应该更换key

    9.9.5. Ticket 的有效期

    TLS服务器控制ticket的生命周期。服务器根据配置来决定可以接受的ticket生命周期。
    ticket的生命周期可能会长于24小时。TLS客户端可能会接受到一个ticket生命周期的提示,当然,客户端本地的策略最终决定ticket保存多久。

    9.9.6. 其他的 Ticket 格式和分发方法

    如果没使用推荐的ticket格式,那必须小心地分析方案的安全性。尤其是,如果保密数据比如保密密钥传输给了客户端,那必须用加密方式传输,来防止泄露或篡改。

    9.9.7. Identity Privacy, Anonymity, and Unlinkability

    ticket的加密和加MAC,就保证了敏感信息不会泄露。

    由于在ticket解密之前的TLS握手,无法隐藏客户端的特征,因此中间人可能根据相同的ticket被复用,发现相同的ticket属于相同的用户。TLS对这种情况不提供保证。

    10. TLS扩展:

    https://tools.ietf.org/html/rfc6066

    几个比较重要的TLS扩展:

    1. Server Name Indication (SNI)
      由于在SNI提出之前,tls握手过程中没有字段标明客户端希望连接服务器端的哪个域名,这样如果一个服务器端口上有多个域名,服务器就无法给出正确的证书。随着ipv4地址空间紧张,这个问题越发突出。因此提出了SNI。

    2. TLSEXT_ALPN
      上层协议协商,就是在握手过程中,标明TLS里面是什么协议,例如 http2就是 h2

    3. Maximum Fragment Length Negotiation
      主要用于嵌入式环境,需要客户端发送。

    4. Session Ticket
      Session Ticket,就是把session cache加密后存入客户端,这样服务器端就不需要任何存储了。

    5. TLSEXT_SAFE_RENEGOTIATION
      重协商

    6. Certificate Status Request:
      OCSP ,OCSP 主要是为了减少客户端查询 证书撤销列表(Ceritificate Revoke List)的网络调用,而提出的。

    11. TLS的配套:PKI体系

    11.1. X.509  证书

    X.509是PKI的一个标准,其中内容包括:

    • 公钥证书

    • 证书撤销列表,CRL

    • 证书路径验证算法(CA/证书 链的格式)

    X.509使用ASN.1语法做序列化/反序列化

    ASN1 就是一个数据序列化/反序列化格式,跟 protobuf 差不多,可以算作竞争对手。

    DER 就是用 ASN1 序列化某些数据结构的格式。

    PEM 就是 DER做base64,加上一些其他字段。

    证书链,以一个或多个CA证书开头的证书的列表,其中:

    • 每一个证书的 Issuer 和下一个证书的 Subject 相同

    • 每一个证书都被下一个证书的私钥签署

    • 最后一个证书是 根证书(“root CA”),在TLS握手中不会被发送

    证书里面包含公钥,和其它一些字段(比如证书用途,有效期,签发者等等)
    x509.v3证书的字段:

    mozilla的ca证书列表
    https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/

    https://www.apple.com/certificateauthority/ca_program.html
    苹果对CA提的要求:

    1.CA必须取得完整的 WebTrust for Certification Authorities audit (WebTrust CA审计:http://www.webtrust.org/)
    2.你的root CA证书必须为apple平台的用户提供广泛的商业价值。例如,一个组织内内部使用的证书不能被接受为root证书。
    3.你签的证书必须含有可以公开访问的CRL地址。

    Webtrust审计介绍:
    Webtrust是由世界两大著名注册会计师协会(美国注册会计师协会,AICPA和加拿大注册会计师协会,CICA)制定的安全审计标准,主要对申请对象的系统及业务运作逻辑安全性、保密性等共计七项内容进行近乎严苛的审查和鉴证。只有通过Webtrust国际安全审计认证,才有可能成为全球主流浏览器根信任的证书签发机构。

    https://www.geotrust.com/
    的网站上右下角,有个图标:
    点开就可以看到 KPMG 对 geotrust 公司的 webtrust 审计报告:
    https://cert.webtrust.org/SealFile?seal=1567&file;=pdf

    2011年 荷兰CA公司DigiNotar颁发假google,Facebook,微软证书被发现,后发现被入侵,导致该公司破产。
    http://www.cnbeta.com/articles/154375.htm

    11.2.现有PKI体系暴露出的问题

    http://googleonlinesecurity.blogspot.com/2015/03/maintaining-digital-certificate-security.html

    https://blog.mozilla.org/security/2015/04/02/distrusting-new-cnnic-certificates/

    https://www.dfn-cert.de/dokumente/workshop/2013/FolienSmith.pdf

    https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf

    解决方案:

    (1). public key pin

    https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning

    (2). HSTS

    http://www.chromium.org/hsts
    收录进chrome的默认HSTS列表:    https://hstspreload.appspot.com/

    (3).  Certificate Transparency

    https://www.certificate-transparency.org/

    12. TLS协议历史上出现过的漏洞,密码学常见陷阱

    12.1. TLS的漏洞

    漏洞分析很耗时间,这里总结一些资料,有兴趣的自己看吧。

    虽然TLS的设计已经尽可能的严密,但是随着技术进步的滚滚车轮,历史上还是出现过很多漏洞,
    可以参看这个rfc,做了总结:

    [Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS)] 链接 https://tools.ietf.org/html/rfc7457

    还有这个文档:
    [The Sorry State Of SSL] 链接 https://hynek.me/talks/tls/

    http://hyperelliptic.org/internetcrypto/OpenSSLPresentation.pdf

    TLS 协议最近一些年被爆出过的设计缺陷,尤其是在用的最多的 AES-CBC 和 RC4 上。

    AES-CBC 发现了:

    1. padding oracle 攻击

    2. BEAST 攻击

    3. Lucky 13 攻击

    4. TIME 攻击

    5. POODLE攻击

    2013 年, AlFardan发表了对 RC4 的一个攻击分析,展示如何恢复 RC4 传输的连接上的数据。这种恢复攻击利用了RC4的一些已知弱点,例如RC4最初的一些字节的显著统计特征。

    最近几年,TLS的代码实现引起了安全研究者的关注,这导致了新漏洞不断发现。
    2014年,OpenSSL库爆出了好几个漏洞,例如 HeartBleed,还有 CVE-2014-6321 ( Microsoft SChannel 的实现漏洞)等.

    TLS的问题:

    • 很多问题是由于TLS使用了一些“史前时代”的密码学算法(- Eric Rescorla)
    • CBC 和 Mac-Pad-then-Encrypt
    • RSA-PKCS#1v1.5 的 RSA padding
    • RC4 的任何使用
    • 很蠢的设计:临时 RSA 密钥协商,GOST 类CipherSuite,Snap Start 等
    • 可怕的向后兼容要求,导致迟迟不能废弃一些老算法。

    The Most Dangerous Code in the World: Validating SSL Certificates in Non-Browser Software

    http://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-client-bugs.html

    https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf

    [Why Eve and Mallory Love Android An Analysis of Android SSL (In)Security] 链接 https://www.dfn-cert.de/dokumente/workshop/2013/FolienSmith.pdf



    12.2. 密码学常见陷阱

    先举几个加密协议被破解的例子,给大家助兴:

    网上有一些资料,有兴趣自己看吧:

    密码学常见应用错误
    http://security.stackexchange.com/questions/2202/lessons-learned-and-misconceptions-regarding-encryption-and-cryptology

    • 不要自己发明加密算法。Don’t roll your own crypto.

    • 不要使用不带MAC的加密 Don’t use encryption without message authentication.

    • 在拼接多个字符串做hash之前,要特别小心 Be careful when concatenating multiple strings, before hashing.

    • 要特别小心使用的随机数生成器,确保有足够的熵 Make sure you seed random number generators with enough entropy.

    • 不要重用 nonce 或者。IV Don’t reuse nonces or IVs.

    • 加密和MAC不要使用同样的key,非对称加密和签名不要使用相同的key Don’t use the same key for both encryption and authentication. Don’t use the same key for both encryption and signing.

    • 不要使用ECB模式做对称加密 Don’t use a block cipher with ECB for symmetric encryption

    • Kerckhoffs定律,一个密码学系统的安全性必须建立在密码保密的基础上,其他都是公开的。Kerckhoffs’s principle: A cryptosystem should be secure even if everything about the system, except the key, is public knowledge

    • 不要把用户产生的密码作为加密的key。Try to avoid using passwords as encryption keys.

    • 在密码学协议中,任何2条消息的密文都不应该一样。In a cryptographic protocol: Make every authenticated message recognisable: no two messages should look the same

    • 不要把相同的key用在通信的2个方向上。Don’t use the same key in both directions.

    • 不要使用不安全的key长度。Don’t use insecure key lengths.

    13. 下一代TLS: TLS 1.3

    tls 1.3的草案在 http://tlswg.github.io/tls13-spec/
    相比tls 1.2,  1.3改动巨大,这些改动对加密通信协议的一般设计也有重要启发。

    TLS 1.3 的改动
    值得关注的重大改进有:

    • 0-RTT支持

    • 1-RTT握手支持

    • 改为使用HKDF做密钥拓展

    • 彻底禁止RC4

    • 彻底禁止压缩

    • 彻底禁止aead以外的其他算法

    • 去除aead的显式IV

    • 去除了AEAD的AD中的长度字段

    • 去除ChangeCipherSpec

    • 去除重协商

    • 去除静态RSA和DH密钥协商

    移动互联网兴起之后,rtt延迟变得更重要,可以看到,tls 1.3 的各项改进,主要就是针对移动互联网场景的。

    TLS 1.3 去掉了 ChangeCipherSpec ,这样record之上有3个协议:handshake,alert,application data

    13.1. record层的密码学保护的改动

    由于只保留了aead,所以不需要MAC key了。

    aead的具体参数用法也有调整,前文有。

    KDF 换成了标准的HKDF,有2种 tls_kdf_sha256, tls_kdf_sha384

    13.2.handshake协议的改动

    鉴于session ticket如此之好用,简直人见人爱,所以 TLS 1.3 直接把session ticket内置了,并改名叫 PSK

    要注意的是,此 PSK 和 tls 1.2中一个很生僻的psk(见 [rfc4279] 链接 https://tools.ietf.org/html/rfc4279 )并不是一回事。

    综合考虑了 session resuming ,session ticket后,
    TLS 1.3 提出了3种handshake模式:

    1. Diffie-Hellman ( 包含 DH 和 ECDH 两种,下文说到 ECDH 的地方,请自行脑补成 “ECDH/DH”).

    2. A pre-shared symmetric key (PSK) ,预先共享的对称密钥,此处用统一的模型来处理session resuming 和 rfc4279的psk

    3. A combination of a symmetric key and Diffie-Hellman ,前两者合体

    13.3. 1-RTT 握手

    首先,TLS 1.2 的握手有2个rtt,第一个rtt是 ClientHello/ServerHello,第二个rtt是ClientKeyExchange/ServerKeyExchange,
    之所以KeyExchange要放在第二个rtt,是由于tls1.2要支持多种密钥交换算法,和各种不同参数(比如 DH还是ECDH还是RSA,ECDHE用什么曲线,DH用什么群生成元,用什么模数,等等),这些算法和参数都依赖第一个rtt去协商出来,
    TLS1.3大刀阔斧地砍掉了各种自定义DH群,砍掉了ECDH的自定义曲线,砍掉了RSA协商,密钥协商的算法只剩下不多几个,而且其实大家实际应用中基本都用 ECDH P-256,也没啥人用别的,所以干脆让客户端缓存服务器上一次用的是啥协商算法,把 KeyExchange直接和入第一个rtt,客户端在第一个rtt里直接就用缓存的这个算法发KeyExchange的公钥,如果服务器发现客户端发上来的算法不对,那么再告诉正确的,让客户端重试好了。
    这样,就引入了 HelloRetryRequest 这个消息。

    这样,基本没有副作用,就可以降到 1-RTT。
    这是TLS 1.3 的完整握手。

    显然,如果一个协议只有一种密钥协商算法,比如定死为 ECDH P-256,那一定可以做到 1-RTT

    13.4.  有副作用的 0-RTT握手

    0-RTT应该是受Google的QUIC协议的启发,
    如果服务器把自己的 ECDH 公钥长期缓存在客户端,那么客户端就可以用缓存里的ECDHE公钥,构造一个电子信封,在第一个RTT里,直接就发送应用层数据了。
    这个长期缓存在客户端的ECDH公钥,称为 半静态 ECDH 公钥( semi-static (EC)DH share )
    ECDH公钥通过 ServerConfiguration 消息发送给客户端。

    这个0-rtt优化是有副作用的:

    1. 0-RTT发送的应用数据没有前向安全性。

    2. 跨连接可以重放0-RTT里的应用数据(任何服务器端无共享状态的协议,都无法做到跨连接防重放)

    3. 如果服务器端 半静态 ECDH公钥对应的私钥泄露了,攻击者就可以伪装成客户端随意篡改数据了。

    服务器在 ServerConfiguration 消息里把半静态 ECDH 公钥发送给客户端。
    ServerConfiguration 值得关注一下:

    struct {
        opaque configuration_id<1..2^16-1>;
        uint32 expiration_date;
        NamedGroup group;
        opaque server_key<1..2^16-1>;
        EarlyDataType early_data_type;
        ConfigurationExtension extensions<0..2^16-1>;
    } ServerConfiguration;

    其中的 expiration_date 是本 ServerConfiguration 最后的有效期限。
    这个值绝对不允许大于7天。
    客户端绝对不允许存储 ServerConfiguration 大于7天,不管服务器怎么填这个值。

    0-RTT 中的应用数据,放在 EarlyDataIndication 中发送,

    TLS 1.3 还特意给 EarlyDataIndication  定义了一种 ContentType : early_handshake
    (共四种 alert(21), handshake(22),      application_data(23), early_handshake(25) )

    13.5.  Resumption 和  PSK

    TLS 1.3 里面,把session resumption/session ticket 恢复出来的key,和 psk (rfc4279), 统一在一个 handshake PSK 模式下处理。

    PSK CipherSuite可以 把PSK和ECDHE结合起来用,这样是有前向安全性的。
    也可以仅仅使用PSK,这样就没有前向安全性。

    13.6. Key Schedule 过程的改动

    TLS 1.3 中,综合考虑的 session ticket的各种情况后,提出了 ES,SS 两个概念,统一处理密钥协商的各种情况。
    在各种handshake模式下,ES和SS的取值来源不同。

    Ephemeral Secret (ES)
    :  每个连接新鲜的 ECDHE 协商得出的值。凡是从 ES 得出的值,都是前向安全的(当然,在 PSK only模式下,不是前向安全的)。

    Static Secret (SS)
    :  从静态,或者半静态key得出的值。例如psk,或者服务器的半静态 ECDH 公钥。

    在各种 handshake 模式下:

    Key Exchange Static Secret (SS) Ephemeral Secret (ES)
    (EC)DHE (完整握手) Client ephemeral  w/ server ephemeral Client ephemeral w/ server ephemeral
    (EC)DHE (w/ 0-RTT) Client ephemeral w/ server static Client ephemeral w/ server ephemeral
    PSK Pre-Shared Key Pre-shared key
    PSK + (EC)DHE Pre-Shared Key Client ephemeral  w/ server ephemeral

    如上表所示:

    1. 完整的 1-RTT握手的时候, SS 和 ES 都是用的 ephemeral key ,这样是一定有前向安全性的。

    2. 使用 0-RTT 的握手的时候,使用客户端的 ephemeral key 和 服务器端的半静态 ECDH 公钥生成 SS,

    3. 纯 PSK,这种场景完全没有前向安全性,应该避免。

    4. PSK + ECDHE,这种场景比较有意思,SS是用的Pre-Shared Key,没有前向安全性,ES 用的 ephemeral key,有前向安全性。

    可以看到,相比 TLS 1.2 的 session ticket,TLS 1.3 中 的 PSK + ECDHE,是结合了 ES 的,这样就有了前向安全性,相对更安全。

    和 TLS 1.2 不同的是,TLS 1.3的 master_secret 是使用 ES和SS 两个得出的。

    HKDF-Expand-Label(Secret, Label, HashValue, Length) =
         HKDF-Expand(Secret, Label + '\0' + HashValue, Length)1. xSS = HKDF(0, SS, "extractedSS", L)2. xES = HKDF(0, ES, "extractedES", L)3. master_secret = HKDF(xSS, xES, "master secret", L)4. finished_secret = HKDF-Expand-Label(xSS,                                       "finished secret",
                                           handshake_hash, L)

    Traffic Key Calculation

    加密流量用的key,在 TLS 1.3 里面称为 Traffic Key,由于多引入了一种ContentType,在不同的ContentType下,Traffic Key 并不相同。
    如下表:

    Record Type Secret Label Handshake Hash
    Early data xSS “early data key expansion” ClientHello
    Handshake xES “handshake key expansion” ClientHello…      ServerKeyShare
    Application master secret “application data key expansion” All handshake messages but     Finished

    要关注的是, Early Data 的 Traffic Key 是用 xSS 算出来的。也就是说,是用 Pre-Shared Key决定的。因此是没有前向安全性的。

    在一个TLS 连接中,究竟是用哪种 handshake 模式,是由 CipherSuite 协商决定的。

    展开全文
  • 在配置管理中,最核心的组件就是配置文件,配置文件是存储于云平台服务器磁盘上的文本文件,通常采用INI格式,由于配置文件存储的信息比较敏感,因此需要比较高的安全性,一般访问权限都设置是“owner可读写、group...


    1. 配置管理


    OpenStack云平台的功能复杂、组件繁多,很多功能的设置都需要专门的配置管理模块来完成。在OpenStack云平台中,oslo项目就主要负责独立出系统中可重用的基础功能,其中oslo.config库用于解析命令行和配置文件中的配置选项。在配置管理中,最核心的组件就是配置文件,配置文件是存储于云平台服务器磁盘上的文本文件,通常采用INI格式,由于配置文件存储的信息比较敏感,因此需要比较高的安全性,一般访问权限都设置是“owner可读写、group可读、others无权限”。这些配置文件种类繁多、里面的设置选项复杂,涵盖了网络接口、数据库设置、开关选项、驱动设置、安全过滤模块设置等,甚至还包含了用户名、密码等安全性要求极高的设置,并且还是明文存储,因此,配置文件很容易成为攻击者的目标。而目前OpenStack云平台的配置文件管理机制比较欠缺,只能靠云平台管理员人工去修改这些文件,因此很有可能发生配置错误、或者权限设置太松散、把文件内容暴露给外界等问题。配置错误有可能导致一连串的安全失效,如管理员不小心在配置文件中设置了insecure选项,直接会导致整个云平台的身份认证机制失效,本来没有访问权限的攻击者则有可能通过中间人攻击伪造证书,从而骗过身份校验机制实现非法访问。因此我们可以分析各类配置文件对云平台安全性的影响,并分析器脆弱性和可能的攻击模式,从而有效帮助云平台管理员改善配置安全性。(参见CVE-2015-1852,https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1852)

     



    2. 日志管理


    云平台通常有自己的日志模块,来统一负责记录云平台内部的运行时信息,包括Debug信息、Info信息、Warning信息、Error信息、Critical信息等几个类别。这些信息记录之后通常会存储在云平台服务器的磁盘上,并且由于日志信息通常不认为非常重要,因此其安全性级别不是很高,一般访问权限都设置为“owner可读写、group可读、others可读”,因此可以发现,任何用户对这些日志文件都是可读的。这里也存在一个问题:日志文件一旦编写有误,则有可能会记录一些机密数据、尤其是上面提到的配置文件的数据,而日志文件是对任何人可读的,从而导致机密数据如用户名、密码暴露给攻击者。因此我们可以利用信息流分析法等方法分析从配置文件到日志文件的信息泄露路径,避免安全关键配置被泄露到日志文件中去。(参见CVE-2015-3646,https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3646


    展开全文
  • SSL网络协议安全性分析

    千次阅读 2007-08-24 10:32:00
    SSL网络协议安全性分析2006-10-10 作者:joeytang 语言:中文 <!--google_ad_
     
    
    SSL网络协议安全性分析
    2006-10-10 作者:joeytang 语言:中文
     
             Internet原先建立在可信的基础上,网际协议(IPv4)信任数据保的发送者,相信数据包的发送方是该包的真正发送者,相信包在传输过程中没有被改变。最重要的是IPv4相信在传送过程中没有他人看过数据包。
           电子商务对World Wide Web(WWW)交易提出了安全的要求。为保证电子商务的安全,Netscape19947月开发了安全套接字层协议(SSL)。它被WWW广泛接受并且已经成为事实上的Internet加密标准。1996IETF批准SSL为标准的Internet安全协议。SSL的目的是实现客户和服务器时间的认证和加密通信。SSL2.0版本于199412月发布,SSL3.0199511月发布。
    SSL是目前电子商务中应用最为广泛的安全协议,其实现模式非常适合编程开发。由于SSL提供传输层的通信加密而与应用层协议独立无关,因此各种高层的应用层协议(HTTPFTPTELNETSOAPWDDX)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后应用层协议所传送的所有数据都会被加密,从而保证通信的安全性。如前面所述,由于目前国内B2B市场还很少使用网上支付,因此安全性很高的SET协议几乎不太可能用到,而SSL由于其使用范围广(可结合大多数互联网通信协议),所需费用少(可以到网上免费下载基于各种操作系统平台、各种编程语言的工具包),实现方便(比如和IPSec相比较)、安全性高(经过多年实践检验),所以已成为一般网络数据安全通信的首选方案。下面对SSL的实现作简要介绍:
    SSL协议包括SSL记录协议和SSL握手协议两部分,前者指定传输数据的具体格式。后者则负责在支持SSL的客户端和服务器端之间建立安全传输通道,并实现:在客户端验证服务器;允许客户端和服务器选择双方都支持的加密算法;在服务器端验证客户(可选);用公钥加密算法产生“共享安全信息”;建立加密SSL连接。
    SSL协议同时使用对称密钥算法和公钥加密算法。前者在速度上比后者要快很多,但是后者可以实现更好的安全验证。一个SSL传输过程首先需要握手:用公钥加密算法使服务器端在客户端得到验证,以后就可以使双方用商议成功的对称密钥来更快速的加密、解密数据。其基本过程我就不做详细描述了。
    也许很多人知道Socket,它是一个编程界面,并不提供任何安全措施,而SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。目前我们使用的版本为SSL 3.0,使用SSL可以建立一条点对点的安全信道用于实时的数据交互。
    SSL协议是对计算机之间整个会话进行加密的协议,它能提供Internet上通信的保密性。该协议允许客户∕服务器应用程序在通信时,能够阻止窃听、报文伪造等安全攻击。下面我要从它抵御攻击的能力来分析它的安全性。
    1防止版本重放攻击   
    当正在执行SSL3.0的通信方执行SSL2.0时,版本重放攻击发生。SSL3.0使用了非随机的KKC1分组类型2的消息填充,这有助于使用SSL3.0的服务器检测出版本重放攻击。
    2)检测对握手协议的攻击 
    攻击者可能试图改变握手协议中的消息,使通信双方选择不同于通常使用的加密算法。这种攻击容易被发现,因为攻击者必须修改一个或多个握手消息。一旦这种情况发生,客户和服务器将计算出不同的handshake message hashes,这就导致双方不接收彼此发送的finished消息。
    3)会话的恢复   
    当通过恢复一个会话建立一个连接时,将产生新的这个连接使用的MAC secret,加密keysIvs。攻击者不可能在不打破安全的hash操作的情况下通过已知的以前的连接的MAC secret或加密keys来获得或破坏master secret。所以如果这个会话的master secret是安全的,并且hash操作也是安全的,那么这个连接是安全的且独立于以前的连接。但仍建议一个session ID的生存周期最长位24小时,因为获得了master secret的攻击者可能在session ID改变之前假冒受攻击的一方。
    4)中间人攻击   
    SSL 3.0中包含了对Diffie-Hellman密钥交换进行短暂加密的支持。Diffie-Hellman是一种公开密钥算法,它能有效地提供完善的保密功能,对于SSL来说是一个有益的补充。在SSL 3.0 Diffie-Hellman密钥交换系统中,服务器必须指定模数和原始根(这两个数均为素数),以及Diffie-Hellman的指数。为了防止服务器端产生的陷门,客户端应该对模数和原始根进行仔细的检查,看它们是否为固定公共列表上的可靠数值。在SSL 3.0中,通过对服务器端的Diffie-Hellman指数的鉴别,可以抵御众所周知的中间人(man-in-the-middle)攻击。(匿名客户不必拥有证书。)另外,在SSL 3.0中并不支持具有较高性能的Diffie-Hellman变量,如较小的指数变量(160bit)或椭圆曲线变量。
    5)流量数据分析攻击   
    这种攻击的核心是通过检查数据包的未加密字段或未保护的包的属性来试图进行攻击。例如,通过检查IP包中未加密的IP源地址和目标地址,或检测网路流量,攻击者可知道谁正在参与交互通信,他们在使用何种服务,有时候甚至能得到或推测出一些商业或个人之间的关系。用户在通常情况下认为这种流量分析是相对无害的,SSL协议也未尝试阻止这种攻击。但是有一些特殊情况,可能会给攻击者提供较大的成功概率。
    6)主动攻击
    SSL能抵御主动攻击以安全地保护机密数据,这一点非常重要。当然,所使用的加密算法应该在被选择明文∕被选择密文攻击下是安全的,但这对于加密算法来说还不够。IETFIPSEC工作组的最近研究表明,即使所使用的密码强度足够,在记录层上精明的主动攻击仍能打破系统的保密性。SSL 3.0的记录层能抵御这些强有力的攻击:更进一步,为何这些攻击会被阻止,值得我们讨论。
    IPSEC中的一个重要的主动攻击是Bellovin的剪贴攻击。回想起来,要获得保密性,光对链接进行加密是不够的——接收端也必须防止敏感数据在无意中被泄露出来。剪贴攻击的攻击方式就是谋求接收端的信任,使之对敏感数据进行解密并将这些数据泄露给它们。
    SSL 3.0能够阻止剪贴攻击。阻止这种攻击的一种局部性防御策略是为每一个不同的上下文使用独立的会话密钥,这样便能在不同的连接之间,以及连接的不同方向之间阻止剪贴操作。SSL已经为每个连接方向使用了独立的密钥。但是,这种机制无法阻止传输中一个方向上的剪贴操作。应用最广泛的防御策略是在所有加密包上使用强大的认证机制,以阻止敌方对密文数据的修改。SSL记录层确实采用了这种防御策略,因此剪贴操作被完全阻止住了。
      另一种主动攻击是短块攻击,它主要针对IPSEC。这种攻击适用于最后的报文块包含一个一字节长的明文并且报文块剩余部分由随机数填充的情况。在SSL上并没有明显的短块攻击。SSL记录层格式与以前的IPSEC格式相当类似,这种格式容易遭到攻击,因此可以想象,修改性攻击会对SSL产生威胁。但是,无论如何,由标准SSL加密的Web服务器基本上不会受到短块攻击的威胁,因为这些服务器不会经常对短块进行加密。(但要注意,由SSL加密的telnet客户端必须得到特殊的保护,以防止短块攻击,因为每一次按键在传送时都是一字节长的数据包。
    7)报文重放攻击   
    报文重放攻击是一种比较容易被阻止的攻击,如上所述,SSLMAC数据中含进序列号阻止了重放攻击。同时,这种机制也阻止了延迟重排序删除数据等攻击方式。
    虽然SSL在安全性方面已经做得相当完善,但在实际的应用中,仍存在着许多安全漏洞。已经出现的对SSL3.0成功的攻击是流量分析攻击,这种攻击基于密文长度能够揭示明文长度。另外,在密钥管理方面,SSL也存在一些问题:客户机和服务器在相互发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能;SSL3.0为了兼容以前的版本,可能会降低安全性;所有的会话密钥中都将生成master key,握手协议的安全完全依赖于对master key的保护,因此通信中要尽可能地减少使用master key
    以上是我根据一些的文献资料,自己学习总结的SSL网络协议针对几种攻击的安全性分析,当然攻击的种类远远不止这些。总的说来,SSL网络协议还是比较安全的,它也是国际上最早应用于电子商务的一种网络安全协议, 现在被许多网上商店和网上银行所使用。例如:SecurePay(由Anacom提供的实时信用卡交易服务,基于SSL协议);SecureTrans(一种提供实时信用卡交易处理和电子支票服务的系统,基于SSL协议);ByWay and BuyWayPS(信用卡安全交易系统,使用SSL协议)。该协议已成为事实上的工业标准,并被广泛应用于InternetIntranet的服务器产品和客户端产品中。如网景公司, 微软公司, IBM公司等领导Internet/Intranet网络产品的公司已在使用该协议。
    展开全文
  • 那通过对这些平台和工具的安全功能分析,相信你已经知道了,应该如何正确配置和使用这些工具,来避免底层应用出现安全隐患,以防影响整个应用的安全性。 公司中有很多研发和运维人员,他们都在使用和维护自己的系统...

    在上一模块中,我们重点讲解了,在开发过程中经常要接触或使用的平台、工具的安全功能。这些平台和工具包括:Linux 系统、网络、容器、数据库和分布式平台。

    那通过对这些平台和工具的安全功能分析,相信你已经知道了,应该如何正确配置和使用这些工具,来避免底层应用出现安全隐患,以防影响整个应用的安全性。

    公司中有很多研发和运维人员,他们都在使用和维护自己的系统和应用,那要怎么保证他们都能够去采用最安全的配置呢?

    重点知识回顾

    在解决这个问题之前,我们先来回顾一下,Linux 系统、网络、容器、数据库和分布式平台这些平台、工具的安全功能有哪些。

    专栏一开始,我说过:安全的本质是数据的 CIA,而保护数据 CIA 的办法就是黄金法则和密码学。因此,在讲解各个平台和工具的安全功能时,我都是以黄金法则和密码学为线索来探讨的。

    所以,今天我还是以黄金法则和密码学为线索,带你系统梳理一下本模块的重点内容。希望通过今天的讲解,你能在此基础上总结出自己的学习经验和知识框架。

    在之前的课程中,我都详细讲过这些安全功能了,你可以根据我梳理的知识脑图进一步复习巩固。在这里,我就挑一些重点内容着重强调一下。

    1. 认证

    认证的目的在于明确用户的身份标识。在各个平台和工具中,基本都会提供各类形式的认证功能,包括:账号密码、公私钥、证书和单点登录等形式。对于认证来说,最大的问题在于弱密码导致的登录凭证丢失。对于这个问题的防护,主要的解决办法是强化密码管理策略,比如:限制最低密码强度、定期修改密码。

    2. 授权

    授权的目的在于限定用户的行为,但是授权的形式多种多样,在不同平台中都有不同的体现形式。授权最核心的原则就是最小权限原则,所以对于任何平台来说,落实最小权限原则,都是在加强授权安全性中最直接、有效的一步。

    3. 审计

    审计的基础是日志。对于各个平台的审计功能,我们主要需要关注它们会产生哪些日志,以及日志的信息是否充足。

    这里,我要强调一下 Docker 容器的审计。Docker 日志可以分为 Docker 容器产生的日志和 Docker 容器内应用产生的日志。

    Docker 容器日志由 Docker 守护进程统一管理,通过 docker-compose 的 logging 选项,我们可以定义日志的管理策略。

    Docker 容器内应用的日志和 Linux 系统日志一致,但是 Docker 容器是一个临时的环境,无法持久保存日志。因此,我们可以通过文件共享功能,将宿主机目录挂载到容器内,从而实现日志的持久化保存。

    4. 加密

    事实上,黄金法则只能起到保护的作用,也就是保证用户在正常使用应用的时候,不会破坏数据的 CIA。但是,很多时候,黑客也会通过非正常的方式去窃取和篡改数据(比如窃听网络流量、物理盗取硬盘等)。这个时候,我们就需要依靠密码学来对数据进行保护了,确保只在正确使用应用的情况下,才能解密数据。

    那我们来看一下 Linux 系统中的加解密。Linux 是底层的操作系统,它不负责对应用数据进行加密。但是,Linux 系统本身仍然需要提供一些应用层的功能(比如最基础的登录),而这些功能往往需要用到加解密。比如,在 /etc/shadow 中,密码的存储形式如下所示:

    root:66d9k5nMkuTqDf7dET$C8qwu4q2a96BItyIMhI8oNVpEzztvG/8P6BdEjmAZJS5s4Ad66MI9HxKDtImz7m.QSvVZgk7BhCLM5pFnro1U0::0:99999:7:::
    对这行数据按冒号进行分隔,第二部分就是密码部分。密码部分按 $ 进行分隔,第一个“6”是散列算法,第二个“d9k5nMkuTqDf7dET”是盐,第三个是最终的散列值。所以,在 Linux 中,用户登录进行密码匹配的过程,其实就是判定密码加盐后的散列值是否一致的过程。

    如何大范围提高平台安全性?

    回顾完这些重点内容之后,我们来看文章开头提到的问题:怎么保证公司内的研发和运维人员都能够去采用最安全的配置,也就是如何大范围提高平台的安全性。

    首先,最简单、直接的一个方案就是安全培训。但是,如果你做过培训或者参加过培训,一定能够感受到,强制性培训的效果其实很不理想。因此,我们必须要采用有效的技术手段,提升研发和运维人员的安全意识。基于这个目的,行业内提出了“安全基线”的概念。

    所谓“安全基线”,就是由安全人员制定的一系列安全规范,这些规范可以通过技术手段进行检测。比如,在 Linux 的密码管理中,我们可以将密码管理规范定义为:一个用户 60 天内必须修改密码,并且必须开启强制修改密码配置。

    如果我们想要检测这个规范也很容易。我们可以通过下面的脚本,来检查一下 /etc/shadow 中 ROOT 用户的最后修改密码时间。

    last=$(grep root /etc/shadow | awk -F “:”’{print $3}’)
    date -u -d “1970-01-01 $last days”"+%Y-%m-%d"
    然后,我们只需要将这个脚本,放到所有的 Linux 系统中执行一遍,就能够知道在公司环境中,有多少 root 用户已经长期没有修改密码了。对于这些不符合要求、存在安全风险的 Linux 系统。发现之后,我们只需要点对点的要求对应系统的管理员去完善就可以了。

    一个好的安全基线,需要事无巨细地覆盖到黄金法则的方方面面,所以需要专业的安全人员来制定。不过,很多公司的安全基线是可以共用的,因此,有一些安全公司把常见的系统和应用的安全基线进行了总结,比如知名的CIS Benchmarks。有了 CIS 的标准安全基线,我们就可以实现通用的基线检查工具了,比如 Docker 中比较知名的Docker Bench for Security,就是基于 CIS 的 Docker 安全基线开发出来的。

    那有了安全基线的检测,是不是就“万事大吉”了呢?其实不是。在我们实际检测的过程中,很容易出现系统不符合安全基线,我们也告知了开发人员存在的风险,但开发人员不买账的情况。

    比如说,CIS 中关于 Centos 的基线要求 /tmp 目录必须挂载在单独的分区,并且设置 /tmp 中的文件全部不可执行。这当然是合理的,因为黑客通常会将木马、后门等文件下载到 /tmp 目录中再执行。但是,想要完成这个操作,你必须下载一个工具 LVM 来进行配置。而安全基线只是一个预防针,它并不会产生实际的收益。所以,你没有足够的理由去强制要求开发人员,花费这个精力来满足你想要实施的安全基线。这个时候,我们应该怎么办呢?

    目前,最优的解决方案就是在一开始,我们就分配给开发人员一个符合安全基线的系统。这样一来,只要开发人员不去修改配置,就不会违背安全基线了。要实现这个功能,我们首先需要自己配置出一个符合安全基线的系统,然后将这个系统打包成镜像,应用到后续的系统安装过程中,按照我们刚才说的CIS Benchmarks配置就可以了。

    简单总结一下,通过定义安全基线、配置安全镜像,我们就能够提供整个公司的系统和平台工具安全性。在这之后,我们只要配合基线检查工具进行定期的检测,并提醒开发、运维人员不要去修改安全配置,就能够将安全性保持在一个较高的水平了。

    总结

    好了,通过对 Linux 系统、网络、容器、数据库和分布式平台的安全功能分析,我们发现,黄金法则和加密始终贯穿于安全防护体系之中。每一个工具,甚至每一个单独的功能,都可以根据黄金法则去思考需要提供的安全能力和基本的加解密功能,来防止黑客非正常手段的攻击。

    除此之外,公司是一个整体,只有你个人系统和工具的安全性提升了,并不会有太大效果。因此,我们需要利用安全基线,来提升公司整体的安全水平避免出现短板。

    思考题

    通过今天的串讲梳理,相信你已经对 Linux 系统和应用的安全有一个全面的认知了。

    你可以思考一下,你接触过的其他平台或者工具,它们在黄金法则和加解密上,又分别提供了哪些功能呢?

    欢迎留言和我分享你的思考和疑惑,也欢迎你把文章分享给你的朋友。我们下一讲再见!

    下一讲

    安全防御工具:如何选择和规划公司的安全防御体系?

    展开全文
  • 阿里云安全性分析与案例 一、云盾 1、云盾概述 云盾是阿里巴巴集团多年来安全技术研究积累的成果,结合阿里云计算平台强大的数据分析能力,为客户提供DDoS防护,主机入侵防护,以及漏洞检测、木马检测等一整套安全...
  • OpenStack虚拟机迁移机制安全性分析

    千次阅读 2015-05-14 18:48:15
    目前的云平台主要有两种迁移类型:动态迁移和块迁移。动态迁移需要实例保存在NFS共享存储中,这种迁移主要是实例的内存状态的迁移,速度很快。块迁移除了实例内存状态要迁移外,还得迁移磁盘文件,速度会慢些,但是...
  • 安全性分析之“面向全场景的鸿蒙系统”

    万次阅读 多人点赞 2020-10-19 13:24:02
    调用数据的设备越多,自然面临的安全风险就越大。在提供优质服务与绝佳用户体验的同时,安全与隐私保护问题也就成了用户无法忽视的焦点。面向全场景的鸿蒙系统在现实中都存在哪些挑战呢?面对这些挑战,采用分布式...
  • 本文讲述了OpenCV中几种访问矩阵元素的方法,在指定平台上给出性能比较,分析每种矩阵元素访问方法的代码复杂度,易用
  • OSSIM平台安全事件关联分析实践

    千次阅读 2016-04-07 14:32:18
    OSSIM平台安全事件关联分析实践  在《开源安全运维平台OSSIM最佳实践》一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件关联需要海量处理能力,主要便于现在需要及时存储从设备采集到的日志,...
  • 提高微服务安全性的11个方法

    千次阅读 多人点赞 2020-12-21 08:41:47
    原文发表于kubernetes中文社区,为作者原创翻译,原文地址 更多kubernetes文章,请多关注kubernetes中文社区 目录 为什么选择微服务?...6.通过交付流水线验证安全性 7.降低攻击者的速度 8.使用Docker Rootl..
  • SEAndroid安全机制框架分析

    万次阅读 多人点赞 2014-07-14 01:00:02
    针对传统Linux系统,NSA开发了一套安全机制SELinux,用来加强安全性。然而,由于Android系统有着独特的用户空间运行时,因此SELinux不能完全适用于Android系统。为此,NSA针对Android系统,在SELinux基础上开发了...
  • 接下来,本文阐释了大数据分析技术,对大数据在信息安全领域尤其是安全管理平台领域的应用做了深入分析,并给出了基于大数据安全分析技术的安全管理平台的基本特征。最后,针对启明星辰推出的基
  • 物联网安全安全分析

    千次阅读 2018-07-10 16:05:46
    1. 物联网发展趋势- - - - 物联网的出展技术可以总结为多样化、层次化和丰富化。即:接入方案多样化- - - - 有蜂窝移动网络(2G/3G/4G)接入...所有的安全操作根据安全功能分层,分为安全环境、安全连接和安全应...
  • hadoop安全性问题

    千次阅读 2014-05-28 16:55:16
    依据数据的敏感程度,我们可能要确保数据分析师能看到的数据是可以让他们分析的数据,并且必须明白发布这些数据及其分析结果可能产生的后果。仅Netflix数据泄漏一个案例就足以表明,即使已经试图对数据做了“匿名化...
  • 云计算及其安全技术分析

    千次阅读 2014-07-29 16:51:59
    云计算及其安全技术分析 一、云计算和云计算安全 云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻...
  • 游戏安全性测试总结

    千次阅读 2019-05-14 19:46:00
    手机游戏安全性日显重要,在上线之前已成为一个不可忽视的测试指标。 但是有关手机游戏安全性测试又任重道远…… 上线之后,依然出现各种问题,这里只单独讲下游戏安全这一块这些年的一些总结。 具体分析见后续单独...
  • 大数据平台安全建设实践

    千次阅读 2019-02-27 11:44:56
    一、概述 在大数据平台建设初期,安全也许并不是被重点关注的...那么数据平台建设过程中,需要考虑哪些安全性方面的问题? 环境隔离,数据开发人员应当只需关注自己相关业务域的数据,也应该只能访问这一部分数据...
  • 1 SOC一词的起源  SOC(Security Operations Center)是一个外来词。而在国外,SOC这个词则来自于NOC(Network ...NOC强调对客户网络进行集中化、全方位的监控、分析与响应,实现体系化的网络运行维护。
  • 需求分析——搭建数据分析平台

    千次阅读 2018-07-04 09:50:34
    基于ignition数据分析平台项目背景 准备为各中小学安装新风机使中小学生在更优越的空气环境下学习。Ignition平台获取新风机传感器采集...本文主要做的是周期性分析,对比分析,聚类分析用于突显新风机的效果。基于i...
  • 2020年中国网络安全产业白皮书分析解读

    千次阅读 多人点赞 2020-11-05 07:15:45
    安全从来都是一个聚焦的话题,根据信通院的提供的数据,2019年中国网络安全产业较2018年增长17.1%,这是信通院第六次发布中国网络安全产业研究成果,主要从全球网络安全产业规模和进展以及中国安全产业进展、生态...
  • 论信息系统的安全性与保密性设计

    千次阅读 2017-12-30 13:34:54
    论信息系统的安全性与保密性设计 摘要: 2015年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动...
  • 软件开发可行性分析规范

    千次阅读 2017-05-24 19:55:23
    2. 市场可行 2.1 市场前景 2.2 产品定位 3. 技术可行 3.1 功能说明 3.2 技术分析 4. 资源可行 4.1 人力资源 4.2 软件资源 4.3 设备资源 4.4 时间资源 5. 经济可行 5.1 投资规划 5.1.1 基础投资...
  • 区块链平台调研与分析报告.md

    千次阅读 2018-10-08 09:16:43
    区块链平台分析——Ethereum &amp;amp; BCOS 此文是FISCO-BCOS项目的一篇报告,阅读笔记 原文链接:点击 概述 09年比特币诞生后区块链技术的迅速发展和受重视程度。在金融方向的领域,具有简化和变革业务流程...
  • Linux操作系统实时性分析

    万次阅读 2016-12-11 13:02:46
    1. 概述 选择一个合适的嵌入式操作系统,... 第二是实时。没有一个绝对的数字可以告诉你什么是硬实时,什么是软实时,他们之间的界限也是十分模糊的,这与你选择什么样的CPU,它的主频、内存等参数有一定关系。如果
  • 各大AI开放平台汇总分析

    万次阅读 2020-03-13 21:18:18
    AI开放平台已经成为企业重要的基础设施。各大公司都建立了自己的AI开放平台,本文对各人工智能平台进行汇总分析
  • 无人驾驶安全报告分析

    千次阅读 2019-08-26 18:26:26
    能否控制汽车的重要功能就看汽车的智能化程度了,如果线路连接和信号传输够大,且涉及发动机以及其它重要ECU模块的话,汽车的安全性和信息的安全性可想而知。 (3)技术不足 智能化水平是否足够的问题,对道路的规划、...
  • 平台应用需求分析

    千次阅读 2014-05-29 16:51:06
    从使用传统的关系型数据库转到使用云存储,既要满足良好的数据运算性能,又要能够使数据管理像使用数据库一样方便,于是基于hadoop云架构的类数据库产品成为一个迫切的应用需求,我们这个云平台只从软件上面来分析,...
  • 安全中间件技术分析

    千次阅读 2011-01-05 16:50:00
    随着Internet的飞速发展以及计算机的广泛应用,安全问题已成为当前的热点话题。随着网上信息安全问题的出现,安全中间件也应运而生。安全中间件是实施安全策略、实现安全服务的基础架构。随着网上交易的普及,...
  • 章13 软件安全性测试

    千次阅读 2007-02-11 22:35:00
    章13 软件安全性测试黑客、病毒、蠕虫、间谍软件、后面程序、木马、拒绝服务攻击都是计算机的安全问题。1、驾驶攻击随着在城域网中普及无线高保真(WiFi)网络,黑客们可以驾驶车子,带着笔记本,在城市的街道上兜...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 301,817
精华内容 120,726
关键字:

平台安全性分析