Articles

Akamai Blog přihlásit

krátce po Y2K jsme dělali vtipy o „další na řadě, Y2038!“ale tehdy to bylo v budoucnosti věčnost a pravděpodobně to bude problém někoho jiného. Nyní, když jsme na půli cesty a již jsme dosáhli bodu, kdy problémy s Y2038 mohou způsobit selhání softwaru, je to dobrá příležitost začít plánovat Y2038. Například software již může mít problémy s 20letou životností certifikátu nebo 20letými hypotékami a frekvence těchto problémů se bude zvyšovat, až se přiblížíme k Y2038. Na Akamai jsme již běží strategicky cílené interní plánování a testování pro Y2038, a zdá se pravděpodobné, že rozsah této práce bude i nadále růst v průběhu příštích 19 let, jak je toto důležité úsilí se zvyšuje naléhavost.

velmi málo se pokazilo 1. ledna 2000 pro nás (krátký Javascript na marketingovém webu Akamai zobrazující“ 19100 “ jako aktuální datum!), ale jedna věc, která se zmešká, je, že omezený globální dopad toho večera byl způsoben dvěma faktory: 1) množství pokročilé přípravy, která byla provedena; 2) mnoho „Y2K problémů“ skutečně nastalo roky předem, spíše než během samotného převrácení. Přestupné sekundy jsou v některých ohledech děsivější než problémy s datovým formátem v tom, že je těžší je otestovat a mnohem menší dopad se děje předem. Existuje riziko, že nedostatek dopadů Y2K může způsobit, že se organizace a technologové nedostatečně připraví na Y2038. Je také těžší vysvětlit“ Y2038 “ laikům než Y2K, což potenciálně ztěžuje upřednostňování a zaměření pokročilé práce. Velké množství vložené Internet Věcí (IoT) zařízení stává všudypřítomné v našem prostředí také dělá pravděpodobnost rizika a potenciální dopad podstatně vyšší pro Y2038, než to bylo pro Y2K.

před Mnoha lety jsem slyšel, možná apokryfní příběh o rané Y2K výroby dopad. Sklad měl dvě automatizované úlohy: jeden, který hledal palety prošlého zboží a poslal je k likvidaci, a druhý, který hledal nízké zásoby a objednal více produktu. Konzervované rajčata jsou první produkt, mají data vypršení platnosti start přechodu do roku 2000, a Y2K bug řídil vysokozdvižný vozík operátora se zbavit těch, rajčata (vyprší v roce 1900!), jak dorazili. Systém pak zjistil, že na konzervovaných rajčatech je nízká zásoba a objednává více. O několik týdnů později dorazí a o několik dní později bude operátor vysokozdvižného vozíku vyslán, aby je zlikvidoval. Tento cyklus pokračoval, dokud si operátor vysokozdvižného vozíku konečně nevšiml něčeho špatného a problém eskaloval. Je pravděpodobné, že některé z prvních otázek Y2038 budou mít docela podobnou povahu.

Naše počáteční zkušenosti s Y2038 plánování (kromě vidět šok z lidí, po vyslechnutí obav vznesených, že na první pohled znít 19 let), je, že inkrementální a soustředěný přístup je v této fázi zapotřebí. Mnohem více zapojených a komplexních programů bude jistě zapotřebí několik let po silnici. V této počáteční fázi se některé oblasti, na které je třeba se zaměřit, zahrnují: 1) software zabývající se budoucími časy a daty; 2) formáty zpráv a souborů na drátě; 3) zařízení s dlouhou životností a jejich závislostmi. Samozřejmě, jak se přiblížíme, bude důležité začít se soustředit na širší sady systémů, včetně zajištění bezpečného přechodu Y2038.

Software vypořádat s budoucí data

Možná nejdůležitější oblasti, zaměřit se na zpočátku je software, který se zabývá daty v budoucnu, například pro manipulaci s certifikáty X. 509 nebo pro finanční plánování. Existuje mnoho reprezentací formátu data a času, z nichž ne všechny budou mít problém s Y2038. Například, software museli vypořádat s časy v minulém století (před rokem 1970), často si vybral jiné datum a čas reprezentace. Při testování případů certifikátů X. 509 (například používaných pro HTTPS) a certifikačních autorit (CAs) jsme však v laboratoři našli řadu softwarových problémů, které začínají vznikat u certifikátů a CAs, které vyprší po Y2038.

OpenSSL zejména má více času formátů, s ASN1_UTCTIME mít limit v Y2049 (odděleně na plánu pro z Y2038), tak použijte ASN1_TIME funkce poskytují kompatibilitu s všechny rozsahy času. Převod časového limitu z knihovny, jako je OpenSSL out do 32bitového time_t, je další oblastí, která pravděpodobně bude mít problémy.

v mnoha z těchto případů bylo možné vyřešit problémy jednoduše portováním a kompilací staršího softwaru pro 64bitové architektury (např. přechod z 32bitového celočíselného time_t na 64bitový time_t). V ostatních případech byly zapotřebí rozsáhlejší změny, zejména když časy dostat obsazení do celých čísel pro matematiku nebo když formáty zpráv drát zapojit, nebo když jsou hodnoty uloženy v databázích. Při testování a fixaci podpory pro 20leté CAs se ukázala jedna věc, že do hry vstupují také následné závislosti. Například, pokud je datum 20 let v budoucnosti dostane krmení do protokolování systém, nebo systém monitorování, a pokud tato in-zase krmit do soustavy, poplachové, nebo databázích pro podávání hlášení nebo provisioning systémů, pak tyto mohou také všechny nutné opravy.

On-the-wire zprávy a formáty souborů

Jak je uvedeno výše, když jsou 32bitová časová razítka vložena do zpráv, databází nebo formátů souborů, dopad může přesahovat rámec konkrétního systému. Jedná se také o systémy s externími závislostmi, kde je často zapotřebí pokročilejší plánování, protože interakce překračují hranice systému. U těchto sbírek interoperačních systémů může být nutné uvolnit změny v určitém pořadí a často přichází do hry zpětná kompatibilita. Kromě toho, pokud existují formálně nebo neformálně standardizované protokoly, které ve zprávách používají 32bitové časové razítko epochy, jakákoli migrace nebo oprava by mohla být založena na stanovení standardu. Jako takový, tyto se stávají důležitými pro starosti jako u řetězce závislostí, jako jsou:

  1. Update protocol / standards to support post-Y2038 timestamps.
  2. implementujte podporu aktualizovaného standardu v softwarových knihovnách.
  3. získejte novou verzi knihoven začleněných do softwarových balíčků.
  4. získejte softwarové balíčky obsažené v novém přepravním produktu.

pak, pokud každý z nich trvá několik let a přepravní produkt má dlouhou životnost, pak dlouhé dodací lhůty zde již mohou být problémem.

Zařízení s dlouhou nasazen životů, a jejich závislostí

Další oblastí, začít se zaměřením na rané je zařízení s dlouhou nasazení životů. Jak již bylo zmíněno, je také důležité sledovat externí závislosti, které tato zařízení mají. Vestavěná zařízení dodávaná s 32bitovým hardwarem také nemusí mít snadnou opravu „stačí kompilovat pro 64bitový time_t“ prostřednictvím aktualizace softwaru, nebo by to mohlo mít nepřijatelný dopad na výkon.

připojené automobily a další zařízení IoT jsou pravděpodobně oblastí zvláštního zájmu, ale jsem si jistý, že existuje mnoho dalších podobných typů zařízení a aplikací. Například, s ohledem na současné trendy je pravděpodobné, že více než 10% prodaných vozů dnes bude stále působí v Y2038, a se zvyšuje ve stáří vozidla a počet vozidel na silnici, to může být ještě vyšší. Pokud to trvá několik let pro přepravu automobilů obecně Y2038 v souladu s aktuální (a rostoucí) distribuce motorových vozidel věkových kategorií můžeme skončit s významný podíl automobilů s potenciálem mít vážné problémy v devatenácti letech. Stejný vzorec pravděpodobně existuje i v některých jiných průmyslových odvětvích, například ve spotřební elektronice (jako jsou domácí herní konzole a chytré televizory), kde mohou být zařízení dodávána s předinstalovanými certifikáty CA 20+.

zařízení s dlouhou životností mohou vyžadovat komplexnější testování zařízení i jeho závislostí, jako je testování, zda operační systém a software nadále správně fungují před, během a po přechodovém bodě Y2038.

Šťastný Nový Rok!

problém Y2038 je v podobné kategorii jako IPv6: je to mnohaleté zavádění, které je v obecném případě důležité, ale ještě ne naléhavé (podle Eisenhowerovy matice). Z tohoto pohledu je nyní stejně dobrý čas jako každý, kdo začne plánovat, triaging a testování, než se stane naléhavým (nebo příliš pozdě). Zaměřte se nejprve na software zabývající se budoucími daty, formáty zpráv a souborů na drátě, a zařízení s dlouhou životností. Dále využijte zkušenosti z počátečního zaměření k vybudování komplexnějšího programu v nadcházejících letech. Bez ohledu na to, nastavit minimální baru a začít ujistěte se, že nový software, systémy, postupy a produkty, které jsou na budově a nasazení nechci představit Y2038 problémy, a vlajky obavy, když vidíte, 32-bit časová razítka-od-the-unix-epocha zahrnuty v nové designy.

Erik Nygren je kolega a hlavní architekt V Akamai je platforma inženýrské organizace. Letos v červnu oslaví 20.výročí v Akamai.

Děkuji více lidem v Akamai za jejich příspěvky do tohoto článku.

zatímco při přípravě tohoto dokumentu byla přijata preventivní opatření, Akamai Technologies, Inc. nenese žádnou odpovědnost za chyby, opomenutí, nebo za škody vyplývající z použití zde uvedených informací. Informace zde uvedené mohou být změněny bez předchozího upozornění. Akamai a Akamai wave logo jsou registrované ochranné známky nebo servisní značky ve Spojených státech (reg. USA Pat. & Tm. Z). Publikováno 10. Ledna 2019.