Все о Java. Что такое, как проверить версию, обновить и как устранить ошибки, например java апплет не загружен

Проблема в следующем.

На странице размещен некоторый апплет, а также интерфейс для управления им, написанный на HTML + JavaScript. Требуется определить из JavaScript, что апплет загружен и готов к работе. Решение должно быть ПРЕДЕЛЬНО надежным - кросс-броузерным, нормально реагирующим на медленный Internet и т.п.

Комментирую. Пока апплет не загрузился, обращения из JavaScript к его public-методам и/или полям чреваты появлением весьма некрасивого сообщения примерно такого содержания: "Данный метод отсутствует". А апплет порой загружается намного дольше, чем сама страница. Более того, некоторые вещи иногда имеет смысл сделать автоматически (из JavaScript), как только апплет загрузится - скажем, подать ему некоторую команду.

Здесь проблема не столько в том, что нет способа проверить, что апплет уже загрузился, сколько в изобилии таких способов. Например: onload у апплета, onload у страницы, обращение к методу или полю апплета, "активное" информирование страницы о загруженности апплета специальным Java-кодом изнутри самого апплета, и т.д. А уверенности, что эти способы будут работать:
на всех мыслимых броузерах,
при всех настройках Security в броузерах,
в сочетании со всеми мыслимыми платформами,
со всеми JRE,
у меня нет. И получить такую уверенность почти нереально: слишком много комбинаций.

Хуже того, здесь, кажется, очень легко "перемудрить". Например, я вчера долго "боролся" с ошибкой - на чужом компьютере (XP+ MSIE +Java2) JavaScript ошибочно полагал, что апплет не загружен, хотя у меня на компьютере все было в порядке. Подозреваю, дело в том, что я тогда использовал для проверки доступности обращение к некой public-переменной апплета (не методу!). Все броузеры на моем компьютере (тоже XP) при обращении к такой переменной недозагруженного апплета возвращают null, а как только апплет загрузится - возвращают ее значение. (В отличие от этого, обращение к методу недозагруженного апплета выдает ошибку.) Боюсь, что на чужом компьютере броузер отказался считывать public-переменную. Доступ к переменным - вообще неочевидная вещь, работающая по-разному из-под разных броузеров и JRE. Надежен только вызов методов, но - лишь когда апплет загружен.

Пока что я написал следующую пару функций:

Function showMyErrorMessage(msg,url,line) { if (window.errorMessage != null) alert(window.errorMessage); window.onerror = window.onerrorSave; return true; } function getApp(name,notShowMessage) { window.errorMessage = null; var a = "Error while accessing applet information for the \"" + name + "\" Java applet."; var b = "Maybe, this applet is not correctly loaded.Please try to reload this page."; if (notShowMessage==null || !notShowMessage) { window.errorMessage = a + b; } window.onerrorSave = window.onerror; window.onerror = showMyErrorMessage; var app = eval("document."+name); var appInfo = app == null? null: app.getAppletInfo(); window.onerror = onerrorSave; if (app == null || appInfo == null) { if (window.errorMessage != null) { if (app == null) alert("Cannot access \"" + name + "\" Java applet." + b); else alert("Cannot access applet information for the \"" + name + "\" Java applet." + b); } return null; } return app; }

Используется достаточно древняя (по идее, кросс-броузерная) техника подавления сообщения об ошибках через window.onerror. Все работает под Mozilla 1.4, MSIE 6.0 и даже под древним Netscape 4.5, но, увы, не под (куда более популярной) Opera 7.23: последняя выдает сообщение об ошибке JavaScript. Обращение к некоторому методу апплета необходимо - ибо почти все броузеры (кроме Netscape) успешно возвращают ненулевой объект document.ИмяАпплета, как только в странице прочитан ТЭГ

Из прочих методов проверки всевозможные onload у меня вызывают недоверие - в свое время (на старых броузерах) мне часто приходилось отлаживать ситуации, когда onload без видимых причин отказывался срабатывать, например при нажатии Refresh для страницы или чего-нибудь подобного. Самым надежным кажется "активное" информирование страницы - когда Java-код апплета обращается к JavaScript. Но тут вроде бы единственное кросс-броузерное решение - showDocument в отдельное окно (или фрейм), что делает решение крайне громоздким.

Может быть, кто-нибудь подскажет надежный, желательно опубликованный и широко известный способ проверки загруженности апплета?

Для Opera, кстати, нормально работает конструкция try...catch. Но только эта же конструкция, если не ошибаюсь, приведет к ошибке синтаксиса в ранних MSIE , которые до сих пор, кажется, превосходят Opera по популярности. Как бы надежно удостовериться, что можно использовать try...catch? Условная компиляция MSIE -

/*@cc_on @*/ /*@if (@_jscript_version >= 5) (испольщуем здесь try..catch и другие хорошие вещи) @*/ /*@end @*/

Как водится, в Opera игнорируется:(

Надо полагать, имеется в виду пакет netscape.javascript.* ?

Это решение непереносимо - если не ошибаюсь, в MSIE со встроенным JRE 1.1.4 эта техника начала работать только где-то с версии 5.5 или даже выше. Я этим пакетом никогда не пользовался - по причине непереносимости; может быть, я не прав? Я писал про это выше: "тут вроде бы единственное кросс-броузерное решение - showDocument в отдельное окно (или фрейм), что делает решение крайне громоздким".

Апплеты я обычно компилирую в JDK 1.1.6 (самая ранняя версия, имеющаяся в архивах Sun); там этого пакета вовсе нет.

А если городить огород, учитывающий, что пакета netscape.javascript.* может не быть, то получится ничуть не лучше, чем, к примеру, отдельно проверять оперу и использовать для нее try...catch.

Давно дело было:) Варианты:

  • Апплет грузится во фрейм, в методе init() грузит в другой фрейм документ с JS , вызывающем его методы, типа:
  • public void init() {
    //....
    getAppletContext().showDocument("js_page.htm", "another_frame");
    }
    Пример 1998 года - http://www.copris.com/optocontrol/home.htm - в IE5.5 и Мозилла 1.6 работает (делалось во времена NN3 и IE3) :)

  • Ждать загрузки в цикле:
  • function checkApplet() {
    if (document && document["appletName"] && document["appletName"].isActive())
    //Do something
    else
    setTimeout(checkApplet, 100);
    }

    isActive() - это метод класса java.applet.Applet.

    Алексей Рюмин aka Dwarf[досье]
    Спасибо большое. Но...

  • Насчет showDocument я уже думал: "Но тут вроде бы единственное кросс-броузерное решение - showDocument в отдельное окно (или фрейм), что делает решение крайне громоздким."
  • У меня, увы, страница по природе не фреймовая, и вводить туда фреймы только ради апплета очень неудобно. А вариант с IFRAME не кросс-броузерный - это будет ничем не лучше моего решения с window.onerror.

    Собственно, уже сейчас мои апплеты с 3D-структурами присутствуют на нескольких наших страницах, а в будущем таких страниц будет гораздо больше (всевозможные галереи примеров структур и т.п.). Собственно, на нашем сайте апплеты будут занимать примерно то же место, что и картинки (): иллюстрация к тексту, которую можно заодно "покрутить" мышкой. И возле каждого такого апплета, возможно, будут некоторые простейшие управляющие JavaScript-кнопки: ну хотя бы для разворота повернутой трехмерной картинки в исходную позицию.

    Отсюда - необходимость универсальной функции вроде моей getApp, которую можно положить в подключаемый js-файл и ради которой не надо перекраивать сайты на фреймы.

  • А вот это - извините, неверно.
  • Пишем простой тест.

    ... alert(document.XXXX+""+document.XXXX.isActive());

    После чего грузим эту страницу через любой не-мгновенный Internet, почистив предварительно кэш MSIE . Как и следовало ожидать, пока апплет реально не загрузился (серый квадрат), вызов isActive() порождает вышеупомянутое сообщение об ошибке. В то же время, обращение document.XXXX срабатывает нормально, в чем можно убедиться, изменив код на

    alert(document.XXXX);

    Раз объект страницы XXXX был уже отрендерен, броузер разрешает свободно обращаться к этому объекту.

    Правда, тут выплывает один интересный нюанс. При превращении объекта-апплета в строку получаются разные результаты, в зависимости от того, загрузился апплет или еще нет. Именно, если апплет загружен, то преобразование DHTML -объекта в строку дает результат вызова "toString()" у апплета. По идее, написать бы в методе toString некое ключевое слово и проверять, присутствует ли это слово в строке document.имяапплета+"".

    Было бы просто замечательно, очень просто и красиво, и даже в Opera работает. Но - УВЫ - на этот раз подкачала Mozilla. Показывает, зараза, дурацкое независимо от факта загрузки. Так что - не пойдет...

    Пока что - подскажите, как надежно "обнаружить", что мы имеем дело с современной Opera - точнее, что работают try...catch? Opera, кажется, имеет обыкновение прикидываться другими броузерами. Если выяснить, что try..catch работают, можно бы вызвать через eval версию кода с этими операторами - она работает и под Opera.

    Еще в эту же тему. Предлагаю разделить возможные решения проблемы на две группы.

  • Процедура может, в случае ошибки, принять нормально загруженный апплет за незагруженный. К этой группе относятся все решения, основанные на событиях onload и "активных" действиях апплета по завершению своей загрузки (типа открытия страницы в отдельном фрейме). Если вдруг onload не произойдет, или безопасность броузера запретит апплету открывать окно, или произойдет что-то еще непредвиденное - мы так никогда и не узнаем в JavaScript, что апплет загружен. Цена такой ошибки весьма высока: пользователь не сможет работать, причем, вероятно, проблема не решится даже перезагрузкой броузера.
  • Процедура может, в случае ошибки, принять незагруженный апплет за нормально загруженный, но если уж апплет загружен, то все гарантированно заработает. К этой группе относится моя функция getApp. У нормально загруженного апплета метод getAppletInfo просто обязан сработать без проблем (раз уж в моем апплете он есть); если даже он не работает, вряд ли апплетом вообще удастся воспользоваться из JavaScript. Цена ошибки в данном случае значительно ниже. Просто иногда в случае проблем (например, проблем с Internet) пользователь будет вместо "цивилизованного" сообщения получать "дикое" сообщение об ошибке в JavaScript - либо вообще ничего не произойдет, если визуализация таких сообщений отключена.
  • Если можно, прошу ограничиться решениями второго типа.

    Что-то вы не понимаете, уважаемые.

    Нельзя ЯВНО вызывать toString()! У DHTML -объекта "апплет" НЕТ собственного метода toString, он появляется, только когда загрузится Java-класс. Соответственно, попытка вывести
    alert(document.PackingSpheresForDesign.toString());
    при незагруженном апплете приводит к ошибке JavaScript, в моем MSIE это "Unspecified error".

    Неявно вызвать toString, разумеется, можно всегда - преобразованием DHTML-объекта в строку. И здесь, как я уже говорил, Mozilla ведет себя некрасиво: никогда не вызывает toString() апплета, даже когда апплет полностью загружен. Да и не документировано нигде, что броузер обязан использовать toString Java-класса. Решение, опирающееся на проверку строчного представления DHTML-объекта Applet, очевидным образом попадает в первую категорию: если некий броузер не захочет вызывать метод toString, то на таком броузере апплет ВСЕГДА будет считаться незагруженным, и пользователь вообще не сможет работать.

    Как все-таки удостовериться в JavaScript, что броузер достаточно хорош, чтобы понять конструкцию try...catch? Я пока склоняюсь пойти по этому пути.

    Даниэль Алиевский[досье]
    Не, ну понятно, что в MSIE вызов toString() ошибка, но браузер-то в javascript легко определить. Если браузер mozilla, вызывайте toString(), если нет, просто applet.

    Что касается вызова метода toString в браузере, то насколько я понимаю у любого объекта в javascript должен быть метод toString и если браузер не вызывает этот метод у апплета, тогда имеются сомнения в том, что в этом браузере вообще возможно вызывать методы апплета - безотносительно к поведению в данном случае mozilla.

    Короче, надо сначала найти такой браузер и желательно чтобы он был достаточно распространен, ибо в противном случае я сам в состоянии достаточно быстро написать браузер, который бы саботировал все попытки определения загруженности апплета.

    Ну да. Я просто не додумал. Действительно, надо просто в моей функции обратиться не к методу getAppletInfo, а к методу toString. В MSIE , правда, как и раньше, будет ошибка, но она благополучно ловится через window.onerror. Зато в Opera - и во всех броузерах, которые разрешают вызывать toString у недозагруженного апплета - никаких ошибок вообще не будет, просто toString вернет либо строку с кодовым словом, если апплет загружен, либо нечто умолчательное. При этом, вроде бы, не должно быть настолько странного броузера, чтобы у нормально загруженного апплета JavaScript-вызов toString не обратился бы к одноименному методу апплета.

    Кажется, найдено неплохое решение. Спасибо за помощь. Дотестирую его под всякими кривыми броузерами вроде Netscape 3 - и предложу для FAQ .

    Александр Самойлов[досье] "Что касается вызова метода toString в браузере, то насколько я понимаю у любого объекта в javascript должен быть метод toString и если браузер не вызывает этот метод у апплета, тогда имеются сомнения в том, что в этом браузере вообще возможно вызывать методы апплета..." - тут я не совсем вас понял, ведь как раз самый популярный MSIE считает, что никакого toString у объекта Applet нет, если апплет не загружен (к примеру, если указан неверный путь к классу). Я вообще не видел внятных указаний в документации, что КАЖДЫЙ JavaScript объект обязан обладать таким методом. Если таковые есть - ткните пальцем, если не трудно.

    цитата из справки для JScript

    The Object object is contained in all other JScript objects; all of its methods and properties are available in all other objects. The methods can be redefined in user-defined objects, and are called by JScript at appropriate times. The toString method is an example of a frequently redefined Object method.

    из нее, конечно нельзя однозначно сделать вывода, о том, что и для всех других интерпретаторов javascript подобное выполняется.

    что касается MSIE , то он не считает, что у апплета нет метода toString, он считает, что произошла неопределенная ошибка во время выполнения этого метода.

    например, если попытаться вызвать заведомо несуществующий метод у апплета то ошибка будет другой.

    Черт! Вы будете смеяться, но MSIE + Java 2 ВООБЩЕ не желает вызывать toString() у НОРМАЛЬНО загруженного апплета. Устойчиво выдает Unspecified error. А при умолчательном преобразовании в строку, соответственно, мой перекрытый toString попросту игнорируется.

    Может быть, конечно, у меня что-то не то с апплетом - надо бы, по идее, сделать чистый тест. Но в любом случае - если хотя бы на моем апплете это так, значит технология неверная.

    Что б его. Вчера забыл проверить на этой ситуации (проверял под Java 1.1.4). Сегодня полчаса убил на таинственный глюк страницы. Хуже того, в качестве "побочного эффекта" MSIE принялся глухо зависать при открытии страницы (видимо, из-за разных моих вспомогательных скриптов). Ужасно.

    Вернулся к старой методике с вызовом getAppletInfo().

    Так что, господа, жду дальнейших предложений. В частности - как отловить Оперу (чтобы бороться с ней отдельно).

    Владимир Палант[досье] Спасибо. Можно первоисточнк, если не затруднит? (Догадываюсь, что где-то на сайте opera.)

    Мне бы хотелось не столько обнаружить Оперу, сколько проверить версию JavaScript, что он поддерживает try...catch - совместимым с Opera способом. Микрософтоский вариант такой проверки - условная компиляция - естественно, под Opera не работает.

    На худой конец достаточно и проверки Оперы: в этом случае можно (надеюсь:-)) смело вызывать toString у апплета.

    Даниэль Алиевский[досье]
    а почему бы не использовать версию яваскрипт для отлова поддержки try catch


    var try_catch = false


    try_catch=true


    if (try_catch) {}

    правда в опере не проверял

    Даниэль Алиевский[досье]
    Нет, на opera.com рекомендуют проверять по User-Agent (http://www.opera.com/support/search/supsearch.dml?index=570) — ИМХО извращение. Проверять по window.opera надежней — никакой другой браузер это свойство поддерживать не станет.

    Opera поддерживает try/catch как минимум с версии 4.0, так что можете считать, что поддерживает всегда.

    Есть еще одна идея - пока не проверил. Обращение к свойствам DHTML -объекта (property), насколько я знаю, никогда не порождает исключений. Если такого свойства нет, просто возвращается null. Хорошо бы снабдить апплет неким свойством (к примеру, boolean iAmLoaded=true), и проверять, установлено ли оно. Насколько я понимаю, в случае Java 2 это не так просто - недостаточно завести public-поле, нужно объявлять пару методов get/set, как это полагается в JavaBeans (пока еще не изучил соответствующую документацию).

    Как считаете, насколько это надежная и кросс-броузерная техника?

    Не понял я, при чем тут JavaBeans, по-моему доступ к свойствам осуществляется без всяких get/set. Но в любом случае — проверять можно наличие метода, который для DHTML тоже свойство: if (typeof(applet.notifyAll) != "undefined") . А вот кроссбраузерность вам уже придётся самим проверить...

    Владимир Палант[досье]
    Намек на JavaBeans Introspection есть вот здесь: http://java.sun.com/j2se/1.4.2......loper_guide/compatibility.html
    Как я понял, проблема имела временный характер: у меня на компьютере во всех броузерах и JRE доступ к public-полю чудесно работает. Причем совершенно нетрудно добавить в апплет "настоящее" public-поле типа boolean, тогда не потребуется прибегать к более экзотическим приемам типа typeof(applet.notifyAll). (Кстати, упомянутый typeof не работает у меня в MSIE ни с 1.1.4, ни с Java 2.)

    Проблема в том, что раньше я применял как раз такую технику - проверку существования public-поля - и однажды столкнулся с проблемой, причем, очевидно, того самого неприятного первого типа: поле не обнаруживалось, апплет детектировался как незагруженный и начисто отказывался работать. Это произошло на 2 "чужих" компьютерах с вполне нормальной конфигурацией (MSIE + Java 2, что-то типа JRE 1.4.2_01), хотя на моем компьютере все работало. Естественно, я перестал пользоваться проверкой поля - от греха подальше.

    Но, может быть, я просто сделал все недостаточно грамотно? Скажем, не объявил методов get/set "по-JavaBean-овски"? Если я не увижу в документации четкого описания этой проблемы с объяснением, почему на некоторых броузерах доступ к обычному public-полю не работает, и указанием, как делать это корректно, я, конечно, не рискну применять проверку поля - слишком высока цена ошибки.

    Перехват сообщения об ошибке, как выяснилось, работает даже под Netscape 3. Но - немного не так, как нужно: этот древний броузер вызывает процедуру показа сообщения асинхронно с общим потоком JavaScript-кода, что приводит к тонким ошибкам. Пока не доотладил. Естественно, совместимость с Netscape 3 никому не нужна, но настораживает, что методика (обращение к методу апплета, или toString для Оперы, с перехватом ошибки) требует отладки "по новой" чуть ли не для каждого класса броузеров:(Видимо, все-таки техника кривая. А какая техника "прямая" - пока непонятно.

    С Netscape 3.0 песня оказалась совсем в другом. Этот броузер вообще не сильно дружил с обращениями типа document.xxxx, где xxxx - имя апплета. Даже для реально загруженного апплета он имел обыкновение при таком обращении выдавать целую пачку ошибок:
    Can"t reflect applet "(null)": not loaded yet
    (Самое смешное, что это происходит и при проверках типа "if (document.getElementById != null)...".) Борьба с этим очень проста. Достаточно каждое обращение к любому document.xxxx обрамлять кодом наподобие:
    var onerrorSaveLocal = window.onerror;
    window.onerror = null; // - avoiding an incorrect exception in Netscape Navigator 3
    var v = document.xxxx;
    window.onerror = onerrorSaveLocal;

    При этом, как и в Netscape 4, и во встроенном "броузере" из JavaBuilder, при недозагруженном апплете document.имяАпплета просто возврашает null.

    В общем, я потратил некоторое время и отладил свою процедуру под всеми броузерами, до которых смог "дотянуться" - включая предыдущие версии MSIE . Вот что получилось:

    Function showMyErrorMessage(msg,url,line) { if (window.errorMessageA != null) alert(window.errorMessageA+"(System error message: "+msg+")"+window.errorMessageB); window.onerror = window.onerrorSave; return true; } function getApp(name,notShowMessage) { // For compatibility with this function, all Java applets must override "toString()" method // and return a string containing "Successfully loaded Java applet" substring as it"s result. window.errorMessageA = window.errorMessageB = null; if (notShowMessage==null || !notShowMessage) { window.errorMessageA = "Error while accessing applet information for the \"" + name + "\" Java applet."; window.errorMessageB = "Maybe, this applet is not correctly loaded." + "Please wait until it will be completely loaded, " + "or please try to reload this page."; } var opera = window.opera != null; if (window.onerrorSave == null) window.onerrorSave = window.onerror; var app = null; var appInfo = null; var onerrorSaveLocal = window.onerror; window.onerror = null; // - avoiding an incorrect exception in Netscape Navigator 3 // ("Can"t reflect applet "(null)": not loaded yet") // sometimes appeared while accessing correctly loaded applets app = eval("document."+name); window.onerror = onerrorSaveLocal; var systemErrorMessage = null; /*@cc_on@*/ /*@if (@_jscript_version >= 5) try { // some MSIE (for example, MSIE 5.0) don"t understand onerror-based catching @else @*/ window.onerror = showMyErrorMessage; // catching exceptions while calling non-existing method /*@end @*/ appInfo = app == null? null: // a case of Netscape browser opera? app.toString(): // MSIE + Java2 cannot call applet"s toString app.getAppletInfo(); // MSIE and Mozilla (but not Opera) will catch an exception here /*@if (@_jscript_version >= 5) } catch(e) { systemErrorMessage = e==null || e.description==null? "unknown error": e.description+""; } @else @*/ window.onerror = window.onerrorSave; window.onerrorSave = null; /*@end @*/ if (app == null || systemErrorMessage != null || appInfo == null || (opera && (appInfo+"").indexOf("Successfully loaded Java applet")==-1)) { if (window.errorMessageA != null) { if (app == null) alert("Cannot find \"" + name + "\" Java applet." + window.errorMessageB); else if (systemErrorMessage != null) alert("An exception occured while accessing applet information for the \"" + name + "\" Java applet. (System exception information: " + systemErrorMessage + ")" + window.errorMessageB); else if (appInfo == null) alert("Cannot access applet information for the \"" + name + "\" Java applet." + window.errorMessageB); else alert("Cannot call \"" + name + "\" Java applet." + window.errorMessageB); } return null; } return app; }

    Как водится, MSIE доставили максимум проблем. Из относящихся к делу: MSIE 5.0, как выяснилось, отказывается блокировать сообщения об ошибках через window.onerror. Пришлось специально для "капризного" MSIE написать ветку c условной компиляцией и try..catch. На первый взгляд, try..catch - самое надежное решение, так что вполне логично применять его в самом популярном семействе броузеров. При этом в MSIE 4 (где нет try..catch), а также в Mozilla продолжает работать блокировка ошибки через window.onerror. В Opera используется вызов toString и проверка "кодового слова" внутри результата. Еще попутно выяснилось, что в MSIE 4 лучше не пытаться обращаться к апплету из onbeforeunload - могут быть ошибки.

    Я дошел даже до MSIE 3.0:-) Там, кажется, моя процедура не сработала, хотя, возможно, дело тут в том, что мои классы скомпилированы несовместимым с Java 1.0.2 способом, а поддерживать подобную совместимость у меня нет ни малейшего желания.

    Теперь у меня есть огромная просьба ко всем присутствующим. Пожалуйста, протестируйте эту процедуру с каким-нибудь апплетом на всех своих броузерах. Например, работает ли это в Unix Mozilla/Opera, или на Macintosh? Вo всех ли вариантах Windows+MSIE? Что насчет более ранних версий Opera?

    Я протестировал в следующих броузерах:
    Windows XP: MSIE 6.0 c Java 1.4.2 и Java 1.1.4, Mozilla 1.4, Opera 7.23, Netscape 4.5, Netscape Navigator 3.0;
    Windows NT 4.0: MSIE 5.0 с Java 1.4 и Java 1.1.4, Netscape 4.5, Netscape Navigator 3.0;
    Windows-95: MSIE 3.0 (Java 1.0.2), Netscape 4.5.

    Тестировать проще всего, указывая на странице заведомо неправильный путь к апплету (и, для сравнения, правильный) - по-моему, это достаточно похоже на ситуацию, когда апплет не догрузился. Если все нормально, то, по идее, процедура заслуживает помещения в FAQ .

    На этой странице кнопка "Get JVM information" (использующая вышеописанную функцию) должна срабатывать, как только апплет загрузится, либо "ругаться", пока он не загружен.

    (Кстати, в MSIE 3.0 эта техника таки не работает - в моей версии 3.02 JavaScript вообще отказывается что-либо делать, если апплет не загружен. И бог с ним.)

    Вслед за стремительным развитием информации ВТБ, как и многие другие банки, стал внедрять функцию под названием «дистанционное банковское обслуживание». С этой целью специалистами ВТБ был создан специальный апплет – программа, через которую клиенты и получают доступ к своим счетам. Чаще всего, как и в этом случае, для этих целей используют язык программирования Java (произносится «джава» или «ява»). Чтобы начать пользоваться программой от ВТБ, необходимо скачать программу, установить и настроить ее.

    Для чего нужен Java-апплет?

    Такой апплет работает, основываясь на трех китах. Их имена: Надежность, Производительность и Безопасность. Так что не удивительно, что апплеты на этой платформе используют не только финансовые организации вроде ВТБ, но и бухгалтерские отделы, научные предприятия, а также производители технической продукции для бытовых и коммерческих потребностей. Возможности платформы многогранны:

    • простой способ сформировать и настроить сетевое приложение;
    • доступность работы с базами данных;
    • детальная проработка уникальных сценариев развития событий;
    • возможность выбирать параметры фильтра на вводе и выводе;
    • доступ к интернет-службам;
    • автоматическое управление памятью;
    • полноценная работа с форумами, онлайн-магазинами, опросниками, играми и приложениями в сети;
    • одновременно выполняется несколько программ на любом из указанных языков;
    • поддержка многопоточных приложений;
    • возможные сообщения и ошибки, если он не загружен;
    • различные классы для выполнения HTTP-запросов и обработки ответов.

    Описанные преимущества делают платформу Java идеальной для ВТБ апплета.

    Возможные ошибки

    Ниже собраны самые распространенные ошибки, с которыми сталкиваются клиенты ВТБ после установки апплета, и способы их устранения.

    Апплет не запускается после обновления до Java 7 Update 65

    Эта проблема чаще всего касается обладателей Windows 7, 8 и 10, с версиями Java 7.0 или 8.0. Суть проблемы сводится к тому, что апплет ВТБ перестал запускаться. Причина кроется в отсутствии строки deployment.javaws.jre.0.args= в документе с именем deployment.properties. Разработчики устранили неполадки в Java 7 Update 67 (7u67), поэтому для большинства, решение проблемы – установка последней версии ПО. Загрузить программу можно по ссылке: https://www.java.com/ru/download/ . Главная страница выглядит так:

    В случае, когда обновление невозможно, существуют другие варианты. Конечным пользователям версии 7u65 стоит немного изменить параметры Java Control Panel. Сделать это можно следующим образом:

  • «Пуск» Windows => «Программы».
  • В открывшемся меню найти список программ от производителя.
  • Нажать «Configure Java» («Настроить Java»), чтобы запустился Java Control Panel.
  • После запуска перейти на вкладку с соответствующим именем.
  • Нажать «View» («Просмотр»).
  • Двойной щелчок на «Runtime parameters» («Параметры среды выполнения»). Так вы откроете режим редактирования.
  • «OK» «Apply» («Применить»).
  • Последний клик на «OK» для закрытия панели.
  • Следуя этому руководству любой может настроить свой апплет ВТБ довольно быстро.

    Временно решить проблему можно, внеся поправки в код:

  • Удаление java_arguments из тега апплета решит вопрос со стороны сервера.
  • Добавление в deployment.properties строки deployment.javaws.jre.0.args= решит вопрос со стороны компьютера.
  • Так вы заставите апплет ВТБ работать и проблема с обновлением будет решена.

    Апплет ВТБ не загружен

    Важная предыстория: из множества технологий, которыми пользовались компании, некоторые безнадежно устарели и уже не в состоянии выполнять свои функции как положено. Однако хозяевам больших предприятий очень жаль потраченных десятков/сотен тысяч долларов на разработку корпоративных приложений на основе упомянутых технологий. В связи с этим, некоторые клиенты, заходя в сервис, могут видеть ошибку с вышеуказанным названием.

    Это касается и некоторых клиентов ВТБ: при попытке зайти в систему удаленного управления счетами отображается описанная ошибка апплета. Причиной может быть отсутствие апплета или его нерабочее состояние. Однако с этим легко справиться, достаточно последовать простым указаниям ниже.

    Легче всего для начала установить апплет ВТБ с официального сайта Java. Сделать это стоит даже тогда, когда программное обеспечение у вас уже есть, но не включено: будет лучше, если на вашем компьютере будет установлена самая актуальная версия программы. Итак, следуйте указаниям:

  • Зайдите на официальную страницу компании в интернете (ссылка на сервис есть чуть выше в этой статье).
  • После этого ресурс самостоятельно определяет параметры вашей ОС и предлагает вам ссылку на подходящий вариант ПО.
  • Нажмите «Загрузить Java бесплатно».
  • После окончания процесса загрузки запустите файл и установите его, следуя указаниям.
  • Перезапустите браузер.
  • Важная информация: начиная с 42-й версии Google Chrome официально не поддерживает апплеты на базе Java, в том числе апплет ВТБ.


    Однако он доступен в любом другом браузере, к примеру, Mozilla Firefox. Включить апплет там можно следующим образом:

  • Запустите браузер (если он не установлен, скачайте его с сайта https://www.mozilla.org/ru/firefox/new/ и установите согласно указаниям).
  • В меню приложения нажмите «Дополнения» =› «Плагины».
  • Переключите «Модуль платформы Java» в положение «Всегда включать» (ничего не меняйте, если он уже включен).
  • Перезагрузите браузер.
  • После этих нехитрых манипуляций можете свободно заходить на сервис ВТБ: апплет должен работать без перебоев.

    Установка апплета ВТБ

    Чтобы установить и настроить апплет ВТБ скачайте его по ссылке http://www.java.com⁄ru⁄ . Апплет подойдет под функционалы таких браузеров как FireFox, Opera, Internet Explorer (версия которого должна постоянно обновляться).

    Апплет для работы с ВТБ устанавливается в две стадии:

    • установка и настройка платформы SE Runtime Environment;
    • установка самого апплета.

    Если для доступа вы планируете использовать персональный компьютер, первый шаг вам не нужен. Порядок установки состоит из пяти пунктов:

  • «Загрузить».
  • «Согласиться и начать загрузку» (файл для Windows, расширение.exe).
  • «Сохранить» =› запуск двойным кликом левой кнопкой мышки.
  • «Install» («Установить»).
  • «Close» после завершения установки.
  • Затем скрипт нужно настроить:

    «Пуск» =› контрольная панель =› убрать галочки с протоколов TLS 1.1, TLS 1.2 и «Use SSL 2.0 compatible ClientHello format». Теперь вы имеете свободный доступ к апплету ВТБ.

    Настройка браузеров

    Окно-предупреждение с сообщением «Внимание. Java апплет не загружен» может возникать по причине браузеров. Чтобы настроить их на взаимодействие с апплетом ВТБ, следуйте инструкциям в таблице ниже.

    Браузер Инструктаж
    Firefox 1. Нажмите на иконку.
    2. В выпадающем меню выберите статус «Разрешить и запомнить».
    3. Нажмите «ОК».
    4. Зайдите в настройки браузера.
    5. Выберите пункт «Дополнения», подпункт «Плагины».
    6. Проставьте по всем подпунктам Java статус «Включать по запросу».
    Opera 1. Откройте настройки браузера.
    2. В пункте «Плагины» (рекомендуется)» выберите «Запускать все содержимое плагинов».
    Safari 1. На странице регистрации в системе ВТБ выберите меню «Safari» => «Настройки» => «Безопасность» => «Настроить веб-сайт».
    2. В левом списке диалога выберите «Java». В правом списке для сайта ВТБ задайте режим «Вкл.».
    3. Нажмите и удерживайте ALT переводя курсор мыши ВКЛ. Затем нажмите кнопку мыши. Появиться выпадающее меню, в котором выбрать «Запустить в безопасном режиме».
    4. Нажмите «Готово» и перезагрузите браузер.
    Internet Explorer 1. В настройках браузера выберите «Сервис» => «Свойства обозревателя» => «Дополнительно». Снимите отметку SSL 2.0 и отключите использование протоколов TLS 1.1 и 1.2.
    2. В настройках браузера выберите «Настроить надстройки».
    3. В появившемся окне выберите «Запуск без получения разрешения».
    4. В списке надстроек найдите «Java Plug-in ». Состояние данной надстройки должно быть «Включено».

    Итак, апплет от ВТБ – штука очень полезная, поэтому важно знать, как правильно установить программное обеспечение для него. Для тех, кто любит наглядные демонстрации, посмотрите видео.

    Много-много лет назад, работая админом на одном из градообразующих предприятий российской глубинки, мне пришлось впервые столкнуться с понятием «электронно-цифровая подпись» (далее ЭЦП).
    В головах руководства, на тот момент, укоренилась мысль, что ЭЦП - это обычная подпись, отсканированная и добавляемая на все документы, которые должны быть «подписаны».

    Давайте разбёрмся, что же такое ЭЦП и как она работает.

    Для работы с ЭЦП нам, прежде всего, необходим цифровой сертификат и закрытый ключ.

    Сначала, нам необходимо установить ЭЦП под документом.
    Установка ЭЦП происходит в два шага:
    1. Берём документ, который мы хотим подписать и вычисляем хэш от этого документа. (Упрощённо, хэш - это односторонняя математическая функция преобразования документа произвольной длинны, в документ фиксированной длинны).
    2. Затем, этот полученный хэш шифруем нашим закрытым ключом.

    Теперь документ, с прикреплённой к нему ЭЦП и нашим сертификатом, отправляем получателям.

    Получив подписанный документ, нам необходимо проверить подпись - действительна она или нет.
    Проверка ЭЦП происходит несколько сложнее:
    1. Берём документ, подпись под которым необходимо проверить, вычисляем хэш от этого документа.
    2. Берём цифровой сертификат пользователя, который подписал документ и прикреплённую к документу ЭЦП (которая является зашифрованым на закрытом ключе подписсанда хэшом оригинального документа) и расшифровываем с помощью открытого ключа.
    Таким образом, у нас есть два хэша - тот, который мы вычислили сами и тот, который мы получили вместе с документом и расшифровали открытым ключом подписанта.
    3. Теперь сравниываем эти хэши. Если хэши совпадают, значит подпись действительна, если хэши различаются, значит подпись неделйствительна.

    В заключении определим, что нам даёт использование цифровой подписи:
    1. Неизменяемость в процессе передачи или хранения - если документ был изменён, то хэш, который мы вычислим, и который был прикрёплён к документу, буду разные, следовательно, подпись будет неделйстительная, из чего можно сделать вывод, что документ был изменён;
    2.

    Для того, чтобы было невозможно подделать ЭЦП, закрытый ключ должен быть в единственном экземпляре и доступ к нему должен быть только у владельца. Это можно реализовать используя смарт-карты, но это уже совсем другая история.

    Вопросы безопасности Технические условия и возможности Что такое Internet-Банкинг для корпоративных клиентов?
    Internet-Банкинг предназначен для предоставления услуг электронного банкинга корпоративным клиентам в онлайне.
    В Internet-Банкинге корпоративные клиенты могут формировать, подписывать и отправлять в Банк все типы финансовых документов, работать со справочниками корреспондентов и бенефициаров, отслеживать статусы документов, получать выписки и оборотно-сальдовые ведомости по своим счетам за произвольный период, обмениваться с банком письмами.
    Работать можно через любой web-браузер: Internet Explorer Firefox, Opera, Safari, Chrome и на всех настольных платформах: Windows, Mac OS X, Linux.
    Internet-Банкинг обеспечивает гарантированный уровень безопасности, содержит механизмы шифрования информации и ЭЦП, поддерживает работу с USB-токенами и смарт-картами «iBank 2 Key».
    Internet-Банкинг взаимодействует с бухгалтерскими программами (1С и др.), поддерживает одновременную работу сотрудников из разных офисов.
    Какие требования предъявляются к компьютеру для работы в Internet-Банкинге?
    • Любой современный компьютер с объемом свободной оперативной памяти не менее 128 Мбайт.
    • Любая современная операционная система - Windows 2000 и старше, Mac OS X, Linux и др.
    • Любой современный web-браузер c поддержкой Java - Microsoft Internet Explorer, Opera, Firefox, Safari, Chrome и др.
    • Доступ в Интернет. Рекомендуемая скорость соединения - 33,6 Кбит/сек и выше. В случае доступа в Интернет по телефонной коммутируемой линии необходимо наличие современного модема.
    • Для работы необходимо установить Java-машину, которую можно скачать с сайта разработчика .
    • Для защиты информации в систему «iBank 2» встроены СКЗИ, которые реализуют криптографические алгоритмы в соответствии с ГОСТ 28147-89 (шифрование, имитовставка), ГОСТ Р34.10-2001 (ЭЦП на эллиптических кривых) и ГОСТ Р34.11-94 (хеш-функция).
      Для использования СКЗИ получите у представителей Банка файлы необходимых криптобиблиотек и установите их к себе на компьютер.

    Можно ли работать в Internet-Банкинге с разных компьютеров?
    Да, можно. Поскольку Internet-Банкинг является модулем системы удаленного обслуживания «iBank 2», расположенной на сайте Банка, а не программой, которая устанавливается на конкретный компьютер. Для входа в Internet-Банкинг Вам необходимы компьютер, подключенный к сети Интернет, ключ ЭЦП и пароль.

    Регистрация в «Internet-Банкинг» Как начать использовать Internet-Банкинг?
    Вам необходимо выполнить следующие действия:
    • самостоятельно пройти регистрацию на сайте Вашего Банка. По окончании регистрации будут сгенерированы открытый и секретный ключи ЭЦП и сертификат открытого ключа ЭЦП, который необходимо распечатать, заполнить и заверить печатью Вашей организации (количество необходимых экземпляров сертификата регламентируется Банком);
    • далее Вам следует прийти в одно из отделений Вашего Банка и заключить договор на оказание услуг с использованием системы «iBank 2». При визите в Банк Вам необходимо предъявить документ, удостоверяющий личность и сертификат открытого ключа ЭЦП.

    Ничего не происходит при попытке зарегистрироваться. Не запускается Java-апплет.
    Ниже описаны наиболее распространенные причины невозможности запуска апплета и способы их решения: Открылась страница регистрации, на которой написано: «Загрузка Java-апплета...» и более ничего.
    Причина : Возможно на Вашем компьютере еще не установлена Java-машина.
    Решение : Установите Java и еще раз перейдите на страницу регистрации. Актуальную версию Java всегда можно скачать с сайта разработчика .

    Причина : Возможно в настройках Вашего браузера и/или proxy-сервера включена блокировка активных сценариев Java.
    Решение : Проверьте настройки Вашего браузера/proxy-сервера.
    Internet Explorer 7.0 : Запустите браузер, в главном меню выберите пункт Сервис->Свойства обозревателя , перейдите на вкладку Безопасность Другой . В списке Параметры перейдите к разделу Сценарии->Активные сценарии и установите флаг Разрешить .

    Появилось сообщение: «Подождите идет загрузка Java-апплета» и более ничего.
    Причина : Возможно в настройках Вашего браузера установлен запрет исполнения Java-скриптов.
    Решение : Проверьте настройки Вашего браузера.
    Internet Explorer 7.0: Запустите браузер, в главном меню выберите пункт Сервис->Свойства обозревателя , перейдите на вкладку Безопасность . Выберите требуемую зону Интернета и нажмите кнопку Другой . В списке Параметры перейдите к разделу Сценарии->Выполнять сценарии приложений Java и установите флаг Разрешить .
    Не запускается Java-апплет.
    Причина : Использование устаревшей версии java.
    Решение : Internet-Банкинг успешно работает со следующими версиями: Java 2 Standard Edition Runtime Environment Version 1.4.2 или выше. При использовании USB-токенов «iBank 2 Key» требуется Java SE 6. Рекомендуется включать автоматическое обновление и использовать последнюю версию Java. Актуальную версию всегда можно скачать с сайта разработчика .
    Java-апплет не подключается к банковскому серверу.
    Причина : Проблемы с подключением могут быть вызваны несколькими причинами, начиная от наличия у Вас локальных сетевых экранов (Firewall) и заканчивая блокировкой портов Вашим Интернет-провайдером.
    Решение : Необходимо связаться с администратором банка для уточнения номеров TCP-портов, которые необходимо открыть в IP-фильтре на Firewall.
    Что означает сообщение: «На Вашем компьютере не установлено криптосредство»?
    Для защиты информации в систему «iBank 2» встроены СКЗИ, которые реализуют криптографические алгоритмы в соответствии с ГОСТ. Для использования СКЗИ получите у представителей Банка файлы необходимых криптобиблиотек и установите их к себе на компьютер.

    Что означают предупреждения системы безопасности web-браузера?
    Отображение сообщений об ошибках сертификатов означает, что на посещаемом сайте возникли проблемы с сертификатами (истек срок действия сертификата, сертификат данного сайта получен из ненадежного источника и пр.). Сертификаты используются, чтобы установить идентификацию сторон и создать доверительные отношения для безопасного обмена данными. При появлении предупреждений об ошибках на сайте, который вы успешно посещали ранее, обратитесь к сотрудникам Банка для сообщения о проблеме и уточнения Ваших дальнейших действий.

    Если при регистрации допущены орфографические ошибки, это мешает потом подписанию Сертификата, Договора и т. д.?
    Если орфографические ошибки обнаружены в наименовании организации, Ф. И. О. подписантов - потребуется перерегистрация (новая регистрация).

    Ключи ЭЦП и Сертификаты Куда сохранять ключ ЭЦП при регистрации?
    Для защиты секретных ключей ЭЦП от хищения вредоносными программами рекомендуется использовать персональный аппаратный криптопровайдер (ПАК) - USB-токен или смарт-карту «iBank 2 Key».
    В случае отсутствия ПАК «iBank 2 Key» Вы можете сохранить ключ ЭЦП на любой съемный носитель - диск, флэш-карта (небезопасный вариант).

    Каких правил следует придерживаться при выборе пароля к ключу ЭЦП?

    • Пароль должен содержать не менее 6 различных символов;
    • Желательно, чтобы пароль состоял из латинских букв в разных регистрах, цифр и специальных символов;
    • Ваш пароль не должен состоять из одних цифр (так его легче подсмотреть "из-за спины"), не должен быть слишком коротким и состоять из символов, находящихся на одной линии на клавиатуре;
    • Пароль не должен быть значимым словом (Ваше имя, дата рождения, девичья фамилия и т. д.), которое можно легко подобрать или угадать.
    Как распечатать Сертификат открытого ключа ЭЦП при регистрации, если с первого раза этого сделать не удалось?
    Необходимо перейти на страницу входа в Internet-Банкинг и повторно нажать кнопку Новый клиент . Откроется окно, в котором необходимо выбрать пункт Администрирование ключей ЭЦП . Далее укажите местоположение Вашего созданного ключа ЭЦП и нажмите кнопку печать. Откроется стандартное окно печати документа.

    Что делать при возникновении подозрений о компрометации ключей ЭЦП?
    Возможные случаи компрометации:

    • хищение носителя ключей ЭЦП (ПАК «iBank 2 Key», USB-накопитель и пр.);
    • обнаружение попытки несанкционированного доступа к системе «iBank 2»;
    • увольнение сотрудника, имевшего доступ к ключам ЭЦП.
    При возникновении любых подозрений о компрометации необходимо прекратить использование ключа ЭЦП, обязательно сообщить в Банк и заблокировать ключи ЭЦП. Далее Вам предложат сформировать новые ключи ЭЦП.
    Что делать, если один из владельцев ключей ЭЦП планирует уйти в отпуск и не сможет подписывать документы?
    Необходимо оформить ключи ЭЦП на замещающего сотрудника, а также предоставить в Банк необходимые документы, подтверждающие полномочия замещающего сотрудника и их срок. Рекомендуем связаться с сотрудниками Банка для получения более детальных рекомендаций.
    Что означает и что делать в случае возникновения сообщения: «До окончания срока действия Вашего ключа осталось n дней»
    По истечению n дней Вы не сможете войти и работать в Internet-Банкинге с этим ключем ЭЦП. А значит Вам необходимо сформировать новые ключи ЭЦП, по окончании формирования распечатать и заверить печатью организации сертификат открытого ключа ЭЦП и обратиться в обслуживающее Вас отделение Банка для регистрации и дальнейшего использования нового ключа в Вашей работе. USB-токены и смарт-карты «iBank 2 Key» Что такое USB-токен и смарт-карта «iBank 2 Key»?
    Для защиты Ваших секретных ключей ЭЦП от хищений рекомендуется использовать в системах электронного банкинга персональный аппаратный криптопровайдер USB-токен «iBank 2 Key».
    USB-токен «iBank 2 Key» - это аппаратное USB-устройство, состоящее из PC/SC-совместимого USB-кардридера и SIM-карты, в которой реализованы все российские криптоалгоритмы и имеется защищенная область памяти, позволяющая хранить до 64-х секретных ключей ЭЦП.
    Главное достоинство USB-токена «iBank 2 Key» - неизвлекаемость секретного ключа ЭЦП клиента и формирование его ЭЦП под электронным документом по российскому криптографическому алгоритму ГОСТ Р34.10-2001 непосредственно внутри устройства. На вход USB-токена передается электронный документ, на выходе устройства - ЭЦП под документом. При этом секретный ключ ЭЦП генерируется самим USB-токеном, хранится в защищенной памяти токена и никогда, никем и ни при каких обстоятельствах не может быть считан из него.
    Для корректной работы ПАК «iBank 2 Key» может потребоваться установка специального драйвера. Все установочные файлы драйверов доступны на сайте «iBank2.RU».
    Подробную информацию Вы можете узнать из Руководства по работе с USB-токенами и смарт-картами «iBank 2 Key» .

    Смарт-карта «iBank 2 Key» полностью аналогична USB-токену «iBank 2 Key». К тому же они компактны, удобны в использовании и хранении.
    Где в компьютере можно увидеть USB-токен «iBank 2 Key», когда его подключишь?
    USB-токен - это не «флешка», поэтому его нельзя увидеть, кликнув по ярлыку «Мой компьютер». Его можно увидеть только в «Диспетчере устройств» как «Smart card reader»-«USB Token Device».
    При входе в Internet-Банкинг невозможно выбрать тип хранилища «USB-токен или смарт-карта».
    ВАЖНО! Сначала устанавливается драйвер, а только потом USB-токен «iBank 2 Key» вставляется в порт компьютера!
    Если Вы сделали наоборот, то извлеките USB-токен из порта. В диспетчере устройств компьютера найдите «Устройство чтения Смарт-карт» и удалите все его компоненты. Установите драйвер USB-токена «iBank 2 Key» повторно. Перезагрузите компьютер. Только после этого Вы можете подключать USB-токен.
    Невозможно создать новый ключ ЭЦП при использовании смарт-карты «iBank 2 Key».
    Установите Sun Java Plugin 1.6 . Другие версии Java не поддерживают технологию работы со смарт-картами. Повторите процесс регистрации.
    Почему я не могу выбрать USB-токен «iBank 2 Key» в поле выбора ключа?
    При возникновении этой ошибки попробуйте установить последнюю версию Java-машины.
    У меня Windows Vista. Не устанавливается драйвер USB-токена «iBank 2 Key».
    При установке драйвера USB-токена «iBank 2 Key» для Windows Vista необходимы права АДМИНИСТРАТОРА, т. е. необходимо запускать исполняемые файлы от имени администратора.

    Вопросы безопасности Механизмы защиты информации в системе «iBank 2».
    «iBank 2» относится к классу систем защищенного электронного документооборота.
    Для обеспечения информационной безопасности в системе «iBank 2» используются:
    • Электронная цифровая подпись (ЭЦП) под электронными документами - для обеспечения целостности и аутентичности (доказательство авторства) документов в системе.
      Для формирования ЭЦП клиента в системе реализованы российские криптографические алгоритмы в соответствии с ГОСТ 28147-89 (шифрование, имитовставка), ГОСТ Р34.11-94 (хеш-функция) и ГОСТ Р34.10-2001 (ЭЦП на эллиптических кривых).
    • Механизм криптографической аутентификации сторон - для обеспечения защищенного взаимодействия через Интернет. Обеспечение криптографической аутентификации сторон достигается применением защищенного протокола SSL в процессе установления соединения между web-сервером банка и клиентом. Для подтверждения подлинности web-сервера осуществляется сравнение доменного имени загружаемого сайта банка с указанным в сертификате web-сервера.
    • Шифрование данных - для обеспечения конфиденциальности передаваемой через Интернет информации. Шифрование информации осуществляется с помощью сессионных ключей, генерируемых на этапе установления соединения между клиентом и Сервером Приложения iBank 2.
    Для использования функций криптографической защиты в системе «iBank 2» встроена поддержка следующих многоплатформенных криптобиблиотек, сертифицированных ФСБ:
    • ПБЗИ «Агава-С 5.0» компании «Р-Альфа» (сертификат соответствия ФСБ РФ рег. № СФ/114-1171 от 1 августа 2008 года);
    • СКЗИ «Крипто-КОМ 3.2» компании «Сигнал-КОМ» (сертификаты соответствия рег. № СФ/114-1068 от 7 ноября 2007 года и рег. № СФ/124-1070 от 15 июля 2008 года для вариантов исполнения 1, 5, 12 и 16).
    В системе «iBank 2» ведутся контрольные архивы, в которых хранятся все электронные документы с ЭЦП для разрешения конфликтных ситуаций. В системе ведется история документов - кем и когда документ был создан, отредактирован, подписан, исполнен или отвернут.
    Какие меры безопасности необходимо соблюдать при работе в Internet-Банкинге?
    Меры безопасности при работе с ЭЦП:
    • Пароль на доступ к секретному ключу должен быть известен только Вам как владельцу ключа;
    • Для защиты секретных ключей ЭЦП от хищения вредоносными программами рекомендуется использовать персональный аппаратный криптопровайдер (ПАК) - USB-токен или смарт-карту «iBank 2 Key»;
    • В случае отсутствия ПАК файл-хранилище ключей сохраните на отчуждаемом носителе (USB-накопитель);
    • Не допускается сохранять его в местах, где к нему может получить доступ кто-либо, кроме Вас. Отчуждаемый носитель с хранилищем ключей необходимо тщательно оберегать от несанкционированного доступа;
    • Не копируйте ЭЦП и не передавайте ее никому;
    • Не пользуйтесь Internet-Банкингом в Интернет-кафе, а так же там, где Вы не уверены в безопасности компьютеров;
    • При увольнении ответственного сотрудника, имевшего доступ к секретному ключу ЭЦП, обязательно сообщите в Банк и заблокируйте ключ ЭЦП;
    • При возникновении любых подозрений на компрометацию (копирование) секретных ключей ЭЦП или компрометацию среды исполнения (наличие в компьютере вредоносных программ) – обязательно сообщить в Банк и заблокировать ключи ЭЦП.
    Меры по защите компьютера, с которого осуществляется работа в Internet-Банкинге:
    • Соблюдайте регламент ограниченного физического доступа к данному компьютеру. Должен быть утвержден список сотрудников организации, включая ответственных сотрудников и технический персонал, которым разрешен доступ к компьютерам, с которых осуществляется работа в системе «iBank 2»;
    • Используйте и оперативно обновляйте специализированное ПО для защиты информации - антивирусное ПО, персональные межсетевые экраны, средства защиты от несанкционированного доступа и пр.;
    • Используйте и оперативно обновляйте системное и прикладное ПО только из доверенных источников, гарантирующих отсутствие вредоносных программ. При этом необходимо обеспечить целостность получаемых на носителях или загружаемых из Интернета обновлений;
    • Соблюдайте правила безопасной работы в Интернете, а именно: не подключайте к компьютеру непроверенные на наличие вирусов отчуждаемые носители, не читайте подозрительных электронных писем, максимально ограничьте использование Интернет-пейджеров (ICQ и пр.) и т. п.