Twa telefoanen, ien profyl en in patroan dat boppenatuerlik liket oant immen nei de gateway sjocht. Ien apparaat hâldt de tunnel, it twadde ferbynt, en it earste ferliest him binnen sekonden. It earste ferbynt wer en it twadde falt fuort. Batterijbesparring, Wi-Fi-swerving en drager-NAT krije allegear de skuld, wylst de wiere oarsaak yn in tekstfjild sit dat mei al it oare kopiearre is. IKEv2 identifisearret in peer oan in namme, en beide telefoanen biede deselde oan.

De identiteit is de kaai dêr’t de server dy ûnder bewarret

Binnen in IKEv2-útwikseling seit elke kant wa’t er is: de inisjator stjoert in pleatslike identifikaasje, de beäntwurder antwurdet mei syn eigen, en de beäntwurder kontrolearret ek de identiteit dy’t de inisjator beweart tsjin it belied. De gateway hâldt syn steat per identiteit ynstee fan per apparaat, om’t in apparaat net eat is dat er sjen kin. Twa telefoanen mei ien identifikaasje komme dêrom as ien peer, en de twadde útwikseling moat de earste oerskriuwe. De swierrichheid ferskynt pas wylst beide yn gebrûk binne, en dêrom reprodusearret in test mei ien telefoan it nea.

Neat hjirfan is in bug yn ’e klient. De klient stjoerde krekt wat it profyl him sei te stjoeren.

Hoe’t de botsing der by de gateway útsjocht

Sjoch nei de peer-list wylst beide telefoanen wekker en yn gebrûk binne. In botsing lit ien ynskriuwing sjen waans adres feroaret as de telefoanen wikselje, wylst de teller fan aktive sesjes nea twa berikt. It ûntbinen op oanfraach sjocht der oars út, en har te ûnderskieden freget ien observaasje ynstee fan in teory.

ObservationShared identityIdle teardown
Peer entries while both are awakeOne, with a changing addressOne per phone, or none
What triggers the dropThe other device connectingTime without traffic
What restores itThe other device disconnectingAny app needing the tunnel

Skriuw beide barren mei tiidstimpels op wylst it bart. In ûnderbrekking dy’t gearfalt mei it ferbinen fan ’e oare handset wiist nei de identifikaasje, en ien dy’t ien idle-ynterval nei it lêste pakket komt, wiist nei in timer.

Wêr’t de duplikaten wei komme

It eksportearjen fan ien wurkjende konfiguraasje en allinnich it serveradres bewurkje leveret in twadde bestân op mei de identiteit fan it earste bestân noch der yn. Dat is it gewoane paad nei dizze flater, en it bart meast by it haastige onboarden fan in lytse groep.

De fjildnammen meitsje it maklik om it te missen. De fierde identifikaasje neamt de gateway dy’t de telefoan ferwachtet, en dy kopiearje is korrekt. De pleatslike identifikaasje neamt dit apparaat by de gateway, en dy wearde kopiearje is it hiele probleem.

Jou in wearde per apparaat

Brûk eat dat unyk is foar it apparaat en stabyl yn syn hiele libbensdoer, lykas de apparaatidentifikaasje út ’e ynventaris of in wearde dy’t jo behearssysteem per ynskriuwing generearet. In ôfdielingslabel, in dield tsjinstaccountnamme of it e-mailadres fan ’e brûker botse allegear sadree’t dy persoan in twadde apparaat hat.

Genearrearje de payload per apparaat ynstee fan ien bestân te fersprieden. Registrearje hokker wearde by hokker handset heart, sadat in ferfanging it âlde profyl net weromset en de nije telefoan daliks wer yn deselde botsing bringt.

Kontrolearje ek de serverkant. In gateway dy’t de identiteit oan in fêst tunneladres keppele, kin noch hieltyd botse as twa ferskillende identifikaasjes deselde tawizing krije, dus befêstigje dat de pool romte hat en dat tawizings net per brûker fêstset binne.

Ferifiearje mei beide telefoanen wekker

Ferbyn de earste, berik in priveebron, ferbyn dan de twadde en lit beide in minút idle. Beide sesjes moatte fuortbestean en de peer-list moat twa identiteiten sjen litte. Beskoattelje en ûntskoattelje dan elke telefoan om te befêstigjen dat it idle-gefal noch goed docht.

As ien sesje noch hieltyd ien kear deis útvalt sûnder dat der eat oars ferbynt, is de identiteit net mear de fertochte. Gean fierder nei idle-timers en serversesje-limiten ynstee fan it profyl wer te bewurkjen.

Relatearre artikelen