CryptCheck is a Ruby toolbox that help anybody to check for cryptography security level and best practices compliance.
CryptCheck is released under AGPLv3+ license.
/!\ This tool use custom weak builds of OpenSSL library and OpenSSL Ruby extension /!\.
Those builds are cryptographically weaken to be able to test for (very) weak and today totally deprecated ciphers.
Don’t deploy it on production machine to avoid any security troubles, or use VM to isolate them !
You need a fully operationnal Ruby stack. Because of the warning above, don’t use your system Ruby.
I recommend to use RBEnv and it Ruby-build plugin to build a new ruby environment instead of your system one.
Currently supported Ruby stack is v2.2.2.
To be able to test for (very) weak ciphers and to have access to DH parameters, CryptCheck need custom build of OpenSSL library and patched build of OpenSSL Ruby extension.
Once you have cloned CryptCheck repository, just run make
inside to
build the needed libraries.
If make
fails with the following error :
make: *** No rule to make target 'lib/libssl.so.1.0.0', needed by 'libs'. Stop.
just run again make
(if you understand this problem, contact me !).
The built libraries (libcrypto.so, libssl.so and openssl.so) are located
under the lib directory.
CryptCheck use LD_LIBRARY_PATH and Ruby load path hack to inject those weaken
libraries instead of the system ones.
CryptCheck relies on few Ruby libraries, managed with Bundler.
To fetch and install them, just run bundle install
.
Simply run the corresponding runner of what you want to test :
bin/check_https example.org
bin/check_xmpp example.org
bin/check_smtp example.org
If you want more information of what is going on under the hood, run the command
with debug enabled, like bin/check_https example.org debug
Rank goes from "A+" (perfect) to "F" (very weak).
"M" means your certificate and your hostname mismatch.
"T" means your certificate is not issued by a valid root certificate authority.
Only a perfect setup gets a perfect score and a "A" rank :).
"A" score is based on RFC 7525 recommandations.
Protocol
Key size
Ciphers
Score
Best practices
Rank