aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGeorgeFI2023-07-03 14:31:23 +0200
committerGeorgeFI2023-07-03 14:31:23 +0200
commitf934005eeee1d5e486c823cc5a5a7b77754a5f0e (patch)
tree5f72fa587ac6efb31f746472b658b80957ded5c9
parent51006dbaec7a92008b2eee183a34b42e04c8160a (diff)
downloadsec-certs-f934005eeee1d5e486c823cc5a5a7b77754a5f0e.tar.gz
sec-certs-f934005eeee1d5e486c823cc5a5a7b77754a5f0e.tar.zst
sec-certs-f934005eeee1d5e486c823cc5a5a7b77754a5f0e.zip
feat: EDA of direct and indirect fips refs
-rw-r--r--notebooks/fips/references.ipynb339
1 files changed, 229 insertions, 110 deletions
diff --git a/notebooks/fips/references.ipynb b/notebooks/fips/references.ipynb
index e5ad366b..82c1d3f1 100644
--- a/notebooks/fips/references.ipynb
+++ b/notebooks/fips/references.ipynb
@@ -53,7 +53,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 71,
"id": "91a0cb1b",
"metadata": {},
"outputs": [],
@@ -69,7 +69,7 @@
"\n",
"# Typing imports\n",
"from pandas.core.frame import DataFrame\n",
- "\n",
+ "from typing import Callable\n",
"\n",
"sns.set_palette(\"deep\")"
]
@@ -86,7 +86,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "Downloading FIPS Dataset: 100%|█████████████████████████████████████| 57.0M/57.0M [00:06<00:00, 9.06MB/s]\n"
+ "Downloading FIPS Dataset: 100%|█████████████████████████████████████| 57.0M/57.0M [00:17<00:00, 3.49MB/s]\n"
]
}
],
@@ -190,7 +190,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2022-09-20</td>\n",
" <td>2024-08-22</td>\n",
- " <td>{DRBG#A2605, DSA#A2113, SHA-3#A2113, KBKDF#A26...</td>\n",
+ " <td>{RSA#C2204, RSA#A1641, KBKDF#A1641, SHA-3#A260...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -214,7 +214,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2022-02-03</td>\n",
" <td>2026-09-21</td>\n",
- " <td>{AES#C1271, DRBG#C1292, SHS#C1272, RSA#C1293}</td>\n",
+ " <td>{SHS#C1272, RSA#C1293, DRBG#C1292, AES#C1271}</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -238,7 +238,7 @@
" <td>Single Chip</td>\n",
" <td>2021-11-29</td>\n",
" <td>2026-09-21</td>\n",
- " <td>{PBKDF#A984, HMAC#A984, ECDSA#A984, DRBG#A764,...</td>\n",
+ " <td>{DRBG#A764, ECDSA#A982, ECDSA#A984, AES#A982, ...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -262,7 +262,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2022-04-14</td>\n",
" <td>2026-09-21</td>\n",
- " <td>{CVL#C2021, KDA#A2125, PBKDF#A2125, CVL#C2020,...</td>\n",
+ " <td>{SHS#C2020, KAS#A2125, RSA#C2022, KAS-RSA#A212...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -286,7 +286,7 @@
" <td>Multi-Chip Embedded</td>\n",
" <td>2021-05-11</td>\n",
" <td>2026-05-10</td>\n",
- " <td>{RSA#C1356, SHS#C1358, DRBG#C1358, SHS#C1357, ...</td>\n",
+ " <td>{SHS#C1358, SHS#C1357, RSA#C1356, HMAC#C1356, ...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -331,11 +331,11 @@
"\n",
" algorithms ... \\\n",
"dgst ... \n",
- "803919e93ccac91d {DRBG#A2605, DSA#A2113, SHA-3#A2113, KBKDF#A26... ... \n",
- "ab86fe44dea15e7a {AES#C1271, DRBG#C1292, SHS#C1272, RSA#C1293} ... \n",
- "705249ef258f9318 {PBKDF#A984, HMAC#A984, ECDSA#A984, DRBG#A764,... ... \n",
- "a2730bca63eff586 {CVL#C2021, KDA#A2125, PBKDF#A2125, CVL#C2020,... ... \n",
- "c62b377fa3d3a0f4 {RSA#C1356, SHS#C1358, DRBG#C1358, SHS#C1357, ... ... \n",
+ "803919e93ccac91d {RSA#C2204, RSA#A1641, KBKDF#A1641, SHA-3#A260... ... \n",
+ "ab86fe44dea15e7a {SHS#C1272, RSA#C1293, DRBG#C1292, AES#C1271} ... \n",
+ "705249ef258f9318 {DRBG#A764, ECDSA#A982, ECDSA#A984, AES#A982, ... ... \n",
+ "a2730bca63eff586 {SHS#C2020, KAS#A2125, RSA#C2022, KAS-RSA#A212... ... \n",
+ "c62b377fa3d3a0f4 {SHS#C1358, SHS#C1357, RSA#C1356, HMAC#C1356, ... ... \n",
"\n",
" related_cves module_directly_referenced_by \\\n",
"dgst \n",
@@ -555,7 +555,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 12,
"id": "9a0a7b1c",
"metadata": {
"scrolled": false
@@ -589,7 +589,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 13,
"id": "a960fd10",
"metadata": {
"scrolled": true
@@ -611,7 +611,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 14,
"id": "12a2e03f",
"metadata": {
"scrolled": true
@@ -620,29 +620,29 @@
{
"data": {
"text/plain": [
- "[('cpe:2.3:o:redhat:enterprise_linux:8.0:*:*:*:*:*:*:*', 19),\n",
- " ('cpe:2.3:o:redhat:enterprise_linux:8.4:*:*:*:*:*:*:*', 19),\n",
+ "[('cpe:2.3:o:redhat:enterprise_linux:8.6:*:*:*:*:*:*:*', 19),\n",
+ " ('cpe:2.3:o:redhat:linux:8.0:*:*:*:*:*:*:*', 19),\n",
" ('cpe:2.3:o:redhat:enterprise_linux:8.1:*:*:*:*:*:*:*', 19),\n",
+ " ('cpe:2.3:o:redhat:enterprise_linux:8.4:*:*:*:*:*:*:*', 19),\n",
" ('cpe:2.3:o:redhat:enterprise_linux:8.5.0:*:*:*:*:*:*:*', 19),\n",
- " ('cpe:2.3:o:redhat:enterprise_linux:8.6:*:*:*:*:*:*:*', 19),\n",
" ('cpe:2.3:o:redhat:enterprise_linux:8.0:*:*:*:-:*:*:*', 19),\n",
- " ('cpe:2.3:o:redhat:linux:8.0:*:*:*:*:*:*:*', 19),\n",
- " ('cpe:2.3:o:oracle:linux:7:3:*:*:*:*:*:*', 19),\n",
- " ('cpe:2.3:o:oracle:linux:7:0:*:*:*:*:*:*', 19),\n",
- " ('cpe:2.3:o:oracle:linux:7:2:*:*:*:*:*:*', 19),\n",
+ " ('cpe:2.3:o:redhat:enterprise_linux:8.0:*:*:*:*:*:*:*', 19),\n",
" ('cpe:2.3:o:oracle:linux:7:1:*:*:*:*:*:*', 19),\n",
+ " ('cpe:2.3:o:oracle:linux:7:2:*:*:*:*:*:*', 19),\n",
+ " ('cpe:2.3:o:oracle:linux:7:0:*:*:*:*:*:*', 19),\n",
" ('cpe:2.3:o:oracle:linux:7:-:*:*:*:*:*:*', 19),\n",
- " ('cpe:2.3:h:cisco:catalyst_6509-e:-:*:*:*:*:*:*:*', 15),\n",
+ " ('cpe:2.3:o:oracle:linux:7:3:*:*:*:*:*:*', 19),\n",
" ('cpe:2.3:h:cisco:catalyst_6506-e:-:*:*:*:*:*:*:*', 15),\n",
+ " ('cpe:2.3:h:cisco:catalyst_6509-e:-:*:*:*:*:*:*:*', 15),\n",
" ('cpe:2.3:a:mcafee:network_security_platform:9.1:*:*:*:*:*:*:*', 12),\n",
- " ('cpe:2.3:h:juniper:mx960:-:*:*:*:*:*:*:*', 11),\n",
" ('cpe:2.3:h:juniper:mx480:-:*:*:*:*:*:*:*', 11),\n",
+ " ('cpe:2.3:h:juniper:mx960:-:*:*:*:*:*:*:*', 11),\n",
" ('cpe:2.3:h:juniper:mx240:-:*:*:*:*:*:*:*', 11),\n",
" ('cpe:2.3:o:amazon:linux_2:-:*:*:*:*:*:*:*', 9),\n",
" ('cpe:2.3:o:redhat:enterprise_linux:7.1:*:*:*:*:*:*:*', 8)]"
]
},
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
@@ -668,7 +668,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 15,
"id": "f66de442",
"metadata": {
"scrolled": true
@@ -680,7 +680,7 @@
"Text(0.5, 1.0, 'Boxplot of total cpe matches per certificate')"
]
},
- "execution_count": 14,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
@@ -703,7 +703,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 16,
"id": "a0ad02e1",
"metadata": {
"scrolled": false
@@ -744,7 +744,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 17,
"id": "a92548f0",
"metadata": {
"scrolled": true
@@ -830,9 +830,9 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2008-07-24</td>\n",
" <td>NaT</td>\n",
- " <td>{HMAC#428, SHS#783, RSA#371, RNG#447, Triple-D...</td>\n",
+ " <td>{AES#781, HMAC#428, Triple-DES#675, RNG#447, T...</td>\n",
" <td>...</td>\n",
- " <td>{CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ...</td>\n",
+ " <td>{CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -854,9 +854,9 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2008-07-24</td>\n",
" <td>NaT</td>\n",
- " <td>{DSA#292, RNG#448, Triple-DES#676, SHS#784, Tr...</td>\n",
+ " <td>{RNG#448, SHS#784, Triple-DES MAC#676, Triple-...</td>\n",
" <td>...</td>\n",
- " <td>{CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ...</td>\n",
+ " <td>{CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -878,9 +878,9 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2002-08-01</td>\n",
" <td>NaT</td>\n",
- " <td>{Triple-DES#16, DSA/SHA-1#35, HMAC-SHA-1#35}</td>\n",
+ " <td>{Triple-DES#16, HMAC-SHA-1#35, DSA/SHA-1#35}</td>\n",
" <td>...</td>\n",
- " <td>{CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ...</td>\n",
+ " <td>{CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -904,7 +904,7 @@
" <td>NaT</td>\n",
" <td>{Triple-DES#16, DSA/SHA-1#29}</td>\n",
" <td>...</td>\n",
- " <td>{CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ...</td>\n",
+ " <td>{CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -944,17 +944,17 @@
"\n",
" algorithms ... \\\n",
"dgst ... \n",
- "926a7fc32c08e491 {HMAC#428, SHS#783, RSA#371, RNG#447, Triple-D... ... \n",
- "fe50b64954720ccb {DSA#292, RNG#448, Triple-DES#676, SHS#784, Tr... ... \n",
- "749fc650cacb0f06 {Triple-DES#16, DSA/SHA-1#35, HMAC-SHA-1#35} ... \n",
+ "926a7fc32c08e491 {AES#781, HMAC#428, Triple-DES#675, RNG#447, T... ... \n",
+ "fe50b64954720ccb {RNG#448, SHS#784, Triple-DES MAC#676, Triple-... ... \n",
+ "749fc650cacb0f06 {Triple-DES#16, HMAC-SHA-1#35, DSA/SHA-1#35} ... \n",
"6af1f692e9496c6d {Triple-DES#16, DSA/SHA-1#29} ... \n",
"\n",
" related_cves \\\n",
"dgst \n",
- "926a7fc32c08e491 {CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ... \n",
- "fe50b64954720ccb {CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ... \n",
- "749fc650cacb0f06 {CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ... \n",
- "6af1f692e9496c6d {CVE-2012-0180, CVE-2009-1125, CVE-2010-3227, ... \n",
+ "926a7fc32c08e491 {CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ... \n",
+ "fe50b64954720ccb {CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ... \n",
+ "749fc650cacb0f06 {CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ... \n",
+ "6af1f692e9496c6d {CVE-2010-4562, CVE-2010-0819, CVE-2013-1248, ... \n",
"\n",
" module_directly_referenced_by \\\n",
"dgst \n",
@@ -994,7 +994,7 @@
"[4 rows x 23 columns]"
]
},
- "execution_count": 16,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
@@ -1006,7 +1006,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 18,
"id": "2b216157",
"metadata": {
"scrolled": true
@@ -1092,7 +1092,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2023-04-14</td>\n",
" <td>2025-04-19</td>\n",
- " <td>{AES#C789, KTS#C792, CVL#C792, RSA#C792, SHS#C...</td>\n",
+ " <td>{DSA#C792, RSA#C792, AES#C790, SHS#C790, HMAC#...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1116,7 +1116,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2020-02-19</td>\n",
" <td>2025-02-18</td>\n",
- " <td>{Triple-DES#C693, DRBG#C693, DSA#C693, SHS#C69...</td>\n",
+ " <td>{HMAC#C693, Triple-DES#C693, SHS#C693, RSA#C69...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1140,7 +1140,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2021-04-23</td>\n",
" <td>2026-04-22</td>\n",
- " <td>{AES#C1981, HMAC#C1982, AES#C1979, KTS#C2042, ...</td>\n",
+ " <td>{AES#C2042, RSA#C2042, DRBG#C1981, SHS#C1981, ...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1164,7 +1164,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2020-09-28</td>\n",
" <td>2025-09-27</td>\n",
- " <td>{CVL#C947, DRBG#C942, SHS#C970, HMAC#C943, HMA...</td>\n",
+ " <td>{HMAC#C947, RSA#C947, HMAC#C943, HMAC#C942, EC...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1188,7 +1188,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2023-05-11</td>\n",
" <td>2026-03-02</td>\n",
- " <td>{RSA#C431, SHS#C220, KBKDF#A1462, DSA#C431, KA...</td>\n",
+ " <td>{SHS#C431, RSA#A1462, KAS-SSC#A1462, ECDSA#A14...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1236,7 +1236,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2016-03-29</td>\n",
" <td>NaT</td>\n",
- " <td>{RSA#1600, SHS#2612, CVL#599, SHS#2923, DRBG#6...</td>\n",
+ " <td>{AES#3156, SHS#2923, RSA#1600, CVL#409, HMAC#1...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1260,7 +1260,7 @@
" <td>Single Chip</td>\n",
" <td>2012-07-17</td>\n",
" <td>NaT</td>\n",
- " <td>{KTS#1654, ECDSA#214, CVL#2, SHS#1465, DRBG#98...</td>\n",
+ " <td>{KTS#1654, CVL#2, RSA#824, DRBG#98, ECDSA#214,...</td>\n",
" <td>...</td>\n",
" <td>{CVE-2019-15809}</td>\n",
" <td>NaN</td>\n",
@@ -1284,7 +1284,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2019-12-09</td>\n",
" <td>NaT</td>\n",
- " <td>{KTS#C409, RSA#2638, SHS#C409, CVL#C409, HMAC#...</td>\n",
+ " <td>{RSA#C409, SHS#3960, DRBG#C409, SHS#C409, AES#...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1308,7 +1308,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2017-09-22</td>\n",
" <td>NaT</td>\n",
- " <td>{CVL#152, KTS#1605, SHS#2098, SHS#2246, AES#24...</td>\n",
+ " <td>{SHS#3631, CVL#150, SHS#2246, DRBG#433, RSA#13...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1332,7 +1332,7 @@
" <td>Multi-Chip Stand Alone</td>\n",
" <td>2020-04-20</td>\n",
" <td>NaT</td>\n",
- " <td>{AES#C789, KTS#C792, CVL#C792, RSA#C792, SHS#C...</td>\n",
+ " <td>{DSA#C792, RSA#C792, AES#C790, SHS#C790, HMAC#...</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
@@ -1395,17 +1395,17 @@
"\n",
" algorithms ... \\\n",
"dgst ... \n",
- "71cadd0c63e57249 {AES#C789, KTS#C792, CVL#C792, RSA#C792, SHS#C... ... \n",
- "9931f287c490c562 {Triple-DES#C693, DRBG#C693, DSA#C693, SHS#C69... ... \n",
- "03f65a290e11d786 {AES#C1981, HMAC#C1982, AES#C1979, KTS#C2042, ... ... \n",
- "7119d5d9637ddeeb {CVL#C947, DRBG#C942, SHS#C970, HMAC#C943, HMA... ... \n",
- "f36e412aea00d7c6 {RSA#C431, SHS#C220, KBKDF#A1462, DSA#C431, KA... ... \n",
+ "71cadd0c63e57249 {DSA#C792, RSA#C792, AES#C790, SHS#C790, HMAC#... ... \n",
+ "9931f287c490c562 {HMAC#C693, Triple-DES#C693, SHS#C693, RSA#C69... ... \n",
+ "03f65a290e11d786 {AES#C2042, RSA#C2042, DRBG#C1981, SHS#C1981, ... ... \n",
+ "7119d5d9637ddeeb {HMAC#C947, RSA#C947, HMAC#C943, HMAC#C942, EC... ... \n",
+ "f36e412aea00d7c6 {SHS#C431, RSA#A1462, KAS-SSC#A1462, ECDSA#A14... ... \n",
"... ... ... \n",
- "9cbfc3c153a29e5c {RSA#1600, SHS#2612, CVL#599, SHS#2923, DRBG#6... ... \n",
- "1625f9db144171f7 {KTS#1654, ECDSA#214, CVL#2, SHS#1465, DRBG#98... ... \n",
- "15bb14fd69723b98 {KTS#C409, RSA#2638, SHS#C409, CVL#C409, HMAC#... ... \n",
- "586540138f7cd7fd {CVL#152, KTS#1605, SHS#2098, SHS#2246, AES#24... ... \n",
- "6678394ac11e55af {AES#C789, KTS#C792, CVL#C792, RSA#C792, SHS#C... ... \n",
+ "9cbfc3c153a29e5c {AES#3156, SHS#2923, RSA#1600, CVL#409, HMAC#1... ... \n",
+ "1625f9db144171f7 {KTS#1654, CVL#2, RSA#824, DRBG#98, ECDSA#214,... ... \n",
+ "15bb14fd69723b98 {RSA#C409, SHS#3960, DRBG#C409, SHS#C409, AES#... ... \n",
+ "586540138f7cd7fd {SHS#3631, CVL#150, SHS#2246, DRBG#433, RSA#13... ... \n",
+ "6678394ac11e55af {DSA#C792, RSA#C792, AES#C790, SHS#C790, HMAC#... ... \n",
"\n",
" related_cves module_directly_referenced_by \\\n",
"dgst \n",
@@ -1480,7 +1480,7 @@
"[159 rows x 23 columns]"
]
},
- "execution_count": 19,
+ "execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
@@ -1500,7 +1500,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 19,
"id": "0ecd1b1c",
"metadata": {
"scrolled": false
@@ -1522,7 +1522,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 20,
"id": "dbac8629",
"metadata": {},
"outputs": [
@@ -1530,18 +1530,18 @@
"data": {
"text/plain": [
"[('CVE-2016-7091', 49),\n",
- " ('CVE-2000-0017', 45),\n",
+ " ('CVE-1999-0037', 45),\n",
+ " ('CVE-2007-3103', 45),\n",
+ " ('CVE-2000-1207', 45),\n",
+ " ('CVE-1999-0894', 45),\n",
+ " ('CVE-2001-0690', 45),\n",
+ " ('CVE-1999-1288', 45),\n",
" ('CVE-1999-0297', 45),\n",
" ('CVE-1999-0798', 45),\n",
- " ('CVE-2000-0701', 45),\n",
- " ('CVE-1999-0894', 45),\n",
- " ('CVE-2007-3103', 45),\n",
- " ('CVE-2001-0889', 45),\n",
- " ('CVE-1999-0037', 45),\n",
- " ('CVE-1999-1288', 45)]"
+ " ('CVE-2000-0701', 45)]"
]
},
- "execution_count": 21,
+ "execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
@@ -1565,7 +1565,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 21,
"id": "02306c40",
"metadata": {
"scrolled": true
@@ -1576,17 +1576,17 @@
"text/plain": [
"[('RSA#1', 180),\n",
" ('Triple-DES#34', 45),\n",
- " ('RSA#1166', 35),\n",
- " ('DSA#709', 35),\n",
- " ('SHS#1954', 35),\n",
+ " ('DRBG#281', 35),\n",
+ " ('HMAC#1391', 35),\n",
" ('ECDSA#368', 35),\n",
- " ('Triple-DES#1420', 35),\n",
+ " ('SHS#1954', 35),\n",
+ " ('DSA#709', 35),\n",
+ " ('RSA#1166', 35),\n",
" ('AES#2273', 35),\n",
- " ('HMAC#1391', 35),\n",
- " ('DRBG#281', 35)]"
+ " ('Triple-DES#1420', 35)]"
]
},
- "execution_count": 22,
+ "execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
@@ -1610,7 +1610,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 22,
"id": "6ceb86c7",
"metadata": {},
"outputs": [],
@@ -1634,9 +1634,17 @@
]
},
{
+ "cell_type": "markdown",
+ "id": "99db60e8",
+ "metadata": {},
+ "source": [
+ "### References EDA"
+ ]
+ },
+ {
"cell_type": "code",
- "execution_count": 24,
- "id": "f38fce2b",
+ "execution_count": 39,
+ "id": "be72686b",
"metadata": {},
"outputs": [],
"source": [
@@ -1644,8 +1652,119 @@
]
},
{
+ "cell_type": "code",
+ "execution_count": 79,
+ "id": "3407c40d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "refs_direct_eda_df = refs_df[refs_df[\"module_directly_referencing\"].notna()]\n",
+ "refs_indirect_eda_df = refs_df[refs_df[\"module_indirectly_referencing\"].notna()]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "id": "1333fb2e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def process_direct_references(df: DataFrame, func: Callable[[list[int]], float]) -> float:\n",
+ " return func([len(refs) for refs in df[\"module_directly_referencing\"]])\n",
+ "\n",
+ "def process_indirect_references(df: DataFrame, func: Callable[[list[int]], float]) -> float:\n",
+ " return func([len(refs) for refs in df[\"module_indirectly_referencing\"]])"
+ ]
+ },
+ {
"cell_type": "markdown",
- "id": "56c15006",
+ "id": "3d404d69",
+ "metadata": {},
+ "source": [
+ "#### Direct"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 88,
+ "id": "6af1a96e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total directly referencing certs: 473\n",
+ "Total direct references among all certs: 626\n",
+ "Maximum directly referenced certs at once: 8\n",
+ "Minimum directly referenced certs at once: 1\n",
+ "Mean of all direct references: 1.32\n",
+ "Median of all direct references: 1.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "total_directly_referencing_certs: int = refs_direct_eda_df.shape[0]\n",
+ "total_direct_references: int = process_direct_references(refs_direct_eda_df, sum)\n",
+ "maximum_direct_references: int = process_direct_references(refs_direct_eda_df, max)\n",
+ "minimum_direct_references: int = process_direct_references(refs_direct_eda_df, min)\n",
+ "mean_direct_references: float = round(process_direct_references(refs_direct_eda_df, np.mean), 2)\n",
+ "median_direct_references: float = process_direct_references(refs_direct_eda_df, np.median)\n",
+ "\n",
+ "print(f\"Total directly referencing certs: {total_directly_referencing_certs}\")\n",
+ "print(f\"Total direct references among all certs: {total_direct_references}\")\n",
+ "print(f\"Maximum directly referenced certs at once: {maximum_direct_references}\")\n",
+ "print(f\"Minimum directly referenced certs at once: {minimum_direct_references}\")\n",
+ "print(f\"Mean of all direct references: {mean_direct_references}\")\n",
+ "print(f\"Median of all direct references: {median_direct_references}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c4ee056b",
+ "metadata": {},
+ "source": [
+ "#### Indirect"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 89,
+ "id": "10d2f57c",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total indirectly referencing certs: 473\n",
+ "Total indirect references among all certs: 1043\n",
+ "Maximum indirectly referenced certs at once: 27\n",
+ "Minimum indirectly referenced certs at once: 1\n",
+ "Mean of all indirect references: 2.21\n",
+ "Median of all indirect references: 1.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "total_indirectly_referencing_certs: int = refs_indirect_eda_df.shape[0]\n",
+ "total_indirect_references: int = process_indirect_references(refs_indirect_eda_df, sum)\n",
+ "maximum_indirect_references: int = process_indirect_references(refs_indirect_eda_df, max)\n",
+ "minimum_indirect_references: int = process_indirect_references(refs_indirect_eda_df, min)\n",
+ "mean_indirect_references: float = round(process_indirect_references(refs_indirect_eda_df, np.mean), 2)\n",
+ "median_indirect_references: float = process_indirect_references(refs_indirect_eda_df, np.median)\n",
+ "\n",
+ "print(f\"Total indirectly referencing certs: {total_indirectly_referencing_certs}\")\n",
+ "print(f\"Total indirect references among all certs: {total_indirect_references}\")\n",
+ "print(f\"Maximum indirectly referenced certs at once: {maximum_indirect_references}\")\n",
+ "print(f\"Minimum indirectly referenced certs at once: {minimum_indirect_references}\")\n",
+ "print(f\"Mean of all indirect references: {mean_indirect_references}\")\n",
+ "print(f\"Median of all indirect references: {median_indirect_references}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "38e5b33d",
"metadata": {},
"source": [
"### Active certificates which reference at least one historical cert (=module refs)"
@@ -1653,8 +1772,8 @@
},
{
"cell_type": "code",
- "execution_count": 25,
- "id": "12a6820b",
+ "execution_count": 24,
+ "id": "b01d5d38",
"metadata": {},
"outputs": [],
"source": [
@@ -1677,8 +1796,8 @@
},
{
"cell_type": "code",
- "execution_count": 26,
- "id": "46569a81",
+ "execution_count": 25,
+ "id": "9c05ffb2",
"metadata": {
"scrolled": true
},
@@ -1710,7 +1829,7 @@
},
{
"cell_type": "markdown",
- "id": "531ea132",
+ "id": "d343e55b",
"metadata": {},
"source": [
"### Certificates with higher levels referencing certficates with lower levels"
@@ -1718,8 +1837,8 @@
},
{
"cell_type": "code",
- "execution_count": 40,
- "id": "c41a16c5",
+ "execution_count": 31,
+ "id": "b8225902",
"metadata": {
"scrolled": false
},
@@ -1730,8 +1849,8 @@
},
{
"cell_type": "code",
- "execution_count": 41,
- "id": "424c9096",
+ "execution_count": 32,
+ "id": "7ab480c7",
"metadata": {},
"outputs": [],
"source": [
@@ -1747,8 +1866,8 @@
},
{
"cell_type": "code",
- "execution_count": 42,
- "id": "66addda9",
+ "execution_count": 33,
+ "id": "29c80ecd",
"metadata": {},
"outputs": [],
"source": [
@@ -1765,7 +1884,7 @@
},
{
"cell_type": "markdown",
- "id": "50fb4e6f",
+ "id": "0f04580e",
"metadata": {},
"source": [
"#### Level 2 referencing at least one certificate of level 1"
@@ -1773,8 +1892,8 @@
},
{
"cell_type": "code",
- "execution_count": 58,
- "id": "29bc4234",
+ "execution_count": 35,
+ "id": "e3a4e349",
"metadata": {
"scrolled": true
},
@@ -1790,7 +1909,7 @@
}
],
"source": [
- "compare_level: int = 2\n",
+ "level2: int = 2\n",
"level2_ref_certs = referencing_certs[referencing_certs[\"level\"] == level2]\n",
"certificates_referencing_lower_level: list[int] = get_certs_referencing_lower_level(refs_df, level2_ref_certs, compare_level)\n",
"ratio: float = len(certificates_referencing_lower_level) / level2_ref_certs.shape[0]\n",
@@ -1801,7 +1920,7 @@
},
{
"cell_type": "markdown",
- "id": "9f3055bc",
+ "id": "27d269a3",
"metadata": {},
"source": [
"#### Level 3 referencing at least one certificate of level 1 or 2"
@@ -1809,23 +1928,23 @@
},
{
"cell_type": "code",
- "execution_count": 61,
- "id": "ec6566cd",
+ "execution_count": 36,
+ "id": "e83b845b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Total amount of certificates with level 3 referencing at least one certificate: 27\n",
+ "Total amount of certificates with level 2 referencing at least one certificate: 27\n",
"Total amount of certicates with reference at least one certificate with lower level: 1\n",
"Hit ratio: 0.04\n"
]
}
],
"source": [
- "compare_level: int = 3 \n",
- "level3_ref_certs = referencing_certs[referencing_certs[\"level\"] == compare_level]\n",
+ "level3: int = 3 \n",
+ "level3_ref_certs = referencing_certs[referencing_certs[\"level\"] == level3]\n",
"certificates_referencing_lower_level: list[int] = get_certs_referencing_lower_level(refs_df, level3_ref_certs, compare_level)\n",
"ratio: float = len(certificates_referencing_lower_level) / level3_ref_certs.shape[0]\n",
"print(f\"Total amount of certificates with level {compare_level} referencing at least one certificate: {level3_ref_certs.shape[0]}\")\n",