We want to hear from you!Take our 2020 Community Survey!

安全概要

对于大部分公司来说数据安全至关重要,因此在存储和数据传输过程中有必要对数据进行加密。

服务端加密 

当前网络安全问题日益严重,即使数据存储在自己的私有服务器上,加密也很有必要。

密钥生成

Acepan采用密钥导出函数(KDF)为每个对象单独生成唯一密钥:

objectEncryptKey := KDF(key, IV, ObjectFeatures)

输入参数:

  • key: 由密钥管理系统用密码学安全的伪随机数生成器(CSPRNG)产生, 作为生成密钥的密码,不对外公开
  • IV: 用密码学安全的伪随机数生成器产生, 随加密数据一起保存,公开
  • ObjectAttributes: 对象本身的一些属性

Acepan采用Argon2作为密钥导出函数,

密钥管理

密钥存储和数据存储分离是提高系统安全的重要手段,即使在加密数据丢失的情况下也不会轻易造成数据泄漏。 因此Acepan利用单独的密钥管理系统管理对象密钥。密钥系统应该存放在普通人员难以接触到地方。

加密算法

Acepan采用下列AEAD算法加密并验证数据:

  • ECDHE-RSA-CHACHA20-POLY1305
  • ECDHE-ECDSA-CHACHA20-POLY1305
  • ECDHE-RSA-AES128-GCM-SHA256
  • ECDHE-ECDSA-AES128-GCM-SHA256
  • ECDHE-RSA-AES256-GCM-SHA384
  • ECDHE-ECDSA-AES256-GCM-SHA384

安全传输 

除了加密存储,安全传输是保证信息安全的重要方面。Acepan支持ssl传输数据。

生成密钥及证书

# generate private key
openssl ecparam -genkey -name prime256v1 | openssl ec -out $KEY_DIR/certs/tls.key

# generate certificate using private key
openssl req -new -x509 -days 30 -key $KEY_DIR/certs/tls.key -out $KEY_DIR/certs/tls.cert \
    -subj "/C=/ST=/L=/O=/CN=localhost" -addext "subjectAltName = IP:127.0.0.1"