Performing Self-Test
The cryptographic module enforces security rules to ensure that the Juniper Networks Junos OS Evolved in FIPS mode meets the security requirements of FIPS 140-3 Level 1. To validate the output of cryptographic algorithms approved for FIPS and test the integrity of some system modules, the device performs series of known answer test (KAT) self-tests.
The KAT self-tests are performed automatically at startup.
If the KATs are completed successfully, the dmesg log is updated to display the tests that are
executed. You can view the logs by executing journalctl -b | grep
self-test on the device shell.
[vrf:none] root@host:~# journalctl | grep self-test Jan 29 23:11:50 host kernel: alg: self-tests for rsa-generic (rsa) passed Jan 29 23:11:50 host kernel: alg: self-tests for cipher_null-generic (cipher_null) passed Jan 29 23:11:50 host kernel: alg: self-tests for ecb-cipher_null (ecb(cipher_null)) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha1-generic (sha1) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha256-generic (sha256) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha224-generic (sha224) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha512-generic (sha512) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha384-generic (sha384) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha3-224-generic (sha3-224) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha3-256-generic (sha3-256) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha3-384-generic (sha3-384) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha3-512-generic (sha3-512) passed Jan 29 23:11:50 host kernel: alg: self-tests for aes-generic (aes) passed Jan 29 23:11:50 host kernel: alg: self-tests for crc32c-generic (crc32c) passed Jan 29 23:11:50 host kernel: alg: self-tests for crct10dif-generic (crct10dif) passed Jan 29 23:11:50 host kernel: alg: self-tests for ctr(aes-generic) (ctr(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_ctr_aes128 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_ctr_aes192 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_ctr_aes256 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_sha1 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_sha512 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_sha256 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_hmac_sha1 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_hmac_sha512 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for hmac(sha256-generic) (hmac(sha256)) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_pr_hmac_sha256 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_ctr_aes128 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_ctr_aes192 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_ctr_aes256 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_sha1 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_sha512 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_sha256 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_hmac_sha1 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_hmac_sha512 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for drbg_nopr_hmac_sha256 (stdrng) passed Jan 29 23:11:50 host kernel: alg: self-tests for aes-asm (aes) passed Jan 29 23:11:50 host kernel: alg: self-tests for crc32c-intel (crc32c) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha1-ssse3 (sha1) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha256-ssse3 (sha256) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha224-ssse3 (sha224) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha512-ssse3 (sha512) passed Jan 29 23:11:50 host kernel: alg: self-tests for sha384-ssse3 (sha384) passed Jan 29 23:11:50 host kernel: alg: self-tests for crct10dif-pclmul (crct10dif) passed Jan 29 23:11:50 host kernel: alg: self-tests for jitterentropy_rng (jitterentropy_rng) passed Jan 29 23:11:50 host kernel: lrng_selftest: LRNG self-tests passed Jan 29 23:11:50 host kernel: alg: self-tests for aes-aesni (aes) passed Jan 29 23:11:50 host kernel: alg: self-tests for ecb-aes-aesni (ecb(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for cbc-aes-aesni (cbc(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for ctr-aes-aesni (ctr(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for xts-aes-aesni (xts(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for rfc4106-gcm-aesni (rfc4106(gcm(aes))) passed Jan 29 23:11:50 host kernel: alg: self-tests for generic-gcm-aesni (gcm(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for pkcs1pad(rsa-generic,sha256) (pkcs1pad(rsa,sha256)) passed Jan 29 23:11:50 host kernel: alg: self-tests for cbc(aes-aesni) (cbc(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for cmac(aes-aesni) (cmac(aes)) passed Jan 29 23:11:50 host kernel: alg: self-tests for xxhash64-generic (xxhash64) passed Jan 29 23:11:50 host kernel: alg: self-tests for cts-cbc-aes-aesni (cts(cbc(aes))) passed Jan 29 23:11:50 host kernel: alg: self-tests for hmac(sha1-ni) (hmac(sha1)) passed Jan 29 23:11:50 host kernel: alg: self-tests for hmac(sha512-ssse3) (hmac(sha512)) passed [vrf:none] root@host:~#
Self-test failure results in a FIPS error state and the device automatically reboots after encountering a FIPS error state. No administrator actions are required.
Use of any of other cryptographic implementations was not evaluated nor tested during the CC evaluation of the TOE.
Integrity Validation
To validate the integrity, set the FIPS level and reboot the device and verify the integrity logs.
If there is an integrity failure, the modules stops and generates a FIPS error state (causing an automatic reboot as described above). No administrator actions are required.
You can check the logs for a successful integrity. For example:
[vrf:none] root@re0:~# journalctl -b | grep integrity Sep 23 22:10:18 re0 unknown: FIPS integrity check passed for bzImage-re-64b.bin Sep 23 22:10:18 re0 unknown: FIPS integrity check passed for initrd_Yocto_2.2_x86_64.fs