为知笔记加密系统的证书
为知笔记提供了文档加密的功能文档内容加密,使用加密功能后,为
为知笔记(Wiz)的文档存储,是采用zip方式压缩的html文件,您可以使用任意的解压缩软件打开,例如WizZip, WinRAR或者7z。 为知笔记提供了文档加密的功能文档内容加密,使用加密功能后,为知笔记会把存储的zip数据采用RSA+AES方式重新加密,从而保证数据内容的安全。 为知笔记加密系统的证书 要给为知笔记文档加密,用户必须申请一个证书,证书就是RSA算法的N, e, d三个数据。其中公钥用于加密,默认保存在Wiz数据库里面,私钥用于解密,使用用户提供的密码作为key,采用AES算法进行加密后保存。用户可以选择将证书保存到数据库。用户可以选择备份成文件,或者备份到服务器(加密后的证书)。 注意:为知笔记里面不保存任何用户证书的密码,因此用户如果丢失了证书的密码,将无法解密任何文档。 为知笔记文档加密流程 为知笔记文档加密,采用了RSA和AES混合加密的方式。加密流程如下: 随机生成两个GUID字符串连接起来作为AES加密的密钥。对于一个文档,每次加密的时候,该AES密钥都是不同的。使用RSA算法,采用公钥加密保护步骤1产生的AES的密钥,加密后的密钥,保存在ziw文件头。该密钥必须使用证书里面的私钥进行解密。使用AES算法,使用步骤1获得的随机密钥,加密原始的ziw(zip)文件,获得密文,保存在ziw文件头后面。 从上面的步骤可以看到,每一个加密ziw文档的密钥,都是随机的。ziw文档的安全性,取决于证书的私钥的安全性,也就是用户的证书以及证书的密码。 加密的ziw文件格式 加密的ziw文件,有一个文件头,记录了加密文档版本,算法,RSA密钥(密文)等数据,定义如下: #pragma pack(1) #define WIZKMZIWFILE_SIGN_LENGTH4 #define WIZKMZIWFILE_KEY_LENGTH128 #define WIZKMZIWFILE_RESERVED_LENGTH16 struct WIZKMZIWHEADER { char szSign[4]; UINT nVersion; UINT nKeyLength; BYTE szEncryptedKey[WIZKMZIWFILE_KEY_LENGTH]; BYTE szReserved[WIZKMZIWFILE_RESERVED_LENGTH]; }; #pragma pack() 其中szSign是一个四个字节的文档类型标记,可能的值为: ZIWR:RSA和AES混合算法加密的文档。 ZIWA:AES算法加密的文档。概算法目前未实现。 nVersion:加密文档的版本,目前为1。 nKeyLength:AES算法加密后的密钥的长度。不超过128个字节 szEncryptedKey:AES算法加密后的密钥数据。 szReserved:保留数据。全部为0 文档加密后的数据,被保存在文件头后面。 加密使用的算法库 Wiz加密使用的算法库,是著名的加密算法库Crypto++? Library。 安全性总结 为知笔记加密的安全性,取决于证书和用于加密证书的密码。要解密一个文档,必须提供证书以及用于加密证书的密码,二者缺一不可。因此我们建议您在初始化加密的时候,尽量设置一个比较复杂的证书密码,同时将该证书密码记在纸上,保存在安全的地方。 另外,为了方便多台电脑使用加密功能,您可以选择将证书备份到服务器上面。因为证书的密钥被您设置的密码加密了,因此您不用担心证书会被盗用。 (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |