Uthibitishaji wa vipengele viwili kwa SSH

"Secure shell" SSH ni itifaki ya mtandao ya kuanzisha muunganisho salama kati ya wapangishi, kwa kawaida juu ya bandari 22 (ambayo ni bora kubadilisha). Wateja wa SSH na seva za SSH zinapatikana kwa mifumo mingi ya uendeshaji. Takriban itifaki nyingine yoyote ya mtandao hufanya kazi ndani ya SSH, yaani, unaweza kufanya kazi kwa mbali kwenye kompyuta nyingine, kusambaza mtiririko wa sauti au video kupitia chaneli iliyosimbwa, n.k. Mbali na hilo, kupitia seva mbadala ya SOCKS kwenye seva pangishi ya mbali unaweza kuunganisha kwa wapangishi wengine kwa niaba ya seva pangishi hii ya mbali.

Uthibitishaji hutokea kwa kutumia nenosiri, lakini wasanidi programu na wasimamizi wa mfumo kwa kawaida hutumia funguo za SSH. Shida ni kwamba ufunguo wa kibinafsi unaweza kuibiwa. Kuongeza neno la siri kinadharia hulinda dhidi ya wizi wa ufunguo wa kibinafsi, lakini katika mazoezi, wakati wa kusambaza na funguo za kuhifadhi, bado inaweza kutumika bila uthibitisho. Uthibitishaji wa sababu mbili hutatua tatizo hili.

Jinsi ya kutekeleza uthibitishaji wa sababu mbili

Watengenezaji kutoka Asali iliyochapishwa hivi majuzi maelekezo ya kina, jinsi ya kutekeleza miundombinu inayofaa kwenye mteja na seva.

Maagizo yanafikiri kuwa una seva pangishi ya msingi iliyofunguliwa kwa Mtandao (bastion). Unataka kuunganisha kwa seva pangishi hii kutoka kwa kompyuta ndogo au kompyuta kupitia Mtandao, na kufikia vifaa vingine vyote vilivyo nyuma yake. 2FA huhakikisha kwamba mshambulizi hawezi kufanya vivyo hivyo hata kama atapata ufikiaji wa kompyuta yako ndogo, kwa mfano kwa kusakinisha programu hasidi.

Chaguo la kwanza ni OTP

OTP - nywila za wakati mmoja za dijiti, ambazo katika kesi hii zitatumika kwa uthibitishaji wa SSH pamoja na ufunguo. Wasanidi programu wanaandika kuwa hili si chaguo bora, kwa sababu mshambulizi anaweza kuinua ngome bandia, kukatiza OTP yako na kuitumia. Lakini ni bora kuliko chochote.

Katika kesi hii, kwa upande wa seva, mistari ifuatayo imeandikwa kwenye usanidi wa Chef:

  • metadata.rb
  • attributes/default.rb (ya attributes.rb)
  • files/sshd
  • recipes/default.rb (nakala kutoka recipe.rb)
  • templates/default/users.oath.erb

Programu yoyote ya OTP imesakinishwa kwa upande wa mteja: Kithibitishaji cha Google, Authy, Duo, Lastpass, kimesakinishwa brew install oath-toolkit au apt install oathtool openssl, kisha kamba ya msingi16 (ufunguo) hutolewa. Inabadilishwa kuwa umbizo la Base32 ambalo vithibitishaji vya simu hutumia na kuingizwa moja kwa moja kwenye programu.

Kama matokeo, unaweza kuunganisha kwa Bastion na kuona kwamba sasa inahitaji sio tu neno la siri, lakini pia msimbo wa OTP kwa uthibitishaji:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

Chaguo la pili ni uthibitishaji wa vifaa

Katika kesi hii, mtumiaji hatakiwi kuingiza msimbo wa OTP kila wakati, kwa kuwa sababu ya pili inakuwa kifaa cha vifaa au biometriska.

Hapa usanidi wa Chef ni ngumu zaidi, na usanidi wa mteja unategemea OS. Lakini baada ya kukamilisha hatua zote, wateja kwenye MacOS wanaweza kuthibitisha uthibitishaji katika SSH kwa kutumia neno la siri na kuweka kidole kwenye sensor (sababu ya pili).

Wamiliki wa iOS na Android wanathibitisha kuingia kwa kubonyeza kitufe kimoja kwenye smartphone yako. Hii ni teknolojia maalum kutoka Krypt.co, ambayo ni salama zaidi kuliko OTP.

Kwenye Linux/ChromeOS kuna chaguo la kufanya kazi na tokeni za USB za YubiKey. Bila shaka, mshambuliaji anaweza kuiba ishara yako, lakini bado hajui neno la siri.

Chanzo: mapenzi.com

Kuongeza maoni