January 8, 2018

什么是AxCrypt ID?

警告-这是一个相当技术性的帖子;-)这只适用于那些真正对AxCrypt的一些内部工作感兴趣的人。

事实上,还不止这些。 从技术上讲,AxCrypt ID是RSA-4096密钥对。

密钥对是公钥或非对称加密中使用的概念。 在这种类型的密码学中,有两个具有以下属性的相关密钥:

  • 公钥-此密钥是非秘密的,任何人都可以使用它来加密数据。 但它不能用来解密任何东西! 我们有时称之为共享密钥。
  • 私钥-此密钥必须是秘密的,并且是解密使用公钥加密的任何数据所必需的。 我们有时称之为密钥。
  • 知道公钥,在计算上是不可行的(即在外行术语中不可能)推导出私钥。
  • 当我们使用AxCrypt加密任何文件时,我们使用AES-128/-256进行加密。 这是一种对称的强加密算法,单个密钥用于加密和解密。

    AxCrypt加密文件的过程原则上如下:

  • 每次加密文件时都会生成一个随机的128位或256位会话密钥。
  • 文件数据使用AES和会话密钥进行加密。
  • 会话密钥使用您的密码进行加密,使用特殊的密钥包装算法,以AES为核心。 此加密的会话密钥被添加到加密的文件中。
  • 会话密钥使用您的AxCrypt ID公钥加密,使用RSA-4096。 此加密的会话密钥被添加到加密的文件中。
  • 会话密钥使用您选择密钥共享文件的任何其他AxCrypt用户的AxCrypt ID公钥进行加密。 这些加密的会话密钥被添加到加密的文件中。
  • 要解密文件,AxCrypt原则上执行以下操作:

  • 拿你的密码,找到上面用密码加密的会话密钥,并尝试解密它。 如果成功,则使用解密的会话密钥对文件进行解密。
  • 获取您的私有AxCrypt ID密钥,找到使用AxCrypt ID公钥加密的所有会话密钥,并尝试解密每个密钥。 如果任何人成功,则使用解密的会话密钥来解密文件。
  • 密钥对通常在创建帐户时在我们的服务器上生成。 私钥使用我们的本地系统密钥临时加密。 一旦您登录并设置密码,我们将使用您的密码重新加密。

    私钥,当加密时,实际上被加密为AxCrypt文件当然-但仅使用您的密码加密会话密钥如上所述。 我们不使用任何公钥进行此加密。

    通常情况下,该过程是:

  • 您注册了一个帐户。 我们在服务器上生成并创建密钥对,并临时加密私钥。
  • 您设置密码。 我们用您的密码重新加密私钥。 此时,没有人可以在不知道您的密码的情况下恢复您的私钥。 不是我们,不是其他人。
  • 您使用AxCrypt应用程序登录。 该应用程序联系我们的服务器,并从服务器下载密钥对–私钥和公钥。 私钥保持加密。
  • 每当使用登录密码打开文件失败时,AxCrypt将解密私钥,并尝试如上所述解密会话密钥。 这将使您能够打开与您共享的文件密钥,以及使用早期密码加密的旧文件,如果您从那时起更改了密码(注意:已更改–未重置)。
  • 更改您的AxCrypt ID密码意味着我们获取您的私钥,使用旧密码解密,然后使用新密码重新加密。 这就是密码更改将使您能够打开旧的AxCrypt加密文件的方式。 请注意,他们实际上仍然会使用旧密码打开! 这也是为什么您永远不依赖于我们的服务器。 如果您知道原始密码,则可以随时打开文件。 如果您有加密私钥的同步副本可用,则只要您拥有当前密码,就可以打开任何文件。

    所有这些密钥管理都是由AxCrypt在幕后自动完成的,只要您允许AxCrypt访问我们的服务器,就完全透明。

    对于完全理解上述机制的高级用户,可以在没有我们的服务器的情况下完成所有这些。 可以生成AxCrypt ID密钥对,导出它们,导入它们等。 我们不建议任何人实际这样做,因为一个错误或误解很容易导致数据丢失或无法使用AxCrypt。

    以上所有内容都是该过程的简化版本。 实际上包含了许多额外的细节,以确保安全性,并处理各种同步场景,密码重置事件等。 有关详细信息,请阅读 technical documentation.

    免费试用