PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS DISERTACIÓN PREVIA A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN SISTEMAS Y COMPUTACIÓN GUÍA DE APLICACIÓN DE TECNOLOGÍAS DE SEGURIDAD PARA GARANTIZAR EL COMERCIO ELECTRÓNICO EFECTIVO A TRAVÉS DE LA WEB NOMBRES VALERIA CATERINE BALSECA SAMANIEGO CARLOS DAVID PAZ RUIZ DIRECTOR: ING. FABIO PUENTE BURBANO QUITO, 2008
PROFESOR DIRECTOR: Ing. Fabio Puente Burbano PROFESORES CORRECTORES: Ing. Catherine Infantes Mantilla Ing. Jorge Alarcón Mena II
DEDICATORIA Este trabajo lo dedicamos a nuestros padres, hermanos y a todos los que hicieron posible culminar nuestra carrera con éxito. III
AGRADECIMIENTO Agradecemos a nuestros padres, a nuestro Director Ing. Fabio Puente y a nuestros correctores Ing. Catherine Infantes e Ing. Jorge Alarcón por su apoyo, consejos y su conocimiento impartido a lo largo de la realización de este trabajo. IV
TABLA DE CONTENIDOS RESUMEN.. 1 CAPÍTULO I: SEGURIDAD ORIENTADA A LA WEB.. 2 1.1. Arquitectura de Seguridad para Aplicaciones Web.. 2 1.1.1. Definiciones 2 1.1.1.1. Aplicación Web.. 2 1.1.1.2. Servidores Web.. 2 1.1.1.2.1. Relación Cliente y Servidor Web por medio de páginas Web.. 3 1.1.1.2.2. Apache.. 4 1.1.1.3. Servidores de Bases de Datos 5 1.1.1.3.1. MySQL. 6 1.1.1.4. PHP. 7 1.1.2. Modelo de desarrollo.. 9 1.1.2.1. Modelo distribuido 3 capas... 9 1.1.2.1.1. Presentación o Interfaz.. 10 1.1.2.1.2. Lógica de negocio. 11 1.1.2.1.3. Almacenamiento de Datos 12 1.1.2.2. Características del modelo distribuido 3 capas.. 12 1.1.2.3. Arquitectura de una aplicación Web.. 13 1.1.2.4. Aplicación utilizando PHP con MySQL 15 1.1.2.4.1. Seguridad.. 15 1.2. Autenticación y Autorización... 16 1.2.1. Autenticación.. 16 1.2.2. Autorización 17 1.3. Mecanismos de Seguridad 18 1.3.1. Fundamentos de la Encriptación. 18 1.3.1.1. Encriptación de Clave Privada... 18 1.3.1.2. Encriptación de Clave Pública... 19 V
1.3.2. Firmas Digitales.. 20 1.3.3. Certificados Digitales.. 21 1.3.4. Tráfico de Relleno... 21 1.3.5. Control de Encaminamiento 22 1.3.6. Unicidad.. 22 1.4. Importancia de la Información 22 1.5. Amenazas contra la Seguridad. 22 1.5.1. Exposición de datos confidenciales 23 1.5.2. Pérdida o destrucción de datos 24 1.5.3. Modificar datos... 24 1.5.4. Denegación de servicio... 25 1.5.5. Errores de software. 25 1.5.6. Repudio... 25 1.6. Protocolos de Transmisión Seguros en Internet. 25 1.6.1. Internet 25 1.6.2. SSL.. 26 1.6.3. SHTTP 28 1.7. Seguridad de Apache e IIS... 29 CAPÍTULO II: COMERCIO ELECTRÓNICO EN ECUADOR. 31 2.1 Comercio Electrónico... 31 2.1.1. Clasificación del Comercio Electrónico. 31 2.1.1.1 B2B Business to Business (Empresa a Empresa). 32 2.1.1.2 B2C Business to Consumer (Empresa a Consumidor). 32 2.1.1.3 B2A Business to Administration (Empresa a Estado).. 32 2.1.1.4 A2C Administration to Consumer (Estado a Consumidor).. 33 2.1.1.5 C2C Consumer to Consumer (Consumidor a Consumidor). 33 2.1.1.6 C2B Consumer to Business (Consumidor a Empresa). 33 VI
2.1.2 Modelos de Comercio Electrónico 33 2.1.2.1 Tienda Electrónica E-Shop. 34 2.1.2.2 Centro Comercial Electrónico E-Mall 34 2.1.2.3 Aprovisionamiento Electrónico E-Procurement 35 2.1.2.4 Subasta Electrónica E-Auction... 35 2.1.2.5 Comunidad Virtual. 36 2.1.2.6 Suministro de servicios en línea. 36 2.1.2.7 Corretaje de Información 36 2.1.2.8 Modelos de publicidad... 37 2.2 Impacto del Comercio Electrónico... 37 2.3 Aspectos Jurídicos...... 38 2.3.1 Propiedad Intelectual... 38 2.3.2 Seguridad Informática. 39 2.3.3 Derecho a la Intimidad 39 2.3.4 Derecho de los Consumidores. 40 2.3.5 Lineamientos para la protección al consumidor. 41 2.4 Casos de Éxito de Comercio Electrónico en Ecuador. 43 2.4.1 Caso de Éxito Banco Pichincha.. 44 CAPÍTULO III: MÉTODOS DE PAGO POR INTERNET.. 46 3.1 Gateways de pago.. 46 3.1.1 PayPal.. 48 3.1.2 ClickandBuy 50 3.1.3 Tarjetas de crédito... 51 3.1.3.1 Optar... 52 3.1.3.2 Banco Internacional 52 3.1.3.2.1 Verified By VISA. 52 3.1.3.2.1.1 Proceso de Suscripción 54 3.1.3.2.1.2 Proceso de Autenticación 55 VII
3.1.3.2.2 MasterCard Secure Code. 56 3.2 Requerimientos para implementar pagos en línea en un sitio Web. sitio 57 3.2.1 Requisitos de Tienda Virtual... 57 3.2.1.1 Requerimientos Generales.. 57 3.2.1.2 Requerimientos para las Transacciones. 58 3.2.1.3 Requerimientos del sitio Web.. 58 3.3 Características de los gateways... 59 3.4 Niveles de Seguridad..... 62 CAPÍTULO IV: GUÍA DE APLICACIÓN DE TECNOLOGÍAS DE SEGURIDAD 63 4.1 Tecnología orientada a través de un servicio... 63 4.1.1 Flujo de Pago.. 63 4.1.2 Implementación... 65 4.1.2.1 Carro de la compra. 66 4.1.2.2 Pagos en el sitio Web codificado... 73 4.1.2.2.1 Generación de claves privadas y certificados. 74 4.1.2.2.1.1 Generar una clave privada... 76 4.1.2.2.1.2 Generar un certificado público 77 4.1.2.2.2 Añadir certificados al perfil de PayPal. 78 4.1.2.2.2.1 Cargar el certificado público... 78 4.1.2.2.2.2 Descargar el certificado público de PayPal. 78 4.1.2.2.3 Creación de código de botón de Pagos en el sitio Web codificado.. 79 4.1.2.2.3.1 Comprar ahora. 80 4.1.2.3 Páginas de pago personalizado... 85 4.1.2.4 Cálculo de envío, manipulación e impuestos. 88 4.1.2.5 Retroceso Automático 92 4.1.3 Pruebas 94 4.1.3.1 Pruebas SandBox 94 VIII
4.1.3.1.1 Integración de SandBox 95 4.1.3.1.2 Registro de Vendedor en SandBox... 95 4.1.3.1.3 Creación de Cuentas de Prueba. 96 4.1.3.2 Desarrollo de Pruebas... 100 4.1.3.3 Resultados... 108 4.2 Tecnología orientada a transacciones directas 112 4.2.1 Flujo de Pago.. 116 4.2.2 Implementación... 118 4.2.2.1 PayPal Samples para PHP.. 119 4.2.2.2 Obtener las Credenciales API. 119 4.2.2.3 Modelo Request Response.. 120 4.2.2.3.1 Formato NVP 120 4.2.2.3.2 URL-Encoded... 121 4.2.2.4 Formato Request. 122 4.2.2.5 Formato Response.. 130 4.2.2.5.1 Formato de Respuesta Exitosa.. 131 4.2.2.5.2 Formato de Respuesta de Error. 132 4.2.2.6 Modificar su código 133 4.2.3 Pruebas 134 4.2.3.1 Pruebas SandBox 136 4.2.3.2 Desarrollo de Pruebas. 136 4.2.3.3 Resultados.. 141 CAPÍTULO V: CONCLUSIONES Y RECOMENDACIONES 143 5.1 Conclusiones 143 5.2 Recomendaciones 146 VI: ANEXOS 149 VII: BIBLIOGRAFÍA 150 IX
TABLA DE FIGURAS 1.1 Relación Cliente y Servidor Web por medio de páginas Web. 2 1.2 Módulos de Apache.. 3 1.3 Funcionamiento de PHP... 7 1.4 Modelo Distribuido 3 capas.. 9 1.5 Arquitectura Multinivel 13 1.6 Flujo que sigue la información en una aplicación PHP con MySQL... 14 1.7 La Encriptación. 17 1.8 Proceso de cifrado y descifrado 17 1.9 La encriptación de clave pública.. 18 1.10 Proceso de una Firma Digital... 19 1.11 Amenazas contra la seguridad.. 22 1.12 Exposición de Datos Confidenciales 23 1.13 Pila de protocolos. 25 1.14 Capa Adicional SSL. 26 1.15 Proceso de capa SSL. 27 2.1 Tipos Básicos de Comercio Electrónico... 31 3.1 Flujo de pago con tarjeta de crédito en un sitio Web... 46 3.2 Servicio de Verified by Visa. 52 3.3 Modelo de Dominios 53 3.4 Proceso de Suscripción. 54 3.5 Proceso de Autenticación. 55 3.6 Análisis Estadístico de gateways.. 60 4.1 Diagrama del proceso... 62 4.2 Flujo de Pago con PayPal. 64 4.3 Elegir el estilo de botón 66 4.4 Añadir campos de opción. 68 4.5 Elegir el estilo de botón 69 4.6 Generación de clave privada. 75 4.7 Generación de certificado público 76 X
4.8 Elegir el estilo de botón 80 4.9 Editar estilo de página personalizada... 85 4.10 Cálculos de envío.. 89 4.11 Impuesto de ventas nacionales.. 90 4.12 Impuesto de ventas internacionales.. 91 4.13 Formulario de Registro 95 4.14 Creación de cuenta de prueba... 97 4.15 Creación de Cuenta Exitosa.. 98 4.16 Sitio Web decompras.com... 102 4.17 Página Carro de la compra 103 4.18 Página de identificación de PayPal... 104 4.19 Revisar Pago. 105 4.20 Pago Realizado. 106 4.21 Recibo de Compra 107 4.22 Historial de la cuenta de prueba tipo Personal.. 108 4.23 Historial de la cuenta de prueba tipo Business. 109 4.24 Creación de cuenta PayPal 112 4.25 Selección del Tipo de solución de pago... 112 4.26 Cómo trabaja una cuenta comercial.. 114 4.27 Diagrama del proceso... 115 4.28 Flujo de Pago Directo... 116 4.29 Credenciales API.. 118 4.30 Arquitectura Cliente Servidor de PayPal API... 119 4.31 Métodos URL-Encoded 120 4.32 Formato NVP Request.. 121 4.33 Formato NVP Response... 129 4.34 Credenciales API SandBox... 136 4.35 Sitio Web decompras.com... 137 4.36 Página Carro de la compra 138 4.37 Página login de usuario. 138 4.38 Datos Cliente 139 4.39 Recibo... 140 XI
TABLA DE TABLAS 3.6 Precio por Transacción para Ecuador. 49 3.7 Características de los gateways 58 4.40 Excepciones del Flujo Pago con PayPal... 63 4.41 Cómo funciona Pagos en el sitio Web codificado 73 4.42 Añadir artículos al carro... 93 4.43 Cuadro Comparativo del código para el botón Carro de la compra... 100 4.44 Precio por Transacción utilizando Pago Directo... 113 4.45 Excepciones del Flujo Pago Directo... 116 4.46 Parámetros de Seguridad y Parámetros API. 122 4.47 Parámetros Generales... 123 4.48 Detalles de Tarjeta de Crédito.. 124 4.49 Información del comprador.. 125 4.50 Detalles del comprador. 126 4.51 Detalles de dirección del comprador 126 4.52 Detalles del Pago.. 127 4.53 Detalles de dirección de envío.. 128 4.54 Formato de respuesta exitosa 130 4.55 Campos de Respuesta API... 130 4.56 Formato de respuesta de error. 131 4.57 Añadir artículos al carro... 133 4.58 Comprar Ahora. 134 4.59 Ingresar a la cuenta del usuario en el sitio Web... 134 4.60 Cargar información del pago... 134 4.61 Pagar. 135 4.62 Generar recibo.. 135 XII
RESUMEN El presente trabajo detalla el uso de tecnologías que deben ser utilizadas en un sitio Web de Comercio Electrónico para garantizar el pago en línea de manera segura. Se definen conceptos de seguridad y tecnologías, muestra la situación actual del Comercio Electrónico en el país, analiza diferentes métodos de pago y se desarrolla una guía aplicativa con todos los pasos a seguir para implementar un servicio de pago en el sitio Web con niveles de seguridad. Las seguridades informáticas como autenticación de usuarios, encriptación de información, uso de firmas electrónicas y certificados de seguridad son necesarias en un Sitio Web, ya que permiten tanto al vendedor como al comprador realizar una transacción efectiva sin temor a que su información sea alterada e indebidamente utilizada, es decir, minimizar el riesgo de fraude en un negocio. El Comercio Electrónico es actualmente un medio efectivo de venta de productos a través de Internet. Este medio es conveniente para cualquier vendedor puesto que los costos operativos del negocio son mínimos en relación a un negocio normal. Sin embargo, el vendedor debe tomar en cuenta qué medidas de seguridad va a implementar en su sitio Web para evitar cualquier tipo de fraude. En el país, son muy pocas las empresas que ofrecen el servicio de pago en línea. Este servicio no tiene una disponibilidad inmediata y los costos son altos. Tomando en cuenta estos precedentes, hemos realizado el presente trabajo para brindar al vendedor opciones de servicio de pago en línea que pueden ser implementadas de manera inmediata y con un nivel de seguridad óptimo para un negocio. XIII