2024-02-04 @roberto_vpt # IDENTIFICAZIONE UTENTI IN GEMINI In Gemini serve uno standard per identificare gli utenti, i passeggeri, partendo dalla registrazione sulla capsula. In Gemini gli utenti sono identificati cai certificati client. Capsula e passeggero coincidono solo per la capsula ed è necessario passare al formato user@host. ## SE SI COMPRENDE L'HOST SI OTTIENE LA POSSIBILITÀ DI LASCIARE MESSAGGI SULLA CAPSULA DELL'UTENTE. La necessità è legata all'uso di messaggi e commenti che possono avere messaggi di risposta. Dalla propria capsula si possono vedere e nel caso rispondere. Inoltre è possibile in alternativa inoltrare ad una casella e-mail. ## USANDO I CERTIFICATI CLIENT È FACILE Facendola semplice basterebbe mettere user@host in CN. ## POI HO LETTO IL FORMATO MISFIN E LE SPECIFICHE X500 * Si può inserire user in UID e host in DC per ottenere un indirizzo completo UID@DC. * Si ottiene la possibilità di inserire un commonName per esteso. * Sarà facoltativo integrare le altre informazioni disponibili. > Mi correggo: > DC non può contenere il '.' però openSSL crea il certificato, quindi forse si può usare nell'ambito dei certificati autofirmati su Gemini. Provo e magari funziona, altrimenti sarà necessario usare SUBJECT_ALT_NAME. ### AGGIORNAMENTO: L'uso del certificato sbagliato è come pensavo accettato dai client e dai server Gemini. Ovviamente il certificato non è valido per Misfin e-mail ma devo provare la possibilità di ricavare user@host da UID@DC accettando il certificato client nel codice del server. In caso di difficoltà restano user@host su CN oppure usare SUBJECT_ALT_NAME. ``` String X.500 AttributeType (per OpenSSL -subj) ------ -------------------------------------------- CN commonName (2.5.4.3) L localityName (2.5.4.7) ST stateOrProvinceName (2.5.4.8) O organizationName (2.5.4.10) OU organizationalUnitName (2.5.4.11) C countryName (2.5.4.6) STREET streetAddress (2.5.4.9) DC domainComponent (0.9.2342.19200300.100.1.25) UID userId (0.9.2342.19200300.100.1.1) ``` ## IL FORMATO UID Serve una specifica e propongo il set base64net, registrato in lowercase. Il carattere '_' indica uno o più spazi e non è consentito a inizio o fine userId. Il carattere '-' è usato al posto di uno o più caratteri '-' o diversi dal set base64net. Si antepone '@' per idendicare un userId per la capsula che si stà visitando. ## SERVONO ULTERIORI PASSI NELLE PARTI INTERATTIVE DEI SERVER GEMINI I link "=> @user" e "=> user@host" sono link alla capsula personale se disponibile. Può essere "gemini://host/~user/", oppure quanto usato nella capsula. ### SERVE UN LINK CHE RICHIEDA L'INPUT DI UN MESSAGGIO. Propongo l'aggiunta del carattere ':' all'identificativo. I link "=> @user:" e "=> user@host:" attivano una procedura che accetta messaggi e li inserisce in una pagina riservata all'user indicato. Inserisco questa idea nel codice e procedo ai test in locale. PS) Testo anche l'inserimento di un certificato completo ma sbagliato nei client.