mirror of
https://github.com/kopia/kopia.git
synced 2026-01-27 15:58:03 -05:00
New ciphers are using authenticated encryption with associated data
(AEAD) and per-content key derived using HMAC-SHA256:
* AES256-GCM-HMAC-SHA256
* CHACHA20-POLY1305-HMAC-SHA256
They support content IDs of arbitrary length and are quite fast:
On my 2019 MBP:
- BLAKE2B-256 + AES256-GCM-HMAC-SHA256 - 648.7 MiB / second
- BLAKE2B-256 + CHACHA20-POLY1305-HMAC-SHA256 - 597.1 MiB / second
- HMAC-SHA256 + AES256-GCM-HMAC-SHA256 351 MiB / second
- HMAC-SHA256 + CHACHA20-POLY1305-HMAC-SHA256 316.2 MiB / second
Previous ciphers had several subtle issues:
* SALSA20 encryption, used weak nonce (64 bit prefix of content ID),
which means that for any two contents, whose IDs that have the same
64-bit prefix, their plaintext can be decoded from the ciphertext
alone.
* AES-{128,192,256}-CTR were not authenticated, so we were
required to hash plaintext after decryption to validate. This is not
recommended due to possibility of subtle timing attacks if an attacker
controls the ciphertext.
* SALSA20-HMAC was only validating checksum and not that the ciphertext
was for the correct content ID.
New repositories cannot be created using deprecated ciphers, but they
will still be supported for existing repositories, until at least 0.6.0.
The users are encouraged to migrate to one of new ciphers when 0.5.0 is
out.
43 lines
1.7 KiB
Modula-2
43 lines
1.7 KiB
Modula-2
module github.com/kopia/kopia
|
|
|
|
go 1.13
|
|
|
|
require (
|
|
bazil.org/fuse v0.0.0-20180421153158-65cc252bf669
|
|
cloud.google.com/go v0.45.1
|
|
github.com/Azure/azure-storage-blob-go v0.8.0
|
|
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
|
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 // indirect
|
|
github.com/aws/aws-sdk-go v1.28.13
|
|
github.com/bgentry/speakeasy v0.1.0
|
|
github.com/chmduquesne/rollinghash v4.0.0+incompatible
|
|
github.com/danieljoos/wincred v1.0.2 // indirect
|
|
github.com/efarrer/iothrottler v0.0.1
|
|
github.com/godbus/dbus v4.1.0+incompatible // indirect
|
|
github.com/golang/protobuf v1.3.2
|
|
github.com/google/fswalker v0.2.0
|
|
github.com/gorilla/mux v1.7.4
|
|
github.com/klauspost/compress v1.9.7
|
|
github.com/klauspost/pgzip v1.2.1
|
|
github.com/kylelemons/godebug v1.1.0
|
|
github.com/minio/minio v0.0.0-20200208111659-6b1f2fc13365
|
|
github.com/minio/minio-go/v6 v6.0.45
|
|
github.com/natefinch/atomic v0.0.0-20150920032501-a62ce929ffcc
|
|
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
|
|
github.com/pkg/errors v0.8.1
|
|
github.com/pkg/profile v1.3.0
|
|
github.com/pkg/sftp v1.10.1
|
|
github.com/skratchdot/open-golang v0.0.0-20190402232053-79abb63cd66e
|
|
github.com/stretchr/testify v1.4.0
|
|
github.com/studio-b12/gowebdav v0.0.0-20190103184047-38f79aeaf1ac
|
|
github.com/zalando/go-keyring v0.0.0-20190715212148-76787ff3b3bd
|
|
gocloud.dev v0.18.0
|
|
golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d
|
|
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979
|
|
golang.org/x/net v0.0.0-20190923162816-aa69164e4478
|
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58
|
|
google.golang.org/api v0.10.0
|
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6
|
|
)
|