STANDARD DATA DICTIONARY #6.666 -- KERNEL PKI LOGS FILE 6/27/25 PAGE 1 STORED IN ^XULOGS(6.666, *** NO DATA STORED YET *** SITE: WWW.BMIRWIN.COM UCI: VISTA,VISTA (VERSION 8.0) DATA NAME GLOBAL DATA ELEMENT TITLE LOCATION TYPE ----------------------------------------------------------------------------------------------------------------------------------- The KERNEL PKI LOGS file is meant to be used by the Kernel team to log which SAML TOKENS would fail PKI digital signature validation. This file has been released in patch XU*8*810. At minimum a log entry MUST contain a DATE/TIME CREATED and a SAML TOKEN. Please note that to preserve the byte by byte integrity of the SAML TOKEN the SAML TOKEN has been saved in base64 format. The USER'S SECID, FIRST NAME and LAST NAME fields are extracted from the given SAML TOKEN; therefore it is possible that this data is forged, inaccurate or simply not provided. The main takeaway is that we understand who the user said they were using SECID so that we can later compare that to IAM. The ERROR MESSAGE FROM API and ERROR MESSAGE FROM RSA fields are meant to store messages reported by the InterSystems APIs. The OTHER MESSAGE field is meant to store other messages that maybe relevant to help triage why the SAML TOKEN failed PKI digital signature validation. DD ACCESS: @ RD ACCESS: @ WR ACCESS: @ DEL ACCESS: @ LAYGO ACCESS: @ AUDIT ACCESS: @ APPLICATION GROUP(S): XU CROSS REFERENCED BY: DATE/TIME CREATED(B) LAST MODIFIED: FEB 4,2025@15:29:39 6.666,.01 DATE/TIME CREATED 0;1 FREE TEXT (Required) INPUT TRANSFORM: I $$UP^XLFSTR(X)="NOW" S X=$$NOW^XUPKILOG MAXIMUM LENGTH: 40 LAST EDITED: NOV 22, 2024 HELP-PROMPT: Enter the date and time the record was created using ISO 8601 format. DESCRIPTION: The DATE/TIME CREATED field stores when the entry was inserted into the file following the ISO 8601 date/time format. The date/time format for November 1st, 2024 at 5:23 PM HST would be ISO 8601 formatted as: 2024-11-01T17:23:00-10:00 NOTES: XXXX--CAN'T BE ALTERED EXCEPT BY PROGRAMMER CROSS-REFERENCE: 6.666^B 1)= S ^XULOGS(6.666,"B",$E(X,1,30),DA)="" 2)= K ^XULOGS(6.666,"B",$E(X,1,30),DA) 6.666,10 USER'S SECID 0;3 FREE TEXT INPUT TRANSFORM: K:$L(X)>40!($L(X)<3) X MAXIMUM LENGTH: 40 LAST EDITED: NOV 22, 2024 HELP-PROMPT: Enter the user's SECID with leading zeros, i.e., 00019283. DESCRIPTION: The USER'S SECID is extracted from the SAML TOKEN. This data may be forged, inaccurate or empty due to a SAML TOKEN failing digital signature validation. 6.666,11 USER'S FIRST NAME 0;4 FREE TEXT INPUT TRANSFORM: K:$L(X)>99!($L(X)<1) X MAXIMUM LENGTH: 99 LAST EDITED: NOV 05, 2024 HELP-PROMPT: Enter the user's first name as it is given in the SAML TOKEN. DESCRIPTION: The USER'S FIRST NAME is extracted from the SAML TOKEN. This data may be forged, inaccurate or empty due to a SAML TOKEN failing digital signature validation. 6.666,12 USER'S LAST NAME 1;1 FREE TEXT INPUT TRANSFORM: K:$L(X)>99!($L(X)<1) X MAXIMUM LENGTH: 99 LAST EDITED: NOV 05, 2024 HELP-PROMPT: Enter the user's last name as it is given in the SAML TOKEN. DESCRIPTION: The USER'S LAST NAME is extracted from the SAML TOKEN. This data may be forged, inaccurate or empty due to a SAML TOKEN failing digital signature validation. 6.666,20 SAML TOKEN 2;0 Multiple #6.676 LAST EDITED: OCT 25, 2024 DESCRIPTION: The SAML TOKEN field stores the actual SAML TOKEN that failed PKI digital signature validation in base64 format. 6.666,20.5 SAML TOKEN HASH 7;1 FREE TEXT INPUT TRANSFORM: K:$L(X)>128!($L(X)<10) X MAXIMUM LENGTH: 128 LAST EDITED: NOV 04, 2024 HELP-PROMPT: Enter the SHA-256 hash of the SAML TOKEN. DESCRIPTION: The SAML TOKEN HASH field stores the SHA-256 hash of the SAML TOKEN. 6.666,21 ERROR MESSAGE FROM API 3;1 FREE TEXT INPUT TRANSFORM: K:$L(X)>256!($L(X)<1) X MAXIMUM LENGTH: 256 LAST EDITED: NOV 04, 2024 HELP-PROMPT: Enter the error message returned by the InterSystems APIs. DESCRIPTION: The ERROR MESSAGE FROM API may store the error message returned by the InterSystems APIs that perform digital signature validation. 6.666,22 ERROR MESSAGE FROM RSA 4;1 FREE TEXT INPUT TRANSFORM: K:$L(X)>256!($L(X)<1) X MAXIMUM LENGTH: 256 LAST EDITED: NOV 04, 2024 HELP-PROMPT: Enter the error message returned by the InterSystems APIs. DESCRIPTION: The ERROR MESSAGE FROM RSA may store any error messages produced by the OpenSSL implementation when attempting PKI digital signature validation. TECHNICAL DESCR: The ERROR MESSAGE FROM RSA stores the error message returned from the InterSystems API: %SYSTEM.Encryption.RSAGetLastError() If this message is present, it means that the underlying OpenSSL implementation has returned a critical error. This critical error should be resolved first. When a message is not present then this is considered normal operation and no issue is present. For example, if a SAML token is modified it will fail digital signature validation and thus will not produce an error. If OpenSSL failed to validate the SAML token digital signature because the certificate trust store does not contain the root or intermediate certificate authorities then the following message would be logged: unable to get local issuer certificate 6.666,23 OTHER MESSAGE 8;1 FREE TEXT INPUT TRANSFORM: K:$L(X)>255!($L(X)<1) X MAXIMUM LENGTH: 255 LAST EDITED: NOV 04, 2024 HELP-PROMPT: Enter any additional message that may aid in explaining why this SAML TOKEN was logged. DESCRIPTION: This optional field will be used to capture any additional messages that may aid in explaining why this SAML TOKEN was logged. 6.666,30 RPC BROKER CONTEXT 5;1 POINTER TO OPTION FILE (#19) INPUT TRANSFORM: I $P(^(0),U,4)="B" D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X LAST EDITED: NOV 04, 2024 HELP-PROMPT: Enter the RPC BROKER CONTEXT option that was used after the SAML TOKEN failed digital signature validation. DESCRIPTION: The RPC BROKER CONTEXT describes the context option that was used after the SAML TOKEN was authenticated. This helps to identify which applications might be using modified SAML TOKENS. SCREEN: I $P(^(0),U,4)="B" EXPLANATION: The screen only allows the selection of broker types. 6.666,31 CLIENT IP ADDRESS 5;2 FREE TEXT INPUT TRANSFORM: K:$L(X)>50!($L(X)<1) X MAXIMUM LENGTH: 50 LAST EDITED: NOV 05, 2024 HELP-PROMPT: Enter the client's IP address that sent the SAML TOKEN. DESCRIPTION: The CLIENT IP ADDRESS is the source IP address of the system or user who is sending a SAML TOKEN that fails digital signature validation. 6.666,32 SERVER IP ADDRESS 5;3 FREE TEXT INPUT TRANSFORM: K:$L(X)>50!($L(X)<1) X MAXIMUM LENGTH: 50 LAST EDITED: NOV 05, 2024 HELP-PROMPT: Enter the IP address of the server that the client connected to. DESCRIPTION: The SERVER IP ADDRESS identifies the VistA backend or frontend server that the client has connected to. This is useful in determining which server may have a misconfiguration in its PKI setup. 6.666,33 LOGIN METHOD 5;4 SET 'R' FOR RPC BROKER; 'S' FOR SSH (ROLL-N-SCROLL); 'V' FOR VISTALINK; 'H' FOR HL7; 'B' FOR BROKER SECURITY ENHANCEMENT; LAST EDITED: NOV 05, 2024 HELP-PROMPT: Enter the login method used to authenticate a VistA session. DESCRIPTION: The LOGIN METHOD describes the path taken by the user or application to authenticate with VistA. For example, if the user connected and authenticated through the RPC Broker then R would be the LOGIN METHOD. 6.666,34 SAML TOKEN REUSE COUNT 5;5 NUMBER INPUT TRANSFORM: K:+X'=X!(X>999999999999)!(X<1)!(X?.E1"."1.N) X LAST EDITED: NOV 04, 2024 HELP-PROMPT: Enter the number of times this SAML TOKEN has been used to authenticate to VistA. DESCRIPTION: This SAML TOKEN REUSE COUNT tracks how many times a SAML TOKEN has been reused to authenticate with VistA. FILES POINTED TO FIELDS OPTION (#19) RPC BROKER CONTEXT (#30) INPUT TEMPLATE(S): PRINT TEMPLATE(S): SORT TEMPLATE(S): FORM(S)/BLOCK(S):