Skip to content

francescopiocirillo/uni-trust-credential-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ” Uni-Trust: Decentralized Academic Credential System

๐Ÿš€ A decentralized academic credential sharing system with selective disclosure and revocation support, implemented using Merkle Trees, blockchain-based revocation lists, and secure key exchange protocols. Designed and developed as part of a university project for the Algorithms and Protocols for Security course.

Demonstrated ability to design and implement secure, privacy-preserving credential management systems using cryptographic protocols, blockchain-based revocation, and Merkle Treeโ€“based selective disclosure.


๐Ÿ“Œ Overview

Uni-Trust is a secure academic credential management system enabling students, universities, and certification authorities to exchange credentials in a privacy-preserving, verifiable, and revocable manner.

This project was developed at the University of Salerno as a practical application of cryptographic techniques to improve student mobility programs such as Erasmus, reducing reliance on centralized authorities and improving trust and interoperability between institutions.

๐Ÿ“ Project Highlights

  • โœ… Selective disclosure of academic credentials using Merkle Trees

  • ๐Ÿ” Decentralized revocation management via blockchain-based Certificate Revocation Lists (CRLs)

  • ๐Ÿ”‘ Mutual authentication and secure key distribution protocols to establish session keys

  • ๐Ÿงพ Rich credential structure supporting personal data, courses, exams, degrees, and attendance records

  • ๐Ÿ“Š Performance analysis on credential size, cryptographic overhead, and latency

  • ๐Ÿงช Threat modeling and security analysis covering common attack vectors


๐ŸŒ Language Note

All code comments and internal documentation are written in Italian, as the project was developed during a group exam at the University of Salerno (Italy).

Despite this, the codebase follows international best practices, with clear method names and class structures that make it easily understandable for global developers and recruiters.


๐Ÿ’ก Features

๐Ÿงพ Credential Management

  • Issuance of academic credentials by universities

  • Selective disclosure of only necessary fields (e.g., specific course completions)

  • Verifiable Merkle proofs for disclosed credentials

๐Ÿ” Security & Privacy

  • RSA asymmetric encryption for identity validation and signing

  • AES symmetric encryption for session communication

  • Secure key distribution protocol using nonces and identity verification

  • Blockchain-based revocation of credentials to ensure real-time trust

๐Ÿงฎ Advanced Capabilities

  • Merkle Treeโ€“based credential structure enabling partial disclosure without exposing full datasets

  • Revocation List (CRL) management on a decentralized blockchain (the blockchain interaction is simulated as it was beyond the scope of the project)

  • Resilience to attacks like man-in-the-middle, identity theft, and credential tampering


๐Ÿง  Development Process

Developed within a structured university project framework (Project Work), with clearly defined work packages for modeling, design, security analysis, and implementation.

  1. Requirements Analysis & Threat Modeling (WP1)

  2. System Design: Credential structure, secure exchange, revocation handling (WP2)

  3. Security Analysis: Evaluation against defined adversary models (WP3)

  4. Implementation: Modular Python code with cryptographic best practices (WP4)


๐Ÿงช Testing

The system has been tested with:

  • Unit tests for encryption/decryption, Merkle Tree verification, and proof generation

  • Simulated communication workflows between students and universities

  • Latency and overhead analysis for cryptographic operations


๐Ÿ“‹ Documentation

Inside the docs/ folder, youโ€™ll find:

  • Requirements & Threat Model Report: Identifies key actors, goals, and attack vectors

  • System Design Document: Describes credential structures, data flows, and protocols

  • Security Analysis Report: Evaluates resilience against identified threats

  • Performance Evaluation: Overhead and latency benchmarks

All these information are contained in the file Documentazione_APS_gruppo06_Cirillo_Fasolino.pdf


๐Ÿงฑ Project Structure

๐Ÿ“ฆ uni-trust-credential-management-system
โ”œโ”€โ”€ ๐Ÿ“ docs
โ”‚   โ”œโ”€โ”€ project_presentation_ITALIAN.pdf
โ”‚   โ”œโ”€โ”€ project_report_ENGLISH.pdf
โ”‚   โ””โ”€โ”€ project_report_ITALIAN.pdf
โ”œโ”€โ”€ ๐Ÿ“ src
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ actors
โ”‚   โ”‚   โ”œโ”€โ”€ Blockchain.py
โ”‚   โ”‚   โ”œโ”€โ”€ CertifiedCommunicatingParty.py
โ”‚   โ”‚   โ”œโ”€โ”€ Student.py
โ”‚   โ”‚   โ”œโ”€โ”€ StudentInfo.py
โ”‚   โ”‚   โ”œโ”€โ”€ University.py
โ”‚   โ”‚   โ””โ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ certificate_authority
โ”‚   โ”‚   โ”œโ”€โ”€ CertificateAuthority.py
โ”‚   โ”‚   โ”œโ”€โ”€ CertificateOfIdentity.py
โ”‚   โ”‚   โ””โ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ utils
โ”‚   โ”‚   โ”œโ”€โ”€ AsymmetricEncryptionInformation.py
โ”‚   โ”‚   โ”œโ”€โ”€ CryptoUtils.py
โ”‚   โ”‚   โ”œโ”€โ”€ MerkleTree.py
โ”‚   โ”‚   โ”œโ”€โ”€ SymmetricEncryptionInformation.py
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ””โ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ main_documentato.ipynb
โ”‚   โ””โ”€โ”€ main.py
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ requirements.txt

๐Ÿ“ธ System Overview Snapshot

image

๐Ÿš€ How to Run Locally

  1. Clone the repository

    git clone https://github.com/francescopiocirillo/uni-trust-credential-management-system.git
  2. Install dependencies

    pip install -r requirements.txt
  3. Run the simulation notebook

    jupyter notebook main_documentato.ipynb

๐Ÿงฉ Development Environment

  • ๐Ÿ Python version: 3.12+

  • ๐Ÿ” Cryptography library: cryptography

  • ๐Ÿช™ Blockchain simulation through a simple class for revocation list


๐Ÿ“ฌ Contacts

โœ‰๏ธ Got feedback or want to contribute? Feel free to open an Issue or submit a Pull Request!


๐Ÿ“ˆ SEO Tags

Decentralized Credential Management, Academic Credentials, Merkle Tree Credentials, Blockchain Revocation, Selective Disclosure, Privacy-Preserving Credentials, Secure Key Exchange Protocol, RSA & AES Encryption, Python Cryptography Project, Erasmus Credential Sharing, Certificate Revocation List Blockchain, Secure University Data Exchange, Project Work Algorithms and Protocols for Security, Cryptography-Based Credential System, Merkle Proof Verification, Student Credential Privacy, University of Salerno Project

๐Ÿ“„ License

This project is licensed under the MIT License, a permissive open-source license that allows anyone to use, modify, and distribute the software freely, as long as credit is given and the original license is included.

In plain terms: use it, build on it, just donโ€™t blame us if something breaks.

โญ Like what you see? Consider giving the project a star!


About

๐Ÿ” Uni Trust is a system designed for the management, selective sharing, and revocation of digital academic credentials in the context of international student mobility, such as the Erasmus program. The project adopts a decentralized, privacy-preserving, and interoperable approach, based on modern technologies.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors