SlideShare a Scribd company logo
1 of 18
APEX Office Hours
Factor de Doble autenticación
para Oracle APEX
Factor de doble autenticación
Es un mecanismo que permite el acceso a una aplicación o recurso siempre
que el usuario presente 2 o más factores que comprueben su identidad.
Los factores de autenticación de un esquema multifactor pueden incluir:
En nuestro caso utilizaremos la contraseña como algo que “el usuario sabe”,
y una aplicación de autenticación en el dispositivo móvil como algo que “el
usuario tiene”.
A) Algo que el usuario sabe. B) Algo que el usuario
tiene.
C) Algo que el usuario
es.
One time password
¿Por qué las TOTPS?
• Solo válidas para un solo inicio de sesión.
• Utilizan hash y el tiempo para derivar un valor sin embargo no son fáciles
de decodificar.
• No son sensibles a los ataques de repetición aun teniendo muestras de
ellas.
• Utilizan una aplicación o token físico sincronizado en el tiempo con el
servidor de autenticación.
En nuestro caso hablaremos del estándar de OTPs sincronizadas con el
tiempo (TOTP RFC 6238).
Un “One Time Password” es una contraseña válida solo para un inicio de
sesión ya sea en una aplicación, dispositivo digital o recurso físico.
Pueden ser basadas en el Tiempo (TOTP), o con base en un hash y en los
valores de OTPs anteriores (HOTP).
APEX y los esquemas de autenticación
En APEX utilizamos los esquemas de autenticación para establecer la identidad de
nuestros usuarios y controlar el acceso a las aplicaciones.
Los esquemas de autenticación preconstruidos en APEX son:
1. Oracle APEX Accounts.
2. Database Accounts.
3. HTTP Header Variable.
4. Open Door Credentials.
5. No Authentication (using DAD).
6. LDAP Directory.
7. Oracle Application Server Single Sign-On Server.
8. SAML Sign-In.
9. Social Sign-In.
Si bien es posible crear Custom Authentication Schemes; el resultado es un nuevo
componente que probar, mantener y asegurar, y debe incluye el registro de usuario, la
administración y la encriptación de la contraseña al menos.
Requerimientos para la generación
del OTP
APEX
+ Secret
+ Tiempo
Autenticador
+ Secret
+ Tiempo
Registro de primera vez:
otpauth://TYPE/LABEL?PARAME
TERS
Autenticación:
706210
En general para utilizar un cliente de autenticación OTP es necesario:
1. Generar y almacenar la clave secreta del
usuario.
2. Servidor y Cliente con hora sincronizada.
3. Generación de QR con Secret para registro
inicial.
4. Generación de OTP para cada inicio de
sesión.
Opcionalmente podemos utilizar mecanismos directos para enviar OTPs a dispositivos
del usuario como E-Mail, SMS, Telegram o WA con el objetivo de evitar el uso de
autenticadores.
Uso de las librerías
Generación de la clave secreta inicial aleatoria.
Generación del URI para registro en el autenticador.
:P2_OTP_URI := oos_util_totp.format_key_uri(
p_label_accountname => 'DFA' || ' - ‘ || lower( :P2_USER_NAME),
p_label_issuer => 'CELERIS',
p_secret => :P2_TFA_CODE
);
Un ejemplo de la cadena devuelta:
otpauth://totp/CELERIS:DFA-demo1?secret=GAZLXNBMOD5WFQYU&issuer=CELERIS
:P2_TFA_CODE := oos_util_totp.generate_secret;
Generación del OTP para verificación al inicio de la sesión:
:P9997_OTP := oos_util_totp.generate_otp(
p_secret => :P9997_TFA_CODE,
p_offset => 180
);
Offset es el tiempo de validez del OTP, en segundos.
PL/ SQL
Librería OOS_UTIL por OraOpenSource, específicamente el paquete
OOS_UTIL_TOTP.
Uso de QR en APEX 23.2
JavaScript
Librería JS qrcode-generator por Kazuhiko Arase.
QR para versiones APEX antes de 23.2
Definición de un tag HTML DIV para mostrar el QR.
<div id="dfaQRcode"
style="text-align:center;
border: 1px dashed crimson">
</div>
Ejecución de código para generar la imagen del QR, Acción dinámica
OnLoad.
var qr = qrcode(0, 'M');
qr.addData($v('P2_OTP_URI'));
qr.make();
$('#dfaQRcode').html(qr.createImgTag(4, 16));
https://kazuhikoarase.github.io/qrcode-generator/js/demo/
Carga de qrcode.js en los archivos estáticos de APEX.
Application / Shared Components / Static Application Files
Incluir librería en la pagina donde se mostrará el QR.
#APP_FILES#qrcode.js
Page / JavaScript / File URLs
Implementación
Configuración del usuario Preferencia del usuario:
• No usa DFA.
• Recibirá el OTP por Correo.
• Utilizará una aplicación de
autenticación.
Bandera para indicar si el usuario
ya activó el DFA.
Clave secreta generada al
registrar el usuario.
QR Code generado codificando
el URI con la clave secreta, el
nombre del usuario y el “Issuer”.
Demo en APEX
Implementación
Modificación al proceso de Login
Inicialmente se obtiene la preferencia
del usuario sobre el uso del DFA.
Con base en ella se identifica si
podemos hacer el login de inmediato o
tendríamos que desviar el flujo al
diálogo de validación del OTP.
Si el usuario utiliza DFA, establecemos
las variables de configuración, el tipo, si
ya está activa o no y el secret que
utilizaremos en un paso posterior para
generar el OTP de verificación.
Finalmente se establece el URL al que
se navegará una vez concluido el
proceso de autenticación normal de
apex.
Usando el paquete APEX_CUSTOM
invocamos el proceso de LOGIN.
Demo en APEX
Implementación
Diálogo de activación y verificación del OTP.
En el primer inicio de sesión la aplicación determina que el usuario no ha registrado el QR en su
autenticador y por esta razón lo muestra.
También solicita un OTP inicial que el usuario tendrá disponible después de hacer el registro; al
realizar la verificación del OTP, la bandera de “QR Leido” es actualizada a ‘Si’ en la base de
datos.
Implementación
Diálogo de verificación del OTP.
En sesiones posteriores de un usuario
con autenticador configurado el QR ya no
es presentado.
Para el caso de los usuario con OTP por
correo electrónico, la aplicación genera un
OTP desde su primer ingreso y se envía
por medio del correo y se les notifica en
pantalla.
Para estos usuario el código QR nunca es
mostrado ya que no es necesario.
Estructura del diálogo.
Durante el proceso de page rendering (1) obtenemos el
email del usuario y generamos un valor para el URI de
registro, o el OTP que mandaremos por correo en caso
necesario.
Tambien existe un proceso condicionado que envia el correo
electrónico con el OTP si así lo indica la configuración.
El cuerpo del diálogo cuenta con varias regiones que están
condicionadas también de acuerdo a la configuración actual
del usuario: tipo de DFA, y esta activo o no, es decir, si el
código QR ya ha sido leído por primera vez o no.
También cuenta con varios ítems ocultos que guardan los
valores temporales de condicionamiento y calculo del URI y
del OTP para correo.
Estos valores se eliminaran posteriormente.
Por ultimo hay un botón que dispara el proceso de
verificación del OTP.
1
Estructura del diálogo.
En el page processing (2), verificamos que el OTP ingresado por el usuario corresponda con el
ingresado por el usuario, ya sea que hubiera sido calculado por el autenticador o enviado por email.
En caso necesario se actualiza la bandera de “QR leído”, establece la variable de doble factor a
verdadero y termina limpiando las variables de DFA de la sesión.
2
Demo en APEX
Implementación
Proceso de aplicación
Para evitar que un usuario mal
intencionado salte el proceso de
verificación del OTP manipulando de
alguna manera el URL directamente
en el browser, un proceso de
aplicación verificará antes del page
rendering de las paginas si la
validación se ha cumplido.
De otra forma realizara un redirect
inmediato a la pantalla de login.
Tampoco es posible alterar el valor de
la variable APP_TFA_AUTH ya que
esta no puede ser establecida desde
el browser.
Demo en APEX
Referencias
Generador de código QR (JavaScript).
https://github.com/kazuhikoarase/qrcode-generator
https://kazuhikoarase.github.io/qrcode-generator/js/demo
Generación de One Time Password (PL/SQL)
https://github.com/OraOpenSource/oos-utils
APIs de APEX (PL/SQL)
https://docs.oracle.com/en/database/oracle/apex/23.1/aeapi/APEX_UTIL.html#GUID-5ECE5C10-
1A88-4D37-8A7D-C51925ADB2B9
https://docs.oracle.com/en/database/oracle/apex/23.1/aeapi/APEX_CUSTOM_AUTH.html#GUID-
44772E73-B910-400C-869C-8CA23D3C88E0
https://docs.oracle.com/en/database/oracle/apex/23.2/htmdb/understanding-
authentication.html#GUID-144A774D-2B05-4BE5-9550-6951EE0B536B
Aplicaciones para autenticación
https://play.google.com/store/apps/details?id=oracle.idm.mobile.authenticator
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
https://apps.apple.com/us/app/oracle-mobile-authenticator/id835904829
https://freeotp.github.io/
Conceptos
https://en.wikipedia.org/wiki/Multi-factor_authentication
https://en.wikipedia.org/wiki/One-time_password
https://en.wikipedia.org/wiki/Time-based_one-time_password
Gracias
www.celeris.com.mx

More Related Content

What's hot

The Future of Authentication for IoT
The Future of Authentication for IoTThe Future of Authentication for IoT
The Future of Authentication for IoTFIDO Alliance
 
Using buffer mechanisms in FIBRE CHANNEL technology
Using buffer mechanisms in FIBRE CHANNEL technologyUsing buffer mechanisms in FIBRE CHANNEL technology
Using buffer mechanisms in FIBRE CHANNEL technologyPavel Bankov
 
SD-WAN 2.0: Building a Better SD-WAN
SD-WAN 2.0: Building a Better SD-WANSD-WAN 2.0: Building a Better SD-WAN
SD-WAN 2.0: Building a Better SD-WANADVA
 
handling-of-signaling-storms-in-mobile-networks-august
handling-of-signaling-storms-in-mobile-networks-augusthandling-of-signaling-storms-in-mobile-networks-august
handling-of-signaling-storms-in-mobile-networks-augustDaniel Mateos P
 
Itn instructor ppt_chapter1 - exploring the network
Itn instructor ppt_chapter1 - exploring the networkItn instructor ppt_chapter1 - exploring the network
Itn instructor ppt_chapter1 - exploring the networkjoehurst87
 
Bitglass Webinar - Top 6 CASB Use Cases
Bitglass Webinar - Top 6 CASB Use CasesBitglass Webinar - Top 6 CASB Use Cases
Bitglass Webinar - Top 6 CASB Use CasesBitglass
 
The future of IoT paper
The future of IoT paperThe future of IoT paper
The future of IoT paperJayanth Vinay
 
The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)Adnyesh Dalpati
 
Meraki Cloud Networking Workshop
Meraki Cloud Networking WorkshopMeraki Cloud Networking Workshop
Meraki Cloud Networking WorkshopCisco Canada
 
Internet of things - challenges scopes and solutions
Internet of things - challenges scopes and solutionsInternet of things - challenges scopes and solutions
Internet of things - challenges scopes and solutionsShivam Kumar
 
IOT Presentation Seminar PPT
IOT Presentation Seminar PPTIOT Presentation Seminar PPT
IOT Presentation Seminar PPTHimanshu Jaswal
 
Guide to industrial control systems (ics) security
Guide to industrial control systems (ics) securityGuide to industrial control systems (ics) security
Guide to industrial control systems (ics) securityericv83
 
Enclosure and process_cooling
Enclosure and process_coolingEnclosure and process_cooling
Enclosure and process_coolingEeu SC
 
Presentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationPresentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationArifur Rahman
 

What's hot (20)

The Future of Authentication for IoT
The Future of Authentication for IoTThe Future of Authentication for IoT
The Future of Authentication for IoT
 
Using buffer mechanisms in FIBRE CHANNEL technology
Using buffer mechanisms in FIBRE CHANNEL technologyUsing buffer mechanisms in FIBRE CHANNEL technology
Using buffer mechanisms in FIBRE CHANNEL technology
 
SD-WAN 2.0: Building a Better SD-WAN
SD-WAN 2.0: Building a Better SD-WANSD-WAN 2.0: Building a Better SD-WAN
SD-WAN 2.0: Building a Better SD-WAN
 
handling-of-signaling-storms-in-mobile-networks-august
handling-of-signaling-storms-in-mobile-networks-augusthandling-of-signaling-storms-in-mobile-networks-august
handling-of-signaling-storms-in-mobile-networks-august
 
Itn instructor ppt_chapter1 - exploring the network
Itn instructor ppt_chapter1 - exploring the networkItn instructor ppt_chapter1 - exploring the network
Itn instructor ppt_chapter1 - exploring the network
 
Bitglass Webinar - Top 6 CASB Use Cases
Bitglass Webinar - Top 6 CASB Use CasesBitglass Webinar - Top 6 CASB Use Cases
Bitglass Webinar - Top 6 CASB Use Cases
 
Building Digital Trust
   Building Digital Trust   Building Digital Trust
Building Digital Trust
 
The future of IoT paper
The future of IoT paperThe future of IoT paper
The future of IoT paper
 
The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)
 
Meraki Cloud Networking Workshop
Meraki Cloud Networking WorkshopMeraki Cloud Networking Workshop
Meraki Cloud Networking Workshop
 
Checkpoint Overview
Checkpoint OverviewCheckpoint Overview
Checkpoint Overview
 
WHONIX OS
WHONIX OSWHONIX OS
WHONIX OS
 
The future of IOT
The future of IOTThe future of IOT
The future of IOT
 
Internet of things - challenges scopes and solutions
Internet of things - challenges scopes and solutionsInternet of things - challenges scopes and solutions
Internet of things - challenges scopes and solutions
 
IOT Presentation Seminar PPT
IOT Presentation Seminar PPTIOT Presentation Seminar PPT
IOT Presentation Seminar PPT
 
Firewall diapositivas
Firewall diapositivasFirewall diapositivas
Firewall diapositivas
 
Guide to industrial control systems (ics) security
Guide to industrial control systems (ics) securityGuide to industrial control systems (ics) security
Guide to industrial control systems (ics) security
 
Juniper SRX
Juniper SRX Juniper SRX
Juniper SRX
 
Enclosure and process_cooling
Enclosure and process_coolingEnclosure and process_cooling
Enclosure and process_cooling
 
Presentation Smart Home With Home Automation
Presentation Smart Home With Home AutomationPresentation Smart Home With Home Automation
Presentation Smart Home With Home Automation
 

Similar to APEX Office Hours - Two Factor Authentication

Seguridad para aplicaciones web java con json web tokens (jwt) 2020
Seguridad para aplicaciones web java con json web tokens (jwt)  2020Seguridad para aplicaciones web java con json web tokens (jwt)  2020
Seguridad para aplicaciones web java con json web tokens (jwt) 2020Eudris Cabrera
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI Informática
 
Sitios blindados de SharePoint
Sitios blindados de SharePointSitios blindados de SharePoint
Sitios blindados de SharePointwww.encamina.com
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Miguel Ángel Sánchez Chordi
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAdrian Diaz Cervera
 
Presentación sso con cas
Presentación sso con casPresentación sso con cas
Presentación sso con casEnrique Toledo
 
Graphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftwareGraphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftwareamaulini
 
G-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráficaG-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráficamauromaulinir
 
Autenticacion
AutenticacionAutenticacion
Autenticacionhmitre17
 
3. certificados y pki
3. certificados y pki3. certificados y pki
3. certificados y pki1 2d
 
MAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptx
MAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptxMAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptx
MAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptxalexanderramirez620370
 
Presentacion-Oauth
Presentacion-OauthPresentacion-Oauth
Presentacion-OauthKevin Medina
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Marcelo Venegas Zúñiga
 
Certificacion en java
Certificacion en javaCertificacion en java
Certificacion en javaErickArturo23
 

Similar to APEX Office Hours - Two Factor Authentication (20)

Seguridad para aplicaciones web java con json web tokens (jwt) 2020
Seguridad para aplicaciones web java con json web tokens (jwt)  2020Seguridad para aplicaciones web java con json web tokens (jwt)  2020
Seguridad para aplicaciones web java con json web tokens (jwt) 2020
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIs
 
Sitios blindados de SharePoint
Sitios blindados de SharePointSitios blindados de SharePoint
Sitios blindados de SharePoint
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un Avenger
 
SSO mobile 3 opciones
SSO mobile 3 opcionesSSO mobile 3 opciones
SSO mobile 3 opciones
 
Presentación sso con cas
Presentación sso con casPresentación sso con cas
Presentación sso con cas
 
Graphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftwareGraphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftware
 
G-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráficaG-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráfica
 
05 certificaado digital
05 certificaado digital05 certificaado digital
05 certificaado digital
 
Autenticacion
AutenticacionAutenticacion
Autenticacion
 
3. certificados y pki
3. certificados y pki3. certificados y pki
3. certificados y pki
 
MAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptx
MAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptxMAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptx
MAQUINAS VIRTUALES Y PROTOCOLO DE AUTENTICACION.pptx
 
Presentacion-Oauth
Presentacion-OauthPresentacion-Oauth
Presentacion-Oauth
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
SimpleSAMLphp
SimpleSAMLphpSimpleSAMLphp
SimpleSAMLphp
 
Eap, PKI Y WPA.pptx
Eap, PKI Y WPA.pptxEap, PKI Y WPA.pptx
Eap, PKI Y WPA.pptx
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
 
Certificacion en java
Certificacion en javaCertificacion en java
Certificacion en java
 

Recently uploaded

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Recently uploaded (16)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

APEX Office Hours - Two Factor Authentication

  • 1. APEX Office Hours Factor de Doble autenticación para Oracle APEX
  • 2. Factor de doble autenticación Es un mecanismo que permite el acceso a una aplicación o recurso siempre que el usuario presente 2 o más factores que comprueben su identidad. Los factores de autenticación de un esquema multifactor pueden incluir: En nuestro caso utilizaremos la contraseña como algo que “el usuario sabe”, y una aplicación de autenticación en el dispositivo móvil como algo que “el usuario tiene”. A) Algo que el usuario sabe. B) Algo que el usuario tiene. C) Algo que el usuario es.
  • 3. One time password ¿Por qué las TOTPS? • Solo válidas para un solo inicio de sesión. • Utilizan hash y el tiempo para derivar un valor sin embargo no son fáciles de decodificar. • No son sensibles a los ataques de repetición aun teniendo muestras de ellas. • Utilizan una aplicación o token físico sincronizado en el tiempo con el servidor de autenticación. En nuestro caso hablaremos del estándar de OTPs sincronizadas con el tiempo (TOTP RFC 6238). Un “One Time Password” es una contraseña válida solo para un inicio de sesión ya sea en una aplicación, dispositivo digital o recurso físico. Pueden ser basadas en el Tiempo (TOTP), o con base en un hash y en los valores de OTPs anteriores (HOTP).
  • 4. APEX y los esquemas de autenticación En APEX utilizamos los esquemas de autenticación para establecer la identidad de nuestros usuarios y controlar el acceso a las aplicaciones. Los esquemas de autenticación preconstruidos en APEX son: 1. Oracle APEX Accounts. 2. Database Accounts. 3. HTTP Header Variable. 4. Open Door Credentials. 5. No Authentication (using DAD). 6. LDAP Directory. 7. Oracle Application Server Single Sign-On Server. 8. SAML Sign-In. 9. Social Sign-In. Si bien es posible crear Custom Authentication Schemes; el resultado es un nuevo componente que probar, mantener y asegurar, y debe incluye el registro de usuario, la administración y la encriptación de la contraseña al menos.
  • 5. Requerimientos para la generación del OTP APEX + Secret + Tiempo Autenticador + Secret + Tiempo Registro de primera vez: otpauth://TYPE/LABEL?PARAME TERS Autenticación: 706210 En general para utilizar un cliente de autenticación OTP es necesario: 1. Generar y almacenar la clave secreta del usuario. 2. Servidor y Cliente con hora sincronizada. 3. Generación de QR con Secret para registro inicial. 4. Generación de OTP para cada inicio de sesión. Opcionalmente podemos utilizar mecanismos directos para enviar OTPs a dispositivos del usuario como E-Mail, SMS, Telegram o WA con el objetivo de evitar el uso de autenticadores.
  • 6. Uso de las librerías Generación de la clave secreta inicial aleatoria. Generación del URI para registro en el autenticador. :P2_OTP_URI := oos_util_totp.format_key_uri( p_label_accountname => 'DFA' || ' - ‘ || lower( :P2_USER_NAME), p_label_issuer => 'CELERIS', p_secret => :P2_TFA_CODE ); Un ejemplo de la cadena devuelta: otpauth://totp/CELERIS:DFA-demo1?secret=GAZLXNBMOD5WFQYU&issuer=CELERIS :P2_TFA_CODE := oos_util_totp.generate_secret; Generación del OTP para verificación al inicio de la sesión: :P9997_OTP := oos_util_totp.generate_otp( p_secret => :P9997_TFA_CODE, p_offset => 180 ); Offset es el tiempo de validez del OTP, en segundos. PL/ SQL Librería OOS_UTIL por OraOpenSource, específicamente el paquete OOS_UTIL_TOTP.
  • 7. Uso de QR en APEX 23.2
  • 8. JavaScript Librería JS qrcode-generator por Kazuhiko Arase. QR para versiones APEX antes de 23.2 Definición de un tag HTML DIV para mostrar el QR. <div id="dfaQRcode" style="text-align:center; border: 1px dashed crimson"> </div> Ejecución de código para generar la imagen del QR, Acción dinámica OnLoad. var qr = qrcode(0, 'M'); qr.addData($v('P2_OTP_URI')); qr.make(); $('#dfaQRcode').html(qr.createImgTag(4, 16)); https://kazuhikoarase.github.io/qrcode-generator/js/demo/ Carga de qrcode.js en los archivos estáticos de APEX. Application / Shared Components / Static Application Files Incluir librería en la pagina donde se mostrará el QR. #APP_FILES#qrcode.js Page / JavaScript / File URLs
  • 9. Implementación Configuración del usuario Preferencia del usuario: • No usa DFA. • Recibirá el OTP por Correo. • Utilizará una aplicación de autenticación. Bandera para indicar si el usuario ya activó el DFA. Clave secreta generada al registrar el usuario. QR Code generado codificando el URI con la clave secreta, el nombre del usuario y el “Issuer”. Demo en APEX
  • 10. Implementación Modificación al proceso de Login Inicialmente se obtiene la preferencia del usuario sobre el uso del DFA. Con base en ella se identifica si podemos hacer el login de inmediato o tendríamos que desviar el flujo al diálogo de validación del OTP. Si el usuario utiliza DFA, establecemos las variables de configuración, el tipo, si ya está activa o no y el secret que utilizaremos en un paso posterior para generar el OTP de verificación. Finalmente se establece el URL al que se navegará una vez concluido el proceso de autenticación normal de apex. Usando el paquete APEX_CUSTOM invocamos el proceso de LOGIN. Demo en APEX
  • 11. Implementación Diálogo de activación y verificación del OTP. En el primer inicio de sesión la aplicación determina que el usuario no ha registrado el QR en su autenticador y por esta razón lo muestra. También solicita un OTP inicial que el usuario tendrá disponible después de hacer el registro; al realizar la verificación del OTP, la bandera de “QR Leido” es actualizada a ‘Si’ en la base de datos.
  • 12. Implementación Diálogo de verificación del OTP. En sesiones posteriores de un usuario con autenticador configurado el QR ya no es presentado. Para el caso de los usuario con OTP por correo electrónico, la aplicación genera un OTP desde su primer ingreso y se envía por medio del correo y se les notifica en pantalla. Para estos usuario el código QR nunca es mostrado ya que no es necesario.
  • 13. Estructura del diálogo. Durante el proceso de page rendering (1) obtenemos el email del usuario y generamos un valor para el URI de registro, o el OTP que mandaremos por correo en caso necesario. Tambien existe un proceso condicionado que envia el correo electrónico con el OTP si así lo indica la configuración. El cuerpo del diálogo cuenta con varias regiones que están condicionadas también de acuerdo a la configuración actual del usuario: tipo de DFA, y esta activo o no, es decir, si el código QR ya ha sido leído por primera vez o no. También cuenta con varios ítems ocultos que guardan los valores temporales de condicionamiento y calculo del URI y del OTP para correo. Estos valores se eliminaran posteriormente. Por ultimo hay un botón que dispara el proceso de verificación del OTP. 1
  • 14. Estructura del diálogo. En el page processing (2), verificamos que el OTP ingresado por el usuario corresponda con el ingresado por el usuario, ya sea que hubiera sido calculado por el autenticador o enviado por email. En caso necesario se actualiza la bandera de “QR leído”, establece la variable de doble factor a verdadero y termina limpiando las variables de DFA de la sesión. 2 Demo en APEX
  • 15. Implementación Proceso de aplicación Para evitar que un usuario mal intencionado salte el proceso de verificación del OTP manipulando de alguna manera el URL directamente en el browser, un proceso de aplicación verificará antes del page rendering de las paginas si la validación se ha cumplido. De otra forma realizara un redirect inmediato a la pantalla de login. Tampoco es posible alterar el valor de la variable APP_TFA_AUTH ya que esta no puede ser establecida desde el browser. Demo en APEX
  • 16. Referencias Generador de código QR (JavaScript). https://github.com/kazuhikoarase/qrcode-generator https://kazuhikoarase.github.io/qrcode-generator/js/demo Generación de One Time Password (PL/SQL) https://github.com/OraOpenSource/oos-utils APIs de APEX (PL/SQL) https://docs.oracle.com/en/database/oracle/apex/23.1/aeapi/APEX_UTIL.html#GUID-5ECE5C10- 1A88-4D37-8A7D-C51925ADB2B9 https://docs.oracle.com/en/database/oracle/apex/23.1/aeapi/APEX_CUSTOM_AUTH.html#GUID- 44772E73-B910-400C-869C-8CA23D3C88E0 https://docs.oracle.com/en/database/oracle/apex/23.2/htmdb/understanding- authentication.html#GUID-144A774D-2B05-4BE5-9550-6951EE0B536B Aplicaciones para autenticación https://play.google.com/store/apps/details?id=oracle.idm.mobile.authenticator https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 https://apps.apple.com/us/app/oracle-mobile-authenticator/id835904829 https://freeotp.github.io/ Conceptos https://en.wikipedia.org/wiki/Multi-factor_authentication https://en.wikipedia.org/wiki/One-time_password https://en.wikipedia.org/wiki/Time-based_one-time_password
  • 17.

Editor's Notes

  1. Existe otra variante que se llama Hash Chains y cada OTP es creada utilizando la OTP anteriormente usada.
  2. Custom Authentication: Creating a Custom Authentication scheme from scratch to have complete control over your authentication interface. Oracle APEX Accounts: Oracle APEX Accounts are user accounts that are created within and managed in the APEX user repository. When you use this method, your application is authenticated against these accounts. Database Accounts: Database Account Credentials authentication utilizes database schema accounts to authenticate users. HTTP Header Variable: Authenticate users externally by storing the username in a HTTP Header variable set by the web server. Open Door Credentials: Enable anyone to access your application using a built-in login page that captures a user name. No Authentication (using DAD): Adopts the current database user. This approach can be used in combination with a mod_plsql Database Access Descriptor (DAD) configuration that uses basic authentication to set the database session user. LDAP Directory: Authenticate a user and password with an authentication request to a LDAP server. Lightweight directory access protocol (LDAP) is a protocol that makes it possible for applications to query user information rapidly. Oracle Application Server Single Sign-On Server: Delegates authentication to the Oracle AS Single Sign-On (SSO) Server. To use this authentication scheme, your site must have been registered as a partner application with the SSO server. SAML Sign-In: Delegates authentication to the Security Assertion Markup Language (SAML) Sign In authentication scheme. Social Sign-In: Social Sign-In supports authentication with Google, Facebook, and other social networks and enterprise identity providers that support OpenID Connect or OAuth2 standards.
  3. Type puede ser TOTP o HOTP