SSE-C 加密是在客户端进行的加密,使用的是GPG
GPG(FNU Privary Fuard)是最流行的数据加密,数据签名工具软件
支持的算法:
公钥:RSA,ELG,DSA
对称加密:3DES,CAST5,BLOWFISH,AES,AES256
散列:MD5,SHA1,.. ..,SHA256,SHA512
基本用法:
加密操作: –symmetric 或 -c
解密操作:–decrypt 或 -d
在加密大文件的时候,性能损耗还是不小的
下面是配置文件
lizhe@ubuntu:~$ cat ~/.s3cfg
# Setup endpoint
host_base = minio.lizhe.com
host_bucket = minio.lizhe.com
bucket_location = us-east-1
use_https = False
# Setup access keys
access_key = iZq4uq5dupOzCgNkThzU
secret_key = qn8DeztD1Qe7tAOf2jr9qwpybxcZrklWsv58OhAt
# Enable S3 v4 signature APIs
signature_v2 = False
gpg_command = /usr/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = `123456`
lizhe@ubuntu:~$
创建桶
lizhe@ubuntu:~$ s3cmd mb s3://my-bucket-name
Bucket 's3://my-bucket-name/' created
lizhe@ubuntu:~$ s3cmd ls
2021-06-19 15:22 s3://my-bucket-name
上传文件
lizhe@ubuntu:~$ echo "helloworld" > hello.txt
lizhe@ubuntu:~$ s3cmd -e put hello.txt s3://my-bucket-name
upload: '/tmp/tmpfile-v1wNUCw8NqGPE6096L5X' -> 's3://my-bucket-name/hello.txt' [1 of 1]
87 of 87 100% in 0s 4.91 kB/s done
lizhe@ubuntu:~$ s3cmd -e get s3://my-bucket-name/hello.txt /tmp -f
download: 's3://my-bucket-name/hello.txt' -> '/tmp/hello.txt' [1 of 1]
87 of 87 100% in 0s 4.03 kB/s done
lizhe@ubuntu:~$
我们来看一下加密结果
可以看到
上传的文件 和 下载的文件 内容都是正常的,只是存储在服务器上的文件内容已经被加密了
我们尝试使用 gpg 命令来解密
注意我这里的密码是 `123456` 而不是 123456
`123456`
使用root用户同样可以解密
可以看到 这里默认使用的是 AES256 算法