Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

Tesserae simplices non sunt securae, nec implicatae meminisse impossibilia sunt. Quam ob rem toties finiunt notam viscam sub tincidunt vel in monitore. Ut Tesserae in animis utentium "obliviorum" manent atque tutelae fides amissa non est, duplex authenticas facta est (2FA).

Ob compositionem machinam habere et eius PIN cognoscere, ipsum PIN simplicius ac facilius meminisse potest. Incommoda in PIN longitudinis vel fortuiti offset sunt in possessione corporis postulatione et restrictiones in PIN violente violenta.

Contingit praeterea in regimine institutionum ut omnia velint operari secundum GOST. Haec 2FA optio colligationis in Linux discutietur. De longe incipiam.

PAM modules

Plugable Authenticatio Moduli (PAM) moduli sunt cum norma API et exsecutiones variarum machinarum authenticarum in applicationibus.
Omnes utilitates et applicationes quae PAM operari possunt eas colligere et uti ad authenticas usorum uti.
Re, aliquid tale facit: mandatum login PAM vocat, quod omnia necessaria compescit utentes modulorum in file configurationis determinatos et exitum ad mandatum login redit.

librtpam

Modulus ab Aktiv comitatu elaboratus addit duos factores authenticas usorum utentium schedulae callidi vel USB signa utentes asymmetricis clavibus secundum recentissima signa cryptographiae domesticae.

Intueamur principium operationis;

  • Vestigium libellum usoris eiusque clavem privatam reponit;
  • Testimonium servatum est in directorio domi usoris sicut creditum est.

Processus authenticas sic fit:

  1. Rutoken perquirit libellum personale usoris.
  2. Vestigium ACUS rogatur.
  3. Temere notitia signatur in clavis privatis directe in chip Rutoken.
  4. Subscriptio inde verificatur utens clavem publicam e libello usoris.
  5. Modulus subscriptionis redit confirmationem effectus ad applicationem vocationis.

Confirmare potes utens GOST R 34.10-2012 claves (longitudo 256 vel 512 bits) vel iamnon GOST R 34.10-2001.

De securitate clavium solliciti non debes - directe in Rutoken generantur nec memoriam eius in operationibus cryptographicis umquam derelinquunt.

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

Rutoken EDS 2.0 ab FSB et FSTEC iuxta NDV certificatum 4, ideo adhiberi potest in informationibus systematis quae in informatione secretiore processum habent.

uolnera facere

Fere quaelibet moderna Linux faciet, exempli causa xUbuntu utemur 18.10.

I) Install necessaria packages

sudo apt-get install libccid pcscd opensc
Si vis escritorio crinem cum Screensaver addere, inaugurare sarcinam superaddita libpam-pkcs11.

II) moduli PAM addere cum auxilio GOST

Oneratisque bibliothecam a https://download.rutoken.ru/Rutoken/PAM/
Effingo contenta PAM folder librtpam.so.1.0.0 ad systema folder
/usr/lib/ aut /usr/lib/x86_64-linux-gnu/aut /usr/lib64

3) Instrue sarcinam cum librtpkcs11ecp.so

Download DeB vel RPM sarcina ex nexu et install: https://www.rutoken.ru/support/download/pkcs/

IV) Reprehendo quod Rutoken EDS 4 operatur in systematis

In termino exequimur
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Si videris lineam Rutoken ECP <no label> - Bene est omnia.

V) Read libellum

Reprehendo quod habet libellum fabrica
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Si post lineam;
Using slot 0 with a present token (0x0)

  • notitia monstratur de clavibus et testimonialibus, debes libellum legere et illud in disco servare. Hoc ut facias, sequens mandatum currite, ubi loco {id} certificatorium ID substituere debes, quod in output praecepti superioris vidisti:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Si cert.crt file creatus est, procede ad gradum 6).
  • nihil estergo fabrica vacua est. Contactum tuum administratorem vel claves crea et testimonium te sequendo gradum proximum.

5.1) Test libellum crea

Attendite! Modi descripti ad creandum claves et testimoniales aptae sunt ad probandum et ad usum in pugna modo destinati non sunt. Ad hoc faciendum, debes uti clavibus et testimoniis latis a tuo regimine creditae auctoritatis certificationis vel auctoritatis certificationis adprobatae.
Modulus PAM ad computatores locales protegendos destinatur et in parvis institutis laborandum est. Cum pauci sint utentes, Administrator revocationem libellorum ac rationes manuales obsistere potest, necnon validitatem testimoniorum. Modulus PAM nondum scit quomodo testimonium comprobandum sit CRLs utens et vincula fidei edificandi.

Via facilis (per browser)

Test libellum obtinendum, utere web service "Rutoken Registration Center". Processus non plus quam 5 minuta capiet.

Via geek (per consolatorium et fortasse compilator)

Reprehendo in OpenSC versionem
$ opensc-tool --version
Si versio minus est quam 0.20, tunc update vel aedificare pkcs11-tool ramus cum GOST-2012 support e nostro GitHub (tempore publicationis articuli, emissio 0.20 nondum dimissa) vel e ramo magistrorum principalis OpenSC incepti non postea. committere 8cf1e6f*

Clavem par generate cum his parametris:
--key-type: GOSTR3410-2012-512:А (Π“ΠžΠ‘Π’-2012 512 Π±ΠΈΡ‚ c парамсСтом А), GOSTR3410-2012-256:A (Π“ΠžΠ‘Π’-2012 256 Π±ΠΈΡ‚ с парамсСтом A)

--id: object identificador (CKA_ID) ut duo digiti hexagoni mores numerorum ASCII tabulae. Tantum ASCII codicibus utere pro characteribus printable, quia... id opus erit ut filo ad OpenSSL transmittatur. Verbi gratia, ASCII code "3132" chordae respondet "12". Pro commodo, uti potes online ministerium convertendi chordas ad ASCII codes.

$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132

Deinde libellum creabimus. Duae modi infra describentur: prima est per CA (utemur test CAs), secunda per se signatur. Ad hoc faciendum, primum debes versionem OpenSSL instituere et configurare 1.1 vel postea laborare cum Rutoken per rtengine speciali moduli manuali utendo. Installing ac Vestibulum OpenSSL.
For example: for '--id 3132" in OpenSSL debes denotare "pkcs11:id=12".

Servitiis uti potes probationis CA, cuius multae sunt, v.gr. hic, hic ΠΈ hic, ad hoc petitionem libellum dabimus

Alia optio est ignaviae dare et se signatum creare
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Discas libellum in fabrica
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

VI) libellum subcriptio in systema

Fac certificatorium tuum sicut fasciculus base64:

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

Si similis est libellum tuum:

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

tunc debes libellum de DER forma ad PEM forma convertendum (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Iterum refutamus omnia ordine nunc esse.

Adde certificatorium ad indicem certitudinum testimonialium
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Ultima linea catalogum testimoniorum creditorum custodit ne casu vel ex intentione ab aliis utentibus mutentur. Hoc impedit, ne quis libellum hic addat et in nomine tuo aperi possit.

VII) constitue authenticas

PAM moduli nostri instituendi modus est perfecte vexillum, et fit prorsus eodem modo quo alios modulos instituens. Create ut lima /usr/share/pam-configs/rutoken-gost-pam plenum moduli nomen continens, sive defalta, prioritas moduli, et parametri authenticas.
Parametri authenticas requiruntur ad successum operationis;

  • requiritur: Tales moduli responsionem affirmativam reddere debent. Si effectus moduli vocationis negativam contineat, hoc in errore authenticas proveniet. Rogatio omissa erit, reliqui moduli vocabuntur.
  • requisitus: Similia requiritur, sed statim authenticas deficit et alios modulos negligit.
  • sufficiens: Si nullus moduli requisiti vel sufficientis ante talem modulum exitum negativum reddidit, tunc modulus responsionem affirmativam reddet. Reliquae moduli negliguntur.
  • ad libitum: Si moduli in ACERVUS non sunt requisiti et nullus modulorum sufficientium positiuum redditum, tunc saltem unus modulorum libitum positiuum reddere debet.

Plena documenta contenta /usr/share/pam-configs/rutoken-gost-pam:
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

nisi lima, deinde
$ sudo pam-auth-update
in fenestra ut apparet, asterisco pone iuxta eum Rutoken PAM GOST et torcular OK

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

VIII) Reprehendo occasus

Intelligere omnia configurantur, sed simul non amittunt facultatem in systemate stipendii, intrant imperium
$ sudo login
Nulla cap. Omnia recte configurantur si ratio machinam PIN codicem requirit.

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

IX) configurare computatrum clausus cum signo educitur

Inclusa in sarcina libpam-pkcs11 utilitatem includi pkcs11_eventmgr, quae sinit te varias agere actiones cum PKCS eventa 11 eveniunt.
Nam occasus pkcs11_eventmgr configuratione file ut serves: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Pro diversis distributionibus Linux, mandatum quod rationem facit claudendi cum scheda vel tessera remota erit differet. Cm. event card_remove.
Exemplum configuration lima ostenditur infra:

pkcs11_eventmgr
{
    # Запуск Π² бэкграундС
    daemon = true;
     
    # Настройка сообщСний ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
    debug = false;
 
    # ВрСмя опроса Π² сСкундах
    polling_time = 1;
 
    # Установка Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹
    # По-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 0
    expire_time = 0;
 
    # Π’Ρ‹Π±ΠΎΡ€ pkcs11 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π ΡƒΡ‚ΠΎΠΊΠ΅Π½
    pkcs11_module = usr/lib/librtpkcs11ecp.so;
 
    # ДСйствия с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ
    # ΠšΠ°Ρ€Ρ‚Π° вставлСна:
    event card_insert {
        # ΠžΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # ΠšΠ°Ρ€Ρ‚Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π°
    event card_remove {
        on_error = ignore;
         
        # Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ экрана
        
        # Для GNOME 
        action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
        
        # Для XFCE
        # action = "xflock4";
        
        # Для Astra Linux (FLY)
        # action = "fly-wmfunc FLYWM_LOCK";
    }
 
    # ΠšΠ°Ρ€Ρ‚Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π°
    event expire_time {
        # ΠžΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

Post hoc adde applicationem pkcs11_eventmgr incipere. Ad hoc faciendum, lima .bash_profile emenda:
$ nano /home/<имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>/.bash_profile
Adde lineam pkcs11_eventmgr usque ad finem tabella et reboot.

Gradus descriptus ad constituendum systema operantem adhiberi potest ut instructiones in aliqua distributione hodierna Linux, etiam domestica.

Quomodo utendi PAM modulis ad authenticas locales in Linux utendo GOST-2012 claves in Rutoken

conclusio,

Linux PCs magis magisque populares fiunt in imperio Russico institutionum, et certas duos factores authenticas in hoc OS constituens non semper facile est. Laeti erimus adiuvare vos solvere problema "passionis" cum hoc duce et aditum ad PC tuam fideliter defende, quin multum temporis in ea expendas.

Source: www.habr.com