Tag Archives: CIB

Átállás az új CIB mobilalkalmazásra

Pár napja kaptam egy mailt a CIB Banktól, hogy kijött az új, színes-szagos mobilalkalmazásuk, váltsak, ha szeretnék. A váltáshoz kérni kell egy visszahívást amit megtettem és kb. egy nap múlva hívtak is. Mivel az email elég kevés részletet tartalmazott, plusz a visszahívás során derült csak ki pár fontos dolog, gondoltam megosztom itt, hátha másnak is hasznára válik:

  • Ha váltasz, az új alkalmazás által kezelt számlá(k)hoz az új mobil alkalmazás gyártja az OTP tokent az új mobilappon belüli használathoz is és a desktop Java applet azonosításához is. A régi app az OTP tokent netkapcsolat nélkül gyártotta, az új mobilappnál viszont kell a tokengyártáshoz az internetkapcsolat. Ez akkor jelenthet problémát, ha külföldön vagy egy desktop gép előtt és nem tudsz netet adni a mobilodnak.
  • Az alkalmazás csak a magán folyószámlák kezelését támogatja, céges bankszámlákat talán majd jövőre. Ha mindkettővel rendelkezel, akkor a céges számláid authentikációjához marad a korábban is élő token.
  • Amennyiben több magán folyószámla kezelését akarod megoldani az új mobil alkalmazásban és nem mindegyiknek te vagy az elsődleges tulajdonosa (=család egyéb számlái), úgy ezt csak úgy tudják elvégezni, hogy az aktiváció során a nem általad tulajdonolt számlákat a CIB24 telefonos azonosítóval authentikálod. Ha ez nem megy, akkor a saját számlá(i)d kerülnek bele az új mobilappba egész addig, amíg ezt az authentikációt el nem végzed.
  • Az új mobilapp aktiválásához szükség lesz a személyid számára és lejárati dátumára, illetve a bank által ismert személyes adataidra.

Hirtelen ennyi. Nekem sajna ez több szempontból nem felel még meg, úgyhogy maradok régi auth token user.

CIB e-bank bug

Mostanában többször csinálja azt, hogy az első tranzakció végrehajtása után egy csomó UI control elfelejt működni:

CIB e-bank bug from Gabor Penoff on Vimeo.

Ilyenkor csak az applet reload segít, ami ezután "hálából" nem tud authentikálni a mobilToken által adott OTP kulccsal, csak majd úgy 5 perc múlva. So 2016!

CIB e-bank

Megy megint a Java browser plugin körül a hiszti és az egyik ezzel kapcsolatos threadben @vszakats tett ki egy non-applet futtató scriptet a Pastebinre. A script a saját könyvtárába létrehoz egy AppletLocal.html file-t, egy jogosultságot definiáló cibib.policy file-t, aztán letölti curl segítségével a CIB-től a cibib.jar appletet, végül elindítja.
Az applet letöltése közben a curl néma, így azt érezheted, hogy nem történik semmi, pedig megy az, csak nem látod, szóval egy kis türelem, mire lejön a 2 megás applet.
Ha egyszer lent van az applet és kész a HTML és a policy file, akkor elég ez a miniscript az indításhoz:

#!/bin/sh
 
dir="`dirname $0`"
appletviewer $dir/AppletLocal.html -J-Djava.security.policy=$dir/cibib.policy > /dev/null &

Az egész hóbelevanchoz természetesen nem kell Java browser plugin, azokat nyugodtan kikapcsolhatod, ahogy Józsi írta.

Viktornak jövök egy sörrel, ha erre jár :)

Update #1: eti tuningolt a scripten kicsit. Az ő változata már megnézi, hogy módosult-e a CIB serverén az applet és csak akkor szedi le, ha igen (curl -z paramétere), továbbá kicsit kevesebb jogot adott neki, így természetesen etinek is jár a serital :)

Update #2: közben kiderült, hogy eti scriptjébe mégiscsak kell a több jog ahhoz, hogy az applet a Clipboardot használhassa. Én nem pöcsöltem vele, visszaadtam neki mindent, így most a script így néz ki.

Update #3: eti elolvasta az stderr kimenetet és mégiscsak a minimálisan szükséges jogot kapta az applet.

Update #4: eti közben kiókumulált még két jogosultsági beállítást, hogy legalább a plain text output működjön - sajna a PDF output továbbra sem jó, de már ez is valami! Az outputot az $output_dir-ben beállított folderbe pakolja majd az applet.

Update #5: újabb eti tweak, hogy defaultban az output foldert nyissa meg az applet export target könyvtárnak.

#!/bin/bash
# http://fns.csokolade.hu/2013/02/20/cib-e-bank/
 
#dir=~/tmp/cibib
dir="`dirname $0`"
output_dir=~/Desktop
 
[ -f $dir/AppletLocal.html ] || cat > $dir/AppletLocal.html <<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" style="overflow: hidden">
<head>
<title> CIB Internet Bank </title>
</head>
<body style="overflow: hidden;margin: 0px">
 
<applet name="mainApplet" code="ebank.applet.MainApplet" width="800" height="600" mayscript archive="cibib.jar">
<param name="CABBASE" value="https://cibib.cab">
<param name="default_fontsize" value="11">
<param name="PACKED" value="TRUE">
<param name="java_arguments" value="-Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false">
<param name="separate_jvm" value="true">
<param name="centerimage" value="true">
<param name="boxborder" value="false">
<param name="image" value="loader_hu.gif">
<param name="MAYSCRIPT" value="true">
<param name="BASEVIEW" value="1">
<param name="LOGLEVEL" value="50">
<param name="PROTOCOL" value="https">
<param name="SERVERURL" value="https://ibank.cib.hu/IBWBGateway/IBGatewayServlet">
<param name="PRINTERURL" value="https://ibank.cib.hu/IBWBGateway/IBPrintingServlet">
<param name="LANGUAGE" value="hu">
<param name="INITWIDTH" value="800">
<param name="INITHEIGHT" value="600">
</applet>
 
<!-- <param name="DEMOMODE" value="TRUE"> -->
 
	<script>
 
window.onerror = myErrorHandler;
 
function help(pageName)
{
	help_window = window.open(pageName, "help", "toolbar=0,location=0,resizable=0,status=0,menubar=0,scrollbars=0,hotkeys=1,fullscreen=0,width=500,height=380,marginheight=0,marginwidth=0,dependent=1");
	help_window.focus();
}
 
function printWindow(text)
{
	msgWindow=window.open("","_blank", "toolbar=1,location=0,resizable=1,status=1,menubar=1,scrollbars=1,fullscreen=0");
	msgWindow.document.open("text/html", "replace");
	msgWindow.document.write(text);
	msgWindow.document.close();
}
 
function saveWindow(text)
{
	msgWindow=window.open("","_blank", "toolbar=1,location=0,resizable=1,status=1,menubar=1,scrollbars=1,fullscreen=0");
	msgWindow.document.open("text/plain", "replace");
	msgWindow.document.write(text);
	msgWindow.document.close();
}
 
function myErrorHandler(msg, url, linenumber)
{
	alert(msg + ' at line: ' + linenumber);
	return true;
}
 
	</script>
</body>
</html>
EOF
 
cat > $dir/cibib.policy <<EOF
grant {
	permission java.net.SocketPermission "ibank.cib.hu:443", "connect,resolve";
	permission java.awt.AWTPermission "accessClipboard";
	permission java.io.FilePermission "$output_dir", "read,write";
    permission java.io.FilePermission "$output_dir/-", "read,write";
};
EOF
 
if [ -f $dir/cibib.jar ]; then
	modified_since="$(/bin/ls -lT $dir/cibib.jar | grep -o '[A-Z][a-z][a-z] [123 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]')" && \
	curl -z "$modified_since" -o $dir/cibib.jar.new https://ibank.cib.hu/cibib.jar || exit 1
	if [ -f $dir/cibib.jar.new ]; then
		mv -v $dir/cibib.jar{,.old} || exit 1
		mv -v $dir/cibib.jar{.new,} || exit 1
	fi
else
	echo "Downloading latest CIB applet..."
	curl -o $dir/cibib.jar https://ibank.cib.hu/cibib.jar || exit 1
fi
 
 
appletviewer $dir/AppletLocal.html -J-Djava.security.policy=$dir/cibib.policy -J-Duser.dir=$output_dir > /dev/null &