Keeping track of your password 'keys' that grant access to your private places is a worsening problem... because passwords should all be frequently changed, but all be different, long, obscure - making them difficult (if not impossible) to remember. Staying logged in to websites for days/weeks/months is ok while the relevant cookies are still available in the browser, but when needing to subsequently sign in at a different computer or browser it can be difficult to even remember the login ID let alone the password.
(it wouldn't be the first time I've had to create additional website accounts because I couldn't remember the original account details, and there are many websites from the past that I can't revisit because I don't even remember their names)
Keeping track of computer passwords is also particularly important when dealing with multiple computers, or multiple OS's on virtual machines... resetting Windows passwords may be an annoyance, but it's not even an option for linux. So this 'Key Vault' project was born out of necessity to keep track of the ever-growing number of logins and passwords. It offers a private local list of logins and passwords, and even just website URL's, which can be always on hand, and which is not dependent on internet access or tied to any particular computer or device.
In addition, it also has option to send the selected password to the browser for copy 'n' paste convenience into a target window if wished, plus ability to embed the password within optional red herrings to cause misleading distractions (herrings aren't red).in packet sniffers To be honest the red herring facility was done more for the fun of it, but I'd rather have it than not. The optional red herring prefix and/or suffix can either be pre-chosen characters, or can be left blank to automatically generate random characters. The lower and upper ascii character 'bounds' can be selected to tailor the range of random characters if wished, eg: chr$(48) to chr$(57) would only give random numbers. The password and red herring colours can both be chosen to differentiate the wheat from the chaff, and the displayed browser text size may be adjusted - catering either for increased copy 'n' paste convenience, or for less visibility to nosy onlookers. The first script is a modification of the OLED Menu, which allows navigation of a list using buttons or an optional rotary encoder. Selecting a list item (eg: a computer name, or website URL) displays the login name and password for the chosen item. Optionally, selecting the displayed info again sends just the password (not the login) to the browser Output page where it can be selected and copied for pasting into a target window. Any further use of nav buttons clears the browser and returns the OLED display back to the list. The script reads a "list.txt" file containing lines of items all terminated with a chr(10) EOL (end of line) character. Each line can have up to 3 fields separated by spaces, which are read into 3 arrays. The first array holds the list of names which are displayed to navigate through. The 2nd and 3rd arrays are for the corresponding data entries. Typically the lines would contain "Computer_name User_name Password" or "Website_URL Login_ID Password" Selecting an entry from the list displays its corresponding 2nd and 3rd data fields, which could typically show the appropriate login ID and password for typing into a target window. Pressing a navigation button (or turning the rotary encoder) returns to the list display. Optionally, selecting the displayed data again will send the 3rd (password) field to the browser Output page for convenient copy 'n' paste into a target page.The login ID field is deliberately not sent to the browser to avoid possibility of it and the password being captured together (most computers and previously visited websites remember and display the previous login ID anyway, which is usually already populated in the target).
Note: When storing just 2 fields of interest such as "Website_name URL", there would not be a 3rd field available to send to the browser for convenient copy 'n 'paste into the address bar, so the simple solution is just to insert a dummy 2nd field - which can be any non-space character, perhaps a brief descriptor) - eg: "Website_name descriptor URL". You obviously need to create your own "list.txt" file containing your list of logons and
passwords. (it's easy to change the name from 'list.txt' to something else if preferred). If the 'list.txt' is not found, the display will show "MISSING LIST.TXT" If you are not worried about your wifi browser activity being 'sniffed' you could create your "list.txt"
file directly on the esp device from the Editor page in the browser.
But electronics can eventually fail, so if you don't want to risk the
possibility of losing your important info, you should back it up elsewhere anyway. Therefore it may make more sense to create the list.txt file on the computer, then upload it to the device via the Toolkit File Manager, which should be quicker, and avoids opening the browser. Either way, you will need to decide whether to leave the list.txt file on the computer (even as a backup) or delete it.
You can set an Annex password to improve device security - but now that we are on the subject of your personal data privacy and
security, you are
strongly advised to continue reading below. OLED version This first script is based on the OLED Menu so it can easily be launched as an App from the menu by changing the following lines in the OLED Menu script... font=2 '1=smallest, 3=largest file=1 '1=treat list of menu items as partial filenames to re-combine with path$ list$="vault,xbmview,ftpcopy,lock,i2scan,wifiscan" 'needs files=1 And don't forget to set nav=0 or nav=1 depending on whether using buttons or optional rotary encoder. See the original OLED Menu project for info on how to change options such as the frame and line numbers etc. This demo video shows the OLED Key Vault in use, or alternatively this LBRY version if preferred. Notice the addition of a LIPO battery to provide convenient portability (the TTGO OLED module has a built-in LIPO charger).
The XBM startup Key logo can be downloaded from the bottom of this page... then upload to the device as "/img/vaultkey.xbm"
Basic:
'OLED Key Vault - by Electroguard - developed on Annex 1.40
'Displays list of computers and/or websites, select an item to display its corresponding login and password 'Optionally select the entry again to display the password in the browser Output page for copy'N'pasting into the target 'Then press anything to clear the password from the browser Output page and return to the list 'Navigate using buttons or rotatary encoder font=1 '1=smallest, 3=largest nav=0 '0=buttons, 1=rotary encoder wrap=1 '0=stop at ends, 1=wraparound from last to first and vice versa linenumbers=0 '1=include item numbers tabbed=1 '1=reserve digit pad spaces for lower numbers frame=1 '1=draw box around menu contents filename$="/list.txt" 'file containing your password list - items separated by spaces, lines terminated by chr(10) linefeed redherring=3 '0=off, 1=prefix, 2=suffix, 3=prefix plus suffix (red herrings are unnecessary distraction characters redherring1$="" 'blank prefix will generate random characters, non-blank chars will be used 'as-is' redherring2$="" 'blank suffix will generate random characters, non-blank chars will be used 'as-is' 'redherring1$="ME" 'non-blank prefix will be kept and used, else blank will generate random characters 'redherring2$="0123" 'non-blank suffix will be kept and used, else blank will generate random characters hercol$="red" 'colour of red-herring prefix and suffix - select to contrast with your chosen password colour (pwdcol$) pwdcol$="white" 'password colour displayed by browser 'pwdcol$="black" 'password colour displayed by browser pwdsize$="7" '1=small, 7=large fromchr=63 'ascii start char for red herring range tochr=122 'ascii end char for red herring range herrings=0 I2C.SETUP 5,4 OLED.INIT 1,1 OLED.CLS oled.image 0,0,"/img/key1.xbm" 'startup image OLED.FONT 2 oled.print 6,6,"Key" oled.print 64,49,"Vault" if redherring>0 then gosub redherrings pause 1500 pos=1 offset=0 if font=1 then w=10: h=10: t=1: cx=6: cy=6: cr=3: b=10: lines=6 if font=2 then w=12: h=15: t=1: cx=7: cy=8: cr=4: b=14: lines=4 if font=3 then w=24: h=21: t=0: cx=8: cy=12: cr=4: b=19: lines=3 OLED.FONT font OLED.COLOR 1 delim$=" " eol$=chr$(10) if file.exists(filename$)=1 then sites$=trim$(file.read$(filename$)) else sites$="MISSING"+eol$+"LIST.TXT"+eol$ sites$=replace$(sites$," "," ") 'gets rid of any double spaces sites=word.count(sites$,eol$) 'counts how number of list items digits=len(str$(sites)) dim site$(sites) dim logon$(sites) dim pwd$(sites) for c=1 to sites entry$=word$(sites$,c,eol$) site$(c)=word$(entry$,1,delim$) logon$(c)=word$(entry$,2,delim$) pwd$(c)=word$(entry$,3,delim$) next c if sites < lines then lines = sites branch$="" debounce = 100 'debounce duration for buttons and rotary encoder contacts longpress=100000 if nav=0 then gosub buttons else if nav=1 then gosub rotary else wlog "invalid nav option": end cls gosub display wait display: if branch$="html" then cls branch$="display" OLED.COLOR 1 OLED.CLS for line = 1 to lines col=0 if linenumbers=1 then n$=str$(line+offset) if tabbed=1 then if font=2 then n$=space$((digits-len(n$)))+n$ else n$=space$((digits-len(n$))*2)+n$ 'workaround for half space font 2 endif OLED.PRINT 12,t+(line*h)-h,n$+" "+site$(line+offset),col else OLED.PRINT 12,t+(line*h)-h, site$(line+offset),col endif next line op$=str$(line)+" " + site$(pos) oled.circle cx,t+(pos*h)-h+cy,cr,2 if frame=1 then oled.rect 0,t,128,64-t return rotary: rotaryA=13 'Rotary encoder pulse B output pin rotaryB=12 'Rotary encoder pulse A output pin mpin=14 'Rotary encoder selector button pin mstart=millis: mstop=millis: pin.mode mpin, input, pullup pin.mode rotaryA, input, pullup pin.mode rotaryB, input, pullup interrupt rotaryA, rotation interrupt mpin, mpressed return rotation: interrupt rotaryA, off if pin(rotaryA)=0 then if pin(rotaryB)=0 then gosub moveup else gosub movedown endif pause debounce interrupt rotaryA, rotation return buttons: lstart=millis: lstop=millis: mstart=millis: mstop=millis: rstart=millis: rstop=millis lpin=12: pin.mode lpin, input, pullup 'left button mpin=14: pin.mode mpin, input, pullup 'middle button rpin=13: pin.mode rpin, input, pullup 'right button interrupt lpin, lpressed interrupt mpin, mpressed interrupt rpin, rpressed return moveup: if branch$="display" then if pos>1 then pos=pos-1 else if offset>0 then offset=offset-1 ELSE if wrap=1 then pos=lines: offset=sites-lines endif gosub display return movedown: if branch$="display" then if pos<lines then pos=pos+1 else if lines+offset<sites then offset=offset+1 ELSE if wrap=1 then pos=1: offset=0 endif gosub display return selected: if branch$="display" then branch$="selected" selected$=site$(pos+offset) oled.cls oled.print 10,10,selected$ 'show selected item for confirmation oled.print 10,30,logon$(pos+offset) 'show selected item for confirmation oled.print 10,50,pwd$(pos+offset) 'show selected item for confirmation return endif if branch$="selected" then branch$="html" oled.cls oled.print 10,10,"PWD shown in browser" 'show selected item for confirmation oled.print 10,30,"Press again to clear" oled.print 10,50,pwd$(pos+offset) 'show selected item for confirmation msg$=|<font size="|+pwdsize$+|">| msg$=msg$+|<font color="|+hercol$+|">|+redherring1$+|</font>| msg$=msg$+|<font color="|+pwdcol$+|">|+pwd$(pos+offset)+|</font>| msg$=msg$+|<font color="|+hercol$+|">|+redherring2$+|</font>| html msg$ return endif if branch$="html" then gosub display return lpressed: interrupt lpin, off pause debounce if pin(lpin) = 0 then lstart = millis else lstop = millis if lstop > lstart then if lstop - lstart < longpress then gosub moveup else oled.cls OLED.PRINT 10,10, "Long LEFT" endif endif interrupt lpin, lpressed return mpressed: interrupt mpin, off pause debounce if pin(mpin) = 0 then mstart = millis else mstop = millis if mstop > mstart then OLED.CLS if mstop - mstart < longpress then gosub selected else oled.cls OLED.PRINT 10,10, "Long MIDDLE" endif endif interrupt mpin, mpressed return rpressed: interrupt rpin, off pause debounce if pin(rpin) = 0 then rstart = millis else rstop = millis if rstop > rstart then if rstop - rstart < longpress then gosub movedown else oled.cls OLED.PRINT 10,10, "Long RIGHT" endif endif interrupt rpin, rpressed return redherrings: if (redherring=1) or (redherring=3) then if redherring1$ = "" then herrings=rnd(10) for c=1 to herrings redherring1$=redherring1$ + chr$(rnd(tochr-fromchr)+fromchr) next c endif endif if (redherring=2) or (redherring=3) then if redherring2$ = "" then herrings=rnd(10) for c=1 to herrings redherring2$=redherring2$ + chr$(rnd(tochr-fromchr)+fromchr) next c endif endif return '------------- End ------------- M5 Stack version This version of the Key Vault takes advantage of the M5 Stack for convenient portability.The M5 Stack (as it was originally called) uses an ESP32, so requires flashing with Annex32, Here's a quick YouTube demo video of how it looks in use, or alternatively this LBRY version The JPG startup Key logo can be downloaded from the bottom of this page... Upload the jpg image to the device as "/img/vaultkey.jpg" and it will be automatically displayed. Note that all files are stored on micro-SD card, including the 'list.txt' of your logons and passwords. This has some benefits when it comes to creating and maintaining the list, but it also has some security disadvantages - so you may wish to continue reading more about your privacy and security below. The script is just an unoptimised mashup with unused remnants from
other scripts, so it's not a work of art, only a means to an end.
Basic:
'M5stack Key Vault - by Electroguard - developed using Annex32 1.37 beta6
title$="M5 Key Vault" filename$="/list.txt" 'file containing your password list - items separated by spaces, lines terminated by chr(10) linefeed redherring=3 '0=off, 1=prefix, 2=suffix, 3=prefix plus suffix (red herrings are unnecessary distraction characters redherring1$="" 'blank prefix will generate random characters, non-blank chars will be used 'as-is' redherring2$="" 'blank suffix will generate random characters, non-blank chars will be used 'as-is' 'redherring1$="ME" 'non-blank prefix will be kept and used, else blank will generate random characters 'redherring2$="0123" 'non-blank suffix will be kept and used, else blank will generate random characters hercol$="red" 'colour of red-herring prefix and suffix - select to contrast with your chosen password colour (pwdcol$) pwdcol$="white" 'password colour displayed by browser pwdcol$="black" 'password colour displayed by browser pwdsize$="7" '1=small, 7=large fromchr=63 'ascii start char for red herring range tochr=122 'ascii end char for red herring range if redherring>0 then gosub redherrings herrings=0 delim$=" " eol$=chr$(10) if file.exists(filename$)=1 then sites$=trim$(file.read$(filename$)) else sites$="MISSING"+eol$+"LIST.TXT"+eol$ sites$=replace$(sites$," "," ") 'gets rid of any double spaces sites=word.count(sites$,eol$) 'counts how many list entries dim site$(sites) dim logon$(sites) dim pwd$(sites) for c=1 to sites entry$=word$(sites$,c,eol$) site$(c)=word$(entry$,1,delim$) logon$(c)=word$(entry$,2,delim$) pwd$(c)=word$(entry$,3,delim$) next c red=tft.rgb(255,0,0):green=tft.rgb(0,255,0):blue=tft.rgb(0,0,255) darkred=tft.rgb(150, 0, 0):darkgreen=tft.rgb(0,150,0):darkblue=tft.rgb(0,0,150) cyan=tft.rgb(0,255,255):pink=tft.rgb(255,0,255):orange=tft.rgb(255,165,0):yellow=tft.rgb(255,255,5) black=0:white=tft.rgb(255,255,255):lightgrey=tft.rgb(200,200,200):darkgrey=tft.rgb(128,128,128) font=2 fill=black: foreground=white: background=fill titlecolour=red:numberscolour=yellow:buttonscolour=black:buttonbackground=lightgrey tft.init tft.jpg "/img/vaultkey.jpg" tft.text.size 4 tft.text.pos 14, 13 tft.text.col yellow,background tft.print "Key" tft.text.pos 190, 190 tft.print "Vault" pause 2000 localfont=3 tft.text.size localfont localfill=fill localforeground=white localbackground=localfill pos = 1 offset = 0 margin=1 changed = 0 interrupt 39, lbutton interrupt 38, mbutton interrupt 37, rbutton lstart=millis: lstop=millis: mstart=millis: mstop=millis: rstart=millis: rstop=millis gosub showlist wait showlist: cls branch$="showlist" head = 1 * localfont * 8 foot = 2 * localfont * 8 canvas = 240 - head - foot lines = cint(canvas / (localfont * 8)) tft.fill fill tft.text.size 2 tft.text.pos 4, 3 tft.text.col titlecolour,background tft.print title$ tft.text.size 2 tft.text.col numberscolour,background data$ = str$(pos+offset) + " of " + str$(sites) tft.text.pos 316-(len(data$) * 6 * localfont), 4 tft.print data$ if sites < lines then lines = sites for c = 1 to lines tft.text.pos margin*localfont*6-4, (c*8*localfont)+4 if c = pos then tft.text.col background,foreground else tft.text.col foreground,background tft.print site$(c+offset) next c footer return redherrings: if (redherring=1) or (redherring=3) then if redherring1$ = "" then herrings=rnd(10) for c=1 to herrings redherring1$=redherring1$ + chr$(rnd(tochr-fromchr)+fromchr) next c endif endif if (redherring=2) or (redherring=3) then if redherring2$ = "" then herrings=rnd(10) for c=1 to herrings redherring2$=redherring2$ + chr$(rnd(tochr-fromchr)+fromchr) next c endif endif return lbutton: if (pin(39) = 0) then lstart = millis else lstop = millis endif if lstop > lstart then select case branch$ case "showlist" pos = pos - 1 if pos < 1 then pos = 1: offset = offset - 1 if offset < 0 then pos = lines: offset = sites - lines gosub showlist case else gosub showlist end select endif return mbutton: if (pin(38) = 0) then mstart = millis else mstop = millis endif if mstop > mstart then select case branch$ case "showlist" gosub selected case "selected" gosub browser case "browser" cls gosub showlist case else gosub showlist end select endif return rbutton: if (pin(37) = 0) then rstart = millis else rstop = millis endif if rstop > rstart then select case branch$ case "showlist" pos = pos + 1 if pos > sites then pos = 1: offset = 0 if pos > lines then offset = offset+1: pos = lines if offset+lines > sites then offset = 0: pos=1 gosub showlist case else gosub showlist end select endif return selected: branch$="selected" choice$ = site$(pos+offset) tft.fill white data$ = " "+site$(pos+offset) tft.text.size 2 tft.text.col darkblue,white tft.text.pos 0, 40 tft.print data$ data$ = " " + logon$(pos+offset) tft.text.size 2 tft.text.col darkgreen,white tft.text.pos 0, 110 tft.print data$ data$ = " " + pwd$(pos+offset) tft.text.size 2 tft.text.col darkred,white tft.text.pos 0, 180 tft.print data$ return browser: branch$="browser" tft.text.size 4 tft.fill red tft.text.col white,red tft.text.pos 55,20 data$ = "Password" tft.print data$ tft.text.size 3 tft.text.pos 50,60 tft.print " shown in" tft.text.pos 50,90 tft.text.size 4 tft.print " browser" tft.text.pos 10,140 tft.print "Press button" tft.text.pos 50,180 tft.print " to clear" msg$=| <font size="|+pwdsize$+|">| msg$=msg$+|<font color="|+hercol$+|">|+redherring1$+|</font>| msg$=msg$+|<font color="|+pwdcol$+|">|+pwd$(pos+offset)+|</font>| msg$=msg$+|<font color="|+hercol$+|">|+redherring2$+|</font><br>| html msg$ return sub footer xpos = 0 tft.text.col buttonscolour,buttonbackground tft.text.size localfont footer$ = " Ok " tft.text.pos 163-(len(footer$)/2 * 6 * localfont), 232-(8 * localfont) tft.print footer$ footer$ = " < " Lbutton = 66 - (len(footer$)* 6 * localfont /2) tft.text.pos Lbutton , 232-(8 * localfont) tft.print footer$ footer$ = " > " Rbutton = 253 - (len(footer$)* 6 * localfont /2) tft.text.pos Rbutton , 232-(8 * localfont) tft.print footer$ end sub '---------- End ------------- Privacy and Security The following is just common knowledge which is freely available on the internet for anyone who cares to look. Any data shown in a browser, or which can be 'packet sniffed' during transmission (especially wifi), or stored on computer or other device with internet connection ... is vulnerable.
The internet provides a convenient path for others to invade your privacy and exploit your personal data at your expense. If you think that doesn't apply to you, then you should pay particular attention, because you could be especially vulnerable.
You, and all internet users, are considered a valuable resource for global data harvesting by anyone who can get at you. This includes armies of individual hackers, organised crime, governments, huge global corporates beyond national controls ... the biggest invaders of privacy are actually the mega companies with household names like Microsoft and Google whose products are specifically designed to harvest personal user data and send it back via the users internet connection at the users expense.
By default Windows 10 logs all keystrokes and mouse activity, all browser activity, and much more - their data harvesting is called 'telemetry', but users can't complain because they've already agreed to the Microsoft terms and conditions in order to be users. And nobody complains on their behalf because everyone else involved benefits at the users expense. Government agencies not only have access to the harvested data, they are provided with secret backdoors into users systems, even though the very presence of such backdoors obviously makes users systems inherently more vulnerable to illegal attack and exploitation. An entire anti-malware industry exists because of criminal exploitation of software vulnerabilities - most of the vuilnerable software coming from Microsoft. Most search engines track results to spot global trends and to
return better tailored search results, but only a few who respect users
privacy don't record personal data and past history results to target
individual users with commercial or political bias.
Chrome reports everything back to Google, who has huge investment in AI to predict users choices so they can pre-empt and nudge users in their own preferred directions. Browsing habits are recorded, and search results are biased to include items Google prefers users to see and buy, bumping up offerings from paying 'commercial partners' even though they may be less relevant to users needs.The contents of all Gmails are scanned, and kept by google even after users delete them from their mailbox. Although such data harvesting is more invasive and prolific than any spyware, it is not legally considered an invasion of privacy because users have already agreed the terms and conditions, thereby also tacitly agreeing similar terms and conditions for other google products and services such as Facebook and YouTube. Google cross-references users data harvested from many products and services, including mobile phone data, to build profiles of users including their physical location and movements. ISP's harvest and sell their users internet activities, and of course provide those details to government agencies. As more and more opportunists jump on the bandwagon to harvest and sell users data, it's become normal and expected to be forced into agreeing terms and conditions before being allowed into to websites - failure to give up your privacy often means you must leave. Data customers are willing to pay big money to influence such things as product purchase and public opinion... without the public even knowing or caring. Data harvesters and their paying customers only consider users data a resource to make money from. Although the sale of harvested data should technically be limited to less personal 'metadata' for statistical analysis, that is known to not always be the case, but even if it is just the tip of a dangerous iceberg, there is nobody on iceberg watch anyway. Even IF the legal data harvesters can be arguably considered ethical themselves, they have little control over how it is initially used after they sell your data, or how often it finds its way into other less scrupulous hands, or for what purposes it will eventually be used. There is little effective oversight on omnipotent government agencies who are given access to the harvested data, and even less after being handed to other nations with different laws and ethics, participating in 5 eyes 9 eyes 14 eyes and other data sharing accords. Illegal data harvesting is done on a massive scale by criminals who hack into servers to steal user data, thus avoiding need for users consent ... Yahoo has been hacked so many times resulting in data thefts to millions of users that it has become almost a regular crop harvest - and countless similar data thefts are such a frequent occurrence that they hardly make news anymore, let alone headlines. Returning to the subject of your private logins and passwords contained in your 'list.txt' file... an awareness of data-harvesting offers you opportunity to improve your own privacy and security to lessen the risk of personal loss or disaster... but what you do about it - if anything - is entirely up to you. Improving Data Privacy & Security To avoid commercial or political harvesting of your browsing history and personal data you could use an independent browser such as Firefox.
To avoid your ISP harvesting your browsing history from its DNS servers... in Firefox go into Preferences, Network Settings, then tick "Enable DNS over HTTPS" - this will use alternative DNS server look-ups which cannot be tracked by your ISP. To reduce manipulation by commercially biased search results, and stop your personal data and usage from being recorded, you could change the default search engine to DuckDuckGo, who say (quote)... "We don't store your personal information. Ever. Our privacy policy is simple: we don't collect or share any of your personal information." A couple of less familiar alternative search engines which also respect your privacy are Startpage and Qwant, but there are others.
Proton to Proton emails are encrypted end to end, so they are secure from sender to recipient every step of the way. TIP: If you had 2 Proton accounts you could securely send all your passwords to yourself from one account to the other and vice versa, then even if you got locked out of one account due to forgetting its password... you could easily get it back from the other account and regain access to all your encrypted mail again. TIP: If you have a Proton account, you could securely create and maintain your 'list.txt' file of logins and passwords directly from within your encrypted mailbox, allowing you to remove all trace of it from your computer after uploading to your Annex Key Vault. In addition, Proton offers (quote): "a free virtual private network (VPN). ProtonVPN enables you to: protect your privacy by hiding your IP address browse the web securely (even on public WiFi) visit blocked or censored websites" Don't expect it to be as fast as a paid VPN - but hey, it offers you free online privacy! You can publish content on LBRY.TV to avoid registering with YouTube and having to accept its commercialism and restrictions. LBRY says (quote): "Almost every tech giant today is a centralized service that sells users' personal information and attention to advertisers. They spend a lot of money chasing their product (your personal information and time/attention), but at the end of the day, users (you) offer it up for free in exchange for access to the platform. We think users should own their content (and their privacy) instead of handing it over to a corporate giant and their advertising buddies. If you think we're paranoid, there are dozens of examples of companies abusing users and acting against their interests. It's not paranoia if they're actually out to get you."LiBRaRY uses a secure blockchain protocol which is completely free to use, and offers incentive for registered users by giving LBC as virtual currency rewards for eg: just watching Annex content. Using this link to join will earn some additional LBC as a first reward. You can reduce the personal profile which Google collates about you from cross-referencing your Facebook data with other social media accounts, email addresses, phone numbers,etc... by 'compartmentalising' your different accounts - ie: use different email addresses and contact information, and avoid including links from other social media platform in each other. Firefox says (quote): "if you still kinda like Facebook but don’t trust them, then try the
Facebook Container extension by Firefox and make it harder for them to
track you around the web" There are sites which actually offer free fake ID's in many countries ...
so although you may be bullied into agreeing terms and conditions or
giving out contact information, you can avoid meekly handing over your true identity and giving away your
privacy. Likewise for sites that want your email address before allowing access... you can grab a free temporary '10 minute' email address to register for free
downloads etc without being forever haunted by spam or pestered by sales blurb,
No commitment is needed... most flavours of Linux offer 'Live Boot' from
USB stick, allowing opportunity to gain familiarity without needing to
burn any bridges. If and when you do start using Linux, you can still
continue using Windows at the same time by using free
virtualisation software (both Linux and Windows were being used at the same time to make this projects demo video). The bottom line is that your privacy and security are your responsibility, and you should assume that everyone else is out to get what they can from you, so it is up to you to take whatever steps you feel necessary to stay safe and secure, The Key Vault offers a practical way to help you improve the security of your passwords, but it can only be as safe as you choose to make it. |