neprihlásený Piatok, 19. apríla 2024, dnes má meniny Jela
Nedeľňajší posun času vyústil na Slovensku do časového IT problému

Rozličné neštandardné aj štandardné úpravy času, ako sú pridávanie tzv. skokových sekúnd, dávnejšie prechod do roku 2000 ale aj obyčajný posun času, sú tradične nočnou morou programátorov a viackrát spôsobili neočakávané IT incidenty. Najnovšie sa k nim pridal špecificky na Slovensku problém s internetovým platením, ku ktorému prišlo po prechode času na letný čas v noci na nedeľu. Problém je zrejme najzaujímavejším vyskytujúcim sa problémom tohto typu na Slovensku za mnoho posledných rokov. Detailná analýza.

Značky: SlovenskoITobchodzaujímavosti

DSL.sk, 29.3.2017


Nedeľňajší posun času zo zimného na letný neprebehol v oblasti IT na Slovensku hladko, keď bol bezprostredným spúšťačom jedného z najzaujímavejších IT problémov súvisiacich s časom v našej krajine za mnoho posledných rokov.

Incident

Ako sme po upozornení čitateľa informovali už hneď v nedeľu, po posune času prestali v niektorých prípadoch fungovať eshopom platby cez Internet a tieto platby nebolo možné zrealizovať.

Stalo sa tak v prípade platenia cez systémy TatraPay a CardPay banky Tatra banka na niektorých eshopoch, už podľa našej predbežnej analýzy v nedeľu príčina ale nebola na strane banky. Problém spôsobili evidentne implementácie systémov niektorých eshopov, ktoré banke posielali jeden z parametrov v rozpore so špecifikáciou systémov TatraPay a CardPay.

Z povahy problému tento odštartoval u daných eshopov zrejme hneď po posune času a trval až kým eshop problém neodstránil. Alebo do doby, kým banka neuskutočnila zmeny riešiace problém na strane eshopov.

Podľa banky sa problém týkal približne desiatich eshopov, ich zoznam ale neposkytla.


Chyba v nedeľu pri platení cez CardPay na GoPass.sk, kliknite pre zväčšenie (screenshot: čitateľ)



Na viacero eshopov, kde sa vyskytoval od nedele respektíve počas uplynulých dní problém s platením, nás upozornili čitatelia.

Na základe analýzy URL adresy, na ktorú bol zákazník pri platení presmerovaný, alebo samotným potvrdením eshopu bol tento problém identifikovaný u štyroch konkrétnych eshopov. U jedného ďalšieho sa nepotvrdil a u jedného sa nepodarilo overiť, že sa tu vyskytoval tento problém.

Eshopmi, u ktorých sa tento problém podľa dostupných informácií vyskytoval, boli okrem iného Alza.sk, Bistro.sk, GoPass.sk a Syphon.sk

Prečo sú v IT úpravy času problém

IT systémom dlhodobo robia problémy rozličné neštandardné aj štandardné úpravy respektíve zmeny času. Tieto problémy vyplývajú z viacerých dôvodov.

V prípade prechodu do roku 2000 to boli samozrejme očakávané problémy kvôli nedostatku starších formátov uchovávajúcich dátum a konkrétne rok len ako dve posledné číslice roku. Tento formát tak nepočítal s dátumami v ďalšom storočí. Ďalší podobný problém nastane 19. januára 2038, kedy pretečie 32-bitové počítadlo sekúnd od 1. januára 1970. Takýmto spôsobom sa ale uchováva čas na mnohých unixových systémoch.

Ďalšie typy problémov súvisia s typicky rozdielnym spôsobom uchovávania a počítania času v IT systémoch v podobe sekúnd uplynulých od 1. januára 1970 a formátu lokálneho času používaného človekom, špecificky sa prejavujúce v prípade posunov času o hodinu pri prechodoch medzi zimným a letným časom.

Najznámejším incidentom tohto typu v posledných rokoch bolo nesprávne o hodinu posunuté zvonenie budíkov na niektorých iPhonoch v prípade niektorých typov budíkov v roku 2010.

Posledným typom viditeľným najmä v posledných rokoch je pridanie tzv. skokových sekúnd, ktoré sa aplikuje výnimočne pri zistení rozdielu otočenia Zeme k Slnku a času počítaného človekom o viac ako 0.9 s. K tomuto rozdielu prichádza kvôli o niečo pomalšiemu otáčaniu Zeme okolo svojej osi ako za 24 hodín. V IT systémoch takéto pridanie skokovej sekundy typicky znamená neštandardné pozastavenie počítadla času.

Tento typ spôsobil výrazné problémy najmä na prelome júna a júla 2012, keď sa pre chybu v linuxovom jadre naplno vyťažovali procesory aj bez reálnej záťaže a internetové servery a služby sa stávali nedostupnými. Najväčšie incidenty to ale spôsobilo u zahraničných služieb, na Slovensku sa problém vo väčšom meradle zrejme špecificky neprejavil.

Problémy a incidenty typov okrem nedostačujúcich formátov pre budúce časy sa typicky samozrejme vystkytujú, keď je vzhľadom na málo častý výskyt úprav časov často ťažké systémy na takého udalosti dostatočne otestovať alebo programátori priamo na ne zabúdajú.

Detailný popis incidentu

Príčina nedelňajšieho incidentu sa dá tiež charakterizovať ako zabudnutie na letný čas a neotestovanie systémov v letnom čase, v kombinácii s nedôslednou implementáciou podľa špecifikácie.

Príčinu problému sme analyzovali už v nedeľu na základe verejne dostupných informácií, v pondelok banka príčiny potvrdila.

Pri platbách cez TatraPay a CardPay obchodník presmeruje prehliadač užívateľa na stránky Tatra banky, pričom parametre platby posiela banke v parametroch URL respektíve formulárových dátach pri metóde POST.

Jedným z týchto parametrov je TIMESTAMP, časová pečiatka. Tá sa zvyčajne pridáva, aby nemohla byť podpísaná výzva k platbe použitá neskôr v inom čase útočníkom jednoducho zopakovaním tej istej URL.

Podľa špecifikácie nových verzií protokolov TatraPay a CardPay sa má časová pečiatka posielať v UTC čase zodpovedajúcom časovému pásmu GMT+0000, vo formáte DDMMYYYYHHMISS. Servery banky majú časovú toleranciu a akceptujú aj časovú pečiatku, ktorá sa oproti aktuálnemu UTC času pri spracovaní transakcie bankou líši o maximálne hodinu jedným alebo druhým smerom.

Viacero eshopov ako časovú pečiatku ale evidentne posielalo alebo stále posiela aktuálny čas v našom časovom pásme. Do nedeľného posunu času na Slovensku platil CET čas posunutý oproti UTC o jednu hodinu napred. Aj takýto čas bol tesne v tolerancii akceptovanej servermi banky, požiadavky na transakcie tak boli akceptované a platby na takto implementovaných eshopoch doteraz fungovali.

Po posune času v noci na nedeľu ale začal na Slovensku platiť čas CEST posunutý oproti UTC už o dve hodiny. Ak eshop poslal s transakciou časovú pečiatku v našom lokálnom čase, tá sa od aktuálneho UTC času líšila už o približne dve hodiny a servermi Tatra banky bola v súlade so špecifikáciou protokolov odmietnutá.

Systémy banky konkrétne zákazníkov informovali chybou "Požiadavka nie je platná (neplatný TIMESTAMP)."

U eshopov, u ktorých prišlo presne k tomuto problému, je dôvod samozrejme na strane eshopov respektíve dodávateľov systémov. Systémy totiž neimplementovali tak, aby plne v súlade so špecifikáciou protokolov fungovali celý rok aj počas letného času.

To samozrejme konštatuje aj stanovisko banky. "Obchodníci, ktorí mali problém s prevádzkou služieb podľas nedele, 26. marca 2017, nemali služby CardPay a TatraPay naimplementované v súlade s poskytnutými špecifikáciami banky," uviedla pre DSL.sk Zuzana Povodová, hovorkyňa banky.

Prečo sa incident prejavil teraz

Posun času sa samozrejme dlhé desaťročia na Slovensku deje dvakrát ročne a podpora eshopov pre TatraPay a CardPay je prítomná dlhé roky. Prečo sa teda problém prejavil prvýkrát až teraz?

Dôvodom je skutočnosť, že parameter TIMESTAMP sa posiela v parametroch až v novej verzii protokolov využívajúcich nový bezpečnejší spôsob autentifikácie. Hoci nové verzie boli sprístupňované najmä novým obchodníkom už približne dva roky, existujúci obchodníci mali na prechod termín do konca tohto marca.

Viaceré implementácie nových verzií protokolu tak boli používané v letnom čase prvýkrát až teraz v nedeľu po prechode na letný čas.

Riešenia

Prirodzeným riešením bolo samozrejme na strane eshopov začať vyhovovať špecifikácii a posielať vyhovujúci TIMESTAMP.

Bistro.sk prevádzkované veľkou internetovou spoločnosťou Ringier Axel Springer / Azet v stanovisku pre DSL.sk v pondelok poobede avizovalo, že úprava "je už dávno vyriešená". Na konkrétne otázky kedy presne bol problém identifikovaný a vyriešený spoločnosť ale už nereagovala.

Podľa informácií čitateľa si Syphon.sk problém opravil v pondelok poobede.

Druhé riešenie problému nasadila Tatra banka, ktorá začala akceptovať hodnoty TIMESTAMP aj v intervale dvoch hodín oproti aktuálnemu UTC času. Podľa informácií Povodovej pre DSL.sk k nasadeniu tejto zmeny prišlo v utorok pred pol dvanástou doobeda. Najneskôr k tomuto času tak už platby vo všetkých eshopoch fungovali.

Eshop Alza.sk posielal TIMESTAMP posunutý o dve hodiny ešte aj po tomto termíne, v jeho prípade tak sfunkčnila platby zrejme práve táto zmena.

Ako to bolo v prípade ostatných eshopov, ktoré mali tento problém, nie je známe.

Reakcie eshopov

Reakciu eshopov na otázky v súvislosti s týmto problémom je možné vo všeobecnosti označiť za nedostatočnú.

GoPass.sk prevádzkovaný Tatry mountain resorts využívajúci CardPay na akceptáciu platenia kartami cez Internet v stanovisku pre klientov, ktoré nám v nedeľu neskôr poobede zaslal, obviňoval banku. "Dovolíme si Vás informovať, že na strane TATRA BANKY došlo k technickej poruche, následkom ktorej má banka celoplošný výpadok a z daného dôvodu nie je možné ani prostredníctvom našej stránky zrealizovať platby. Poprosíme Vás o trpezlivosť, na odstránení problému sa pracuje," tvrdilo stanovisko.

Nie je jasné, či toto stanovisko vzniklo u prevádzkovateľa už po úplnej analýze problému, v každom prípade korigované stanovisko nám prevádzkovateľ až do publikovania článku nezaslal.

U GoPass.sk je pritom platenie kartami cez CardPay zrejme jediným spôsobom internetovej platby.

Alza.sk podporuje TatraPay. Problém v stanovisku označila za drobnú disfunkciu. Ďalej v stanovisku tvrdí, že "Chyba nebola na jej strane" a "Technickú poruchu môžu spôsobiť rôzne faktory". Na otázku na koho strane bola podľa eshopu chyba a či tým teda myslela chybu na strane dodávateľa systému Alza konkrétne neodpovedala.

Samozrejme Alza podporuje viaceré ďalšie spôsoby platby a zákazníci mohli využiť niektorý iný, napríklad platbu kartou. Tú nemá Alza realizovanú cez CardPay a teda fungovala. Problémom to bolo ale pre zákazníkov, ktorí využívajú TatraPay a k iným spôsobom platby nemajú prístup respektíve ich nechcú využívať.

Alza tvrdí, že v tejto súvislosti nedostala od zákazníkov sťažnosti.

Bistro.sk zrejme tiež podporuje platbu kartami cez CardPay ako jediný spôsob ako zaplatiť za objednávky cez Internet. Spoločnosť podľa svojho stanoviska po detekcii problému platby znemožnila, aby sa zákazníci zbytočne nepokúšali platiť. Zostala im možnosť platiť za jedlo po doručení donášky v hotovosti alebo stravnými lístkami.

Na viaceré konkrétne otázky ale spoločnosť neodpovedala. Okrem iného neodpovedala ani na otázku ako mohlo k takejto chybe prísť, keď je okrem iného vďaka integrácii Azetu veľkou internetovou spoločnosťou s vlastným vývojom.


      Zdieľaj na Twitteri



Najnovšie články:

Seriál Fallout podľa počítačovej hry bude mať pokračovanie
Budúci týždeň budú vydané dve dôležité linuxové distribúcie
Špehovacie satelity SpaceX už snímkujú Zem, s vyšším rozlíšením ako doterajšie
Linux si na PC drží podiel 4%
AI výkon tohtoročnej generácie Intel CPU bude vyšší ako 100 teraops/s
Apple bude mať nový seriál o alternatívnom sovietskom vesmírnom programe, predĺžila For All Mankind
Pôsobivého dvojnohého robota Atlas nahradí úplne nová elektrická verzia
O2 spustilo predaj na diaľku. Namiesto eID sa fotí tvár a občiansky, nedá sa objednať eSIM ani predplatenka
Klon populárnej databázy Redis od Linux Foundation k dispozícii v prvej verzii
Helikoptéra na Marse bude zbierať dáta aj po strate komunikácie so Zemou


Diskusia:
                               
 

Bistro som si vsimol v nedelu vecer, ked som sa musel vychystat do obchodu, lebo som nemal hotovost :D
Odpovedať Známka: 5.8 Hodnotiť:
 

juj ty si ale nezbedníček :}
Odpovedať Známka: 6.1 Hodnotiť:
 

Chlap bez hotovosti nie je horšie ako chlap bez pohotovosti... ;-)
Odpovedať Známka: 6.0 Hodnotiť:
 

preco riesia taketo banality typu skokova sekunda? Dohodnem standard ze sa korigovat cas o mikrosekundy nebude a bude sa az raz za 100 rokov pridavat/uberat 1 minuta a vyriesene.
Odpovedať Známka: -6.2 Hodnotiť:
 

Možno je v pozadí tohto problému Elon. Tak to by mohol byť dôvod medializácie.. Ak by dnes večer predstavoval S8-čku, tiež by to tu bolo spomenuté :)
Odpovedať Známka: -2.0 Hodnotiť:
 

Nejake audi tu nikoho nezaujima, nech je co aj S10-ka.
Odpovedať Známka: 2.0 Hodnotiť:
 

pretoze mas odvetvia, kde je ta skokova sekunda dolezita. a je lepsie mat jeden celosvetovy cas, ako to zas stiepit a kazde odvetvie by si pocitalo cas po svojom.
uz tak sa nam napicu zije s 50 casovymi pasmami, ktore casto nemaju ziadnu logiku. nepotrebujeme k tomu pridavat dalsi bordel, ze kazdy bude mat iny cas, jeden podla pohodlia a druhy podla potreby.
Odpovedať Známka: 3.3 Hodnotiť:
 

Chyba sa podľa mňa stala hneď na začiatku, keď Tatra banka akceptovala timestamp s odchýlkou až jednej hodiny. Že tam budú obchodníci posielať lokálny čas namiesto UTC mala Tatra banka priam predpokladať. Keby to mali nastavené na nejakú normálnu hodnotu, t.j. max 15 minút, tak by sa na to pri integrácii prišlo hneď.
Odpovedať Známka: 9.1 Hodnotiť:
 

Ja som si vsimol ze dobry gulas bol aj v EPG.
Odpovedať Známka: 7.8 Hodnotiť:
 

Ano - a poriadny!
Odpovedať Hodnotiť:
 

to tam tak dobre varia?
Odpovedať Známka: 10.0 Hodnotiť:
 

Zaujímavé je, že tento slávny posun času zrejme spôsobuje nie úsporu ale nárast spotreby energie z dôvodu nižších teplôt ráno keď chodia ľudia skôr do práce. Kvôli kúreniu. O rozbitom spánkovom režime a oveľa nižšej efektivite a produktivite ľudí pracujúcich na smeny ani nehovoriac.
Odpovedať Známka: 3.3 Hodnotiť:
 

Je to nezmysel. Niektoré pokrokové krajiny už letný čas dávno zrušili.
Odpovedať Známka: 3.7 Hodnotiť:
 

Čo pokrokové, už aj mnohé zaostalé diery. Len tu nič...
Odpovedať Známka: 6.0 Hodnotiť:
 

LETNY cas nech ostane navzdy a bude pokoj.
Odpovedať Známka: 4.4 Hodnotiť:
 

musim konstatovat, ze tatrabanka to ma tentokrat spravne a presun na zimny a letny cas je len spickou ladovca. ludia kolkokrat naimplementuju nejake veci s lokalnym casom a potom, ked sa ta vec zacne pouzivat cez viac casovych zon, tak su z toho v riti, pretoze zrazu casy nesedia. v casoch mojej hluposti som takto naimplementoval pridavanie udalosti do buducnosti a to tiez nikdy poriadne pre inu casovu zonu alebo po prechode na zimny / letny cas nefungovalo, pretoze sa korekcia bud neurobila vobec, alebo 2x. UTC na developerov.
Odpovedať Známka: 5.0 Hodnotiť:
 

Presne tak. A dokonca, keby implementacia TatraPay nebola podmienovana zmluvou, bolo by mozne aj hadzanie vylucnej zodpovednosti len na opacnu stranu uplne jednoznacne. Konstatovat vsak nemusim, tak zrejme priekazne nevydam uroven odbornosti predchadzajuceho prispevku dosahujuce vyjadrenie.
Odpovedať Známka: 2.0 Hodnotiť:
 

Presne tak. A dokonca, keby implementacia
tolko mi stacilo, aby som si uveomil, ze autorom je syntaxterrorXXX :D
lepsis sa :)
Odpovedať Známka: 7.5 Hodnotiť:
 

19.1.2038 bude koniec sveta
Odpovedať Známka: 5.0 Hodnotiť:
 

Už zase?
Odpovedať Známka: 3.8 Hodnotiť:
 

O tom datume som este nepocul, do ktorej sekty sa mam pridat aby som sa zachranil?
Odpovedať Známka: 3.3 Hodnotiť:
 

64-bitoveho pocitadla
Odpovedať Známka: 8.6 Hodnotiť:
 

https://en.wikipedia.org/wiki/Year_2038_problem
Odpovedať Známka: 10.0 Hodnotiť:
 

Hmm, sorry dal som ti - za koniec sveta a potom keď som sa pozrel na ten článok z wikipedie som to pochopil. :)

Odpovedať Známka: -5.0 Hodnotiť:
 

stacilo sa pozriet na tento clanok, pod ktorym diskutujes
Odpovedať Známka: 10.0 Hodnotiť:
 

ale, preco hned tak ostro?
19.1.2038 bude 1.1.1970
Odpovedať Známka: 10.0 Hodnotiť:
 

Prestaňme už čarovať s pusúvaním času a bude po všetkých problémoch!
Odpovedať Známka: 1.4 Hodnotiť:
 

Zrusenie je oficialne mozne az po legislativnom ukotveni carovania!
Odpovedať Známka: 3.3 Hodnotiť:
 

Čiže už samotná existencia LČ je dôkazom legislatívne ukotveného čarovania.
Odpovedať Známka: 5.0 Hodnotiť:
 

Prdlajs. Oficialnu existenciu jednoznacne urcuje moznost dat sa voci nemu poistit alebo zan odvadzat dane.
Odpovedať Známka: 6.7 Hodnotiť:
 

inzerat:
Vazena Alza.sk, Bistro.sk, GoPass.sk a Syphon.sk,
ponukam vam svoje sluzby programatora s nasledovnymi vyhodami:
- viem citat prirucky
- viem co je to utc
- prijemne vystupovanie, komunikacia, zodpovednost (nebudem sa vyhovarat na banku)
- skusenosti v odbore (uz raz uspesne implementovany tatrapay)
pripadne sprostredkujem sluzby medialneho poradcu, aby vase vyhlasenia vyzerali profesionalne a nie arogantne a hlupo.
Odpovedať Známka: 10.0 Hodnotiť:
 

S pozdravom,
Martin Jakubec
Odpovedať Známka: 10.0 Hodnotiť:
 

Alza ma platbu kartou realizovanu branou od GP prevadzkovanu CSOB. Ale ta ich funkcionalita az do cca 2-3 tyzdne dozadu bola strasna a myslim, ze stale maju jednu bezpecnostnu dieru, na ktoru som narazil, na ich stastie normalne tazko zneuzitelnu, ale kaslal ich pes, ked clovek od nich nieco chce a nedokazu s clovekom normalne komunikovat. Ani clovek na centrale nema iny ako mailovy kontakt na HQ, tak im treba.
Odpovedať Hodnotiť:
 

Dobrý deň fórum dsl.sk,

Ako konateľ syphon.sk som situáciu preveroval cez všetky kanály ako je admins, helpdesk, zákazníci... Žiadnu takú situáciu nemáme zaznamenanú, ani popisovaný FIX v pondelok na obed neevidujeme.

Ak má čitateľ informáciu o konkrétnej doméne, budem rád ak napíše konkrétne info kde chybu objavil. Prípadne či išlo priamo o syphon.sk web. Mohlo ísť o chybu v zákazníckom CMS. (sessions a podobne), v takom prípade budem rád ak si rozšírim Know-how v oblasti napríklad konkrétneho CMS.

Myslím že ak by taký problém nastal, boli by sme bombardovaný stovkami zákazníkov, čo sa nestalo. A jediná informácia ktorá sa ku mne dostala bola práve tento článok na dsl.sk.

Budem rád za konkrétne info, môžem následne posunúť ďalej zákazníkovi prípadne zdokumentovať CMS a publikovať.

Krásny a úspešný štvrtok želám všetkým z najväčšej webhosting konferencie http://whd.global/ nemeckom Ruste.

https://www.syphon.sk
http://www.dobrotka.sk

t.d.

Odpovedať Známka: 4.0 Hodnotiť:
 

Fix pre "moj.syphon.sk" bol spravený, ako popisoval čitateľ, týkal sa modulu pre platbu TatraBanka. Ďakujem zákazníkovi (čitateľovi) za hodnotnú informáciu a jeho odborný pohľad. Hlavne som rád že sa to netýkalo zákazníkov syphon.sk z pohľadu ich webov, ale iba náš interný modul<VS>TatraPay.

pekný štvrtok ešte raz všetkým, ďakujem p. S.

s pozdravom,
t.d.
Odpovedať Známka: 6.0 Hodnotiť:
 

asi to pre vas bude sok, ale nedelnajsi sa pise takto: nedeľňajší (podla vzoru nedeľa).
Odpovedať Hodnotiť:
 

19. januára 2038, kedy pretečie 32-bitové počítadlo sekúnd od 1. januára 1970.

nechapacky velike ze co a preco a jak.
uplne ze
konec

:D

Odpovedať Hodnotiť:

Pridať komentár