Demo link since we were unable to upload to YT: https://github.com/grittypuffy/ocultar/blob/main/assets/demo.mkv
Inspiration
Sharing of digital files containing sensitive information with metadata has become common due to frictionless connectivity enabled by SaaS applications. These files are processed by multiple servers and can be stored indefinitely or processed for extraction of personal information.
Services such as Microsoft Presidio for personal information de-identification and MAT2 (Metadata Anonymization Toolkit) for metadata removal were created to address these issues.
However, the lack of a web interface for Microsoft Presidio creates hindrance in user adoption and lack of integration of metadata removal along with redaction creates another loophole in ensuring end-user privacy. This is not to be blamed, since they were designed as a framework and library respectively, meant to be used as dependency and framework by other applications.
Ocultar aims to be amiable brainchild of these two services by integration of personal information redaction and metadata removal into an user-friendly interface that can be operated offline, self-hosted or via flagship instance.
Reduction of impact of data breaches and unintended transmission of personal information without impacting user experience is our goal.
What it does
Offline usage
Ocultar can be used offline by desktop application that bundles the needed API for processing files on their local system. This eliminates reliance on cloud services for processing of information which may potentially infringe on privacy.
The ability to operate it offline is also beneficial for organizations who deal with sensitive information, thus being unable to use online services.
Supported filetypes:
Currently, we support processing of the following file formats:
Redaction
- Plain text files
- Images - JPEG, PNG
- PDF files
Metadata removal
- Images: PNG, JPEG, SVG, GIF
Web interface
Some people wish to use web application rather than installing the desktop application. We provide a flagship instance that allows users to upload files. Useful for people who are not able to self-host or use desktop application.
Our web interface is configured to delete files after processing for additional privacy.
Self-hosting
Ocultar can be self-hosted for maximum control over data transmission in case if usage of flagship instance is not for you. We support containerized deployments via Docker for easier deployment.
Multi-lingual redaction
Ocultar detects multiple languages that are present in a document with ease and redacts based on the detected languages without manual intervention.
Currently, the system supports redaction for English and Spanish with planned support for other languages and development of custom models and recognizers for Indian languages.
Batch processing
Ocultar supports batch processing of documents. Upload multiple documents at a go and have it redacted with ease.
Customized redaction
Ocultar supports tweaking of redaction and sanitization by providing options to configure:
- Color of redaction for images and PDF. Defaults to black.
- Sensitivity of redaction: Whether all kinds of information need to be redacted or just the sensitive ones. Defaults to high, redacting all information.
- Metadata removal: Can be turned on or off. This is enabled by default.
Integrated metadata removal
Ocultar adds metadata removal on top of redaction for additional privacy so that quasi-identifiers such as creation date, software version and other sensitive information that are embedded in a file are removed.
How we built it
We built using the following technologies:
Frontend
We have made our frontend responsive, accessible and minimal thanks to these amazing technologies:
- Alpine.js: Minimal web framework with small build size and high performance than frameworks like React or Next. We have chosen it for its minimalism and performance. Paired up with TypeScript, it provides a great development experience.
- Bun: Highly performant runtime for JavaScript
- TailwindCSS and DaisyUI: For the user interface components and design for its minimalism and accessibility.
- Vite: Faster build system for web applications.
Backend
- Microsoft Presidio: The heart of Ocultar, it is the one responsible for redaction of PII from files.
- FastAPI: API framework that is used for redaction and sanitization.
- MAT2: The ally of Ocultar, aiding removal of metadata from several types of files.
- Tesseract: Used for extraction of text from image by preprocessing.
- Lingua language detector: A Python library used for language detection from images.
- img2pdf and pdf2image libraries for conversion of images to PDF and PDF to image. Needed for processing images and PDF.
Desktop
- Tauri: Cross-platform desktop application framework for creation of minimal, performant and secure applications with a good developer experience thanks to Rust and Bun
The frontend codebase is used in the application with slight modifications for making it compatible with desktop operating systems.
Challenges we ran into
We were facing issues related to deployment on Azure containers, and serving our static sites since it's my first time using Azure, which was a great learning experience. Scaffolding Tauri for Alpine was another interesting challenge.
Getting languae detection and OCR working on containers was another interesting challenge
Accomplishments that we're proud of
We were happy that we were able to redact most of the PDF and image files with needed accuracy
What we learned
We learned to use cloud platforms and are looking into Azure AI services for PII recognition
What's next for Ocultar
We are planning on building spacy models for Indian languages for usage with Presidio
Built With
- azure
- bun
- fastapi
- presidio
- tauri
Log in or sign up for Devpost to join the conversation.