Steam byl hacknut

Steam hacknutUrčitě si pamatujete na aféru se Sony v podobě úniku citlivých informací včetně hesel samotných uživatelů a čísel platebních karet. Něco podobného nyní potkalo i Steam – oblíbenou platformu pro snadnou distribuci her přes internet. Podle oficiálního prohlášení došlo k prolomení bezpečnosti 6. listopadu v neděli. Steam stále ještě shromažďuje veškeré informace a pokračuje ve vyšetřování. Prozatím bylo potvrzeno, že hackeři získali databázi obsahující uživatelská jména, zaheshovaná hesla, seznamy zakoupených her, email, reálnou adresu a encryptované údaje o platebních kartách. Prozatím neexistuje případ zneužití osobních informací či prolomení šifry použité na extrémně citlivé údaje. Přesto Steam doporučuje pečlivě sledovat veškeré transakce na vaší kartě.

Problémy s fórem

Útočníkům se však podařilo v několika málo případech přihlásit se na uživatelské fórum, a proto byla tato funkce dočasně pozastavena. Po opětovném uvedení do provozu budou nicméně lidé nuceni z bezpečnostních důvodů změnit si své heslo, které zde používali. Nic podobného se však po přihlášení na samotný Steam neplánuje. Hesla vyžadovaná aplikací a webovým rozhraním se totiž v databázi oddělují od těch používaných v případě fóra.

Ovšem zde začíná kámen úrazu. Podle všeho jsou totiž hesla od komunitního fóra méně chráněna než v případě hlavního uživatelského účtu. Pokud tedy někdo používá v obou případech stejnou kombinaci znaků, rozhodně by měl zvážit co nejrychlejší obměnu. Steam ostatně radí postupovat stejně. Obzvláště v případě použití jednoho hesla pro více jiných služeb.

Budoucí vývoj

Jedinou otázkou nyní zůstává, zda-li se hackerům podaří později zneužít získané podrobnosti o platebních kartách. Pro Steam by to rozhodně představovalo velmi špatnou zprávu, protože by jeho reputace jako bezpečného systému určitě klesla. Snad je však použitá šifra natolik silná, že k této situaci nedojde.

Hacker Evolution Duality a jiné simulátory

Nedávno mě na Steamu zaujala nová položka – Hacker Evolution Duality. Rozhodl jsem se vyzkoušet demo, protože jsem měl s předchozí verzí dobré zkušenosti a navíc screenshoty vypadaly velmi lákavě. Menu je opravdu nádherně zpracované, mapa světa rovněž působí velmi dobře a ke všemu hraje podmanivá hudba. Podle mého názoru však značně pokulhává samotná hra. To, že ve většině simulátorů připojení z několika různých PC provádíte s pomocí myši, lze považovat za příjemné zjednodušení. Mise v demu se však nesou v duchu klikání a posouvání nejrůznějších položek, což nepovažuji za vhodné řešení. Ono už uvedení útoků D.O.S. a EMP vypadá podivně. Co má proboha společného odepření služby (denial of service) s pulsem, který ničí samotný hardware? Samozřejmě, jde jen o simulátor vhodný pro hráče a ne odborníky, ale připomíná mi to podobnou šílenost, kterou jsem kdysi u jedné hry spatřil. Používaly se v ní IP adresy typu 834.747.273.929. A číslo 834 převedené do binární soustavy opravdu nebude mít osm cifer. Stručně řečeno, demo mě ke koupi nepřesvědčilo.

Hacker Evolution

Tipy na lepší simulátory

Naštěstí však na trhu existuje několik mnohem lepších her, které dokáží zabavit na dlouhou dobu. Překvapivě se podle mě jedná například o minulý díl Hacker Evolution: Untold. Pracujete zde pouze z prostředí příkazového řádku. Právě proto však tento titul zaujme jen úzkou skupinu lidí, což patrně vývojářům nepřinese takový profit. Jmenovat určitě musím i legendu Uplink. Ta hodně využívá grafické rozhraní k provedení mnoha kroků, celkově vám však hra přinese mnoho zajímavých okamžiků. Vyzkoušejte si například získání administrátorského účtu v libovolné bance a následný převod financí bez zanechání jediné stopy. Za zvuku pípajícího programu upozorňujícího na vaše blížící se vystopování jde skutečně o adrenalinový zážitek. Stačí totiž jediná závažnější chyba a hra končí. Žádné načtení uložené pozice, ale definitivní konec.

Qt – checkbox

Před praktickou ukázkou práce s checkboxy si nejprve dovolím malé shrnutí rozdílů mezi tímto ovládacím prvkem a radio buttonem. Zatímco u první zmíněné varianty může uživatel zaškrtnout více voleb, v případě té druhé je jeho svoboda značně omezena. Zvolí totiž pouze jen jednu položku. Z tohoto důvodu se práce s oběma prvky poněkud liší. Checkbox nám totiž pochopitelně vrátí předem nespecifikovaný počet výsledků. Proto se dnes zaměříme právě na tuto oblast zajímavou z programátorského hlediska.

Poměrně dlouho jsem přemýšlel, jaký příklad pro tuto problematiku zvolit. Nakonec došlo ke stvoření jednoduché aplikace, která nás vybízí k výběru několika druhů sýra. Po stisknutí na tlačítko nám následně všechny zvolené potraviny vypíše. Po dalším rozšíření by tento program mohl například využívat kuchař v pizzerii, který si přesně nepamatuje, co si zákazníci vlastně objednali. :-)

Qt checkbox - před zadáním

Qt checkbox - po zadání

#ifndef WIDGET_H
#define WIDGET_H

#include
#include

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
Q_OBJECT

public:
explicit Widget(QWidget *parent = 0);
~Widget();

private:
Ui::Widget *ui;
QButtonGroup *syr_skupina;

public slots:
void syr();
};

#endif // WIDGET_H

 

#include „widget.h“
#include „ui_widget.h“

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);

syr_skupina = new QButtonGroup(this);
syr_skupina->addButton(ui->ch_hermelin,1);
syr_skupina->addButton(ui->ch_eidam,2);
syr_skupina->addButton(ui->ch_mozzarella,3);
syr_skupina->setExclusive(false);

}

Widget::~Widget()
{
delete ui;
}

void Widget::syr(){
QAbstractButton *vracene;
QString vysledek = „Objedávka: \n“;
int pocet = 0;

for(int i = 1; i < 4;i++){
vracene = syr_skupina->button(i);
if (vracene->isChecked()){
vysledek += vracene->text() + „\n“;
pocet++;
}
}

if(pocet == 0){
vysledek += „Není vybrán žádný sýr!“;
}else{
vysledek += „Přejeme dobrou chuť!“;
}

ui->l_vysledek->setText(vysledek);
}

 

Skupina prvků v podání QbuttonGroup

V návrhářském režimu stačí přidat několik popisných labelů a samotné checkboxy. Nezapomeňte rovněž na ovládací prvek, ve kterém se zobrazí získaný výsledek. V našem případě se opět jedná o klasický label. Zajímavější kroky na nás čekají v konstruktoru. Vytvoříme si totiž skupinu prvků tzv. QbuttonGroup a přidáme do ní jednotlivé checkboxy. Musíme u nich specifikovat i vlastní id, které později budeme potřebovat při procházení v iteračním cyklu. S pomocí setExclusive dosáhneme toho, že se celá skupina začne chovat dle našich požadavků. Pokud bychom jako parametr předali true, získáme checkboxy fungující jako radio buttony.

Zpracování

Ve slotu, který se spouští po signálu clicked z tlačítka se provádí samotný výpis. V cyklu si projdeme jednotlivé checkboxy a ověříme si, zda je uživatel zaškrtnul. Pokud ano, přidáme jejich popisek (text) do stringové proměnné, kterou nakonec nastavíme s pomocí setText výslednému labelu v hlavním okně.