Cartões SIM
Conhecimento técnico completo sobre cartões SIM, desde aspectos físicos até programação avançada.
📐 Form Factors Físicos
Evolução dos Tamanhos
- Full-size (1FF): 85.6 × 53.98 mm - Formato original (1991)
- Mini-SIM (2FF): 25 × 15 mm - Padrão dos anos 90-2000s
- Micro-SIM (3FF): 15 × 12 mm - Smartphones modernos
- Nano-SIM (4FF): 12.3 × 8.8 mm - Dispositivos atuais
- MFF2 (Machine Form Factor): 6 × 5 mm - IoT e dispositivos embarcados
Características Físicas
- Contatos elétricos: 8 contatos (C1-C8)
- Espessura: 0.76mm (padrão ISO/IEC 7816)
- Material: PVC ou ABS com chip embutido
- Temperatura operacional: -25°C a +85°C
🗂️ Estrutura de Diretórios
File System Hierarchy
MF (Master File - 3F00)
├── EF(DIR) - Application Directory
├── EF(ICCID) - ICC Identification
├── EF(PL) - Preferred Languages
├── DF(GSM) - GSM Directory (7F20)
│ ├── EF(IMSI) - International Mobile Subscriber Identity
│ ├── EF(Kc) - Ciphering Key
│ ├── EF(PLMNsel) - PLMN Selector
│ ├── EF(HPPLMN) - Higher Priority PLMN
│ ├── EF(ACMmax) - Accumulated Call Meter Maximum
│ ├── EF(SST) - SIM Service Table
│ ├── EF(ADN) - Abbreviated Dialing Numbers
│ ├── EF(FDN) - Fixed Dialing Numbers
│ ├── EF(SMS) - SMS Storage
│ ├── EF(MSISDN) - Mobile Station International ISDN Number
│ └── DF(TELECOM) - Telecom Directory (7F10)
│ ├── EF(PBR) - Phone Book Reference
│ ├── EF(ADN) - Additional ADN
│ └── EF(SMS) - SMS Messages
├── DF(DCS1800) - DCS1800 Directory
├── DF(TETRA) - TETRA Directory
└── AID Applications (USIM, ISIM, etc.)
📈 Evolução Tecnológica
2G (GSM SIM)
- Ki: 128-bit authentication key
- IMSI: 15 digits subscriber identity
- Algoritmos: A3/A8 (authentication/ciphering)
- Capacidade: 8KB-32KB típico
- Aplicações: STK básico
3G (USIM)
- Enhanced security: Mutual authentication
- Algoritmos Milenage: 3GPP padrão
- UICC platform: Universal IC Card
- Maior capacidade: 32KB-128KB
- Java Card: Suporte a applets
4G/5G (USIM/ISIM)
- IMS support: ISIM para VoLTE/VoNR
- Enhanced STK: ProActive SIM
- OTA updates: Remote provisioning
- Multiple applications: Compartilhamento de UICC
- Advanced crypto: ECC, SHA-256
☕ Java Card Platform
Arquitetura
┌─────────────────────────┐
│ Applet Layer │ ← SIM Toolkit, Payment, etc.
├─────────────────────────┤
│ Java Card API │ ← JCRE, Security APIs
├─────────────────────────┤
│ Java Card VM │ ← Bytecode execution
├─────────────────────────┤
│ Operating System │ ← Card OS (proprietary)
└─────────────────────────┘
Especificações
- Java Card 3.x: Classic/Connected editions
- Memory management: Persistent/transient
- Applet lifecycle: Install, select, process
- Security domains: Application isolation
🛠️ SIM Toolkit (STK)
Comandos Proactivos
- DISPLAY TEXT: Mostrar mensagens
- GET INKEY: Capturar tecla
- GET INPUT: Entrada de dados
- SELECT ITEM: Menu de opções
- SEND SMS: Enviar SMS
- SETUP CALL: Iniciar chamada
- LAUNCH BROWSER: Abrir navegador
- OPEN CHANNEL: Comunicação de dados
Event Handling
- Menu selection: Seleção de menu
- Call connected: Chamada conectada
- Location status: Status de localização
- User activity: Atividade do usuário
- Idle screen: Tela inativa
📱 Applets e Aplicações
Tipos de Applets
- Native applications: Aplicações do fabricante
- STK applications: SIM Toolkit apps
- Payment applications: EMV, contactless
- OTA applications: Over-the-air management
- Security applications: Authentication, PKI
Desenvolvimento
- CAP files: Converted Applet format
- GlobalPlatform: Standard de gerenciamento
- Security domains: Isolamento de aplicações
- Key management: Gestão de chaves criptográficas
🔧 Equipamentos para Leitura/Escrita
Leitores PC/SC
- Omnikey readers: Padrão profissional
- ACR38 series: Custo-benefício
- Gemalto readers: Uso enterprise
- SCM readers: Desenvolvimento
Programadores Especializados
- Phoenix readers: Cartões mais antigos
- Tornado readers: Multi-protocol
- Smart Mouse: Programação avançada
- PCSC-compatible: Padrão moderno
Características Técnicas
- Voltagens: 1.8V, 3V, 5V
- Protocolos: T=0, T=1
- Velocidades: 9600-115200 bps
- Interfaces: USB, Serial, Ethernet
💻 Software e Ferramentas
pySIM - Suite Completa
- Programação: Configuração de parâmetros SIM
- Shell interativo: Exploração de file system
- Bulk provisioning: Programação em lote
- Format support: Múltiplos formatos de cartão
Ferramentas Comerciais
- CardPeek: Análise visual de cartões
- SIMalliance tools: Ferramentas padrão
- Vendor tools: Gemalto, Infineon, etc.
- Test suites: Conformance testing
Ferramentas Open Source
- OpenSC: Smart card library
- PCSC-lite: PC/SC middleware Linux
- GlobalPlatform tools: GP card management
- SCardLib: Biblioteca de desenvolvimento
🔒 Segurança e Autenticação
Chaves e Algoritmos
- Ki (Authentication Key): Chave mestre 128-bit
- ADM keys: Administrative keys
- OPC/OP: Operator codes (Milenage)
- PIN/PUK: User authentication
Levels de Acesso
- CHV1/PIN1: User verification
- CHV2/PIN2: Advanced features
- ADM1-ADM4: Administrative access
- Master key: Factory access
🧪 Cartões de Desenvolvimento
SysmoISIM-SJA2
- Programmable: ADM keys disponíveis
- Multi-generation: 2G/3G/4G/5G support
- Developer friendly: Writable fields
- Java Card: STK application support
Características dos Dev Cards
- Known ADM keys: Acesso administrativo
- Reduced security: Para desenvolvimento
- Multiple IMSI: Testing flexibility
- OTA capable: Remote updates
📚 Referências e Recursos
Especificações Técnicas
Recursos Educacionais
Documentação Padrão
- ETSI TS 102 221: UICC-Terminal interface
- 3GPP TS 31.101: UICC-Terminal interface
- GlobalPlatform: Card specification
- Java Card: Oracle specifications
🎯 Casos de Uso
Desenvolvimento e Testes
- Carrier testing: Homologação de redes
- Device testing: Certificação de aparelhos
- Security research: Análise de vulnerabilidades
- Academic research: Pesquisa universitária
Aplicações Comerciais
- M2M/IoT: Conectividade de dispositivos
- Payment systems: Cartões de pagamento
- Access control: Controle de acesso
- Identity management: Gestão de identidade
🎯 Cartões SIM são muito mais que identificação - são plataformas computacionais completas para aplicações seguras.