I've been pondering over this for a while, but since I'm a bit tight on
time, I'll drop this for discussion.

The current idea behind a password-protected ticket is to prevent that
access is granted if the ticket ID/url is discovered by other means.

The ticket/grant ID space is already pretty large, and the ID is
generated using a pseudo-random salt, so that's quite unlikely that an
URL is discovered by chance. But given that IDs are potentially reused,
password protection offers an additional guarantee.

However, password protection doesn't offer anything beyond that. An
administrator can reset the password, as well as recover the data given
the ticket ID by just looking at the spool.

It would be very nice to use symmetric encryption in this case. When the
file is received, we could use a symmetric block cypher mode such as
aes-xts to encrypt the file backed-up by the ticket. We could use the
known password hash for validation instead of validating the content, so
there's nothing "special" required to support it.

This would offer a pretty strong guarantee for the user. A
password-protected ticket cannot be recovered without a password. On a
potential security breach, the attacker won't be able to look at the
content either. On the downside, if the password is lost, the content is
lost as well. An administrator cannot help.

I was looking at PHP libraries, but I couldn't find any library that
offers a convenient (seekable!) API to perform aes-xts on a file. I'm
reluctant to use external tools, as this would complicate furthermore
the setup and/or reduce the chance that this would be a *standard*
feature in a DL installation, and not something that would be easily
skipped.

Any hint would be appreciated.


Reply via email to