Enc: en krypterad meddelandetjänst baserat på engångslänkar

Permalänk
Medlem

Enc: en krypterad meddelandetjänst baserat på engångslänkar

Hellu.

I fredags läste jag det senaste nyhetsbrevet från selfh.st. Där listas bland annat PassED, vilket är en lösenordsdelningstjänst som man kan installera på ens egna server. Efter att ha kollat in demon, blev jag sugen på att skapa en liknande tjänst, men för och dela meddelanden (lösenordsskyddat eller inte) med max 4 bifogade bilder i.

Det finns liknande tjänster som också är FOSS, men jag vill ju (som vanligt) lära mig nya saker inom programmering, så jag satte igång med arbetet.

Efter knappt 2 timmar blev jag klar med grunden. Och under natten till lördag lanserade jag funktionen som låter en lösenordsskydda ens meddelanden. Under kvällen samma dag lanserade jag bifogade filer. Och förut, ungefär prick 24 timmar senare, har jag finslipat allt till den grad att jag nu känner att tjänsten kan utannonseras till SweClockers. Kommer högst troligt även utannonsera tjänsten på Lemmy. En sak i taget.

Syftet

Syftet med Enc är att man ska kunna dela ett meddelande och max 4 bilder åt gången, på ett säkert sätt, till en mottagare. Alldeles för många sociala tjänster lagrar ens liv (som man kan se det som) i klartext på krypterade diskar (kallat för at-rest) hos den som äger tjänsten. Och för att de inte ska kunna få tillgång till det man skriver till andra, så kan man använda sig av Enc.

Nu kanske ni tänker "varför" på det jag nyss skrev. Vill ni att obehöriga ska läsa det du skriver till andra, och även se de bilder ni skickar till varann? Om svaret är "nej" så vet ni huvudsyftet till varför jag skapade Enc, och även varför det finns andra, liknande tjänster.

Är jag paranoid nu? Alldeles för många tjänster som man har delat sina liv och/eller personuppgifter till, blir hackade till synes hur enkelt som helst. Anledning: at-rest. Det finns anledningar till varför jag är som jag är nu för tiden.

Länk

https://enc.airikr.me

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem

Ägaren av servern, dvs du, kan uppenbarligen läsa alla meddelanden eftersom de inte krypteras i browsern utan skickas i klartext:

Så, vilket av Hanlons alternativ ska vi välja?

Permalänk
Medlem

Denna tjänst blir svår att lita på den inte har End-To-End Encryption. Användaren skulle alltså behöva kryptera meddelandet på förhand innan texten skrivs in i formuläret och då faller hela idén.

Visa signatur

Ryzen 7 7800X3D | ASUS TUF Gaming B650-Plus WIFI | Kingston 32GB (2x16GB) DDR5 6GT/s CL30 FURY Beast | Kingston Fury Renegade M.2 NVMe SSD Gen 4 2TB | MSI RTX 4060 8GB | Fractal Design Define S | MSI MPG A850G 850W | Thermalright Phantom Spirit 120 SE | Windows 11 Pro | AOC 27" AGON AG276QZD2 OLED QHD 240 Hz

Permalänk
Medlem
Skrivet av KAD:

Ägaren av servern, dvs du, kan uppenbarligen läsa alla meddelanden eftersom de inte krypteras i browsern utan skickas i klartext:

<Uppladdad bildlänk>

Så, vilket av Hanlons alternativ ska vi välja?

Meddelandet och filerna som skickas till servern, krypteras innan de sparas i databasen (funktionen som används är endecrypt()), som det ska vara. Sen är uppkopplingen till webbsidan krypterad också, tack vare HTTPS. Om anslutningen inte är HTTPS utan HTTP, så får jag läsa på någonstans om hur jag löser det.

Hanlon? Hanlons?

Uppdatering
Läste nu att 302-statuskoden är en överföring som görs med http/1.1 (precis som i din skärmdump och när jag själv kollade i min webbläsare). Källa: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302. Ska se vad jag kan göra åt saken. Om du har några tips, dela gärna med dig.

Skrivet av Joppis:

Denna tjänst blir svår att lita på den inte har End-To-End Encryption. Användaren skulle alltså behöva kryptera meddelandet på förhand innan texten skrivs in i formuläret och då faller hela idén.

Jag har ännu inte lärt mig hur man skickar något via helvägskryptering (E2EE). Jag har noll intresse av att läsa det andra skriver till varann. Men om ni inte litar på mig, så kan ni enkelt ladda hem filerna från Codeberg (direktlänk till nedladdningslänken: https://codeberg.org/airikr/enc/archive/main.zip) och använda tjänsten på eran egna server.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem

Applåderar för din dedikation till att programmera detta projekt.. Det är imponerande, men vad du erbjuder är på intet vis en säker kommunikationsväg.

Det går inte att lita på en tjänst om den inte är både öppen källkod och totalstreckskrypterad, oavsett vad den som äger och driftar tjänster säger sig ha intresse till. Signal löser redan privat kommunikation och förhindrar att det över huvud taget inte går att läsa meddelanden på servern, och samma protokoll som Signal har tagit fram är det som används av t.ex Whatsapp. (Även om i det senare fallet så används metadata för att bygga reklamprofiler om dig.)

Men! Låt dig inte avskräckas av kritiken utan fortsätta utveckla och lär dig!

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Medlem
Skrivet av NodCommander:

Applåderar för din dedikation till att programmera detta projekt.. Det är imponerande, men vad du erbjuder är på intet vis en säker kommunikationsväg.

Det går inte att lita på en tjänst om den inte är både öppen källkod och totalstreckskrypterad, oavsett vad den som äger och driftar tjänster säger sig ha intresse till. Signal löser redan privat kommunikation och förhindrar att det över huvud taget inte går att läsa meddelanden på servern, och samma protokoll som Signal har tagit fram är det som används av t.ex Whatsapp. (Även om i det senare fallet så används metadata för att bygga reklamprofiler om dig.)

Men! Låt dig inte avskräckas av kritiken utan fortsätta utveckla och lär dig!

Tack

Jo, det går att lita på tjänsten om man har den på sin egna server. Men sen att andra inte litar på den, kan jag mycket väl förstå. Gällande Signal. Ja, de har kokat ihop en fin lösning, som även OMEMO använder sig av.

Tack igen. Ska göra mitt bästa

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem

Har sökt runt en hel del och allt jag får veta, även om sökfrasen är "how to use ssl in post" eller liknande, är att man ska använda SSL för att säkert skicka datan via en POST. Ingen berättar hur jag löser det hela, mer än att lägga in använda hela adressen med https://, vilket jag nu gör. Men datan skickas fortfarande med 302-statuskoden. Och att få veta vad för statuskod den egentligen ska spotta ut när SSL är aktiverat, har jag inte heller fått veta.

Har valt att låta detta vara, för ingen ger mig konkret information (med exempel) om hur jag löser problemet. Om någon här vet lösningen och är villig att hjälpa mig lösa det hela, snälla, skriv ett inlägg i den här tråden.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Hedersmedlem
Skrivet av Joppis:

Denna tjänst blir svår att lita på den inte har End-To-End Encryption. Användaren skulle alltså behöva kryptera meddelandet på förhand innan texten skrivs in i formuläret och då faller hela idén.

Samma gäller *alla* webb-baserade tjänster som försöka göra detta.

Koden som genomför krypteringen är alltid Javascript som skickas ut av webbservern i fråga. Även om koden idag gör precis vad den säger finns det inget garanti om detta inför nästa besök.

Om du inte litar på den som tillhandahåller krypteringsmjukvaran, vilket i praktiken är den som driver webbtjänsten i fråga, vid varje tillfälle du använder tjänsten, så faller säkerheten.

Permalänk
Medlem
Skrivet av Airikr:

Har sökt runt en hel del och allt jag får veta, även om sökfrasen är "how to use ssl in post" eller liknande, är att man ska använda SSL för att säkert skicka datan via en POST. Ingen berättar hur jag löser det hela, mer än att lägga in använda hela adressen med https://, vilket jag nu gör. Men datan skickas fortfarande med 302-statuskoden. Och att få veta vad för statuskod den egentligen ska spotta ut när SSL är aktiverat, har jag inte heller fått veta.

Har valt att låta detta vara, för ingen ger mig konkret information (med exempel) om hur jag löser problemet. Om någon här vet lösningen och är villig att hjälpa mig lösa det hela, snälla, skriv ett inlägg i den här tråden.

Okej,

SSL är bara för att skydda kommunikationen mellan dig och servern mot obehöriga som kan sniffa trafiken. Det hindrar inte servern från att läsa datat på något sätt ö.h.t. Det du vill göra är lite som en VPN-tunnel mellan dig och mottagaren av ditt meddelande.

Just nu har du bara en proxy som potentiellt mellanlagrar informationen du skickar innan mottagaren får meddelandet eftersom det är servern som krypterar (och du skickar ju innehållet + lösenordet till servern..)

För att möjliggöra E2E-kryptering behöver klienten kryptera meddelandet innan servern får det krypterade meddelandet. Servern lagrar på så vis enbart ett krypterat meddelande. Den behöver inte lagra något lösenord ö.h.t eftersom det även är klienten (i det här fallet mottagaren) som avkrypterar meddelandet.

Sen är det såklart upp till användaren att lita på vad som körs i webbläsaren.. men det svider inte riktigt lika mycket som att se sin request i klartext på väg till servern

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Airikr:

Har sökt runt en hel del och allt jag får veta, även om sökfrasen är "how to use ssl in post" eller liknande, är att man ska använda SSL för att säkert skicka datan via en POST. Ingen berättar hur jag löser det hela, mer än att lägga in använda hela adressen med https://, vilket jag nu gör. Men datan skickas fortfarande med 302-statuskoden. Och att få veta vad för statuskod den egentligen ska spotta ut när SSL är aktiverat, har jag inte heller fått veta.

Har valt att låta detta vara, för ingen ger mig konkret information (med exempel) om hur jag löser problemet. Om någon här vet lösningen och är villig att hjälpa mig lösa det hela, snälla, skriv ett inlägg i den här tråden.

Problemet är inte att du gör redirecten, utan att krypteringen sköts server-side.
Det du vill göra är att med javascript sköta krypteringen, och sedan posta den redan krypterade strängen till din server.
Då behöver du aldrig skicka lösenordet till servern öht utan bara den krypterade strängen.
På samma sätt när någon vill hämta "hemligeten" så skickar du bara strängen och låter användaren hantera dekryptering client-side.

Permalänk
Medlem

Ok, tack för svaren, @pv2b, @Pamudas och @Xcorp Ska se vad jag kan snickra ihop. Vill ju att Enc ska vara säker för alla. Och om man inte litar på mig trots allt, ladda hem filerna från Codeberg och lägg upp webbsidan på sin egna server.

Gällande helstreckskryptering. Blir det per automatik E2EE om jag låter JavaScript kryptera strängarna? Jag trodde att båda parterna (den som skickar och den som tar emot) måste dela sina nycklar med varann, och att dessa nycklar krypterar och avkrypterar datan (eller nått sånt). Jag kan inte tänka klart just nu. Har mycket att göra på samma gång. Kaka på kaka, typ.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Ok, tack för svaren, @pv2b, @Pamudas och @Xcorp Ska se vad jag kan snickra ihop. Vill ju att Enc ska vara säker för alla. Och om man inte litar på mig trots allt, ladda hem filerna från Codeberg och lägg upp webbsidan på sin egna server.

Gällande helstreckskryptering. Blir det per automatik E2EE om jag låter JavaScript kryptera strängarna? Jag trodde att båda parterna (den som skickar och den som tar emot) måste dela sina nycklar med varann, och att dessa nycklar krypterar och avkrypterar datan (eller nått sånt). Jag kan inte tänka klart just nu. Har mycket att göra på samma gång. Kaka på kaka, typ.

Nyckeln är ju i det här fallet lösenordet, så det måste såklart kommuniceras. Men det kan lika gärna göras utanför din tjänst, typ mail/sms/messenger eller whatever. Så länge de inte har hela kontextet (länken till "datat") så är det bara en random textsträng

E2E kräver att det görs på klienten. Annars är det inte end to end.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

Nyckeln är ju i det här fallet lösenordet, så det måste såklart kommuniceras. Men det kan lika gärna göras utanför din tjänst, typ mail/sms/messenger eller whatever. Så länge de inte har hela kontextet (länken till "datat") så är det bara en random textsträng

E2E kräver att det görs på klienten. Annars är det inte end to end.

Alright. Och om jag har förstått det hela helt rätt, filer som laddas upp till servern, måste även dessa krypteras av klienten? Eller kan jag låta det vara som det är nu (att servern krypterar dom)?

Har hittat en lösning till att kryptera meddelandet på klientnivå med hjälp av CryptoJS (vilket jag antar använder sig av Web Crypto API). Håller på och lägger in detta till Enc just nu.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Alright. Och om jag har förstått det hela helt rätt, filer som laddas upp till servern, måste även dessa krypteras av klienten? Eller kan jag låta det vara som det är nu (att servern krypterar dom)?

Har hittat en lösning till att kryptera meddelandet på klientnivå med hjälp av CryptoJS (vilket jag antar använder sig av Web Crypto API). Håller på och lägger in detta till Enc just nu.

Det är ju just det som du inte ska göra. Om servern krypterar så har användaren såklart ingen aning om vad servern heller lagrar. Vem säger att informationen inte lagras utöver att den krypteras? Eller skickas till en tredjepart?

End-to-end kryptering syftar då alltså på att det ska krypteras direkt hos klienten för att sedan avkrypteras hos mottagaren. Servern är endast här för att mellanlagra informationen så den inte behöver konsumeras direkt. Informationen är givetvis krypterad redan innan den hamnar hos servern. Servern behöver aldrig veta vad det är för innehåll, eller vilken nyckel det är. Detta är upp till användarna som använder tjänsten.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

Det är ju just det som du inte ska göra. Om servern krypterar så har användaren såklart ingen aning om vad servern heller lagrar. Vem säger att informationen inte lagras utöver att den krypteras? Eller skickas till en tredjepart?

End-to-end kryptering syftar då alltså på att det ska krypteras direkt hos klienten för att sedan avkrypteras hos mottagaren. Servern är endast här för att mellanlagra informationen så den inte behöver konsumeras direkt. Informationen är givetvis krypterad redan innan den hamnar hos servern. Servern behöver aldrig veta vad det är för innehåll, eller vilken nyckel det är. Detta är upp till användarna som använder tjänsten.

Ok. Tack för informationen. Jag är helt ny inom kryptering och sånt, främst gällande E2EE. Plus, kan inte tänka logiskt i kväll, vilket är bevisat nog nu, haha!

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Ok. Tack för informationen. Jag är helt ny inom kryptering och sånt, främst gällande E2EE. Plus, kan inte tänka logiskt i kväll, vilket är bevisat nog nu, haha!

Projektet PassED som du blev inspirerad av från början verkar handla om totalsträckskryptering.

"When you create a password URL, PassED firstly encrypts the password in your browser using AES-GCM. It then uploads the encrypted password to the server"

Privata och publika nycklar kan du läsa på om också på kul. Rätt vanligt för att säkra upp en SFTP eller användas till PGP

Visa signatur

Ryzen 7 7800X3D | ASUS TUF Gaming B650-Plus WIFI | Kingston 32GB (2x16GB) DDR5 6GT/s CL30 FURY Beast | Kingston Fury Renegade M.2 NVMe SSD Gen 4 2TB | MSI RTX 4060 8GB | Fractal Design Define S | MSI MPG A850G 850W | Thermalright Phantom Spirit 120 SE | Windows 11 Pro | AOC 27" AGON AG276QZD2 OLED QHD 240 Hz

Permalänk
Medlem

För att lära sig om kryptering finns t.ex. https://cryptohack.org/

Permalänk
Medlem

Nu har jag lyckats fixa in kryptering med AES i JavaScript (CryptoJS). Förhoppningsvis funkar allt klockrent för alla Testa gärna och återkom om ni stöter på några problem.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Nu har jag lyckats fixa in kryptering med AES i JavaScript (CryptoJS). Förhoppningsvis funkar allt klockrent för alla Testa gärna och återkom om ni stöter på några problem.

Nope,
Hela meddelandet OCH lösenordet skickas fortfarande i klartext till servern.
Det finns heller ingen anledning att skicka lösenordet till servern när du ska hämta hemligheten.

Lite andra feature requests:
Låt mig för f*n välja lösenord själv.
Varför begränsa formatet på filer vid uppladdning, då allt ändå ska krypteras client-side så kommer du på servern ändå inte ha en aning om vad det är för typ av fil.

Permalänk
Medlem
Skrivet av Xcorp:

Nope,
Hela meddelandet OCH lösenordet skickas fortfarande i klartext till servern.
Det finns heller ingen anledning att skicka lösenordet till servern när du ska hämta hemligheten.

Lite andra feature requests:
Låt mig för f*n välja lösenord själv.
Varför begränsa formatet på filer vid uppladdning, då allt ändå ska krypteras client-side så kommer du på servern ändå inte ha en aning om vad det är för typ av fil.
<Uppladdad bildlänk>

Först och främst, tack för skärmdumpen. Visste inte om att jag kunde kika på sånt där i Request-fliken.

Hm. Kan ju kryptera meddelandefältet innan datan hinner skickas iväg till share.php. Då kan man ju även skippa det gömda textfältet för meddelandet.

Dock har jag inte hittat någon lösning till hur man kan kopiera text i input type="password", samtidigt som lösenordet kan kopieras i klartext på nästa sida. Clipboard.js klarar inte av att kopiera innehållet i input type="password". Kan inte heller testa Clipboard API då den kräver HTTPS, vilket jag inte har lokalt. Hade tänkt att påtvinga besökaren att kopiera lösenordet innan hen väljer "Share", men ångrade mig. Kanske måste ha det så ändå?

Jag kan ju ändra så att man kan själv ange ett lösenord. Men min tanke med att påtvinga ett generativt lösenord är att bevara säkerheten. Det är mycket enkelt att hacka till exempel H3js4n, medan det är dyngsvårt att knäcka en lösenordsfras. Det tar årtionden att knäcka till exempel Priced-Complete-Final-Minority samtidigt som det är lätt att komma ihåg, medan det tar 4 sekunder att knäcka H3js4n.

Anledningen till varför jag begränsade till JPG, WEBP och PNG är för att grundidén var att endast kunna dela bilder med ens meddelande. Men om önskan är stor att kunna skicka andra filformat, så tar jag ju såklart bort spärren.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Skrivet av Airikr:

Först och främst, tack för skärmdumpen. Visste inte om att jag kunde kika på sånt där i Request-fliken.

Hm. Kan ju kryptera meddelandefältet innan datan hinner skickas iväg till share.php. Då kan man ju även skippa det gömda textfältet för meddelandet.

Dock har jag inte hittat någon lösning till hur man kan kopiera text i input type="password", samtidigt som lösenordet kan kopieras i klartext på nästa sida. Clipboard.js klarar inte av att kopiera innehållet i input type="password". Kan inte heller testa Clipboard API då den kräver HTTPS, vilket jag inte har lokalt. Hade tänkt att påtvinga besökaren att kopiera lösenordet innan hen väljer "Share", men ångrade mig. Kanske måste ha det så ändå?

Jag kan ju ändra så att man kan själv ange ett lösenord. Men min tanke med att påtvinga ett generativt lösenord är att bevara säkerheten. Det är mycket enkelt att hacka till exempel H3js4n, medan det är dyngsvårt att knäcka en lösenordsfras. Det tar årtionden att knäcka till exempel Priced-Complete-Final-Minority samtidigt som det är lätt att komma ihåg, medan det tar 4 sekunder att knäcka H3js4n.

Anledningen till varför jag begränsade till JPG, WEBP och PNG är för att grundidén var att endast kunna dela bilder med ens meddelande. Men om önskan är stor att kunna skicka andra filformat, så tar jag ju såklart bort spärren.

Kika gärna hur PassED har gjort för att kryptera direkt på klientsidan genom att kolla i dess källkod:

https://passed.1e99.eu/index.js
https://passed.1e99.eu/crypto.js
https://passed.1e99.eu/api.js

Mvh,
WKF.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"
"Visste du förresten att det är ett mångmiljardbolag?"
"Jag lever inte för att koda utan kodar för att sen kunna leva"

Permalänk
Medlem
Skrivet av Airikr:

Nu har jag lyckats fixa in kryptering med AES i JavaScript (CryptoJS). Förhoppningsvis funkar allt klockrent för alla Testa gärna och återkom om ni stöter på några problem.

Skrivet av Xcorp:

Nope,
Hela meddelandet OCH lösenordet skickas fortfarande i klartext till servern.
Det finns heller ingen anledning att skicka lösenordet till servern när du ska hämta hemligheten.

Lite andra feature requests:
Låt mig för f*n välja lösenord själv.
Varför begränsa formatet på filer vid uppladdning, då allt ändå ska krypteras client-side så kommer du på servern ändå inte ha en aning om vad det är för typ av fil.
<Uppladdad bildlänk>

Kikade lite i koden (som jag ärligt talat avskyr, PHP klarar av HTML rakt upp och ner i filen. Du behöver inte skriva varenda element via echo) och ser att du kör en helt vanlig Form Submit-POST till din backend.

Skippa detta, släng in ett ajax-anrop med fetch API:et som du triggar vid submit (glöm inte att köra event.preventDefault() bara, annars kommer sidan laddas om)

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk

Tänker du på den klassiska xkcd strippen?

Det du skriver om lösenord var eventuellt sant en gång i tiden. Idag är det det inte.
Lösenordshanterare och randomiserade strängar på så många tecken som möjligt, brukar generera strängar på 40 tecken, ibland går det inte pga arbiträra begränsningar. Snälla begränsa inte längd när du släpper lösenorden fria.

Edit: fixade quote

Skrivet av Airikr:

Jag kan ju ändra så att man kan själv ange ett lösenord. Men min tanke med att påtvinga ett generativt lösenord är att bevara säkerheten. Det är mycket enkelt att hacka till exempel H3js4n, medan det är dyngsvårt att knäcka en lösenordsfras. Det tar årtionden att knäcka till exempel Priced-Complete-Final-Minority samtidigt som det är lätt att komma ihåg, medan det tar 4 sekunder att knäcka H3js4n.

Fixade quote
Permalänk
Skrivet av blegnitur:

Tänker du på den klassiska xkcd strippen?

Det du skriver om lösenord var eventuellt sant en gång i tiden. Idag är det det inte.
Lösenordshanterare och randomiserade strängar på så många tecken som möjligt, brukar generera strängar på 40 tecken, ibland går det inte pga arbiträra begränsningar. Snälla begränsa inte längd när du släpper lösenorden fria.

Edit: fixade quote

En fundering jag har här varav varför jag också inkluderar @Airikr här är att dessa namn finns ju redan inlagda i webbplatsens källkod. Det betyder att i princip är det redan upplagt för klassisk Dictionary Attack för "ordboken" har ju redan tillhandahållits av klienten själv!

Möjligen bör det läggas på serversidan och via AJAX-anrop så kan lösenordsgenereringen med "ordboken" köras på serversidan vilket sedan förs in efter erhållet AJAX-anropssvar.

Mvh,
WKF.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"
"Visste du förresten att det är ett mångmiljardbolag?"
"Jag lever inte för att koda utan kodar för att sen kunna leva"

Permalänk
Medlem
Skrivet av WebbkodsFrilansaren:

En fundering jag har här varav varför jag också inkluderar @Airikr här är att dessa namn finns ju redan inlagda i webbplatsens källkod. Det betyder att i princip är det redan upplagt för klassisk Dictionary Attack för "ordboken" har ju redan tillhandahållits av klienten själv!

Möjligen bör det läggas på serversidan och via AJAX-anrop så kan lösenordsgenereringen med "ordboken" köras på serversidan vilket sedan förs in efter erhållet AJAX-anropssvar.

Mvh,
WKF.

Lösenord bör rimligtvis inte innehålla "ord" ö.h.t.

Slumpade siffror, bokstäver (gemener och versaler) med symboler är mer eller mindre omöjligt att bruteforca fram (så länge det inte är för kort såklart).

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

Lösenord bör rimligtvis inte innehålla "ord" ö.h.t.

Slumpade siffror, bokstäver (gemener och versaler) med symboler är mer eller mindre omöjligt att bruteforca fram (så länge det inte är för kort såklart).

Det där är gamla lösenordsrekommendationer. Det är helt ok att använda ord i lösenord, det får bara inte vara vanliga fraser (på samhällsnivå eller dina egna) eller ett ord. Helst minst 4 ord. Den totala lösenordslängden är viktigare, minst 16 karaktärer rekommenderas.

Permalänk
Medlem

Vill bara tacka er alla för alla tips ni har gett mig, och att ni ska veta att jag arbetar på det. Men det kan ta sin lilla tid. Mycket med det här projektet är nytt för mig och det visste jag redan från början. Ville utmana mig själv och jisses vilken utmaning det är! xD Mycket tänkeverksamhet som jag inte alltid klarar i och med min autism, men jag arbetar på det

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem

Ett tips kan ju vara att lära sig lite av historien. Problemet du försöker lösa är redan löst, mycket bättre och pålitligare, sedan årtionden tillbaka.

Eftersom man inte vill lita på slumpmässig klåparunge på internet så använder man antagligen beprövad mjukvara om man ska kryptera något. Till exempel openssl eller gpg. När man har krypterat sitt meddelande kan man använda vilken överföringsmekanism som helst - e-post, SMS, pastebin, sprend, brevduva - för att överföra meddelandet. Man behöver ingen speciellt anpassad webbsida för det.

Du sitter garanterat på Windows. Om du hade kört ett vettigt OS så hade du haft dessa standardiserade verktyg inom kort räckvidd och kunnat läsa manualerna för dem och förstått vilka principer de vilar på.

Permalänk
Medlem
Skrivet av KAD:

Ett tips kan ju vara att lära sig lite av historien. Problemet du försöker lösa är redan löst, mycket bättre och pålitligare, sedan årtionden tillbaka.

Eftersom man inte vill lita på slumpmässig klåparunge på internet så använder man antagligen beprövad mjukvara om man ska kryptera något. Till exempel openssl eller gpg. När man har krypterat sitt meddelande kan man använda vilken överföringsmekanism som helst - e-post, SMS, pastebin, sprend, brevduva - för att överföra meddelandet. Man behöver ingen speciellt anpassad webbsida för det.

Först och främst, klåparunge? Jag må vara en amatör, men är det något mer du försöker antyda?

Jag försöker lära mig nya saker inom programmering och försöker göra det så bra som möjligt från mig. Att publicera mina projekt här på SweClockers Forum (Enc är inte det första projektet jag har utannonserat här) hjälper mig att bli bättre för ni ger mig nödvändig information om hur jag kan bli bättre.

Jag litar på andras FOSS-projekt, men jag vill som sagt lära mig något nytt. Jag vill vidareutvecklas som programmerare. Jag vill kunna använda mina egna tjänster så ofta som det bara går. Kan jag skapa ett visst projekt och om orken finns, så ska jag försöka skapa det också. Men om jag blir tvingad till att installera någon annans tjänst som låter mig skicka helsträckskrypterade meddelanden och även dela filer i samma meddelande, så gör jag det.

Jag antog den här utmaningen med att skapa Enc för att kunna bestämma själv över min egna data, att känna en frihet till att kunna kontakta andra på ett mycket säkert sätt, oavsett social tjänst över internet. Samtidigt vill jag att andra ska kunna känna samma sak. Jag mår bra av sånt.

Min dag började väldigt dåligt på grund av en granne, och ditt inlägg gjorde inte mitt mående bättre. Tack.

Skrivet av KAD:

Du sitter garanterat på Windows. Om du hade kört ett vettigt OS så hade du haft dessa standardiserade verktyg inom kort räckvidd och kunnat läsa manualerna för dem och förstått vilka principer de vilar på.

Ta reda på fakta innan du antyder något. https://airikr.me/uses/desktop & https://airikr.me/uses/laptop. Bonus: https://airikr.me/blog/202406052043/varfor-jag-inte-anvander-... & https://airikr.me/blog/202406041253/mina-alternativ-till-tjan...

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av KAD:

Ett tips kan ju vara att lära sig lite av historien. Problemet du försöker lösa är redan löst, mycket bättre och pålitligare, sedan årtionden tillbaka.

Eftersom man inte vill lita på slumpmässig klåparunge på internet så använder man antagligen beprövad mjukvara om man ska kryptera något. Till exempel openssl eller gpg. När man har krypterat sitt meddelande kan man använda vilken överföringsmekanism som helst - e-post, SMS, pastebin, sprend, brevduva - för att överföra meddelandet. Man behöver ingen speciellt anpassad webbsida för det.

Du sitter garanterat på Windows. Om du hade kört ett vettigt OS så hade du haft dessa standardiserade verktyg inom kort räckvidd och kunnat läsa manualerna för dem och förstått vilka principer de vilar på.

Varför känner du ett behov av att lägga in så nedvärderande kommentarer som svar i en tråd där någon genuint försöker lära sig något nytt? Att lära sig av historien är gott, men det är väldigt onödigt att antyda att någon är en "slumpmässig klåparunge på internet" samt att de inte kör "ett vettigt OS" och därav på något sätt är sämre.

Om du inte kan uttrycka dig trevligt, eller åtminstone sakligt, så är det bäst för alla andra om du inte uttrycker något alls. Ytterst få kommer kunna få något givande ur denna typ av meddelande och det sänker nivån på forumet.