Tink 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Tink 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Tink 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Java C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织 Google
地区 不详
投 递 者 h4cd
适用人群 未知
收录时间 2018-09-04

软件简介

Tink 是一个多语言、跨平台的加密开发库,提供安全,易于正确使用和难以滥用的加密 API,目前 Tink 已经被用于保护许多谷歌内部产品的数据,如 AdMob、Google Pay、Google Assistant、Firebase 与 Android Search App 等。

Tink 旨在提供安全、易于正确使用且难以滥用的加密 API,它建立在现有安全相关的库之上,如 BoringSSL 和 Java Cryptography Architecture,但谷歌专门的团队 Project Wycheproof 发现了这些库中的一些弱点,Tink 进行了跟进,使之更加安全。

使用 Tink,许多常见的加密操作,如数据加密、数字签名等只需几行代码就可以完成,以下是使用 Java 中的 AEAD 接口加密和解密的 demo:

import com.google.crypto.tink.Aead;

   import com.google.crypto.tink.KeysetHandle;

   import com.google.crypto.tink.aead.AeadFactory;

   import com.google.crypto.tink.aead.AeadKeyTemplates;


   // 1. Generate the key material.

   KeysetHandle keysetHandle = KeysetHandle.generateNew(

       AeadKeyTemplates.AES256_EAX);


   // 2. Get the primitive.

   Aead aead = AeadFactory.getPrimitive(keysetHandle);


   // 3. Use the primitive.

   byte[] plaintext = ...;

   byte[] additionalData = ...;

   byte[] ciphertext = aead.encrypt(plaintext, additionalData);

Tink 希望消除尽可能多的潜在误用。例如,如果底层加密模式需要 nonce(密码学中只被使用一次的任意或非重复的随机数),但重用 nonce 的话会产生安全问题,那么这时 Tink 将不允许用户传递 nonce。

Tink 的功能很多,大概有如下几个方面:

  • 可以安全抵御选择密文攻击,允许安全审计员和自动化工具快速发现那些与安全要求不匹配的代码。

  • 隔离了用于潜在危险操作的 API,例如从磁盘加载明文密钥。

  • 为密钥管理提供支持,包括密钥轮换和逐步淘汰已弃用的密码。

  • 可以通过设计进行扩展:可以轻松添加自定义加密方案或内部密钥管理系统,以便与 Tink 的其它部分无缝协作。Tink 的任何部分都难以更换或移除,所有组件都是可组合的,并且可以以各种组合进行选择和组合。例如,如果只需要数字签名,则可以排除对称密钥加密组件,以最大限度地减少应用程序中的代码大小。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(6) 发布并加入讨论🔥
发表了资讯
2018/09/04 08:09

Google 的 Tink 库让你丢掉手中成百上千页的密码学书籍

近日,谷歌在其安全博客中详细介绍了其开源的一款多语言、跨平台加密开发库 Tink。 一直以来,加密技术就是保护用户数据的有效手段,但是加密技术涉及到了非常艰深的密码学知识,开发者如果想要理解如何正确去实施密码学,这个过程将会花费他们大量时间去研究目前积累了数十年的学术文献。在当下高强度的开发工作下,显而易见,通常开发者都难有这样富足的时间。这样就给产品的安全带来了致命威胁,怎么办呢? Google 为此开发了...

4
69
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
validator 存在拒绝服务漏洞
拒绝服务
验证器是一个字符串验证器和消毒器库。此软件包的受影响版本通过 isSlug 函数容易受到正则表达式拒绝服务 (ReDoS) 的攻击。
MPS-2022-14122
2022-08-08 19:06
validator 存在拒绝服务漏洞
拒绝服务
验证器是一个字符串验证器和消毒器库。此软件包的受影响版本容易受到通过 isHSL 函数的正则表达式拒绝服务 (ReDoS) 的攻击。
MPS-2022-14123
2022-08-08 19:06
validator 存在拒绝服务漏洞
拒绝服务
验证器是一个字符串验证器和消毒器库。此软件包的受影响版本容易通过 isEmail 函数受到正则表达式拒绝服务 (ReDoS) 的攻击。
MPS-2022-14124
2022-08-08 19:06
Engine.IO 代码问题漏洞
对因果或异常条件的不恰当检查
Engine.Io是一个 Socket.Io 的基于传输的跨浏览器/跨设备双向通信层的实现。 Engine.IO 中存在代码问题漏洞,该漏洞源于产品未对特殊HTTP请求引发的异常进行有效处理。攻击者可通过该漏洞导致异常并关闭nodejs引擎。
CVE-2022-21676 MPS-2021-37034
2022-08-08 19:06
shelljs 安全漏洞
特权管理不恰当
shelljs是基于Node.js API 的 Unix shell 命令的可移植(Windows/Linux/OS X)实现。 shelljs存在安全漏洞,该漏洞源于不适当的权限管理,攻击者可利用该漏洞进行越权访问。
CVE-2022-0144 MPS-2022-0508
2022-08-08 19:06
commons-codec:commons-codec 存在信息暴露漏洞
信息暴露
commons-codec:commons-codec 是一个包含各种格式(如 Base64 和 Hexadecimal)的简单编码器和解码器的包。此软件包的受影响版本容易受到信息泄露的影响。
MPS-2022-11853
2022-08-08 19:06
validator 存在拒绝服务漏洞
验证器是一个字符串验证器和消毒器库。此软件包的受影响版本容易受到正则表达式拒绝服务 (ReDoS) 的攻击。
MPS-2022-13129
2022-08-08 19:06
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
6 评论
83 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部