Inilunsad ng Facebook ang bagong tool sa pagbawi ng account ng open source: Delegated Recovery

facebook-on-mobile

Sa conference USENIX Enigma, pinalabas ng Facebook ang isang bagong paraan upang mapagtagumpayan ang problema ng mga nakalimutan na mga password. Kilala bilang Delegated Recovery, ang mekanismo ay mahalagang nagbibigay-daan sa dalawang mga online na serbisyo ng isang user na may mga account na gagamitin bilang isang form ng dalawang-factor na pagpapatotoo.

Ang Delegated Recovery ay isang bagay sa isang bagong tumagal sa 2FA, ang pagbuo sa naunang inihayag ng Facebook ng suporta para sa U2F Security Keys. Ang problema sa paggaling ng password sa pamamagitan ng email o SMS, madali ba para sa pagbawi ng medium upang ma-kompromiso, at ang mga tanong sa seguridad ay madaling nahulaan. Ang Delegated Recovery ay tumatagal ng isang bagong diskarte, at ito ay sinubukan sa GitHub.

Sa totoo lang, hindi lamang ang pagiging Delegated Recovery nasubok sa GitHub, ginawang magagamit din ito sa platform. Inilarawan ito bilang "isang protocol na nagbibigay-daan sa isang application na mag-delegate ng kakayahan upang mabawi ang isang account (halimbawa sa kaganapan ng isang pagkawala ng kredensyal o kompromiso) sa isang account na kinokontrol ng parehong gumagamit sa isang third party service provider."

Sa GitHub, ipinatupad ang Delegated Recovery bilang isang tampok na tinatawag Mabawi ang Mga Account sa ibang lugar:

Ang Ibalik ang Mga Account Sa ibang lugar ay nagbibigay-daan sa iyong iugnay ang iyong GitHub account sa iyong Facebook account. Makakatulong ito sa amin na mabawi ang iyong account para sa mga tiyak na dalawang-factor na mga pag-lock ng mga pangyayari sa pag-lock. Halimbawa, maaari kang maging naka-lock sa iyong GitHub account dahil nawala mo ang iyong telepono o U2F key, nagbago ng mga telepono nang hindi muling pag-enroll, o nawalan ng kakayahang gamitin ang iyong telepono o token nang walang magagamit na backup.

Sa kasalukuyan, ang pagkawala ng kakayahang magpatunay sa iyong telepono o token ay nangangailangan na patunayan mo ang pagmamay-ari ng account bago namin i-disable ang dalawang-factor na pagpapatotoo. Ang pagpapatunay ng pagmamay-ari ay nangangailangan ng pag-access sa isang nakumpirma na email address at isang wastong pribadong key ng SSH para sa isang ibinigay na account. Ang bagong tampok na pagbawi ay magbibigay ng isang alternatibong patunay ng pagmamay-ari ng account na maaaring magamit kasama ng iba pang mga pamamaraan.

Gayunpaman, kung mayroon kang isang account sa GitHub at Facebook, maaari mong gamitin ang isa bilang paraan ng pagbawi para sa iba, ngunit nangangailangan ito ng isang antas ng paghahanda. Halimbawa, kakailanganin mong lumikha ng token sa pagbawi sa GitHub na maaaring maimbak sa loob ng iyong Facebook account. Kung mawawalan ka ng access sa iyong GitHub account, maaari mong mabawi ang entry gamit ang naka-imbak na token sa pagbawi.

Mahalaga, ang proseso ay hindi nagbibigay ng access sa naka-lock na account, ito ay ginagamit lamang bilang isang paraan ng pag-verify ng pagkakakilanlan. Ipinapaliwanag ng GitHub ang daloy ng impormasyon:

  • Ang GitHub ay naka-encrypt ng isang lihim na halaga gamit ang 256-bit na AES-GCM na nauugnay sa pagkakakilanlan ng isang account sa isang bagay na pagbawi ng token kasama ang iba pang metadata.
  • Ang token ay digital na nilagdaan ng GitHub gamit ang secp256r1.
  • Iniimbak ng Facebook ang token na ito sa kanilang mga server hanggang kinakailangan. Ang token na ito ay hindi isinusulat ng kontrata hanggang sa ang isang pagbawi ay pinasimulan at hindi na magamit sa yugtong ito.
  • Kapag ang isang pagbawi ay pinasimulan, ang counter sa Facebook ay nagpaparehistro ng token at nagpapadala ng back-count na token.
  • Pinapatunayan ng GitHub ang countersigned token gamit ang mga sumusunod na alituntunin:
    • Dapat na wasto ang countersignature.
    • Ang ipinagkaloob na token ay dapat na inisyu kamakailan.
    • Ang lagda ng orihinal, nested token ay dapat na wasto.
  • Tinitingnan ng GitHub ang isang token sa pagbawi sa pamamagitan ng isang bit 128 na random na nakabuo ng ID at tinitiyak na ang token ay nakumpirma na nai-save at hindi binawi.
  • Inalis ng GitHub ang lihim sa orihinal na token at ginagamit ito upang i-verify ang may-ari ng token.

Ang GitHub ay nag-iimbak lamang ng token ID, user ID, at token na estado. Ang Facebook ay nag-iimbak ng isang token na may isang naka-encrypt na lihim na nauugnay sa isang Facebook account at hindi magiging wasto hanggang sa ito ay ginagamit sa isang pagbawi. Tinutulungan ng prosesong ito ang limitasyon ng mga dump ng database at mga kahinaan sa SQL injection na walang karagdagang kompromiso ng mga key ng pag-encrypt at pag-sign.

Sa walang punto ang GitHub ay nagpapalit ng anumang personal na makikilalang impormasyon sa Facebook. Gayundin, hindi binabanggit ng Facebook ang anumang personal na nakikilalang data sa amin.

Ang karagdagang impormasyon ay makukuha mula sa Facebook Engineering at GitHub Engineering.

pinagmulan

Ipagkalat ang pag-ibig

Mag-iwan ng komento