Guia de Implementação da SES GO - Segurança
0.0.2 - draft
Guia de Implementação da SES GO - Segurança - Local Development build (v0.0.2) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
A garantia da rastreabilidade, transparência e conformidade, especialmente em operações envolvendo assinaturas digitais e validação de certificados, exige o registro de eventos de auditoria.
Definir o processo de registro de eventos relevantes para efeito de auditoria.
Outros atores podem usufruir do presente caso de uso, contudo, abaixo são identificados apenas aqueles no escopo do presente Guia de Implementação.
Gatilho: ocorre um evento relevante (ex: assinatura, validação, checagem de revogação). Veja seção anterior.
Armazenamento: o registro é armazenado em repositório seguro, com proteção contra alterações não autorizadas.
Consulta: administradores/auditores podem consultar registros de auditoria conforme permissões e políticas definidas.
{
"resourceType": "AuditEvent",
"type": {
"system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
"code": "sign",
"display": "Signature"
},
"action": "C",
"recorded": "2024-06-07T14:23:00Z",
"outcome": "0",
"outcomeDesc": "SUCESSO",
"purposeOfEvent": [
{
"coding": [
{
"system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
"code": "HLEGAL"
}
]
}
],
"agent": [
{
"who": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-123"
}
}
}
],
"source": {
"observer": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-123"
}
}
},
"entity": [
{
"type": {
"code": "document"
},
"what": {
"identifier": {
"system": "urn:uuid",
"value": "urn:uuid:abcd-1234"
}
}
}
],
"reason": [
{
"coding": [
{
"system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
"code": "HLEGAL"
}
]
}
]
}
{
"resourceType": "AuditEvent",
"type": {
"system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
"code": "verify",
"display": "Verification"
},
"action": "E",
"recorded": "2024-06-07T15:00:00Z",
"outcome": "0",
"outcomeDesc": "SUCESSO",
"purposeOfEvent": [
{
"coding": [
{
"system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
"code": "HLEGAL"
}
]
}
],
"agent": [
{
"who": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-456"
}
}
}
],
"source": {
"observer": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-456"
}
}
},
"entity": [
{
"type": {
"code": "document"
},
"what": {
"identifier": {
"system": "urn:uuid",
"value": "urn:uuid:abcd-1234"
}
}
}
],
"identifier": {
"system": "urn:ses-go",
"value": "id-logico-5678"
},
"reason": [
{
"coding": [
{
"system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
"code": "HLEGAL"
}
]
}
]
}
{
"resourceType": "AuditEvent",
"type": {
"system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
"code": "verify",
"display": "Verification"
},
"action": "E",
"recorded": "2024-06-07T15:10:00Z",
"outcome": "0",
"outcomeDesc": "SUCESSO",
"purposeOfEvent": [
{
"coding": [
{
"system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
"code": "HLEGAL"
}
]
}
],
"agent": [
{
"who": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-456"
}
}
}
],
"entity": [
{
"type": {
"code": "certificate"
},
"what": {
"identifier": {
"system": "urn:uuid",
"value": "urn:uuid:cert-9999"
}
}
}
],
"reason": [
{
"coding": [
{
"system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
"code": "HLEGAL"
}
]
}
]
}
{
"resourceType": "AuditEvent",
"type": {
"system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
"code": "rest",
"display": "RESTful Operation"
},
"action": "R",
"recorded": "2024-06-07T15:20:00Z",
"outcome": "0",
"outcomeDesc": "SUCESSO",
"agent": [
{
"who": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-789"
}
}
}
],
"entity": [
{
"type": {
"code": "document"
},
"what": {
"identifier": {
"system": "urn:uuid",
"value": "urn:uuid:abcd-1234"
}
}
}
]
}
{
"resourceType": "AuditEvent",
"type": {
"system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
"code": "security",
"display": "Security Alert"
},
"action": "U",
"recorded": "2024-06-07T15:30:00Z",
"outcome": "0",
"outcomeDesc": "SUCESSO",
"agent": [
{
"who": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-999"
}
}
}
],
"entity": [
{
"type": {
"code": "config"
},
"what": {
"identifier": {
"system": "urn:uuid",
"value": "urn:uuid:config-0001"
}
}
}
]
}
{
"resourceType": "AuditEvent",
"type": {
"system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
"code": "rest",
"display": "RESTful Operation"
},
"action": "E",
"recorded": "2024-06-07T15:40:00Z",
"outcome": "8",
"outcomeDesc": "FALHA",
"agent": [
{
"who": {
"identifier": {
"system": "urn:oid:1.2.3.4.5.6.7.8.9",
"value": "estabelecimento-789"
}
}
}
],
"entity": [
{
"type": {
"code": "document"
},
"what": {
"identifier": {
"system": "urn:uuid",
"value": "urn:uuid:abcd-1234"
}
}
}
]
}
Esta seção define a estrutura técnica específica para registros de auditoria de operações de assinatura digital, incluindo validação com evidências Long Term Validation (LTV).
Elemento FHIR | Uso específico para assinatura digital | Tipo de dado | Observações |
---|---|---|---|
AuditEvent.recorded |
Data/hora da operação de assinatura ou validação | instant (timestamp) |
Data confiável da operação; prova de quando foi executada |
AuditEvent.agent |
Identidade do sistema ou pessoa que realizou a operação | AuditEvent.agent |
Deve indicar quem realizou a operação (sistema automático ou operador) |
AuditEvent.source |
Sistema onde a operação ocorreu | AuditEvent.source |
Pode incluir identificador do sistema, hostname, etc. |
AuditEvent.outcome |
Resultado da operação | code |
Valores como 0 (sucesso), 4 (erro grave), conforme FHIR |
AuditEvent.outcomeDesc |
Descrição textual do resultado | string |
Ex: "Assinatura criada com sucesso", "Cadeia válida até a AC Raiz" |
AuditEvent.entity[n].what |
Referência para o recurso Provenance contendo a assinatura (JWS) | Reference(Provenance) |
Provenance contém Signature.data , que inclui JWS e cadeia x5c |
AuditEvent.entity[n].type |
Tipo do recurso referenciado (assinatura, conteúdo assinado, etc.) | Coding |
Ex: Provenance, Bundle, Observation |
AuditEvent.entity[n].role |
Papel da entidade no contexto da auditoria | Coding |
Ex: "signed-resource" , "signature-source" , "evidence" |
AuditEvent.entity[n].detail |
Detalhes chave-valor da operação | key-value |
Exemplos abaixo |
└─ detail[0].type |
"operationResult" |
string |
Ex: "success" , "validation-failed" , "signature-created" |
└─ detail[1].type |
"operationDate" |
string (timestamp ISO 8601) |
Redundante com recorded , mas pode reforçar a evidência |
└─ detail[2].type |
"hashAlgorithm" |
string |
Ex: "SHA-256" |
└─ detail[3].type |
"signatureAlgorithm" |
string |
Ex: "RS256" , "ES256" |
└─ detail[4].type |
"policyUsed" |
string |
URI da política de assinatura utilizada |
└─ detail[5].type |
"certificateFingerprint" |
string |
SHA-256 fingerprint do certificado signatário |
└─ detail[6].type |
"timestampStrategy" |
string |
Ex: "iat" (auto-declarado) ou "tsa" (TSA) |
└─ detail[7].type |
"ocspResponseCertX" |
base64Binary ou referência |
Resposta OCSP assinada (pode ser binária ou apontar para Binary no contained ) |
└─ detail[8].type |
"crlUsedCertX" |
base64Binary ou referência |
CRL usada na validação do certificado X |
AuditEvent.contained[n] |
Recurso Binary com evidências binárias (ex: CRL, resposta OCSP) |
Binary |
Armazena objetos assinados que não estão contidos no Provenance |
└─ Binary.contentType |
Tipo MIME do conteúdo | string |
Ex: "application/pkix-crl" ou "application/ocsp-response" |
└─ Binary.data |
Conteúdo binário codificado em base64 | base64Binary |
CRL ou OCSP em base64 |
Para operações de assinatura digital, utilize os seguintes códigos nos elementos AuditEvent.type
e AuditEvent.subtype
:
Tipos de operação (AuditEvent.type
):
"create"
: Para criação de assinaturas digitais"read"
: Para validação/verificação de assinaturas digitais"update"
: Para operações de re-assinatura ou atualização de evidências LTVSubtipos (AuditEvent.subtype
):
"digital-signature-creation"
: Criação de assinatura digital"digital-signature-validation"
: Validação de assinatura digital"certificate-revocation-check"
: Verificação de revogação de certificados"ltv-evidence-collection"
: Coleta de evidências para Long Term ValidationIntegridade dos registros:
Confidencialidade:
Disponibilidade:
Retenção: