Files
kopia/go.mod
Jarek Kowalski ddd267accc crypto: deprecated crypto algorithms and replaced with better alternatives
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.
2020-02-29 20:50:50 -08:00

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
)