当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

Rustls

内存安全的 TLS 实现
授权协议 Apach-2.0/MIT/ISC
开发语言 Rust
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 不详
投 递 者 澹台俊材
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Rustls 是一个用 Rust 编写的现代 TLS 库;它使用 ring 进行加密,使用 webpki 进行证书验证。Rustls 成熟且使用广泛。虽然大多数 API surface 是稳定的,但开发团队预计接下来的几个版本将根据需要进行进一步更改,以适应新功能或性能改进。

Rustls 旨在提供良好的加密安全级别,无需配置即可实现该安全性,并且不提供不安全的功能或过时的加密技术。

当前功能

  • TLS1.2 和 TLS1.3。
  • 客户端的 ECDSA、Ed25519 或 RSA 服务器身份验证。
  • 通过服务器进行 ECDSA、Ed25519 或 RSA 服务器身份验证。
  • 使用 ECDHE 的前向保密;使用 curve25519、nistp256 或 nistp384 曲线。
  • AES128-GCM 和 AES256-GCM 批量加密,具有安全随机数。
  • ChaCha20-Poly1305 批量加密 ( RFC7905 )。
  • ALPN 支持。
  • SNI 支持。
  • 可调片段大小,使 TLS 消息匹配底层传输的大小。
  • 可选地使用矢量 IO 来最小化系统调用。
  • TLS1.2 会话恢复。
  • 通过 tickets 恢复 TLS1.2 (RFC5077 )。
  • TLS1.3 通过票据或会话存储恢复。
  • 客户端的 TLS1.3 0-RTT 数据。
  • 服务器的 TLS1.3 0-RTT 数据。
  • 由客户端进行客户端身份验证。
  • 服务器进行客户端身份验证。
  • 扩展的主密钥支持 ( RFC7627 )。
  • Exporters (RFC5705)
  • OCSP 由服务器装订。
  • 通过服务器进行 SCT 装订。
  • 客户的 SCT 验证。

未来可能的功能

  • 支持PSK。
  • 客户端的 OCSP 验证。
  • Certificate pinning
  • 作者:anhkgg 日期:2017-11-16 rustls已经支持tls1.3,但是测试分析中使用的tls1.2,所以后面分析主要集中在tls1.2。 主要分析的源码内容: 1. client和server的握手协议流程 2. rustls是如何进行数据传输的 3. 数据传输是如何加密解密的 源码结构 分为client和server两部分 公共接口 session.rs定义了SessionCom

  • RustCrypto 发布 password-hash crate 此 crate 提供针对密码的 traits 和类型,使用这个 crate 的 crates 有: argon2 pbkdf2 scrypt 所以比如 PasswordHash::verify_password 这个函数可以使用多种密码算法的 hash,但是可以一次性验证,代码如下: use password_hash::Pass

 相关资料
  • 内存安全 Rust推崇安全与速度至上,它没有垃圾回收机制,却成功实现了内存安全 (memory safety)。 所有权 在Rust中,所有权 (ownership) 系统是零成本抽象 (zero-cost abstraction) 的一个主要例子。 对所有权的分析是在编译阶段就完成的,并不带来任何运行时成本 (run-time cost)。 默认情况下,Rust是在栈 (stack) 上分配内存

  • 默认情况下,Swift 会阻止你代码中发生的不安全行为。比如说,Swift 会保证在使用前就初始化,内存在变量释放后这块内存就不能再访问了,以及数组会检查越界错误。 Swift 还通过要求标记内存位置来确保代码对内存有独占访问权,以确保了同一内存多访问时不会冲突。由于 Swift 自动管理内存,大部份情况下你根本不需要考虑访问内存的事情。总之,了解一下什么情况下会潜在导致冲突是一件很重要的事情,这

  • MOSN 的 TLS 安全能力。 本文将向您展示 MOSN 的 TLS 安全能力。 证书方案 MOSN 支持通过 Istio Citadel 的证书签发方案,基于 Istio 社区的 SDS (Secret Discovery Service)方案为 Sidecar 配置证书,支持证书动态发现和热更新能力。为了支持更高级的安全能力,MOSN 没有使用 Citadel 的证书自签发能力,而是通过对接

  • 稳定性: 2 - 稳定的 tls 模块是对安全传输层(TLS)及安全套接层(SSL)协议的实现,建立在OpenSSL的基础上。 按如下方式引用此模块: const tls = require('tls'); TLS/SSL 概念 TLS/SSL 是 public/private key infrastructure (PKI),大部分情况下,每个服务器和客户端都应该有一个私钥。 私钥能有多种生成

  • 我曾经以为互联网安全总是处在社会和法律控制的范围里,但是在学习 TLS 的 过程中才意识到真实的互联网四处漏洞简直就是是一个Sin City。而TLS相关知 识就像美女包包里的避孕套和枪一样——我们希望永远也用不上,但是当不得不用 的时候,我们希望在手边。 加密技术 TLS 依赖两种加密技术: 对称加密(symmetric encryption) 非对称加密(asymmetric encrypti

  • 问题内容: 我正在编写一个需要处理内存中私钥的快速应用程序。由于此类对象的敏感性,因此在释放对象时需要清除键(也就是将其写为全零),并且无法将内存分页到磁盘(通常使用mlock()完成)。 在Objective-C中,您可以提供一个自定义CFAllocator对象,该对象允许您使用自己的函数来分配/取消分配/重新分配对象使用的内存。 因此,一种解决方案是仅在Objective-C中实现一个“ Se