2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

谷歌开源的加密库 Tink 正式发布 1.2 版本

  • 2018-09-05
  • 本文字数:1292 字

    阅读完需:约 4 分钟

在谷歌,很多产品团队使用加密技术来保护用户数据。在加密技术领域,一个很细微的错误都会产生非常严重的后果。想要正确实现加密技术,可能需要先消化数十年的学术文献。毋庸置疑,很多开发人员没有这么多时间。

为了帮助开发人员交付安全的加密代码,谷歌开发了 Tink —一个支持多语言的跨平台加密库。他们希望 Tink 能够成为一个社区项目,因此 Tink 从一开始就托管在 GitHub 上,并且已经吸引到了几个外部贡献者。在谷歌,Tink 已经被用来保护多个产品的数据,如 AdMob、Google Pay、Google Assistant、Firebase、Android Search App 等。经过近两年的发展,Tink 正式迎来了 1.2 版本。这也是第一个支持云、Android、iOS 的版本!

Tink 致力于提供安全且易于使用的加密 API。Tink 建立在现有的库之上,如 BoringSSL 和 Java Cryptography Architecture,同时对这些库中存在的弱点进行了加固。

有了 Tink,很多常见的加密操作(如数据加密、数字签名等)只需几行代码即可完成。以下是使用 AEAD 接口加密和解密的示例(Java 版):

复制代码
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);
复制代码
<pre data-linenum="1" spellcheck="false">
Tink 尽可能消除潜在的误用情况。例如,如果底层加密模式需要 nonce,而重用 nonce 会导致不安全,那么 Tink 就不允许用户传递 nonce。接口的安全保证必须由实现接口的每个基元来满足,这可能会排除掉某些加密模式。对于这些模式,不能将它们添加到现有接口中,因为这样会削弱接口的安全保证,而是添加新的接口,并适当地描述它们的安全保证。

Tink 在接口中提供了安全属性描述(例如安全抵御选择密文攻击),让安全审计员和自动化工具可以快速发现安全保证与安全要求不匹配的用法。Tink 还隔离了用于进行潜在危险操作的 API(例如从磁盘加载明文密钥),这样就可以发现、限制、监视和记录它们的使用。

Tink 支持密钥管理,包括密钥轮换和逐步淘汰已弃用的密码。例如,如果发现加密原语被破坏,可以通过旋转秘钥切换到不同的原语,而无需更改或重新编译代码。

Tink 还支持扩展:可以轻松地添加自定义加密方案和密钥管理系统,与 Tink 的其他部分无缝协作。 在 Tink 中,没有哪个部分是难以更换或移除的,所有组件都是可组合的。例如,如果只需要数字签名,就可以移除对称密钥加密组件,以便最大限度地减少应用程序中的代码量。

要使用 Tink,可以参考 Java C++ Obj-C 的 HOW-TO。如果想与 Tink 开发人员讨论或获取项目的更新通知,可以订阅邮件列表,只需发送一封空电子邮件至 tink-users+subscribe@googlegroups.com 即可。或者在 StackOverflow 上发布问题,并使用 tink 作为标签。

2018-09-05 09:165853
用户头像

发布了 731 篇内容, 共 482.0 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

观测云产品更新 | SIEM、监控、基础设施、异常追踪等

观测云

产品迭代

工程级提示词攻防,注意这5点

阿星AI工作室

产品 AI 大模型 AI教程 提示词

低代码开发模式下的应用交付效率优化:拖拽式交互机制研究

JeeLowCode低代码平台

低代码 低代码开发 低代码平台 低代码前端 低代码,

BeeWorks:云盘存储与在线编辑,开启高效办公新时代

BeeWorks

即时通讯 IM 企业级应用

论文解读 - 统一的多模态理解和生成模型综述(上)

合合技术团队

人工智能 算法 #大数据

【干货】手把手教你把Trae改造成你的专属AI写作助手

田威AI

AI AI工具 AI工具推荐

Windows Server 2025 中文版、英文版下载 (2025 年 5 月更新)

sysin

Windows Server

AI招聘APP的主要功能

北京木奇移动技术有限公司

AI应用 AI招聘 软件外包公司

【 HGDD 荣耀开发者日】系列活动丨荣耀应用市场联合维科网,推动应用分发“数智化”赋能

荣耀开发者服务平台

生态 荣耀开发者服务平台 应用市场 荣耀HONOR HGDD

Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 5 月更新)

sysin

windows 11

科学智能赋能空间科学研究(1):中国空间站空间科学实验的数据生态构建

ModelWhale

大模型 科学智能 AI4S 空间科学

KADC 2025,筑起行业智能化的算力屏障

脑极体

AI

天翼云,用息壤智能体打通AI“最后一公里”

脑极体

AI

Windows Server 2022 中文版、英文版下载 (2025 年 5 月更新)

sysin

Windows Server

CST软件PCB热仿真2--直流热源(IR drop)+ 元件热源

思茂信息

cst CST软件 CST Studio Suite

618购机选什么?七彩虹带来全能王者iGame M15 Origo和旗舰强者iGame M16 Origo

E科讯

Windows 10 version 22H2 中文版、英文版下载 (2025 年 5 月更新)

sysin

Windows 10

Cisco Nexus 9000v Switch, NX-OS Release 10.5(3)F | 10.4(5)M

sysin

nexus

直播APP的技术难点

北京木奇移动技术有限公司

直播app 直播APP开发 软件外包公司

纯前端实现图片伪3D视差效果

vivo互联网技术

前端 WebGL pixi.js

Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来

sysin

veeam

Veeam Backup & Replication 13 之初见 - 基于 Linux 和 Web 控制台

sysin

veeam

直播APP的开发框架

北京木奇移动技术有限公司

直播app 软件外包公司 APP外包公司

华为云云应用引擎CAE,重塑企业AI Agent最佳运行态

华为云开发者联盟

华为云

日本房产中介龙头为何放弃 Salesforce,转向开源平台 NocoBase?

NocoBase

开源 CRM Salesforce 人力资源管理系统 日本房地产

Windows 10 on ARM, version 22H2 ARM64 中文版、英文版下载 (2025 年 5 月更新)

sysin

Windows 10

Windows 11 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 5 月更新)

sysin

windows 11

户外防水租赁LED显示屏报价与选择攻略

Dylan

商业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

im即时通讯软件BeeWorks:流程审批助力企业高效管理

BeeWorks

即时通讯 IM 私有化部署

Oracle Linux 9.6 正式版发布 - Oracle 提供支持 RHEL 兼容发行版

sysin

oracle

谷歌开源的加密库Tink正式发布1.2版本_Google_Thai Duong_InfoQ精选文章