问题标签 [tink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
451 浏览

go - Golang 中的 Google Pay PaymentMethodTokenRecipient 函数实现

我正在尝试实现上述的 Google Pay 解密方法。

https://developers.google.com/pay/api/android/guides/resources/payment-data-cryptography#decrypt-token

它提到使用tink带有 Java 示例的库(PaymentMethodTokenRecipient),但我无法为 Golang 复制它。

0 投票
0 回答
389 浏览

android - 使用 Tink 和 Google Cloud KMS 在 Android 上实现信封加密

我正在实施的应用程序将包含高度敏感的用户数据,因此我们希望在本地和在线(在 Gcloud Firestore 上)保存之前对数据进行加密。我想使用Envelope Encryption来做到这一点。

目前我在 Gcloud Run 上部署了一个 Python 后端,它具有连接到 GCloud KMS 的凭据。它提供了一个 REST API,我想用它来使用 GCloud KMS 密钥作为密钥加密密钥 (KEK) 来加密数据加密密钥 (DEK)。目前它只能加密简单的字符串,我们从单独的后端而不是从应用程序本身执行此操作,因为据我所知,没有安全的方法将 GCloud 凭据存储在应用程序内。GCloud KMS 客户端库不支持 Android另一个SO答案涉及到这一点。

在 Android 端,我使用Tink创建一个数据加密密钥,我可以用它加密我的数据。最后一步,我无法完全弄清楚的是如何将 AEAD 密钥发送到我的后端。这是我已经考虑过的:

  • Tink 在技术上已经支持直接使用 GCloud,但这需要我的应用程序具有 GCloud Credentials,如上所述,这并不安全。

  • 我可以使用JSONKeyWriter使用 ByteArrayOutputStream 将密钥的 JSON 版本写入字符串,并使用我的后端发送此字符串以进行加密,但由于某种原因,我还不能解释这感觉不对我。

所以我有点卡住了。第二个选项仍然是正确的吗?也许还有另一个我还没有考虑过的第三种选择。我不认为我是第一个实现这一点的人,但我似乎找不到任何关于以这种方式工作的信息。

0 投票
1 回答
164 浏览

java - Google TINK - 流式传输 AEAD 始终返回 1 KB 的输出文件

我正在尝试使用 Google Tink 加密文件(txt、pdf、doc) - 流式 AEAD 加密,下面是我尝试执行的 Java 代码。但我得到的只是 1 KB 的输出加密文件,没有错误。所有输入文件,无论是 2 MB 还是超过 10 MB,输出文件将始终为 1 KB。我无法弄清楚可能出了什么问题,有人可以帮忙。

0 投票
2 回答
1390 浏览

android - 在 Android 上解密使用 EncryptedFile 加密的文件时出现问题

我正在加密在蓝牙服务中的 android 应用程序上创建的文件。稍后在另一堂课中,我想解密此文件并将其上传到服务器。

对于加密,我使用的是 AndroidX androidx.security:security-crypto:1.0.0-alpha02 库,它是 Tink 的包装器。我已经阅读了所有可以找到的有关 EncryptedFile、EncryptedFile.Builder 等的开发人员文档和教程。

我加密文件如下:

从这里我可以像普通的 FileOutputStream 一样写入文件,通过查看写入手机存储的数据,我可以确认它是加密的。

在上传之前,我尝试在另一个类中做同样的事情,然后解密它。

从这里开始,问题是我得到的文件的可用大小为零 - 就像它不存在一样。我可以确认写入的原始数据没有被覆盖,因为手机存储上的文件仍然有加密数据。

我相信,通过为其提供位置 keySetAlias、keySetPref,EncryptedFile 构建器应该能够初始化一个具有正确密钥的 EncryptedFile 实例。

我将不胜感激任何帮助或见解!

谢谢你,迈克尔

0 投票
1 回答
99 浏览

encryption - DeterministicAead 一键但更改初始化向量?

我正在使用Googles Tink DeterministicAead。我想要实现的是长时间使用相同的密钥,但每 24 小时将密文更改为某个明文(出于 GDPR 原因)。

我可以每 24 小时以某种方式选择一个新的初始化向量吗?我正在使用的代码是:

ciphertext确实是确定性的,所以至少那部分是好的:-)

我希望能够在 BigQuery 中解密密文,所以自定义原语让我有点担心。

注意:这不是关于财务数据等,而是关于能够更新关于密文行为的推荐模型,同时符合用户的隐私要求。

0 投票
1 回答
145 浏览

tink - 我可以使用 Google Tink 解密 Keyczar 加密的数据吗?

我一直在使用 Google Keyczar 来加密我的 JAVA 应用程序中的数据。我想将加密解决方案更改为 Google Tink。

但问题是 Keyczar 已经加密的数据。我可以通过 Tink 解密它们吗?

如果是,我想将加密解决方案从 Keyczar 更改为 Tink。如果不是,我必须考虑另一种解决方案。

谢谢你。

0 投票
2 回答
1448 浏览

kotlin - Android Studio:Gradle 同步失败:无法下载 tink

在 Android Studio 4.0 上启动项目时,Gradle 无法完全同步,设计模式不可用。出现错误消息 -> Gradle 同步失败:无法下载 tink-1.3.0-rc2.jar (com.google.crypto.tink:tink:1.3.0-rc2):没有可用于离线模式的缓存版本

0 投票
1 回答
331 浏览

python - 使用 Google Cloud KMS 在 Python 中实现双向 TLS

有没有办法使用存储在 Google Cloud Key Management Service 中的私钥通过 mTLS 发出 HTTP 请求?

这篇博文中,我们需要在 Go 中完成。是否有可能在 Python 中实现相同的目标?我希望 Tink 库提供一些现成的解决方案,但找不到。

0 投票
0 回答
153 浏览

android - Google Tink 密钥管理和从 android 到 .NET 的共享,以将数据解密到在移动(客户端)端加密的服务器端

我正在尝试制作端到端加密应用程序,在发送时我在移动端加密数据,我们可以在服务器上解密它(用于用户信息)。但我无法找到任何解决方案或示例来说明我们如何管理或共享在移动端生成的用于加密数据以在服务器(.NET)端解密的密钥。

#Googel_Tink

0 投票
1 回答
273 浏览

java - 如何生成 Java tink 密钥?

我在我的 Java 项目中使用 Google Tink 库来加密两个文本,一个使用对称密钥加密 (SKE),另一个使用确定性对称密钥加密 (DSKE)。

这是一个后端应用程序,我没有用于存储主密钥的远程存储(谷歌可以,aws,...)。

生成我需要加密这两个文件的秘密材料的正确方法是什么?我想我需要使用 'tinkey' 来完成这项任务,但我并不真正理解密钥和密钥集之间的区别。我的 SKE 密钥和 DSKE 密钥可以在同一个密钥集中吗?如何生成它们?我可以拥有一个用于密钥轮换的主密钥吗?

谢谢