Rydych yn ychwanegu client-connect sy’n gwrthod unrhyw gysylltiad lle mae common_name yn wahanol i username, ac mae’n edrych fel rhwymiad rhwng tystysgrif a chyfrif. Ar weinydd sy’n rhedeg username-as-common-name, mae’r gymhariaeth honno eisoes wedi colli ei hystyr erbyn i’r sgript redeg. Mae’r ddau werth yr un llinyn, felly mae’r prawf yn llwyddo ar gyfer tystysgrif a roddwyd i rywun hollol wahanol.

Nid yw’r gwiriad yn anghywir oherwydd bod y sgript wedi’i hysgrifennu’n wael. Mae’n anghywir oherwydd bod y gwerth mae’n ei ddarllen wedi’i amnewid yn gynharach yn yr un cysylltiad.

Beth mae’r gymhariaeth yn ymddangos i’w brofi

Mae dilysu tystysgrif a dilysu cyfrinair yn ddau brawf ar wahân, a gall gweinydd fynnu’r ddau heb fynnu eu bod yn perthyn i’r un person. Mae’r bwlch yn real: tystysgrif ddyfais ddilys ynghyd ag unrhyw gyfrif dilys yw haeriad gwahanol i’r dystysgrif honno ynghyd ag un cyfrif a enwir. Mae sgript sy’n cymharu common_name ag username yn swnio fel y cyswllt coll rhwng y ddau. A byddai felly, pe bai common_name yn dal i olygu’r hyn a ddywedodd y dystysgrif.

P’un a yw hynny’n wir yn dibynnu ar un opsiwn gweinydd, ac mae’r opsiwn hwnnw fel arfer yn cael ei droi ymlaen am reswm di-gysylltiad, megis gwneud enwi ffeiliau ffurfweddu fesul defnyddiwr yn haws.

Beth mae username-as-common-name yn ei wneud i’r enw

Gyda username-as-common-name wedi’i alluogi, mae OpenVPN yn disodli enw cyffredin y dystysgrif gyda’r enw defnyddiwr dilysedig ar ôl i’r enw defnyddiwr a’r cyfrinair gael eu gwirio. Mae’r bachyn dilysu sy’n rhedeg yn ystod y gwiriad hwnnw’n dal i dderbyn enw cyffredin y dystysgrif, oherwydd nid yw’r amnewidiad wedi digwydd eto. Mae popeth wedyn, gan gynnwys client-connect, yn gweld yr enw defnyddiwr. Felly mae’r alwad hwyrach yn derbyn un hunaniaeth ddwywaith ac ni all ei chymharu â’r dystysgrif a gyflwynwyd.

StageWhat common_name holds
Username and password verification hookThe certificate common name, for example bob-device
After the replacementThe authenticated account, alice
client-connect callbackThe account again, alice

Dilynwch un cysylltiad enghreifftiol: tystysgrif a roddwyd ar gyfer bob-device, mewngofnodid llwyddiannus i’r cyfeiriadur fel alice, a’r opsiwn wedi’i alluogi. Gall y cyfnod dilysu weld dau linyn gwahanol o hyd. Mae’r cyfnod cysylltu yn gweld alice a alice.

Mae’r enghraifft honno’n dangos pam mae’r gymhariaeth yn wag. Nid yw’n dangos y byddai’r cysylltiad fel arall yn cael ei dderbyn, gan fod dilysu tystysgrif a dilysu cyfrinair yn dal i redeg ar eu pennau eu hunain.

Rhowch y rhwymiad lle mae’r ddwy hunaniaeth yn dal i fodoli

Rhaid gorfodi’r rheol ar gyfnod sy’n gweld hunaniaeth y dystysgrif a’r cyfrif ar yr un pryd, sydd yn ymarferol yn golygu’r bachyn dilysu enw defnyddiwr a chyfrinair neu ategyn a lwythir yno. Ategyn a gefnogir sy’n perfformio dilysu cyfrinair yn barod yw’r lle cywir fel arfer i ychwanegu rheol baru, oherwydd byddai ei ddisodli â chymhariaeth enwau yn gollwng y gwiriad cyfrinair yn gyfan gwbl.

Diffiniwch y mapio cyn ysgrifennu cod, gan mai anaml yw cydraddoldeb yn bolisi go iawn. Mae tystysgrif yn aml yn nodi dyfais tra bod y mewngofnodid yn nodi person, a gall un ddyfais wasanaethu sawl person yn gyfreithlon. Storiwch y berthynas ar ffurf y rheolwch ei dyroddi, a phenderfynwch beth sy’n digwydd ar ailenwi, ar ailddyroddi ac ar enwau â chymhwyster parth. Gall troi rhagddodiad parth yn llythrennau bach neu ei dynnu heb ddeall y cyfeiriadur uno dau gyfrif y bwriadwyd iddynt aros ar wahân.

Cofiwch fod yr opsiwn hefyd yn newid pa ffurfwedd fesul cleient sy’n berthnasol, oherwydd bod client-config-dir yn cael ei allweddu gan yr enw cyffredin.

Profwch y paru â dau gyfuniad mewngofnodi dilys

Dechreuwch gyda’r pâr y mae eich polisi’n ei ganiatáu a chadarnhewch ei fod yn cysylltu. Yna cyflwynwch yr un dystysgrif ddilys gyda chyfrif gwahanol ond dilys fel arall: rhaid i’r ymgais honno fethu, a rhaid iddi fethu oherwydd y rheol baru yn hytrach nag oherwydd cyfrinair wedi’i deipio’n anghywir. Mae cyfrinair anghywir yn profi bod y gwiriad cyfrinair yn gweithio ac yn dweud dim am y rheol rhwng tystysgrif a chyfrif.

Gwiriwch y llwybrau tystysgrif ar goll a thystysgrif annilys hefyd, a chadarnhewch pa hunaniaeth mae’r gweinydd yn ei defnyddio ar gyfer gosodiadau fesul cleient. Os mai’r unig ffordd i wneud i’r gymhariaeth weithio yw analluogi username-as-common-name, cyfrifwch gost y newid hwnnw yn gyntaf, oherwydd mae’n symud chwiliad ffurfwedd pob cleient yn ôl i enw’r dystysgrif.

Erthyglau cysylltiedig