[FFmpeg-devel] core infrastructure badge for FFmpeg

Ganesh Ajjanagadde gajjanag at mit.edu
Tue Jul 5 23:35:26 EEST 2016

05.07.2016, 08:16, "Ronald S. Bultje" <rsbultje at gmail.com>:
>>  > [..]
>>  >
>>  >> 4. If the project software is an application or library, and its
>>  primary
>>  >> purpose is not to implement cryptography,
>>  >> then it SHOULD only call on software specifically designed to implement
>>  >> cryptographic functions;
>>  >> it SHOULD NOT re-implement its own.
>>  >> Note: This is one where I am personally interested as to why we fail;
>>  is
>>  >> it for performance reasons that we reimplement crypto?
>>  >> Suggestion: No idea until I understand the above.
>>  >>
>>  >> 5. The project security mechanisms MUST use default keylengths that at
>>  >> least meet the NIST minimum requirements through the year 2030 (as
>>  stated
>>  >> in 2012).
>>  >> Suggestion: add --enable-unsafe-crypt to configure, and by default not
>>  >> enable it.
>>  >> Change API's and functions accordingly, document it.
>>  >> Note: strictly speaking, per the sentence above, it is ok as we do not
>>  >> really have "default" keylengths.
>>  >> But the extended rationale shows why we fail.
>>  >>
>>  >> 6. The default project security mechanisms MUST NOT depend on
>>  >> cryptographic algorithms that are broken
>>  >> (e.g., MD4, MD5, single DES, RC4, or Dual_EC_DRBG).
>>  >> Suggestion: same as 5 above.
>>  >
>>  > We don't use any of these for security purposes, we only use them for
>>  > checking frame hashes in automated tests. That should be totally fine.
>>  We do export them though. Just because the FFmpeg CLI progs don't use them
>>  for security,
>>  does not mean a client does not, or that a client can be easily configured
>>  to not use them.
>>  See e.g openssl's no-weak-ssl-ciphers or --enable-ciphers for libgcrypt
>>  for what I believe the intent of this requirement is.
>>  Second, are you sure about your claim?
>>  md5 is used in httpauth per RFC 2617.
>>  Now this is fixed by the RFC, but it does not mean FFmpeg needs to support
>>  it by default.
>>  In particular, I don't see how this honestly takes care of 6.
> I don't know if we can be held responsible for what clients do. The intent
> of 6 is for our software, not client software, right?

It is a subtle point, taking your argument, openssl and libgcrypt don't need to provide the option.
It is needed for them, if for nothing else, for FIPS requirements.
A client could maintain their own patchset, but it is useful to do it there.

> We can add an option to httpauth to allow disabling md5 encryption in the
> list of supported encryption protocols (if such an option doesn't already
> exist). But I certainly wouldn't go beyond that.
>>  In matroskaenc, mov, 160 bit SHA-1 is used.
>>  Unless someone who knows the code well, audits the codebase, and checks
>>  that the SHA-1 and the like are not really for security here (similar to
>>  the git model),
>>  5 also has problems IMHO.
> This is known as "FUD" (Google it if that sounds new). Don't make such
> claims unless you have done research, the issue is that people will link to
> your email in the mailinglist archives and then claim that "ffmpeg is
> fundamentally insecure" - which is utterly untrue.

I am aware of the term "FUD".

You have done this repeatedly in the past, accusing me of making claims when there is no claim made.
There was a basic "Unless..." qualifier.
Anyone with a working knowledge of English who pulls the mail will realize that there is no such accusation
about FFmpeg.

> And yes, like in our tests, the sha1s in matroska are simply internal
> checksums, they are not security-related. And yes, I'm extremely familiar
> with matroska.

Matroska was given as a single example. I doubt you could make the claim of familiarity for everything in FFmpeg.
Nevertheless, to a reasonable degree, this is fine.

> As for reimplementing crypto, AES encryption is done in lavf/srtp.c.
>>  We thus do not meet 4, though this is not a "must" requirement.
> So there still isn't really an issue. Let's stick to issues for now.

Ok, there are a number of others in the original post.

> Ronald
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

More information about the ffmpeg-devel mailing list