Yubikey och eget program(c# i detta fallet)

Permalänk
Medlem

Yubikey och eget program(c# i detta fallet)

Hej!

Problembeskrivning:
Håller på med ett eget program i c# som är en egen variant av ett medlemsregister. MariaDB används som DB. Så långt fungerar det som jag vill men nu skulle jag vilja använd mig av yubikey tänkte jag. Tanken är att den, yubikey, måste sitta i och självklart använda sig av den för att mitt program ska kunna köra har jag tänkt mig. Om den är i när programmet startas så ska man kunna logga in och utföra det man vill men om den tas ut under körning så ska programmet avbrytas. Vad behöver jag titta på för att få det här att fungera? Vilken, om det finns någon, "metod" är det jag ska läsa på om? Inloggning och sånt i windows skiter jag i utan det är bara mitt program som är viktigt här.

Före min hjärnblödning för 3 år sedan så hade jag säkert klarat av att klura ut det här själv men efter den så är det i stort sett omöjligt att ta åt sig någon större mängd information på en gång. Och nu har jag ingen koll på om det är fido2 eller något annat protokoll jag ska försöka ge mig på. Räknar inte med och vill inte ha någon lösning, utan lite guidning i vilket angreppssätt som bäst kan lösa mitt problem. Eller så går det lika bra vilket som?

Tack på förhand

Permalänk
Medlem

Har du kikat på yubicos egna utvecklarsida för detta? Skulle tippa på att allt du behöver finns i deras "Desktop SDK" https://developers.yubico.com/

Permalänk
Medlem

Tack för svaret. Tyvärr missade du nog att läsa del 2 av mitt inlägg där jag försöker tydliggöra att jag efter en hjärnblödning har vissa svårigheter att ta in mycket information. Förstår att det kan vara svårt att sätt sig in i hur mycket det påverkar. Men du kan väl tänka dig att det är som att läsa en bok och när du har läst sista raden på en sida så har du glömt vad du läste högst upp. Så då är du tvungen att börja om igen. Och att då bli hänvisad till att läsa typ 300 sidor inser du väl hur bra det kommer gå? Det jag hade hoppats på var att få lite hjälp med att snäva in det så att det kanske "bara" är 10 sidor som jag måste hantera. Det var min förhoppning att någon annan kanske hade gjort något liknande och hade kunskapen om vilken väg jag skulle gå. Kanske fido2 eller oth eller något annat eller vad vet jag. Det kanske kvittar. Men min gissning är att det är någon av sätten som fungerar bättre i mitt fall och då jag har stora problem, i stort sett oöverkomliga, att läsa in mig på alla sätten och ställa dessa mot varandra för jag klarar helt enkelt in in att ta in all den informationen som jag behöver för att göra det så hade jag som sagt var hoppats att få lite guidning i vilken väg jag skulle titta närmare på och försöka lösa mitt problemet. Och det kommer vara väldigt svårt att ens göra det då jag har svårt att komma ihåg och hantera programmering över huvud taget efter det jag gått igenom. Men jag vill försöka men kanske är det för svårt.

/Före detta civi.ing datateknik som kanske är på 10% av "kapaciteten" från förr och skulle troligen inte ens klara av gymnasiematten nu.

Lade till lite mer info
Permalänk
Medlem

Alright jag förstår. Du har rätt i att jag nog måste ha skippat ditt andra stycke mentalt när jag skrev mitt svar.

Jag har inte själv utvecklat mot en yubikey men är bekant med begreppen. Har skummat igenom yubicos dokumentation och det låter som att du har 2 rimliga alternativ:

  1. OTP - Kan användas om du redan har användarnamn/lösen och vill lägga till en 2FA. Alternativt om du enbart vill använda en engångskod utan användarnamn/lösen.

    • Kräver en Yubikey validation server som du kan hosta själv eller via YubiCloud

    • Kan användas för att identifiera användaren/nyckeln med de första teknen i OTP koden (förklaring)

  2. PIV - Kan användas för att signera med RSA, på liknande sätt som en SSH session fungerar.

    • Kräver ingen central server för att validera, bara att den publika nyckeln som är kopplad till nyckeln på yubikeyn är tillgänglig från programmet.

    • Verkar dock kräva att man slår in en separat pin kod för att låsa upp nyckeln?

För att lösa att programmet ska logga ut när man drar ut nyckeln så har de en klass som lyssnar på "Arrived" och "Removed" som du kan använda dig av (YubiKeyDeviceListener Class). Denna sida ser ut att förklara mer hur du instansierar en session för att komma åt den klassen Making a connection

Återkom gärna med vilket sätt du tycker låter rimligt så kanske jag kan grotta ner mig lite mer inom det, eller om det är några andra frågor/resurser du är intresserad av.