Key Design (Day 133)
Total hours: 148.000 Top three: 1) Database design for key management Currently the database design treated the operator and sign in as one identity. This way it’s easier to add further authentication and ensures that there’s multiple authentication vectors for an operator. Furthermore it’s a v shape. There’s authentication which points to an operator along with keys that point to an operator. This allows us to select the key that the operator has along with the authentication methods the o...
Read post
Domain Transfer Successful (Day 132)
Gaya Total hours: 246.150 Top one: 1) Domain transfer succeeded. Sapphire Pack is now on the correct. However the blog isn’t currently correctly setup. It’s still correctly accessible at listed.to/@Gaya but I want it also accessible to blog.sapphirepack.org ...
Read post
Plugging Along Again (Day 131)
Total hours: 246.100 ...
Read post
Plugging Along (Day 130)
Total hours: 246.083 ...
Read post
Authentication and Authorization (Day 129)
Total hours: 246.000 Top three: 1) Authentication Split into three seperate levels to plan and design based on threat and security requirements instead of providing just one size fits all. Despite that being what I wanted from the get go and to design an application with 0 settings or close to 0. But really wanted 0 settings options. 2) Authorization This is different than than authentication. It’s designed to be a second layer of design for cautious or strict mode. 3) Key Management St...
Read post
Null Day (Day 128)
Total hours: 245.650 ...
Read post
Security Cost Yubico (Day 127)
Total hours: 245.633 Top three: 1) Experimenting with Key Derivation This is tricky since it involves ensuring proper key provisioning while ensuring that Sapphire Pack has no access to your data at all. 2) Exploring Yubikey for security I like the concept because I’d be able to use a several key derivation concept and using asymmetrical keys to design. ECC p384 which is secure till past 2031 which is extremely important. 3) Financial feasibility of using Yubikey Not worth it at allx. Not...
Read post
Website Transfer Providers (Day 126)
Total hours: 244.750 Top three: 1) Website Migration 2) Email Migration 3) Security transition and e2e encrypted data. ...
Read post
Deployment and Database (Day 125)
Total hours: 243.650 Top two: 1) Authorization and Deployment Concept This is very tricky but partially depends on not having a properly design threat scoping concept. The idea is have access keys which are seperate from the account in the event of a compromised system nuke, and remove, The problem though is it’s impossible to have a secure E2E encryption without a key being stored somewhere (like the persons brain or hardware key). If it’s the first it’s adding the ‘just one more password...
Read post
Planning Next Stage (Day 124)
Total hours: 243.150 Top three: 1) Planning goal for day 30 2) Reading Ecto 3) Planning website style and design ...
Read post
Transitioning To Time (Day 123)
Total hours: 242.867 Top three: 1) Route redirection (Alpha versus not) Failed since I had completely forgotten that everything underneath the route /operator is actually just fully protected which is good but at the same time means that I failed to think out the idea fully. 2) Session drop versus clear When a session is dropped cookies aren’t set since they’re revoked. What I need instead is clear the session. Then since their’s a cookie I can put the correct flash there. It’s not funct...
Read post
Authentication Authorized Adding (Day 122)
Total hours: 241.433 Top one: 1) Planning redirection. It’s important in the early phase to have two seperate redirections. One for a unauthorized login/ provider failure and another if not enrolled within the Alpha program (which is currently closed to just me currently). ...
Read post
Regressions Redoubling Reauthentication (Day 121)
Total hours: 241.00 Top one: 1) Deployed operator locking so only certain operators can authenticate. ...
Read post
Authenticating Authorized Actors (Day 120)
Total hours: 239.700 Top one: 1) Auth0 and linking into application along with testing deploy paths. (You’re now able to see the new paths and logging and logout). I’m now working on the next crucial part of authentication which is controlling how operators are tied in to the system. You see currently the only person is me. However shortly afterwards it’ll open up and I’ll have a dashboard so that I can see operators and then from there I can tie in the email and such. Code is just a monumen...
Read post
Routing Redoing Right (Day 119)
Total hours: 238.450 Top three: 1) Auth0 Logout Flow Design I’ve done a really good job and actually collapsed everything underneath one endpoint. I’ve moved away from user to operator. Operator is someone that controls something. A user is used. Gaya’s built from the ground up with a different but subtle mindset. This mindset is critical in ensuring the project remains for the operator and not for the user. I’m not here to manipulate, I’m here to create something that can help join things ...
Read post
Gitlab Getting Gone (Day 118)
Total hours: 235.633 Top one: 1) Setting up remote environment on Gitlab Nothing more. Quite frustrating mainly because I don’t know what I’m doing. However that’s how any learning starts. ...
Read post
Auth0 Automatically Authenticates (Day 117)
Total hours: 235.583 Top three: 1) Planning the authentication login setup Not much to really discuss here in this vein. BUT I GOT ITTTTT!!! 2) Got Fly deploy working correctly!!! Okay so there are ARGS and ENV. ARGS are only used during the build process and ENV’s are used during the run process. What this means is that these must be passed into the Flyctl command like so. Also the docker file is modified to have ARG . This signals to Docker that if it can’t find this during build to rais...
Read post
Environmental Ending Excruciatingly (Day 116)
Total hours: 234.583 Top two: 1) Environmental Madness I’m learning what environmental variables are embedded during build and what can be dynamically set. It looks like Dockerfile has access to a particular set and that we need another to actually work for the fly.io environment. I’ve tried setting environmental variables nearly everywhere and narrowed the issue to the Docker and Phoenix build time concepts. Tomorrow I should be able to iron it out!! 2) Reading Elixir Still working on und...
Read post
Ultimate Understanding Unalyssis (Day 115)
Total hours: 233.700 Top three: 1) Addressing Local Environmental Issue Turns out the lack of proper redirection is that environmental variable isn’t being properly picked up. I solved it for outside environment but for some reason, INTERNAL environment it’s not properly being picked up. That is the mygaya.day it’s coming up as empty. Completely empty, I’m not sure exactly how to troubleshoot this given that it’s running in a remote docker container but I’m confident that I’ll find a solution...
Read post
Domain Dangerous Designs (Day 114)
Total hours: 232.467 Top one: 1) Researching Auth0 Direction Very basic design. Nothing more to discuss really. I also flirted at device registration idea (but way further ahead). Just a basic idea right now. ...
Read post
Assine And Arguments (Day 113)
Total hours: 232.267 Top three: 1) Integrating Auth0 Signin I got it working!!! It only took a few hours but I got it working before it stopped working 😢. 2) Auth0 Troubleshooting Redirection It’s mysteriously redirecting w/o the domain part which is extremely confusing and I’m not sure exactly what I’m doing wrong. The odd part is that I don’t think it’s a local issue (what I originally thought). Or an environmental issue because the environmental variables (when changed to ones that I ca...
Read post
Troubleshooting Terrible Types (Day 112)
Total hours: 223.700 Top one: 1) Troubleshooting Auth0 integration. Elixir and Phoenix not very easily setup so I’m having to take it slow. Absolutely possible but slower than I’d like. ...
Read post
Phoenix Phinally Phuctioning (Day 111)
Total hours: 226.600 Top three: 1) Google Social Provider Finally got it working!!! It was a snap after I got the API setup and the integration perfectly redirected to auth.mygaya.day!!!!! I’m sooo happy!!! This is something that has taken waaaay longer than I expected but I’m soo happy that I managed to get it working. Why do I have to jump thru all of these hoops?? It prevents a malicious redirection to another site to then capture the token and then redirect to the legitimate domain. So...
Read post
Email Ending Extremes (Day 110)
Total hours: 222.300 Top one: 1) Email. Dealing with a little bit of email. Unable to do any more today. ...
Read post
Social Searching Sucking (Day 109)
Gaya Total hours: 222.283 Top one: 1) Domain Issues I finally tracked down the culprit. It turns out social providers (like Google) require a custom API key and the demo one doesn’t work. This causes the linking to go to the main auth0 page which then relinks to the ‘auth0’ branded page (instead of my own domain). This lack of integrity means that I’ve finally (hopefully) found what is causing a mismatch and the dreaded ‘unexpected error occurred... you might have pressed the back button, to...
Read post
Dollars Do Die (Day 108)
Total hours: 221.783 Top three: 1) YNAB and CIBC Matching Booked to get an offer I wasn’t aware of. An extra 400 would really do wonders for Sapphire Pack. 2) Updating Quickbooks with Amazon Mistake. I accidentally had an elastic IP address unattached and that ended up costing me 0.83 cents. That doesn’t sound like much but considering how critical and squeezed Sapphire Pack is. I can’t be wasting dollars on easily avoidable mistakes. 3) Off the books (kinda) But got a temporary Sapphire P...
Read post
Authentication And Auth0 (Day 107)
Total hours: 221.483 Top three: 1) Auth0 Login CORS Issue When you’re running on an http local server. Certain required POST features don’t work (except kinda in Chrome for 2 minutes). I ended up using a proxy which kinda solved the issue (thank goodness Auth0 has phenomenal documentation). However I wasn’t able to solve it unfortunately. It turned out later that the issue is with using Custom pages w/ a custom domain. There needs to be some other code that’s changed. That’s an issue to fig...
Read post
Damm Dang DNS (Day 106)
Total hours: 219.783 Top one: 1) Attempting to fix DNS issue with mygaya.day No such luck. Traced it to perhaps a certificate issue but I’m not entirely sure anymore. Quite frustrating and unsure of what to do. ...
Read post
Luminious Lightsail Learning (Day 105)
Total hours: 219.667 Top three: 1) Lightsail Configuring mygaya.day to point to the correct lightsail instance located in Montreal Quebec. Certificate generation was partially difficult but managed in the end. Certbot generates one format and you need to convert this to another format and put in specific places to allow an encrypted connection. 2) Certificate Generation See above. I finally got it working (kinda). The connection is encrypted but something is misconfigured because I can’t ...
Read post
Email Ending Endalysis (Day 104)
Total hours: 218.0700 Top one: 1) Email processing again :( ...
Read post
Excruciating Ecto Exploration (Day 103)
Total hours: 218.054 Top one: 1) Explore tying in Ecto associations The issue with doing it post pushing is that after I figure out how to tie in Ecto associations. The issue is compounded because I’ve already pushed to remote a non functional version of Ecto association. What this means is that while the database connections ARE functional. There is NO Ecto associations at this time. So after I get Ecto associations working I’ll need to backtrack and compare the two schemas and derive a migr...
Read post
Frustrating Financial Forcasting (Day 102)
Total hours: 217.938 Top three: 1) Financial Planning Got things covered using Quickbooks. I ended up encoding all the financial exhaustion within YNAB because Quickbooks doesn’t provide the option of reoccurring transactions until I pay another 200 dollars (CAD) to upgrade. Even at this rate it doesn’t provide a good burndown visualizor of any kind. What’s most stressful is the realization that the ground is coming up fast the lack of knowledge of how much more money is needed to be invest...
Read post
Email Emptying Embox (Day 101)
Total hours: 216.800 Top one: Cleaning up email box and pivoting for finishing this first 10 days of sprint. ...
Read post
Exhilarating Ecto Exploration (Day 100)
Total hours: 216.783 Top three: 1) Ecto implementation This took most of my day and I’m proud to say that I am ahead of schedule as of today. I could start using the system w/ it’s current configuration (Ecto would be severely stunted because some parts don’t line up all the way right, but it would work). Ecto is a beautiful way to interacting with the database that avoids some very common pitfalls like the N+1 queries, magic which causes your code to slow down the road along with not making...
Read post
Examining Elixir's Ecto (Day 99)
Total hours: 212.567 Top three: 1) Ecto Begin Reading Ecto is the database/persistence layer which is extremely robust AND supports out of the box wonderful testing and other crucial capabilities including constraints, transformations and mappings. It’s extremely powerful for rolling back and forward changes which is crucial for Gaya in the event that bad code is deployed or an update needs to be rolled back. Depends on Elixir so I’m also reading up on Elixir. 2) Elixir Begin Reading Rea...
Read post
Devious Database Designs (Day 98)
Total hours: 211.567 Top three: 1) Operator Table Setup This is important because the operator can access the account in more than one way going forward. For example Google, Facebook, Github etc... We need to be able to correctly link to the same operator each time. Furthermore the unique id per social authenticator is different so the table design needs to be robust enough to account for that without adding a million columns. I’ve settled on id, oID, provider and core for the providers tabl...
Read post
DNS Nightmares (Day 97)
Total hours: 211.100 Top three: 1) DNS Records This all relates to (3) which I’m trying to achieve. However there’s an issue which is that I can’t have a null root domain (that is a domain that doesn’t have an A or AAAA record. A record points to an IPV4 address and an AAAA record points to an IPV6 address. From my extremely limited understandings CNAmes are built ontop of A records. So without an A or AAAA record the CName records while queryable throw the web browser for a loop since it’s ...
Read post
Beginning Auth0 (Day 96)
Gaya Total hours: 210.067 Top three: 1) Auth0 Beginning the setup along with ensuring that the dev pages are obvious as dev and not prod or staging. This ensures that we aren’t leaking credentials onto the wrong place or site. 2) Subdomain DNS complexity and having to setup the subdomain for development, staging and production (not yet set up since requires planning what’s hosting and where). 3) Repo I’ve done many different kinds of repos from mono repos that are plain to more advanc...
Read post
DNS Troubleshooting and financial worries (Day 95)
Gaya (DNS Issue and troubleshooting) Total hours: 209.050 Top three: 1) Digital Ocean Attempt for Wiki.js This was ultimately fruitless but I learned alot about DNS and ended up hitting an issue that’s extremely difficult to solve and a known Node issue with http.get and ERRConnection. I tried updated the DNS in several places (who knew that Ubuntu had soo many places that DNS was updated/cached?) The reason that I was needing to update the DNS was that Digital Ocean’s DNS servers weren’t...
Read post
Day 94
Gaya Total hours: 204.900 Top one: 1) Exploring Cryptographic root key synchronization w/o revealing the key to the server operator. At this point I’m taking a hiatus and will be back later this month. ...
Read post
Day 93
Gaya Total hours: 204.850 Top three: 1) Planning expectation of data revocation and networking This is still quick limited. At this point there is no escrow key setup. If an operator losses access to their devices there is no mechanism currently for recovery. This is because browser data is class 2. This is a decision that I stand firmly by because that data is extremely private. I don’t want the risk of it falling into bad hands. No hands except your own should be trusted for that. 2) Wi...
Read post
Day 92
Gaya Total hours: 203.950 Top three: 1) Crypto threat and recovery model This is quite complicated. It’s difficult because any proposed solution that I come up with requires some kind of storage of keys to verify that the data hasn’t been tampered with. This in turn locks the data from being rekeyed which is an important requirement. Assuming data isn’t rekeyable or only partially rekeyable leaves certain threat vectors open. At this point I’ve settled for the idea that the individual devic...
Read post
Day 91
Gaya Total hours: 201.917 Top three: 1) Google Authentication Flow This is not complicated but there were many ways to design this. Since it’s starting out first as a connection. The final design is quite simple yet extremely scalable. Each provider combined with a CID which is the complex Identification (think of as primary identifier for that provider). For twitter this would be their userID, for google the email address and so on. Each row of the table would point to a OID (operator ID)...
Read post
Day 90
Gaya Total hours: 200.983 Top one: Inspecting Auth0 integration options for Gaya and applying for the startup biz options. Every cost saving measure that is not low quality but rather an investment into the future is absolutely worth it. ...
Read post
Day 89
Gaya Total hours: 200.633 Top three: 1) Basic Sync Concept I got this done!!! I tested the main ways that synchronization can occur and have found there to be no possibility of a sync conflict. This is because for browsers history there is only one operation that can be done (delete it). So conflicts aren’t possible at all. I’ve designed it to ensure it’s privacy maximizing. When the operator deletes that page from the browser. The history and time are wiped out immediately from the databas...
Read post
Day 88
Gaya Total hours: 199.200 Top three: 1) Browser Sync This is now the MVP. I’ll be implementing it over a simple API system that is size limited along with ensuring that the server never actually sees the pages viewed by the client. This is yet to be figured out but requires some advanced crypto design along with atypical syncing concept. The reason is that when an operator deletes something from a browser it should be wiped out as much as possible, after a successful sync to the server. Tha...
Read post
Day 87
Gaya Total hours: 197.717 Top three: 1) Ported SPacket Documentation I realized that I needed to get a MVP out there and then I could work on slowly adding in 2SSL. It’s an advance protocol and while it would have it’s benefits at current it’s outweighed by the complexity and requirement to implement complicated event based code in multiple languages simultaneously. 2) Browser Sync Planning How to synchronize browsers between devices of different brands. Much more complicated than it seems...
Read post
Day 86
Gaya Total hours:195.800 Top three: 1) Quickbooks Setup I’ve setup Quickbooks and had a massive horrible feeling. I’ve made no progress at all. None really. I haven’t budged one inch forward. The protocol that I am working on at 2SSL doesn’t provide any value directly to the consumer nor provide long term benefit to Sapphire Pack. When I’m looking at money and net income and where I’ll start and begin having. Okay it does provide value but the question is the value provided worth the hassl...
Read post
Day 85
Gaya Total hours: 193.817 Top two: 1) Financial Setup The bank I'm at is wonderfully helpful when you're first setting up and then BAM they tend to disappear otherwise. It's frustrating to deal with them but it's what I need. The bigger banks are in a better position to help a biz grow then a smaller credit union. 2) Landing Pad Redesign A landing pad is a unique UUID that maps a physical file being transferred from one or more devices to a specific target. Sine 2SSL is blocked based...
Read post
Day 84
Gaya Total hours: 193.283 Top one: 1) File transmission protocol. Unlike other protocols this is the first one that is block oriented. Giving almost limitless and effortlessly parallel along with multi agent collaborative transfer and retransmission of data. At the protocol level everything is either a ‘command’ or a ‘block’. There isn’t any other kind of SPacket. The main issue is currently the 1MiB fixed packet size which is chosen because it provides extremely well setup storage and easy ...
Read post
Day 83
Gaya Total hours: 193.033 Top three: 1) Files Storage It’s not a cloud storage provider, it’s a new way of synchronizing information instead of files. This makes it hundreds of times more complex because we’re not blindly syncing files but rather we have to understand the information, context and why it’s likely there and translate it and provide access in the correct context across all the operators devices. 2) Backup Consideration Gaya won’t be responsible for backing up data. It shouldn...
Read post
Day 82
Gaya Total hours:192.917 Top three: 1) File Distributed Remote Storage Port to Wiki Important concept which dealt with UUID allocation, event emission and the lifecycle. However conflicted with several other issues and concept and designed way earlier on during the design of Gaya. 2) File Transmission Port to Wiki I realized that I was mixing a lot of complicated transmission of files into the 2SSL protocol. So at a later date I’ve vowed to separate the file transmission from the 2SSL libr...
Read post
Day 81
Gaya Total hours: 191.367 Top three: 1) Azure Attempt Attempting to integrate azure search because I wasn’t able to find a basic piece of information. In hindsight I got distracted and need to focus on full wiki migration before worrying about infrastructure improvements. Azure is quite complicated and seems to just hold onto the credit card like a leach. At this point I’ll be cancelling it in full in the coming days. 2) Agolia Attempt Part of distracted and tried to integrate better se...
Read post
Day 80
Gaya Total hours: 190.600 Top three: 1) Wiki Migration This is actually more complicated because there are a lot of ideas that need to be reslotted and massaged. Understanding the architectural differencences and massive issues with accepting or not accepting an idea. 2) Files This is an important concept that is also based heavily on amazon file storage of hot, cold and frozen. The terms are changed in terms of download/permenance. Hot is file that is never actually stored to the dis...
Read post
Day 79
Gaya Total hours: 190.233 Top three: 1) Ephemeral Files, Queue Pumping Abstractions. To make high level 2SSL simpler and more reusable on server and client. 2) Website Basic sapphirepack.org website redone. Extremely extremely simple operation. 3) Wiki Migration Stuck on the paper to code migration trying to understanding the sticking points and interrelated issues and how architecture is changed. ...
Read post
Day 78
Gaya Total hours: 189.00 Top three: 1) Finished 2SSL virgin connection protocol 2) Setting up website 3) Migrating paper notes ...
Read post
Day 77
Gaya Total hours: 186.100 Top three: 1) Authentication Flow Since I'll be using an identity provider I need some way to tie the 2SSL session to the social provider so that a revocation from social provider will revoke immediately on server side which will then revoke on clients device shortly afterwards. Furthermore dealing with long term identity verification along with bridging and passing data from browser to desktop or mobile application. 2) Wiki Migration This was overdue including...
Read post
Day 76
Gaya Total hours: 182.933 Top three: 1) Banking Setup This took way longer than I hoped and I’m still without the credit card part. 2) Legal TOS Began planning and trying to understand what protections and at what levels we’ll offer. A ‘just trust us’ mentality while nice doesn’t do much for 3rd party snooping. 3) Financial planning Since the company is facing a steep startup cost in which for the first several years no income will occur, I need to minimize as much as is possible the ...
Read post
Day 75
Gaya Total hours: 180.067 Top three: 1) Executable Class Design This is designed as a wrapper and creator class that enables both the Task and Dispatcher thread to be more abstract and hide complexity and mapping issues. 2) Banking and Biz Research Currently acquiring CC at the current bank isn’t worth the hassle. I’m requiring CC in order to purchase online services. However I ‘m not willing to mix personal and company finances together at alll. Therefore I’m considering transferring my ...
Read post
Day 74
Gaya Total hours: 178.017 Top three: 1) Setup Biz Banking with final runway 2) Looked at pricing again along with new 5, 10, 20 year plan 3) Worked on 2SSL to code ...
Read post
Day 73
Gaya Total hours: 174.867 Top three: 1) Network Task Processor Researcher 2) Call Stack and JS understanding 3) Timeout and SetInterval differences between Web vs Node ...
Read post
Day 72 TaskProcessor
Gaya Total hours: 173.217 Top three: 1) Got UUID_r 100% test coverage 2) Finalized TaskCreator 3) Got layer_0 code w/ no errors ...
Read post
Day 71 100% Code Coverage for Decryption Engine
Total hours: 171.567 Top three: 1) Decryption Engine 100% code coverage for test 2) Increased Encryption Engine code coverage to 98.29% 3) Fixed Typescript Issue for plain mocha testing ...
Read post
Day 70 Decryption Code and UUID Session
Total time: 168.133 Big Three : Testing Crypto Core Testing Encryption Engine Troubleshooting Decryption Engine ...
Read post
Day 69 Wiki and Testing UUID
Total time: 164.083 Big Three : Testing UUID Finalizing Crypto Wiki setup remotely ...
Read post
Day 68 Session and UUID Generation
Total time: 160.633 Big Three : Setting up testing Wallaby UUID Generation and requirements Crypto verification ...
Read post
Day 67 File transition and Mutli account linking
Total time: 158.350 Big Three : Decryption Engine Secondary Logic Planning Server Anti Replay UUID Investigating Multiple Identities Tie In ...
Read post
Day 66 Decryption Engine Setup
Total time: 155.083 Big Three : Decryption Engine Primary Logic Sodium Library Truoubleshooting Addressing Typescript Odditites ...
Read post
Day 65 Slowing down 2SSL
Total time: 148.500 Big Three : Encryption UUID_t Typescript wrangling and settling on placeholder and boolean detectors Encryption UUID and other interfaces and types design ...
Read post
Day 63 Encryption Engine Transcript
Total time: 144.217 Big Three : Layer 1 Continued Storage Engine and remote permissions Encryption Engine Write to Code ...
Read post
Day 62 Coding and Discovering Idea Migration
Total time: 142.933 Big Three : Layer 1 Paper Coded Browser Authentication Interface Encryption Engine Write ...
Read post
Day 61 Paper to Code Begun
Total time: 138.833 Big Three : Layer 4 now in code Layer 2 now in code NetworkTask Manager close to finalization on paper ...
Read post
Day 60 Ack and command packet
What I did: Layer 3, and 2 Total time: 134.817 Big Three : Using Pull concept EFile and Event Loop prevent unnessary freezing and flexibility Improved Unified Global Filesystem with special unlock file ...
Read post
Day 59 Major Breakthru in 2SSL Protocol Design
What I did: Breakthru in design Total time: 129.033 Big Three : Simplified Protocol by going more complex in one direction which provides massive stability, longevity and flexibility in another vein Worked on Layer 3 Created Unified Global Filesystem Naming Concept. (That is all devices are leafs within a global filesystem). ...
Read post
Day 58 Automation and Groundwork
What I did: Groundwork and Long Term Automation Total time: 123.617 Big Three : Researching and settling on automation framework for cloud and environment Setting up Repository Pattern Began Migration to Public Source Control Provider ...
Read post
Day 57
What I did: Began coding website Time spent: 119.333 Comments: UI Design for both static and non static areas HTML/CSS Research HTML Development Troubleshoot CSS Snapping ...
Read post
Day 56 Website Color Pallet Design
What I did: Finished up Website color pallet choosing Time spent: 116.867 Comments: Health script repair Color Pallet choose Primary day https://coolors.co/f7f7fb-1c1d21-3f612b-119da4-e94f37 Primary night https://coolors.co/1c1d21-f7f7fb-3f612b-e3b505-e94f37 UI Design and Theme. I'm trying to figure out how the UI will flow and interact so that switching from the landing page to an operator's account will be absolutely seamless. ...
Read post
Day 55 Layer 1 Encryption State
What I did: Finished up Crypto.decrypt, rxUUID and txUUID along with reengineering state management for UUID reissuing. Time spent: 115.60 Comments: Working on UUID_t and reading thru code to see how it's used. .getUUID():UUID, .valid(UUID):boolean and throws RefreshStateError if out of UUID's to use. txUUID has .getUUID():UUID and rxUUID has .valid(UUID):boolean Both are constructed using Uint8Array[] Alright finished txUUID() which is the easier of the two. Now working on rxUUID() which...
Read post
Day 54 Layer 0 Encryption Engine and UUID_t
What I did: Finished up Crypto.encrypt and studying UUID_t Time spent: 112.850 Comments: Finished Crypto library .encrypt() feature. Defining UUID_t code. Now. ...
Read post
Protocol Design
https://www.linkedin.com/pulse/designing-network-protocol-cubes-endurance Why the fuck would you design a protocol? That's a very very good question. Usually when you can't have any of the current setup work and there are massive issues, unfixable issues or otherwise badly designed issues with the protocol that you wanted to use but can't. Before we can dive into how to design a networking protocol, using 2SSL (Secure Sapphirian Layer) protocol, you first need to understand theory and analysi...
Read post
Day 53 Layer 0 Encryption Engine
What I did: Studying Encryption Crypto Time spent: 112.850 Comments: Working on Crypto library. Turns out the null is a secretNounce which isn't??? used? ...
Read post
Day 52 Layer 0 Encryption Engine
What I did: Studying Encryption Crypto Time spent: 112.633 Comments: Updating application setup to pass context thru. Studying https://github.com/jedisct1/libsodium/blob/master/src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c to understand why sodium.crypto_aead_xchacha20poly1305_ietf_encrypt( plaintext, assocData, null, await Utils.hexStringToArrayBuffer(nonce), await Utils.hexStringToArrayBuffer(key) ) Alright linking a...
Read post
Day 51 Layer 0 Cryto
What I did: Continued fleshing out Time spent: 111.917 Comments: Working on Crypto.encrypt. Method that is hiddenly complex. If has encryptionKey don't return encryptionKey Return encryptionKey Nounce and Tag Encrypted Data. Researching the library now to understand. Alright understanding. However since building for: Web Desktop Mobile That means that I'll need to create an 'wrapper layer' to ensure that we can communicate. Alright so for web we can use: https://deve...
Read post
Day 50 Layer 0 Encryption Engine Fleshout Near Finalization
What I did: Continued fleshing out Time spent: 110.167 Comments: Continued to work on writing the mind numbingly simple functions. It's what a complex system is made out of. Currently on insertPayloadHeader(encryptedFullHeader, sessionID, nounce, encryptedRawInnerHeader, tag) ...
Read post
Day 49 Layer 0 Encryption Engine Fleshout
What I did: Encryption, Data type definition and data organization Time spent: 110.167 Comments: For the command flow here's how the encryption of the CommandMidHeader is converted to EncryptedRawHeader. Spread CommandMidHeader into DecryptedRawInnerHeader Drop in Anti Replay UUID Use 2SSL Session Derived Key and random nounce and encrypt DecryptedRawInnerHeader Use 2SSL Session Derived Key and random Nounce and Encrypt DecryptedRawInnerHeader Place SessionUUID, random Nounce...
Read post
Day 48 Encryption Engine and Typing Galore
What I did: Typings, Implementation and Missing links Time spent: 107 Comments: Figuring out how to use typed array. Examining XChaChaPoly1305 implementation details in SNCrypto along with figuring out types Designing Layer 0 Encryption Key. https://doc.libsodium.org/secret-key_cryptography/aead interface EncryptionKey extends Uint8Array{ length: 256; // using the numeric literal type '2'} Breaking down tasks that we also need to do that are in itself quite massive that are fundamental...
Read post
Day 46 Layer 1 Memory, Complexity, Session and Errors
What I did: Layer 1 memory, retry and error research Time spent: 102.250 Comments: Looking at data structure to keep track of which numbers used Extremely complicated. Has repurcussions on layer above and below. Along with worst case memory usage of close to 6GiB of 'cached' data which is really really really really bad. Plus since below session details impossible or very difficult to retroactively update and connect to a session. However since most actions will occur within an operator s...
Read post
Day 45 Layer 0 Design Completed
What I did: Layer 0 completing and Layer 1 design Time spent: 101.167 Comments: Push based task interface. Within the network layer everything is pushed based. The frontend overall will be pull and push based. That is it can push an unlimited amount of things remotely and pull data on demand. However the overall architecture for the backend is pull based just like CloudFlare which allows better control over work scaling and automatic load bearing and resources adjustment. Network Layer 0 in...
Read post
Day 44 Link Level 0 Interface Design
What I did: 2SSL Link Level 0 Interface Design Time spent: 98.433 Comments: Issue with Git remote pushing not working NX generate library Realtime system and chaining by mimics Apollo computer system Event bubbling and priority raises Level 0 design and event rerouting. ...
Read post
Day 43 Link Interface
What I did: 2SSL Link Interface Time spent: 94.383 Comments: Dealt with link interface, organization, bypassing of a state guard in initialization along with ensuring that special cases aren't treated as special cases. Understanding advanced typescript typings... Setuping up Vue/Typescript Project using VueMastery Looking at Vue Getting started. ...
Read post
Day 42 Continue Developing 5 Layer System
What I did: 2SSL Continue developing layers Time spent: 94.383 Comments: Designing the retry and session refresh as a separate stack that interacts with the 2SSL stack. That is the 2SSL stack is just for communicating. The actual how the session UUID and other stuff is managed is done via separate stacks which allows seperation of what with how. ...
Read post
Day 41 Begin Developing 5 Layer System Component
What I did: 2SSL breaking into layers Time spent: 94.383 Comments: Ran system checks and bootup routine. (1) Need to finish writing the Overview in 2SSL with the protocol Reconnection via 2SSL 24 Disconnection (need to design the five layer system before anything else can be done) 5 Debugging 5 min Disconnection (need to design the five layer system before anything else can be done) Rest of time spent (37) ...
Read post
Day 41 Begin Developing 5 Layer System Component
What I did: 2SSL breaking into layers Time spent: 94.383 Comments: Ran system checks and bootup routine. (1) Need to finish writing the Overview in 2SSL with the protocol Reconnection via 2SSL 24 Disconnection (need to design the five layer system before anything else can be done) 5 Debugging 5 min Disconnection (need to design the five layer system before anything else can be done) Rest of time spent (37) ...
Read post
Day 40 2SSL Network Fleshour connection
What I did: Network setup Time spent: 93.183 Comments: Dealt with MR conflicts Package and package-lock.json both have conflicts. If I can fix the package conflicts then npm will automatically fix package-lock.json. Dealt with server critical issues. There were two security updates that were related to vim and vi. Removed both packages to avoid having a reboot. Set server to reboot every day to apply security updates. Dealing with git issue where a push was apparently divergent...
Read post
Day 39 Putting out HSTS False Positive Fire
What I did: Fixed HSTS issue in heath.js Time spent: 91.250 Comments: The API service I was using stopped correctly responding to SapphirePacks status so I ended up switching to a different browser controlled solution which queries a site, reads a response directly from the site and from there returns to the executing code. Continued working on the transfer protocol and fleshing out the various cases. I realized that I'm gonna need about five layers of software code in order to make the laye...
Read post
Day 38 2SSL File Transfer Fleshout
What I did: Continued working on file transfer fleshout Time spent: 88.967 Comments: There are two components we need to understand: 1) The transport and session layer. 2) The actual data transfer layer. Allows transferring an arbitrary data up to 34PiB in 1MiB chunks (ish). The session layer is separated from the transport layer. This is so that the session can be managed separately from 2SSL connection which doesn't make sense until you look at the data center structure. What occurs her...
Read post
Day 37 Working on Daily Operations and Specing out 3 layer protocol
What I did: Planning 3 layer protocol Time spent: 85.650 Comments: -> Setup Daily Operations -> Plan three sprints -> Begin working on new story 11 minutes Setup Daily Operations 0 minutes all three Sprints planned 5 minutes setup Jetbrains Youtrack Integration (so don't have to manage branches and issues) 12 minutes Plan full three layer stack of Gaya ...
Read post
Day 36 Infastructure Setup
What I did: Setup Sapphirian Infastructure Time spent: 82.583 Comments: Dealing with setting up server with high level of security and two separate systems. Local network for Git and YouTrack. Currently both are over http but since it's over a local network and port forwarding on router isn't setup we're good enough. Secured UEFI setup and disabled booting from anything but internal harddisk. ...
Read post
Day 35 Testing and Mutations
What I did: Testing, Mutations and Health Time spent: 79.783 Comments: 1) Check that sapphirepack.org is on HSTS preload list. There were several ways but ended up settling on the hstspreload.com api which is called once per run. This ensures high level of security in the event that certificates fail. 2) Setup intermediary project management system YouTrack. I'm now having alot of issues and project components that need prioritization along with tracking. Within a week move to Gitlab self h...
Read post
Day 34 Defined TLS Health System with a clear Success/Failure indicator
What I did: Defining a single script that outputs the first line that gives at a glance status for the entire system. (Red/Yellow/Green). Time spent: 75.783 Comments: Transfer testing to using JSON. Easier and now able to pinpoint exact error. Furthermore more portable and not using a weird file. Tests are generated dynamically during runtime along with using NX caching capability meaning only the changed projects actually run. Currently 100 cryptographic tests take approximately 3.1 sec...
Read post
Day 33 Testing Exploration
What I did: Looking at how to convert a massive file into a JSON object Time spent: 72.283 Comments: ...
Read post
Day 32
What I did: Moved testing to test folder and fixed module resolution Time spent: 72 Comments: ...
Read post
Day 31 Nodeify and Backup
What I did: convert quantum protocol to node version Time spent: 71.783 Comments: Convert to require() Migrating testing and discovered several fields aren't used. Code is I'm transforming is very hacky and not well designed. ...
Read post
Day 30 Authentication, Header and ZeroSSL understanding
What I did: improved protocol and transcribed to documentation Time spent: 71.517 Comments: 1 - This just like regular packets have a component that can be forged by external systems. However replay attacks are different then hold and send later attacks. For the first we're protected against. For the second (that is a message is intercepted and held so that it doesn't arrive and then some time in the future it's released, the system will accept (presuming the connection wasn't closed)). Howev...
Read post
Day 29 2SSL, PiB data transport and quantum key exchange protocol
What I did: Simplify protocol, review quantum protocol and review 2SSL transmission protocol to ensure data up to 1PiB can be transported. Time spent: 69.333 Comments: 1 - Deal with Green Geeks answer regarding 2SSL so we're stuck with 128 bit encryption for main site on Firefox.... 2 - Dealing with version, security, replay attack and randomValue (avoiding issue with Unicode encoding issues) along with versioning 3 - Quantum Key distribution understanding 4 - Header redesign since each 2...
Read post
Day 28 TLS and odd jobs
What I did: A bunch of odd jobs Time spent: 67.167 Comments: I had issues with CertBot so I discovered and used ZeroSSL. I had to first host the subdomain directly on SapphirePack to allow the certificate issue to work. Then after the ACME challenge was generated and passed I generated the certificate and then setup DDNS. I tested it and it worked out!!! This is very big news because it saves me close to 500 or more dollars and also allows some special network setup which allows the server ...
Read post
Day 27 Security Upgrade and Tentative Step for solving dynamic DNS
What I did: Ensured site sapphirepack.org only ran using latest 256 bit encryption and restricted to using TLS1.3. Time spent: 65.150 Comments: The biggest thing is ensuring a high level of security for the static content of the site. For the dynamic content, I'm not willing to do cloud since I believe that we should be able to self control the most important hubs of Gaya. This will be processing some of the most important data, acting as relays and such. There are several benefits and draw...
Read post
Day 26
What I did: Plan backwards compatibility and thought experiment Total time: 64.383 Comments: Now that I've split the session and security into two separate layers the first thing is ensuring session negotiation is compatibility. I'm pulling off of TLS concept for key negotiation and seeing if I can do it in a single round trip (since TLS has already done a few trips (2 or so I believe)). ...
Read post
Day 25 Simplify 2SSL and review Quantum Proptocol
What I did: Read and simplify protocol along with reviewing how the quantum protocol works and planning tomorrow. Total time: 64.350 Comments: Realized I had mixed session and operator togeather. Simplifying and worrying about deauthentication attacks and denial of service attacks this way. In a future protocol may have a ignore deauth so that if communication is occuring over a hostile environment that it'll stand a better chance to make the communication succeed by ignoring likely false una...
Read post
Day 24
What I did: Finished migrating 2SSL documentation specs Total time: 63.750 Comments: This was a much bigger job than I expected because the documentation ended up having alot of extremely big holes that had to be dealt with right away along with issues in terms of terminology, storage, bootup, migration. The biggest issue is the need to design storage that doesn't place restrictions on how a system is implemented yet provide enough universality between implementations that future installatio...
Read post
Day 23
What I did: Planned next big step Total time: 57.883 Comments: 1) Plan Next Big step (30 day target) Done the goal is simple yet also quite complicated because it involves determining the architecture and overall complexity/simplicity of the system. I've settled on a 2SSL terminator -> Session Unwrapper -> Worker -> Session Wrapper -> 2SSL Intiator 2) Plan each set of 5 hours chunks Here is the current plan: 5 hour milestone: Transcribe and bring spec docs up to ...
Read post
Day 22 Consolidating Ideas Sent
What I did: Consolidated Ideas Total time: 56.467 Comments: An important part of any projects is managing the ideas. You may not use them now, you may not use them ever, but keeping good track of those ideas are super important. For example did you know that SSL and TLS are not the same thing? TLS is more secure and modern than SSL. I wanted to ensure that Sapphirepack.org was running with the latest security standards for encrypted connections. For the frontend I'm likely to go with Gasts...
Read post
Day 21 Nx Search
What I did: Tiny Nx repo understanding Total time: 56.167 Comments: ...
Read post
Day 20 Short term security fix
What I did: Total time: 56.150 Comments: Setup two layers of security with the public/private key, including a hardcoded expiry requirement and list of pubic and private keys (signed with a primary key to authenticate and verify that changes are authorized). Looked at TweetNacl and realized I'm going to have to wrap it along with Base64 because of how it works. Exploring the places that I'm going to need to use the public/private crypto and designing the 'perfect' api so I understand what I ...
Read post
Day 19 Basics of Testing
What I did: Basic Testing Total time: 54.700 Comments: I got it to successfully generate a shared session secret. However there's a minor problem I just realized, this library just creates a shared session secret but doesn't allow using a long lived public/private key pair to verify the ssl2client is connecting to the correct ssl2server. The use case is to prevent catfishing or hijacking the domain. However I'm coming up against issues that's making me rethink parts of the protocol. ...
Read post
Day 18 Monorepo and Security
What I did: Setting up the mono repo + importing library Total time: 54.200 Comments: I got a MR accepted https://github.com/antontutoveanu/crystals-kyber-javascript!!! This feels so good even though it's a tiny change. The reason that I'm going with a monorepo is to avoid as much software security chain violations. We've seen bad code get injected via a 3rd party dependency. By moving the most critical third party dependency as shared libraries directly managed and controlled within the rep...
Read post
Day 17
What I did: Began dissecting the Public/Private Key Quantm crypto Total time: 53.067 Comments: ...
Read post
Day 16 Public and Private Keys
What I did: Researched public and private key system for over the air and quantum resistant key crypto Total time: 53.033 Comments: Looked at DHole again for NIST-Finalists for Post Quantum crypto. Here is the current realizations: 1) Need to negotiate a secure tunnel using Public/Private Key system that can resist quantum attacks. 2) The session once derived can use XChacha20-poly1305 which even using Grovers Algorithm gives 128 bits of security which is 'enough' for current day. 3)In the ...
Read post
Day 15 Business research
What I did: Continued price research and cost analysis Total time: 51.717 ...
Read post
Day 14 Encryption and Business research
What I did: Research encryption and income opportunities Total time: 51.067 Comments: https://soatok.blog/2020/07/12/comparison-of-symmetric-encryption-methods/ I knew what the decision was going to be after looking around, I just needed to come to terms with it you know. It's a beautiful library that's been audited. I've made the difficult decision to AGPL the code because I want access to the beautiful crypto library that SN has built. Furthermore I know it's the right thing to do. Having ...
Read post
Day 13 TDD Unauthenticated to Authenticated : The Basics
What I did: Getting stuck on actually implementing this gem of an idea Total time: 49.067 Designing blob storage and wrapper library POC api. The idea is that the blog storage of a file will be seperate than the actual file. There will be a few events such as: A fileID once processed is permanent. However once I realized I was drifting off of the target, which is setup the SSL2 communication I went back to SSL2 communication. Comments: I was focused on figuring out Mocha, then realized my a...
Read post
Day 12 SSL2 Library Creation Start
What I did: Began actually writing out code!!!!!! Total time: 48.033 Comments: Designing the keystore, session management and operator system. Setting up Typescript and Mocha (for req testing). ...
Read post
Day 11 Costs and prioritizations
What I did: Total time: 46.783 Comments: Costs for security analysis isn't something that I can afford currently and it would be immoral to launch and claim an above standard security level. So I'm left at this weird part having hopefully increased security but not being able to prove it until hopefully 2024 or sooner. Setup a library for Error Code ...
Read post
Day 10
Total time: 46.533 ...
Read post
Day 9 Protocol Error Code Tentative Finish
What I did: translated last 4 errors into HTTP and SSL along with researching session token and OWASP security. Total time: 45.783 ...
Read post
Day 8 Protocol Error Code Continuation
What I did: HTTP and SSL2 protocol use along with a few confusing and similar ones. This is why I flesh them out like this!!! Total Time: 45.483 ...
Read post
Day 7 Protocol Error Code Fleshout
What I did: HTTP and SSL2 codes and use cases. researching 2 providers who can do consoluting for TLS along with asking a key exhausting question finally doing a bit of encryption theory to ensure understanding. Total time: 45.183 ...
Read post
Day 6 Security and SSL2 Protocol examination
What I did: Authentication Total time: 44.083 Comments: Discovered XChaChaPoly1305 may be the break we need provides authentication of data and easily swappable encryption protocols as XChaCha is discovered to be weak. Along with developing a security watchlist on both Google SSL and Standard Notes to ensure that Gaya's security pratices stay quite modern, until we're big enough to afford our own security team. ...
Read post
Day 5 SSL2 Basic Finished and Researching Authentication and Cipher
What I did: Authentication Total time: 43.683 Comments: Discovered annoying bug in protocol where the SSL2 session is tied directly to the authentication of the user by relying on derived secrets. If have time (have approximately 240 minutes before needing to move on [discovered flex in my roadmap by dropping signing and verification from the first spec). So if I can answer an array of questions, I can then revisit the SSL2 protocol and redesign so that SSL2 is seperate from authentication. ...
Read post
Day 4 Authentication Planning over SSL2
What I did: Authentication Total time: 42.667 Comments: Grappling with questions like 'authenticate then encrypt or encrypt then authenticate?' Finding way to minimize the protocol and move session management to a higher level. This level should only be concerned about creating encrypted layer and ensuring the person is authenticated. Session management and tracking should be done at a higher level. Managed to simplify the FSM even more by moving session management to a higher level. Furtherm...
Read post
Day 3 The Great (and almost final plan)
Goal: Finalize features and targets for version 0.0.1 Status: SUCCEEDED Total hours: 38.750 ...
Read post
Day 2
Goal: Install Project Dependencies with Cordova and get a hello world. Status: SUCCEEDED | FAILED Task: - Install WSL2 [Success] - Install Cordova [Success], Typescript [Success], Vue3 [Success], OnsenUI [Failed], - Get Hello World working on Mac[Failed] Realization: I was planning too far into the future and adding needless complexity. In the future I can split the repo's up into mutiple files and pull the 'core' into all the systems. I was substituting theoretical ability to add ...
Read post
Day 1
15 Looking at low poly planets and contemplating designs 45 Beginning to design API for signup/login, along with database and beginning to design threat model 60 Setting up NodeJS14, addressing windows issues, beginning to migrate from WSL1 to WSL2 ...
Read post