Java Card Tutorial: Implementing Supplementary Security Domain to Limit ISD Privileges
A new technical tutorial explains how to create a Supplementary Security Domain (SSD) on Java Card platforms, addressing the risk that full Issuer Security Domain (ISD) keys grant unrestricted control over the entire card.
The architecture places the SSD between the applet and the ISD. The ISD continues to manage card contents but loses direct interaction with the applet, which is now handled exclusively by the SSD. This design ensures that even if an attacker obtains SSD keys, privileges remain strictly limited.
The process begins with installation of the SSD instance from the package AID A0000001515350 and module AID A000000151535041. Install parameters include the tag 8102 0255 for SCP02 with configuration i=55 and the tag 8201 20 to accept extradition only from the ISD. The privilege byte is set to 80 for Security Domain rights.
After installation the domain reaches the SELECTABLE lifecycle state. Personalization follows with the INSTALL [for personalization] command and subsequent STORE DATA operations that deliver encrypted ENC, MAC and DEK keys along with their key check values, all formatted according to GP CS v2.3 section 11.11.4.
Once the SSD is in the PERSONALIZED state, an applet is installed under the ISD and then moved to the SSD using the INSTALL [for extradition] command. The resulting hierarchy shows the applet parent changed to the new SSD AID while the original package relationships remain intact.
The tutorial provides five Python scripts based on the FunGP library that automate reader initialization, mutual authentication over SCP02, SSD creation, key loading, and applet extradition, offering a reproducible reference implementation for developers working with GlobalPlatform-compliant smart cards.
Related articles
Rostelecom Refactors InfoSec Careers: Matching Employee Skills to Evolving Business Priorities
Rostelecom's information security block developed a systematic approach to reassess employee expertise and redirect talent to new roles when business structures change rapidly. In one case, an architect hired for a specific team was reassigned after the unit was disbanded, initially moving to a similar position that did not fully align with his broader competencies. HR-business partner Olga Lapshina examined the specialist's full background, including prior work in audits, methodology development, regulatory documentation, university teaching, and scientific research, plus strong mentoring abilities with younger staff. These skills matched the needs of the methodology department, leading to a transfer supported by an individual development plan and a mentor via the internal Tochka Rosta platform. Within two months the employee contributed improvements that accelerated preliminary InfoSec audits by 30 percent and risk assessments by 20 percent while expanding threat scenario coverage by 10 percent. The initiative demonstrates Rostelecom's emphasis on horizontal career movement and retention of experienced professionals through structured career tracks.
How to Avoid Becoming the Hero of 'My Program Deleted 800 GB': Safe Recursive Deletion in Bash and Python
A recent Habr article examines dangerous patterns in recursive file deletion scripts that have caused massive data loss incidents, including an 800 GB wipe triggered by Telegram Desktop on Windows. The piece analyzes classic mistakes such as empty variables in rm commands and extra spaces that turned single paths into multiple destructive arguments, referencing the 2015 Steam Linux bug and the 2011 Bumblebee installer error. It provides hardened Bash templates using set -euo pipefail, ${VAR:?} checks, realpath validation, and --one-file-system flags to prevent deletion of forbidden directories or symlinked targets. The Python section introduces a safe_rmtree wrapper that enforces root boundaries, rejects symlinks, uses resolve(strict=True), and checks shutil.rmtree.avoids_symlink_attacks before proceeding. Additional recommendations include dry-run modes, marker files, temporary directory usage, and logging to make deletion operations auditable and reversible where possible.
Hackers tamper with refrigeration units in European supermarkets, setting temperatures to +50 °C
Attackers gained unauthorized access to refrigeration and freezer control systems in supermarkets across several European countries, including Sweden, Belgium, Luxembourg, and Estonia. In multiple locations they altered temperature settings to +50 °C, risking widespread spoilage of perishable goods. The incidents primarily affected older, unpatched Danfoss controllers that had been connected to networks for remote maintenance. Estonian manufacturer Kitman Coldtech reported that one attack on a legacy Danfoss system was detected and stopped within approximately ten minutes, preventing any damage. Similar intrusions were confirmed by Swedish chains ICA and Coop, following earlier incidents in French supermarkets in October that resulted in product losses. Experts note that legacy industrial controllers remain attractive targets because they are often left exposed once placed online for convenience.
AmneziaWG Container for MikroTik Routers Delivers Top Performance Six Months After Launch
A developer released an AmneziaWG container for MikroTik devices in February 2026 and has since added major improvements in speed, protocol support, and stability. The lightweight container leverages the router's native WireGuard implementation for cryptography while handling AmneziaWG obfuscation in software. Performance now reaches 250-350 Mbit/s on models such as Hap Ax3 and RB5009B after switching to C code and increasing buffer sizes with RouterOS 7.24. New features include server mode for connecting multiple MikroTik devices, random port hopping, IPv6 support, dynamic DNS, and offline configuration. The project survived an early GitHub ban caused by test scripts and has grown to over 370 stars while remaining fully offline and privacy-focused.