sec-certs
Tool for analysis of security certificates and their security targets (Common Criteria, NIST FIPS140-2...).
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Keywords
Repository
Tool for analysis of security certificates and their security targets (Common Criteria, NIST FIPS140-2...).
Basic Info
- Host: GitHub
- Owner: crocs-muni
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://sec-certs.org
- Size: 66.1 MB
Statistics
- Stars: 19
- Watchers: 7
- Forks: 9
- Open Issues: 26
- Releases: 16
Topics
Metadata Files
README.md
Sec-certs

A tool for data scraping and analysis of security certificates from Common Criteria and FIPS 140-2/3 frameworks.
Papers
Three publications accompany this project:
[!NOTE] - Janovsky, A., Jancar, J., Svenda, P., Chmielewski, Ł., Michalik, J., & Matyas, V. (2024). sec-certs: Examining the security certification practice for better vulnerability mitigation. Computers & Security, 143. https://doi.org/10.1016/j.cose.2024.103895 - Janovsky, A., Chmielewski, Ł., Svenda, P., Jancar, J., Matyas, V. (2024). Chain of Trust: Unraveling References Among Common Criteria Certified Products. In: Pitropakis, N., Katsikas, S., Furnell, S., Markantonakis, K. (eds) ICT Systems Security and Privacy Protection. SEC 2024. IFIP Advances in Information and Communication Technology, vol 710. Springer, Cham. https://doi.org/10.1007/978-3-031-65175-5_14 - Janovsky, A., Chmielewski, Ł., Svenda, P., Jancar, J., Matyas, V. (2025) Revisiting the analysis of references among Common Criteria certified products. Computers & Security, 152. https://doi.org/10.1016/j.cose.2025.104362
Installation
Use Docker with docker pull seccerts/sec-certs or just pip install -U sec-certs && python -m spacy download en_core_web_sm. For more elaborate description, see docs.
Usage
There are two main steps in exploring the world of security certificates:
- Data scraping and data processing all the certificates
- Exploring and analysing the processed data
For the first step, we currently provide CLI. For the second step, we provide simple API that can be used directly inside our Jupyter notebook or locally, together with a fully processed datasets that can be downloaded.
More elaborate usage is described in docs/quickstart. Also, see example notebooks either at GitHub or at docs. From docs, you can also run our notebooks in Binder.
If you are looking for the sources of the web-page at sec-certs.org look into the page branch of this repository.
Data scraping
Run sec-certs cc all for Common Criteria processing, sec-certs fips all for FIPS 140 processing.
Data analysis
Most probably, you don't want to fully process the certification artifacts by yourself. Instead, you can use our results and explore them as a data structure. An example snippet follows. For more, see example notebooks. Tip: these can be run with Binder from our docs.
```python from sec_certs.dataset import CCDataset
dset = CCDataset.fromweb() # now you can inspect the object, certificates are held in dset.certs df = dset.topandas() # Or you can transform the object into Pandas dataframe dset.tojson( './latestccsnapshot.json') # You may want to store the snapshot as json, so that you don't have to download it again dset = CCDataset.fromjson('./latestccsnapshot.json') # you can now load your stored dataset again
Get certificates with some CVE
vulnerablecerts = [x for x in dset if x.heuristics.relatedcves] dfvulnerable = df.loc[~df.relatedcves.isna()]
Show CVE ids of some vulnerable certificate
print(f"{vulnerablecerts[0].heuristics.relatedcves=}")
Get certificates from 2015 and newer
df2015andnewer = df.loc[df.yearfrom > 2014]
Plot distribution of years of certification
df.yearfrom.valuecounts().sort_index().plot.line() ```
Authors
This work is being done at CRoCS MUNI by Adam Janovsky, Jan Jancar, Petr Svenda, Jiri Michalik, Lukasz Chmielewski and other contributors. This work was supported by the Internal grant agency of Masaryk University, CZ.02.2.69/0.0/0.0/19_073/0016943.

Owner
- Name: CRoCS
- Login: crocs-muni
- Kind: organization
- Location: Faculty of Informatics, Masaryk University, Brno
- Website: https://crocs.fi.muni.cz
- Repositories: 95
- Profile: https://github.com/crocs-muni
Centre for Research on Cryptography and Security
Citation (CITATION.bib)
@article{sec-certs,
title = {sec-certs: Examining the security certification practice for better vulnerability mitigation},
journal = {Computers & Security},
volume = {143},
year = {2024},
issn = {0167-4048},
doi = {https://doi.org/10.1016/j.cose.2024.103895},
url = {https://www.sciencedirect.com/science/article/pii/S0167404824001974},
author = {Adam Janovsky and Jan Jancar and Petr Svenda and Łukasz Chmielewski and Jiri Michalik and Vashek Matyas},
keywords = {Security certification, Common criteria, Vulnerability assessment, Data analysis, Smartcards}
}
GitHub Events
Total
- Create event: 43
- Commit comment event: 5
- Release event: 2
- Issues event: 25
- Watch event: 7
- Delete event: 33
- Member event: 1
- Issue comment event: 110
- Push event: 310
- Pull request review comment event: 73
- Pull request review event: 72
- Pull request event: 86
Last Year
- Create event: 43
- Commit comment event: 5
- Release event: 2
- Issues event: 25
- Watch event: 7
- Delete event: 33
- Member event: 1
- Issue comment event: 110
- Push event: 310
- Pull request review comment event: 73
- Pull request review event: 72
- Pull request event: 86
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 14
- Total pull requests: 39
- Average time to close issues: about 1 year
- Average time to close pull requests: about 1 month
- Total issue authors: 3
- Total pull request authors: 8
- Average comments per issue: 0.86
- Average comments per pull request: 1.26
- Merged pull requests: 22
- Bot issues: 0
- Bot pull requests: 13
Past Year
- Issues: 11
- Pull requests: 37
- Average time to close issues: about 1 month
- Average time to close pull requests: 5 days
- Issue authors: 3
- Pull request authors: 6
- Average comments per issue: 0.55
- Average comments per pull request: 1.08
- Merged pull requests: 22
- Bot issues: 0
- Bot pull requests: 13
Top Authors
Issue Authors
- J08nY (16)
- adamjanovsky (9)
- fedorst (3)
- petrs (1)
Pull Request Authors
- J08nY (40)
- dependabot[bot] (36)
- adamjanovsky (14)
- hofin34 (2)
- petrs (2)
- xvalec01 (2)
- xmoravec (1)
- yasirdemircan (1)
- Julik24 (1)
- fedorst (1)
- mukrop (1)
- GeorgeFI (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 25 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 16
- Total maintainers: 1
pypi.org: sec-certs
A tool for data scraping and analysis of security certificates from Common Criteria and FIPS 140-2/3 frameworks
- Homepage: https://sec-certs.org
- Documentation: https://sec-certs.org/docs
- License: MIT
-
Latest release: 0.3.2
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- isort/isort-action master composite
- psf/black stable composite
- py-actions/flake8 v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- docker/metadata-action 98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 composite
- docker/setup-buildx-action v1 composite
- docker/setup-qemu-action v1 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- ubuntu jammy-20220428 build
- alabaster ==0.7.12 development
- appnope ==0.1.3 development
- asttokens ==2.2.1 development
- attrs ==22.1.0 development
- babel ==2.11.0 development
- backcall ==0.2.0 development
- beautifulsoup4 ==4.11.1 development
- billiard ==4.0.2 development
- black ==22.10.0 development
- blis ==0.7.9 development
- build ==0.9.0 development
- catalogue ==2.0.8 development
- certifi ==2022.12.7 development
- cfgv ==3.3.1 development
- charset-normalizer ==2.1.1 development
- click ==8.1.3 development
- comm ==0.1.2 development
- confection ==0.0.3 development
- contourpy ==1.0.6 development
- coverage ==6.5.0 development
- cycler ==0.11.0 development
- cymem ==2.0.7 development
- debugpy ==1.6.4 development
- decorator ==5.1.1 development
- deprecation ==2.1.0 development
- distlib ==0.3.6 development
- distro ==1.8.0 development
- docutils ==0.17.1 development
- entrypoints ==0.4 development
- exceptiongroup ==1.0.4 development
- executing ==1.2.0 development
- fastjsonschema ==2.16.2 development
- filelock ==3.8.2 development
- flake8 ==6.0.0 development
- flake8-future-annotations ==1.0.0 development
- fonttools ==4.38.0 development
- gprof2dot ==2022.7.29 development
- greenlet ==2.0.1 development
- html5lib ==1.1 development
- identify ==2.5.9 development
- idna ==3.4 development
- imagesize ==1.4.1 development
- importlib-metadata ==5.1.0 development
- importlib-resources ==5.10.1 development
- iniconfig ==1.1.1 development
- ipykernel ==6.19.1 development
- ipython ==8.6.0 development
- ipywidgets ==8.0.3 development
- isort ==5.10.1 development
- jedi ==0.18.2 development
- jinja2 ==3.1.2 development
- joblib ==1.2.0 development
- jsonschema ==4.17.3 development
- jupyter-cache ==0.5.0 development
- jupyter-client ==7.4.8 development
- jupyter-core ==5.1.0 development
- jupyterlab-widgets ==3.0.4 development
- kiwisolver ==1.4.4 development
- langcodes ==3.3.0 development
- lxml ==4.9.1 development
- markdown-it-py ==2.1.0 development
- markupsafe ==2.1.1 development
- matplotlib ==3.6.2 development
- matplotlib-inline ==0.1.6 development
- mccabe ==0.7.0 development
- mdit-py-plugins ==0.3.3 development
- mdurl ==0.1.2 development
- memory-profiler ==0.61.0 development
- murmurhash ==1.0.9 development
- mypy ==0.991 development
- mypy-extensions ==0.4.3 development
- myst-nb ==0.17.1 development
- myst-parser ==0.18.1 development
- nbclient ==0.5.13 development
- nbformat ==5.7.0 development
- nest-asyncio ==1.5.6 development
- networkx ==2.8.8 development
- nodeenv ==1.7.0 development
- numpy ==1.23.5 development
- packaging ==22.0 development
- pandas ==1.5.2 development
- parso ==0.8.3 development
- pathspec ==0.10.2 development
- pathy ==0.10.1 development
- pdftotext ==2.2.2 development
- pep517 ==0.13.0 development
- pexpect ==4.8.0 development
- pickleshare ==0.7.5 development
- pikepdf ==6.2.5 development
- pillow ==9.3.0 development
- pip-tools ==6.11.0 development
- pkgconfig ==1.5.5 development
- pkgutil-resolve-name ==1.3.10 development
- platformdirs ==2.6.0 development
- pluggy ==1.0.0 development
- pre-commit ==2.20.0 development
- preshed ==3.0.8 development
- prompt-toolkit ==3.0.36 development
- psutil ==5.9.4 development
- ptyprocess ==0.7.0 development
- pure-eval ==0.2.2 development
- pycodestyle ==2.10.0 development
- pycryptodome ==3.16.0 development
- pydantic ==1.10.2 development
- pydata-sphinx-theme ==0.8.1 development
- pyflakes ==3.0.1 development
- pygments ==2.13.0 development
- pyparsing ==3.0.9 development
- pypdf ==3.2.1 development
- pyrsistent ==0.19.2 development
- pysankeybeta ==1.4.0 development
- pytest ==7.2.0 development
- pytest-cov ==4.0.0 development
- pytest-monitor ==1.6.5 development
- pytest-profiling ==1.7.0 development
- python-dateutil ==2.8.2 development
- pytz ==2022.6 development
- pyupgrade ==3.3.1 development
- pyyaml ==6.0 development
- pyzmq ==24.0.1 development
- rapidfuzz ==2.13.3 development
- requests ==2.28.1 development
- scikit-learn ==1.2.0 development
- scipy ==1.9.3 development
- seaborn ==0.12.1 development
- setuptools-scm ==7.0.5 development
- six ==1.16.0 development
- smart-open ==6.2.0 development
- snowballstemmer ==2.2.0 development
- soupsieve ==2.3.2.post1 development
- spacy ==3.4.3 development
- spacy-legacy ==3.0.10 development
- spacy-loggers ==1.0.4 development
- sphinx ==4.5.0 development
- sphinx-book-theme ==0.3.3 development
- sphinx-copybutton ==0.5.1 development
- sphinx-design ==0.3.0 development
- sphinxcontrib-applehelp ==1.0.2 development
- sphinxcontrib-devhelp ==1.0.2 development
- sphinxcontrib-htmlhelp ==2.0.0 development
- sphinxcontrib-jsmath ==1.0.1 development
- sphinxcontrib-qthelp ==1.0.3 development
- sphinxcontrib-serializinghtml ==1.1.5 development
- sqlalchemy ==1.4.44 development
- srsly ==2.4.5 development
- stack-data ==0.6.2 development
- tabula-py ==2.6.0 development
- tabulate ==0.9.0 development
- thinc ==8.1.5 development
- threadpoolctl ==3.1.0 development
- tokenize-rt ==5.0.0 development
- toml ==0.10.2 development
- tomli ==2.0.1 development
- tornado ==6.2 development
- tqdm ==4.64.1 development
- traitlets ==5.6.0 development
- typer ==0.7.0 development
- types-python-dateutil ==2.8.19.4 development
- types-pyyaml ==6.0.12.2 development
- types-requests ==2.28.11.5 development
- types-urllib3 ==1.26.25.4 development
- typing-extensions ==4.4.0 development
- urllib3 ==1.26.13 development
- virtualenv ==20.17.1 development
- wasabi ==0.10.1 development
- wcwidth ==0.2.5 development
- webencodings ==0.5.1 development
- wheel ==0.38.4 development
- widgetsnbextension ==4.0.4 development
- zipp ==3.11.0 development
- appnope ==0.1.3
- asttokens ==2.2.1
- attrs ==22.1.0
- backcall ==0.2.0
- beautifulsoup4 ==4.11.1
- billiard ==4.0.2
- blis ==0.7.9
- catalogue ==2.0.8
- certifi ==2022.12.7
- charset-normalizer ==2.1.1
- click ==8.1.3
- comm ==0.1.2
- confection ==0.0.3
- contourpy ==1.0.6
- cycler ==0.11.0
- cymem ==2.0.7
- debugpy ==1.6.4
- decorator ==5.1.1
- deprecation ==2.1.0
- distro ==1.8.0
- entrypoints ==0.4
- executing ==1.2.0
- fonttools ==4.38.0
- html5lib ==1.1
- idna ==3.4
- importlib-resources ==5.10.1
- ipykernel ==6.19.1
- ipython ==8.7.0
- ipywidgets ==8.0.3
- jedi ==0.18.2
- jinja2 ==3.1.2
- joblib ==1.2.0
- jsonschema ==4.17.3
- jupyter-client ==7.4.8
- jupyter-core ==5.1.0
- jupyterlab-widgets ==3.0.4
- kiwisolver ==1.4.4
- langcodes ==3.3.0
- lxml ==4.9.1
- markupsafe ==2.1.1
- matplotlib ==3.6.2
- matplotlib-inline ==0.1.6
- murmurhash ==1.0.9
- nest-asyncio ==1.5.6
- networkx ==2.8.8
- numpy ==1.23.5
- packaging ==22.0
- pandas ==1.5.2
- parso ==0.8.3
- pathy ==0.10.1
- pdftotext ==2.2.2
- pexpect ==4.8.0
- pickleshare ==0.7.5
- pikepdf ==6.2.5
- pillow ==9.3.0
- pkgconfig ==1.5.5
- pkgutil-resolve-name ==1.3.10
- platformdirs ==2.6.0
- preshed ==3.0.8
- prompt-toolkit ==3.0.36
- psutil ==5.9.4
- ptyprocess ==0.7.0
- pure-eval ==0.2.2
- pycryptodome ==3.16.0
- pydantic ==1.10.2
- pygments ==2.13.0
- pyparsing ==3.0.9
- pypdf ==3.2.1
- pyrsistent ==0.19.2
- pysankeybeta ==1.4.0
- python-dateutil ==2.8.2
- pytz ==2022.6
- pyyaml ==6.0
- pyzmq ==24.0.1
- rapidfuzz ==2.13.3
- requests ==2.28.1
- scikit-learn ==1.2.0
- scipy ==1.9.3
- seaborn ==0.12.1
- setuptools-scm ==7.0.5
- six ==1.16.0
- smart-open ==6.2.0
- soupsieve ==2.3.2.post1
- spacy ==3.4.3
- spacy-legacy ==3.0.10
- spacy-loggers ==1.0.4
- srsly ==2.4.5
- stack-data ==0.6.2
- tabula-py ==2.6.0
- thinc ==8.1.5
- threadpoolctl ==3.1.0
- tomli ==2.0.1
- tornado ==6.2
- tqdm ==4.64.1
- traitlets ==5.6.0
- typer ==0.7.0
- typing-extensions ==4.4.0
- urllib3 ==1.26.13
- wasabi ==0.10.1
- wcwidth ==0.2.5
- webencodings ==0.5.1
- widgetsnbextension ==4.0.4
- zipp ==3.11.0
- appnope ==0.1.3 test
- asttokens ==2.2.1 test
- attrs ==22.1.0 test
- backcall ==0.2.0 test
- beautifulsoup4 ==4.11.1 test
- billiard ==4.0.2 test
- blis ==0.7.9 test
- catalogue ==2.0.8 test
- certifi ==2022.12.7 test
- charset-normalizer ==2.1.1 test
- click ==8.1.3 test
- comm ==0.1.2 test
- confection ==0.0.3 test
- contourpy ==1.0.6 test
- coverage ==6.5.0 test
- cycler ==0.11.0 test
- cymem ==2.0.7 test
- debugpy ==1.6.4 test
- decorator ==5.1.1 test
- deprecation ==2.1.0 test
- distro ==1.8.0 test
- entrypoints ==0.4 test
- exceptiongroup ==1.0.4 test
- executing ==1.2.0 test
- fonttools ==4.38.0 test
- html5lib ==1.1 test
- idna ==3.4 test
- importlib-resources ==5.10.1 test
- iniconfig ==1.1.1 test
- ipykernel ==6.19.1 test
- ipython ==8.7.0 test
- ipywidgets ==8.0.3 test
- jedi ==0.18.2 test
- jinja2 ==3.1.2 test
- joblib ==1.2.0 test
- jsonschema ==4.17.3 test
- jupyter-client ==7.4.8 test
- jupyter-core ==5.1.0 test
- jupyterlab-widgets ==3.0.4 test
- kiwisolver ==1.4.4 test
- langcodes ==3.3.0 test
- lxml ==4.9.1 test
- markupsafe ==2.1.1 test
- matplotlib ==3.6.2 test
- matplotlib-inline ==0.1.6 test
- murmurhash ==1.0.9 test
- nest-asyncio ==1.5.6 test
- networkx ==2.8.8 test
- numpy ==1.23.5 test
- packaging ==22.0 test
- pandas ==1.5.2 test
- parso ==0.8.3 test
- pathy ==0.10.1 test
- pdftotext ==2.2.2 test
- pexpect ==4.8.0 test
- pickleshare ==0.7.5 test
- pikepdf ==6.2.5 test
- pillow ==9.3.0 test
- pkgconfig ==1.5.5 test
- pkgutil-resolve-name ==1.3.10 test
- platformdirs ==2.6.0 test
- pluggy ==1.0.0 test
- preshed ==3.0.8 test
- prompt-toolkit ==3.0.36 test
- psutil ==5.9.4 test
- ptyprocess ==0.7.0 test
- pure-eval ==0.2.2 test
- pycryptodome ==3.16.0 test
- pydantic ==1.10.2 test
- pygments ==2.13.0 test
- pyparsing ==3.0.9 test
- pypdf ==3.2.1 test
- pyrsistent ==0.19.2 test
- pysankeybeta ==1.4.0 test
- pytest ==7.2.0 test
- pytest-cov ==4.0.0 test
- python-dateutil ==2.8.2 test
- pytz ==2022.6 test
- pyyaml ==6.0 test
- pyzmq ==24.0.1 test
- rapidfuzz ==2.13.3 test
- requests ==2.28.1 test
- scikit-learn ==1.2.0 test
- scipy ==1.9.3 test
- seaborn ==0.12.1 test
- setuptools-scm ==7.0.5 test
- six ==1.16.0 test
- smart-open ==6.2.0 test
- soupsieve ==2.3.2.post1 test
- spacy ==3.4.3 test
- spacy-legacy ==3.0.10 test
- spacy-loggers ==1.0.4 test
- srsly ==2.4.5 test
- stack-data ==0.6.2 test
- tabula-py ==2.6.0 test
- thinc ==8.1.5 test
- threadpoolctl ==3.1.0 test
- tomli ==2.0.1 test
- tornado ==6.2 test
- tqdm ==4.64.1 test
- traitlets ==5.6.0 test
- typer ==0.7.0 test
- typing-extensions ==4.4.0 test
- urllib3 ==1.26.13 test
- wasabi ==0.10.1 test
- wcwidth ==0.2.5 test
- webencodings ==0.5.1 test
- widgetsnbextension ==4.0.4 test
- zipp ==3.11.0 test
- Pillow >=9.2.0
- PyYAML *
- beautifulsoup4 *
- billiard *
- click *
- html5lib *
- ipykernel *
- ipywidgets *
- jsonschema *
- lxml *
- matplotlib *
- networkx *
- numpy *
- pandas *
- pdftotext *
- pikepdf *
- pkgconfig *
- pySankeyBeta *
- pypdf [crypto]>=3.1.0
- python-dateutil *
- rapidfuzz *
- requests *
- scikit-learn *
- scipy >=1.9.0
- seaborn *
- setuptools-scm *
- spacy *
- tabula-py *
- tqdm *