Minor fixes (mainly textual) for v{2,3,4,5,7,8,11}
[ssproject1617.git] / report / v7_cryptography.tex
1 % usage of crypt()
2 \begin{enumerate}[label={V7.\arabic*}]
3
4 \addtocounter{enumi}{1}
5 \item
6 \pass{}
7 Verify that all cryptographic modules fail securely, and errors are handled
8 in a way that does not enable oracle padding.
9 \begin{result}
10 The only cryptographic operation is the hashing of the password, which can
11 not be vulnerable to a padding attack as it does not use a block cipher.
12 \end{result}
13
14
15 \addtocounter{enumi}{3}
16 \notapplicable{
17 \item
18 Verify that all random numbers, random file names, random GUIDs, and random
19 strings are generated using the cryptographic module’s approved random
20 number generator when these random values are intended to be not guessable
21 by an attacker.
22 }
23
24 \item
25 Verify that cryptographic algorithms used by the application have been
26 validated against FIPS 140-2 or an equivalent standard.
27 \begin{result}
28 The application uses MD5 for password hashing, which should be insecure by
29 now.
30 \end{result}
31
32 \notapplicable{
33 \item
34 Verify that cryptographic modules operate in their approved mode according
35 to their published security policies.
36 }
37
38 \notapplicable{
39 \item
40 Verify that there is an explicit policy for how cryptographic keys are
41 managed (e.g., generated, distributed, revoked, and expired). Verify that
42 this key lifecycle is properly enforced.
43 }
44
45 \addtocounter{enumi}{1}
46 \notapplicable{
47 \item
48 Verify that all consumers of cryptographic services do not have direct
49 access to key material. Isolate cryptographic processes, including master
50 secrets and consider the use of a virtualized or physical hardware key vault
51 (HSM).
52 }
53
54 \notapplicable{
55 \item
56 \textit{Personally Identifiable Information} should be stored encrypted at
57 rest and ensure that communication goes via protected channels.
58 }
59
60 \notapplicable{
61 \item
62 Verify that sensitive passwords or key material maintained in memory is
63 overwritten with zeros as soon as it no longer required, to mitigate memory
64 dumping attacks.
65 % FIXME(dsprenkels) Passwords should be zero'd?
66 }
67
68 \notapplicable{
69 \item
70 Verify that all keys and passwords are replaceable, and are generated or
71 replaced at installation time.
72 % FIXME(dsprenkels) This *is* relevant (passwords)
73 }
74
75 \notapplicable{
76 \item
77 Verify that random numbers are created with proper entropy even when the
78 application is under heavy load, or that the application degrades gracefully
79 in such circumstance.
80 % FIXME(dsprenkels) This *is* relevant: password generation of the admin
81 % password in the install script uses a Mersenne twister!
82 }
83
84 \end{enumerate}