Poucas ligações.
Qualquer plataforma.

Identity Layer integra-se com superfície mínima por design. MicroPython em um microcontrolador de € 10, Flutter em Android e Windows, ou uma PHP bridge colocada em seus endpoints existentes. O mesmo protocolo. As mesmas garantias criptográficas. Quatro chamadas.

Inicialize para verificado. 6,5 segundos.

O mesmo protocolo de desafio/resposta Ed25519 que autentica um usuário móvel ou um operador regulamentado funciona com um microcontrolador de 10 euros. Chave vinculada ao dispositivo. Nenhum banco de dados de credenciais. JWT emitido na verificação.

Raspberry Pi Pico 2W, PN532 NFC reader, SSD1306 OLED display, NTAG424 DNA card
Boot
Registering
Node exists
Verified
Challenge
Active
Quatro chamadas operativas. WiFi, OLED e carregamento de configuração são infraestrutura de dispositivo, não Identity Layer. A primitiva identidade é IdentityIoT, instalado via mip.
MicroPython
# Install via mip — no external dependencies
# import mip; mip.install("github:wide/identity-micropython")

from identity_iot import IdentityIoT

# 1. Init — configure node identity
identity = IdentityIoT(
    base_url  = cfg['base_url'],
    node_type = cfg['node_type'],
    tenant_id = cfg['tenant_id'],
    comm_key  = cfg['comm_key'].encode(),
    comm_iv   = cfg['comm_iv'].encode(),
)

# 2. Register — device-bound key, runs once
identity.ensure_registered()

# 3. Authenticate — Ed25519 challenge / verify / JWT
token = identity.authenticate()

# 4. Authenticated request — AES-256-GCM encrypted payload
response = identity.post_encrypted({'request': 'record_sensor_data', 'value': 42})
Componente Modelo Função
UCM Raspberry Pi Pico 2W (RP2350) TrustZone, WiFi, armazenamento de chaves vinculado ao dispositivo
Leitor NFC PN532 Interface I2C, lê emblemas de DNA NTAG424
Exibição SSD1306 128x64 OLED Sequência de inicialização, status de verificação
Selo NFC NTAG424 DNA (NXP) AES-128 integrado, chaves não exportáveis, CMAC dinâmico
As implantações de referência ESP32 e RP2040 para datacenters e verticais de acesso físico estão em andamento. O protocolo e o SDK são idênticos em todos os hardwares suportados.

Identidade vinculada ao dispositivo.
Quatro chamadas.

Pacotes locais. Nenhum serviço de identidade externo. A chave privada nunca sai do dispositivo. Armazenamento seguro via flutter_secure_storage e TEE/Enclave Seguro quando disponível. A criptografia de payload é de ponta a ponta via ITEMSEncrypter.

identity_package identity_std identity_hs items_crypto items_search items_document_body
Todos os pacotes são locais. Nenhuma dependência pub.dev na camada de identidade. O SDK é distribuído como parte do pacote de licenciamento.
Dart / Flutter
// 1. Init — JWT identity, silent on subsequent boots
final auth = IdentityAuthServiceStd(ITEMSGlobals.authURI);
await auth.ensureJwt(
  preferredLocale: locale.languageCode,
  utcOffsetMin:    DateTime.now().timeZoneOffset.inMinutes,
);

// 2. Handshake — silent if identity already present on device
final result = await api.mjHandshake(
  identityHash: identityHash,
  publicKey:    publicKey,
);

// 3. Store JWT — session active, no password, no credential database
await _storage.write(key: 'token', value: result['token']);

// 4. Every request — AES-256-GCM payload, end-to-end encrypted
final response = await api.postEncrypted({'request': 'your_request'});
YAML
dependencies:

  # Identity Layer — local packages, no external registry
  identity_package:
    path: packages/identity_package
  identity_std:
    path: packages/identity_std
  identity_hs:
    path: packages/identity_hs
  items_crypto:
    path: packages/items_crypto
PlataformaEstadoArmazenamento seguro
AndroidProdução, Google Play liberadoArmazenamento de chaves do Android/TEE
WindowsProdução, Microsoft Store liberadaGerenciador de credenciais do Windows
LinuxProduçãolibsecret
iOS / macOSNo roteiroEnclave Seguro

5KB.
Sua pilha, inalterada.

A PHP bridge é um requisito único que fica na frente de seus endpoints existentes. Suas rotas, seu banco de dados, sua lógica de negócios. Intocado.. Identity Layer lida com autenticação e criptografia de payload. Remova-o da mesma forma que você o adicionou.

Entrar, desistir. Um require_once e duas chamadas de função. Seus endpoints começam a receber cargas verificadas e descriptografadas. Nenhuma migração de esquema. Nenhuma alteração na tabela do usuário. Sem armazenamento de sessão. A pilha completa do lado do servidor é 225 KB.
PHP
// 1. Include the Identity Layer bridge — 5 KB
require_once 'identity/_mj_auth.php';

// 2. Authenticate — JWT verified, identity_hash extracted
//    identity_hash is a 64-char SHA-256 hex — never a user ID
[$identityHash, $tenantId, $claims, $role] =
    mj_authenticate_identity($encoder);

// 3. Every response — AES-256-GCM encrypted, end-to-end
sendEncryptedResponse($encoder, [
    'status' => 'ok',
    'data'   => $yourData,
], ['ts' => time()], 200);
Os logs de auditoria existem, mas são criptograficamente inacessíveis. O acesso requer uma ordem judicial validada. O mj_mandate_log ponto final registra o mandate e abre uma janela de exportação de 72 horas. Os logs são destruídos após a coleta. A autoridade requerente tem responsabilidade legal.
PHP: mj_mandate_log
// Requires role = admin — never operator
[$userId, $tenantId, $claims, $role] = mj_authenticate($encoder);
mj_require_role($encoder, $claims, 'admin');

// Register mandate — opens 72h export window
// target_identity_hash: 64-char SHA-256, never plaintext identity
// Ciphertext is never stored — metadata only
$connector->executeDatabaseParameterQuery(
    "INSERT INTO audit_log (mandate_number, issuing_country,
     issuing_court, target_identity_hash, export_status)
     VALUES (?, ?, ?, ?, 'PENDING')",
    [$mandateNumber, $issuingCountry, $issuingCourt, $targetHash],
    $db
);
ComponenteTecnologiaNotas
Tempo de execuçãoPHP 8.xBaunilha, nenhuma estrutura necessária
Banco de dadosMySQL / MariaDBEsquema padrão, sem colunas de credenciais
Cache / ephemeralRedisTokens de desafio, filas de mensagens (TTL <1 min)
Tamanho da ponte5 KBArquivo PHP único, colocado em qualquer pilha LAMP
Tamanho total da pilha225 KBIdentity STD + HS + Chaves + Secure Channel + IoT + Etiquetas + Tag
ImplantaçãoContêiner / no local / com isolamento de arSem conectividade obrigatória à nuvem