Project Progress Timeline: X.509 Certificate Transparency
Overview: This page outlines tasks and milestones in order to manage and achieve goals that are set for the "X.509 Certificate Transparency using Hyperledger Fabric Blockchain" project.
Project tasks and milestones
Week 1-3
Broader Goals for first Evaluation
Understanding CTB design (https://eprint.iacr.org/2018/1232)Running the existing proof-of-concept code for Hyperledger based CTB (HLCTB) networkBuilding a proof-of-concept client/server application supporting HLCTB-assisted SSL/TLS connection
Work done
May 27 - June 2
Meeting with Prof. mahavir jhawar - Introduction and understanding the projectPremier on using openssl for generating certificates and signing certificates by certificate authority.Read paper on CTB by mahavir jhawar: https://eprint.iacr.org/2018/1232.pdfRevisit Hyperledger key concepts: https://hyperledger-fabric.readthedocs.io/en/release-1.4/key_concepts.htmlUnderstand the structure of crypto-config folder where certificate for identity management are stored. (WIP)Run CTB network with two CA and browser organisations. Able to add certificate and query them.Reissue certificate while the previous one is active. I have gone through the go chaincode, VerifyPKCS1v15 is at heart of reissuing certificate. But I am not able to understand what the signCert exactly is? Whether it is sign of newcertstring or newcertfile or sha256 of newcert using the current public key.openssl dgst -sha256 -sign currentCert.key -out sign.txt newCert.crt , but this produces binary output and VerifyPKCS1v15 is returning false.
June 3 - June 9
Create a github repository with POC of CTB network using hyperledgerReported issue related Wrong port number in build your first networkError rendering macro 'jira' : nullUnderstanding and running the basic-network, first-network and fabcar application of fabric-samplesWrite a blog on structure of crypto-config and how different keys are relatedJune 10 - June 16
Monday - Meeting with deva madala on progress till now and technical guidanceTesting the HLCTB network POC written by deva madala (fabric 1.1) and understood how to connect to HLCTB network and executing the chaincodeModifying the HLCTB network by adding CA to each org and couchDB for each peers for fabric 1.4Besides the main goal, started with switching from direct container management to orchestration of containers using kubernetesCreate the project timeline and meeting regarding the sameChange in existing chaincode for proper revocation of certificatesJune 17 - June 23
Using easybaas (VMware tool, https://labs.vmware.com/flings/blockchain-on-kubernetes) for creating the hyperledger related config for deploying on kubernetes and also modifying the same for incorporating the changes in fabric 1.4Tuesday - meeting with Prof. mahavir jhawar regarding preparation for demo and current progressCreate an application(SDK) for connecting to the network and executing chaincode functionsCreate a demo for server/client SSL PKI verification using HLCTB networkThursday - show the demo to deva madalaWrite a readme on how to run demo server/client application for testing HLCTB networkFriday- show the final step by step demo to Professor and deva madala and discussion of the second quarter plans
Week 4-6
Broader Goals for second Evaluation
Hosting the HLCTB over cloudFireFox Extension to support HLCTB-assisted https connectionsDevelopment of an interface allowing registration of Certification Authorities to HLCTB networkWork Done
June 24 - June 30
Trying to add Yeasy/blockchain-explorer:0.1.0-preview to the hlf network.Added blockchain-explorer for fabric 1.4 on the HLF CTB network for easy monitoing of the transactions and the ledger.Created a script for automatic testing of network. Using this we can generate multiple ca, domains cerificates , push them to the network, renew the certs for domains and also revoke them. It uses the CA server as a proxy.Tested for serial processing of transactions for 100 domains and 5 times renewal of certificates and revoking them in the end. The network handled that, and blocks produced had one transaction each. Achieved a processing rate of 20-30 transactions per minute.Tested for parallel processing with the same settings as serial processing. Each blocks had upto 10 transactions and achieved a processing rate of 200 transactions per minute.Create a docker image of blockchain-explorer . It has two images , one for server and other for client.July 1 - July 7
Raised issue on `Explorer not able to connect orderer from docker.` -Error rendering macro 'jira' : nullAttending mentors and mentees meet call.Adding caliper to networkTesting using caliper for different number of transactions and tps while changing block size and batch timeout in configtx.yamlAdding swagger interface to ca serverAdding authentication to ca serverDeploying whole network on cloud with blockchain-explorer, ca server and caliperMaking chrome extensionJuly 7 - July 14
Make firefox extensionAdd script for generating crypto-material and docker files for new CA organisationAdding new CA organisation to current HLCTB network(locally)Fixing queryCertificateHistory and adding creation of affiliation for orgs if not presentCreate pm2 process file for CA server, reports server and channel Config API.
Week 7-9
Broader Goals for third Evaluation
Scaling up of HLCTB: Simulation of https connections to sufficiently many HLCTB-registered domainsBench-marking HLCTB-assisted handshake overhead (on top of SSL/TLS handshake)Fine tuning of HLCTB operations for better efficiency and security
Work Done
July 15 - July 21
Monday meeting on caliper, firefox extension, CA server api and discussed further plan.Deploy network on cloud and joining new organisation to network present on different server(whole network contains of 2 server)Patching TLS certificates of orderers and peers for including IP SANs and documenting the errors facedDocumenting how to add new CA organisationCreate transfer_asset script for transfer TLS certificate for CA serverDocumenting how to connect CA server to CA organisation in HLCTB networkJuly 22 - July 28
Presentation on CTB and work doneReading paper on scaling hyperledger handle order of 4 tps.Adding demo for ctb-testing.ml using self-signed CAJuly 29 - Aug 4
Meeting with mentor showing the work done and changes needed.Adding demo for hfctb.ml using lets encrypt as CA
Week 10-12
Broader Goals for last Evaluation
Prepare report explaining completed tasksCertificate revocationPresent your work done to hyperledger communityWrapping up and organising the codebase
Work Done
Aug 5 - Aug 11
Meeting with mentors on created presentation and suggested changes in it for better understandingCreate more interactive presentation and also a demo videoLooked into certificate revocation part and studied current methods CRL, OCSP, OCSP stapling and Must-StapleAug 12 - Aug 18
Attended Hyperledger internship presentation of other studentsStarted working on reportSetup a OCSP responder, webserver for handling OCSPERQUEST using ocsp npm packageAug 19 - Aug 25
Meeting with mentors-- different ways of integrating currently available revocation models in HFCTB networkWrapping up and organizing the codebase