Ideita: Necesidad de cifrado selectivo en PYMEs

Cui Bono

So far, so good
Desde
19 Jul 2007
Mensajes
29.855
Reputación
51.553
Esto viene de aquí:

Hola! gracias por los consejos.

No es un notepad++ inferior, dije que es de estilo/filosofia notepad++ pero no es para editar ficheros de texto. Con inferior me referia a algo mas sencillo sin tantas cosas como lleva notepad++

Lo de alguna app que facilite el comercio, que sea propicio para los adwords, la publi inyectada y demás, no lo he entendido ¿me puedes dar un ejemplo? :p

A veces he pensado sobre esto que recomiendas, pero sino tienes un tio que esté metido en el ajo ¿cómo vas a saber los requisitos de la aplicacion?. Es decir, de tu ejemplo ¿como voy a crear una aplicación para concesionarios de automóviles sino conozco el negocio y tampoco tengo contactos que lo conozcan?. :eek:

Estaria bien crear un hilo con ideas de aplicaciones para micronichos :cool:

Claro, hay que estar metido en el ajo o conocer a uno metido en el ajo al que dar la paliza para aprovechar un nicho.

Ejemplo:

Partimos de la base de que hay claves RSA en la aplicación. Eso permite:
- Cifras con la clave privada, otros (o tú mismo) descifra con la clave pública. También funciona al revés, otros cojen tu clave pública y te cifran algo, y tú lo descifras con la clave privada.
- Idem, pero para firmar.

Estoy haciendo una aplicación con Laravel (un framework PHP, tipo MVC). Tiene (tendrá) las tablas necesarias para el funcionamiento de una empresa de montajes, con clientes, curritos, ofertas y su estructura (partidas, unitarios, asignación de unitarios, reglas de cálculo), proveedores, partes de trabajo, diagramas Gantt de avance de obra, facturación (a pagar) por colección de albaranes, facturación a clientes, por avance de obra, etc..

La idea es que una vez instalado en un server LAMP o WAMP, la info quede cifrada en la base de datos, de manera que puedes tener una clave RSA del server, otra RSA del usuario, otra para cada obra (o capítulo) de cara a exportar info selectivamente, etc..

El intercambio de info sería por intercambio de claves.

Por ejemplo, un almacenista tiene su server (lógicamente cifrado en su parte accesible) y pasándote la clave pública llamada "De los productos de climatización con descuento B", eso te permitiría en tu aplicación de presupuestos coger sus precios, con el ahorro en mails, tener que atender ese mail de petición, atender el mail con la oferta de respuesta y procesarla, meterte en su web de listado de productos, etc.. Actualmente los almacenistas tienen su aplicación para que consultes sus precios, pero no acaba de funcionar, para lo importante se tira de teléfono y mails.

Para la difusión de ofertas funcionaría de la siguiente manera: Un cliente necesita oferta para una obra, necesita instaladores. Se conecta a la web de cualquiera de ellos, web que puede haber obtenido de algún directorio de empresas. Se da de alta como cliente y pone ahí su oferta o pide que se la ingresen (pagando). La misma info ingresada (descripción de capítulos, partidas, unidades de esas partidas) podría servir para trasladar esa oferta a otros instaladores, simplemente habilitando un protocolo con las claves públicas del server y de la oferta y otros instaladores cogerían esa info, la trasladarían a su propio server sin tener que reestructurar la información (porque no es un pdf o un excell), generarían claves de cifrado y el cliente inicial podría acabar con 5 ó 10 claves de otros tantos servers donde los presupuestadores ponen sus precios ocultos a los demás sobre la misma oferta, precios accesibles en red pero "solo para sus ojos".

Sería una especie de integración del sector, una especie de Web of Trust con un software en donde prima el cifrado y el que una empresa no se arriesgue a que le birlen la obra o la venta de productos y servicios. A su vez, hay muchas posibilidades por explorar, como que un exceso de stock del que haya que librarse pueda provocar un aluvión de producto conocido a un extraño bajo precio, rápidamente aceptado en la red, permitiendo el alivio de stocks de los almacenistas. Hay mucha sinergia en una integración sectorial con el mismo software.

Para el tema de, por ejemplo, un taller de coches, estamos en las mismas, en que hay una necesidad de producto de desguace o nuevo y un caos de referencias y proveedores de distinto pelaje a los que les gustaría simplemente soltar su stock actualizado y no depender de las búsquedas que hagan en Google los posibles clientes, sino tener un canal profesional, en donde cada quién controla, por medio de RSA, quién ve a quién, quién accede a qué y la seriedad de la petición de precios.

Hay un gran campo ahí. Instalar un ERP/CRM genérico es un auténtico ****** y cosas que deberían ser en un solo paso (como ingresar datos que ya están estructurados) se convierten en una recodificación de la estructura, a base de picar con la rata y escribir de nuevo lo mismo, pero con la estructura del modelo del ERP elegido. Eso echa para atrás a cualquier PYME, que no quieren ser esclavos de una aplicación costosa en integración, aprendizaje y en uso.

El primer paso, para mí, es tener una aplicación usable con tecnolgía actualizada para el tema de gestión de obras y presupuestos, ya que actualmente uso una mezcla de ms-access, plantilla html con PHP/jquery, mySQL y jasperreport, y quiero tener una sola aplicación uniendo todo el código y mejorando mi usabilidad, y luego crear el middleware de cifrado.

Todo el tiempo que se eche, es para algo nuevo, de posibilidad remota de triunfar, pero con una utilidad "de nicho" que puede ser el germen de algo más ambicioso, lo cual lo hace más práctico, porque hacer algo ya trillado cuando hay pros y aficionados "con mucho tiempo libre" que crean forks en GIT, salvo para autobombo, lo veo con poco retorno.

El problema, por si no lo he explicado, es que los ERP son demasiado complejos. Aún con su sistema de módulos, siguen siéndolo. El recelo de los que han de usarlo está más que justificado, porque la visibilidad de la información corre en contra del usuario (te controlan otros tus precios, te levantan la obra), con lo que se condena al sistema a ser cerrado y eso es un hándicap para las PYME en donde prima la relación estrecha con clientes y proveedores. Estas PYME acaban dedicando recursos que podrían evitarse con un cifrado inteligente de los datos y un control de la visibilidad de los datos, incluso para los diferentes usuarios de la misma empresa.

¿Monetización? Está en la creación de directorios sectoriales y su publi asociada, en la (difícilísima) integración, comisión mediante, de nuevos clientes a las carteras de almacenistas, en la provisión (con comisión por afiliación) de servers en la nube con VMs preparadas para la gestión y su mantenimiento, con la propia publi en el server, con comisiones con compras conjuntas, etc.. Con el software seguro que no, debe ser algo fácil de instalar y fácil de usar, liviano pero potente, con gran capacidad de tras*misión de info a terceros pero con una seguridad paranoica, por cifrado asimétrico.

Otra posibilidad de monetización es admitir a determinados clientes en tu web, que meterían datos cifrados y usarían tu sistema porque no quieren perder el tiempo instalándoselo para ellos. A la que usen tu base de precios y eso les dirija a un almacenista.. ese almacenista quedará agradecido, claro que sí.

Es una idea. Programas de facturación sencillotes triunfan en las PYME. Su secreto?, van al grano, no como los ERP genéricos, porque están preparados para un puesto de trabajo concreto, el de los contables de micropyme con aversión justificada a los ERP/CRM, esos monstruos.
 
estan las pymes ahora para estas cosas...anda y tira a pasearte al monte

No has entendido el planteamiento del hilo. Alguien en otro hilo ha propuesto "Estaria bien crear un hilo con ideas de aplicaciones para micronicho", y yo he salido al paso. La idea no es sangrar a las PYME, sino generar valor, que es cuando las PYME realmente pagan, y con ganas, porque hay negocio.
 
Guau... :8: pero ya tienes tiempo para hacer todo eso que explicas?

Lo que veo es que te has centrado mucho en la parte tecnica. La parte funcional de requisitos la tienes clara?

O sea explicado "a lo bruto": la idea es que cada cliente tenga instalada la aplicacion en sus servidores y se compartan informacion entre clientes mediante encriptacion.

Yo lo que haria es crear una plataforma unica (una web) donde todos los clientes entran ahi y cada uno decide que informacion compartir y con quien.. asi a la PYME le quitas de mantener servidores, te lo va a agradecer, y te ahorras todo el rollo de la encriptacion.


Lo que tambien veo es que tiras muy alto... sino es que tienes todo el dia libre. Yo empezaria por hacer lo minimo para ensenyarlo a potencial cliente y luego poco a poco vas ampliando.
 
La tendencia es a prohibir la criptografía para esas aplicaciones. Primero van las armas, después irá la criptografía.

Y el estado tiene mecanismos coercitivos para asegurar que sin necesidad de golpear al iluso -perdón, al "emprendedor"-, el emprendedor colabore amigablemente con el estado. Hay alternativas al criptoanálisis de manguera de goma que, partiendo de los mismos principios filosóficos, es asumible por estados con una seguridad jurídica equiparable a la nuestra. De momento, ya está en el código penal la obligatoriedad de entregar las claves bajo pena de guandoca. Lo que evidentemente no sirve para nada en crimen organizado, terrorismo, tráfico de drojas o de armas, o pronografía infantil, ya que es mejor "comerte" la pena por no facilitar las claves que por el delito que se desprenda de lo que haya en el disco. Pero para los iluso -perdón, "ciudadanos"- de a pié, es suficiente para asegurarte que puedes extorsionarles para ceder su privacidad -perdón, solicitarles su sana colaboración ciudadana con los CFSE-.
 
Guau... :8: pero ya tienes tiempo para hacer todo eso que explicas?

Lo que veo es que te has centrado mucho en la parte tecnica. La parte funcional de requisitos la tienes clara?
Al revés. Estoy aprendiendo Laravel y la parte del modelo lo tengo clarísimo, son 20 años trabajando en lo mismo. Desde hace 10 años todo mi trabajo está en una base de datos relacional, en access, ese muermo. Soy programata bastante apañado en PHP/jQuery, en mySQL, linuxero desde 1998 y administrador de sistemas en la nube. Te monto un server multidominio en menos de 5 horas (ISPConfig3, DirectAdmin), completamente a la última. Lo que no tengo es mucho tiempo para aprender más aún.

Con unas 20 horas con laravel ya me he hecho un poco con el tema y ya tengo la gestión de usuarios, crear proyectos (presupuestos o facturas sobre lo montado) y las unidades de obra (para presupuestar o facturar). Me he estrellado con las restricciones a los usuarios a la hora de crear unidades de obra, pero ya lo tengo medio apañao. Es un sistema majo, muy organizado y una comunidad muy activa.

O sea explicado "a lo bruto": la idea es que cada cliente tenga instalada la aplicacion en sus servidores y se compartan informacion entre clientes mediante encriptacion.

Te tienes que olvidar del tema de si hay servidor o no. Hoy en día con nodejs, angularjs o el propio laravel pueden lanzar su propio servidor y usar una base de datos de archivo (SQLite). La arquitectura cliente-servidor ya no necesita dos máquinas, puede funcionar como una aplicación de escritorio. Yo prefiero separarlo, pero no tiene porqué, puede ser un PC y un usuario lanzando su propio servidor..

Suponiendo que es un servidor, cada cual tiene el suyo.. o no.

Compartir la información de forma cifrada no es el eje principal de la idea. La idea es que la información esté completamente cifrada SIEMPRE, y no solo en el tránsito. Solo se descifra en cada destino, del lado del host cliente (en su máquina) y eso solo es posible si ese sistema tiene las claves correctas. De esa manera, el dónde se guarda la info deja de ser crítico e importa más quién tiene qué claves.

Yo la idea que tengo es la de un tipo sentado ante el PC que tiene que solucionar un problema. Llamemos a este tipo "el cliente", porque le va a comprar cosas a otros. A su vez, el cliente puede ser proveedor de otros. Yo hago presupuestos, tramito gestiones, certifico y compro a proveedores. Yo soy un cliente de mis proveedores y a la vez trabajo para las entidades a las que facturo, para mis clientes.

La forma más cómoda es que otros se acerquen a la máquina del cliente y se solucione allí mismo. Es como si el comercial almacenista acudiera a mi llamada y me metiera los datos económicos y los detalles que me faltan. Esa sería la primera opción, el cliente llama y otros acuden. El servidor, en este caso, es del cliente, es lo más apropiado.

La segunda opción es la que, por ejemplo, tienen iberdrola o unión fenosa para sus suministradores y clientes. Entras con tu clave, solicitas la apertura de expedientes y rellenas los datos allí mismo, gestionando la evolución de los expedientes hasta que se cierren. Es decir, el cliente (un instalador que abre un expediente de acometida) se mueve hacia el sistema del proveedor, justo al contrario que la otra opción.

Yo lo que haria es crear una plataforma unica (una web) donde todos los clientes entran ahi y cada uno decide que informacion compartir y con quien.. asi a la PYME le quitas de mantener servidores, te lo va a agradecer, y te ahorras todo el rollo de la encriptacion.

No, la info es de cada cual y siempre estará cifrada, incluso para su dueño. Ningún instalador que licite o presupueste va a meter sus datos en un sitio fuera de sus cuatro paredes. Ya es mucho pedir que salga la info cifrada, como para donársela a un tercero sin cifrar y dejarla allí metida, sin más, dependiendo de la honorabilidad del que hace de central de datos. Ese es el fallo de los ERP actuales, son necesariamente autistas, por la cuenta que nos trae.

El cifrado por omisión ("por defecto") de cualquier dato es la solución. Si yo meto un precio unitario (por ejemplo, "mt cable H07K 1,5 mm2 cualquier tonalidad, 0,15€") se cifra en mi máquina (con la librería Cryptico, por ejemplo) y se sube al server para almacenarse, y jamás se trasiega en plano o se almacena en plano. Además, las conexiones deben ser SSL, pues los certificados SSL identifican los servers y eso es un plus de seguridad, aparte de lo obvio de que una conexión https añade cifrado extra.

El server puede estar en mi propio PC, en el server de mi empresa o incluso en el server de mi competencia si me autorizaran a logearme (esto es a prueba de locos), que como otros no tengan la clave que permite descifrar, solo tendrán un galimatías.

Lo que tambien veo es que tiras muy alto... sino es que tienes todo el dia libre. Yo empezaria por hacer lo minimo para ensenyarlo a potencial cliente y luego poco a poco vas ampliando.
El cliente soy yo. Lo necesito. Estoy hasta los bemoles de mi base, mi aplicación y sus limitaciones. Y me tengo más que mirados los ERPs y no me vale ninguno, es demasiada complicación para mis compañeras secretarias y sus colecciones de plantillas excell. Necesitamos algo realmente intuitivo.

Y no tiro muy alto, teniendo el modelo claro y unas herramientas apañadas puedes ir avanzando al ritmo que se pueda. Antes de fin de año calculo que tendré la versión no cifrada y el trabajo de 10 años vertido al nuevo modelo de base de datos.
 
para dar ese tipo de protección a la información lo puedes hacer en la capa de conectividad sin necesidad de complicarle la vida al usuario. Puedes hacer una aplicación simple y llana sin encriptado. Cerrar todos los puertos del servidor menos el 22 y que toda conexiona vaya tunelada por ssh.

A eso le das un app de escritorio que establezca la conexión con un navegador incrustado y a tirar millas.

Cifrarle la información en origen a un usuario medio mola hasta que pierde la clave de cifrado y le tienes que explicar que no puede recuperar sus datos.

Creeme, no lo van a entender.
 
Última edición:
Cifrar la información en la base de datos te va a consumir mucha CPU sencillamente, porque no es información de la NSA ni nada de eso...
¿Quien va a acceder al servidor? Se supone que sólo personal técnico.
Con que haya un sólido acceso autentificado por TLS va que chuta.
De nada te sirve tenerlo todo encriptado si el control de accesos de usuario es débil.
 
para dar ese tipo de protección a la información lo puedes hacer en la capa de conectividad sin necesidad de complicarle la vida al usuario. Puedes hacer una aplicación simple y llana sin encriptado. Cerrar todos los puertos del servidor menos el 22 y que toda conexiona vaya tunelada por ssh.

A eso le das un app de escritorio que establezca la conexión con un navegador incrustado y a tirar millas.
Ya va cifrada, por ht tps/443
Ese no es el problema.

Cifrarle la información en origen a un usuario medio mola hasta que pierde la clave de cifrado y le tienes que explicar que no puede recuperar sus datos.

Creeme, no lo van a entender.

No es la idea hacer eso. No se trata de un servicio web centralizado, sino de una aplicación que facilite el intercambio de información desde uno hacia decenas, centenas o miles de invitados, a los que permitirás acceso a tu información, pero es información tuya, no estás guardando información de otros que no tengan ellos ya.

Si hay 20 empresas que colaboran entre sí, hay 20 servers, y cada uno se cuida del suyo y hace copias sin cifrar de su info. El que un server hospede varios clientes y esos clientes no donen las claves privadas para que se pueda hacer una copia de seguridad no cifrada en realidad no es problema de los demás.

En caso de perder el sistema completo, podrías rehacer tus relaciones, ya que las claves que te permiten acceder a un server remoto para tomar datos están en el propio server remoto, y a la que te logeas, las tienes de nuevo.

Yo la idea que tengo acerca de las claves es que haya dos modos de crearlas, una a partir de una contraseña maestra (y si es averiguada se descifraría todo) o tener un "modo experto" en el cual ya no se generan automáticamente a partir de la contraseña, sino que es personalizable. El el modo automático sería posible recuperar los sets de claves, solo con que el usuario recuerde la contraseña maestra.

Yo creo que no se ha entendido bien lo que sugiero en este hilo.

Voy a poner un ejemplo:

Actualmente:
Te mando una petición de oferta con 131 posiciones (unidades de obra), te lo mando con un excell (XLS).
Tienes que meter esos datos en tu sistema (ERP, plantillas, lo que uses), 131 uno a uno, con copiar+pegar, perdiendo un tiempo precioso y pudiendo equivocarte. A cada unidad de obra has de asignarle unos inputs valorados, tal que la suma de inputs de cada posición te de el precio unitario para cada una de esas posiciones.
Esos inputs son suminitrados, pongamos, por 4 almacenistas diferentes y necesitas los precios netos que te den (algunos los tienes de otros presupuestos recientes, pero otros no).
Después debes generar un documento con tu membrete y demás, para mandar la oferta.

Lo que pretendo:
El que envía la petición de presupuesto ha creado ese presupuesto (con sus capítulos y con sus posiciones) en la aplicación, invita a 7 posibles montadores a que se abran cuenta en su server y allí el server guarda para ellos las claves que le corresponden para poder descifrar en sus ordenadores los capítulos y las posiciones.

Un montador se conecta, y empieza a asignar inputs, que quedan cifrados en el server con otra clave. Para que esos datos que él aporta sean vistos por el usuario que le invitó a presupuestar ha de ir a su menú de configuración y darle la clave pública, desde su usuario al otro.

Así, en el server habrá una petición de oferta, varias respuestas a esa petición, unas visibles para el dueño del server y otras no porque el que las está cumplimentando aún no ha terminado o no ha decidido que está lista para presentarla.

Puede que un montador tenga el mismo software. Eso seríauna ventaja, ya que puede logearse en el server peticionario, coger la clave pública de la invitación y copiarse la petición de oferta a su propio server, y desde allí invitará a sus proveedores a que entren en su server a aportar sus presupuestos de material. A su vez, estos proveedores pueden que también tengan el software. Cuando los proveedores contestan y el presupuesto se forma, el montador copia de vuelta el presupuesto para el peticionario y lo da por terminado.

El peticionario acaba con su oferta original y con 7 respuestas económicas firmes, en el mismo formato, sin que nadie haya tenido que andar copiando y pegando textos y perdiendo el tiempo.

EL peticionario observa que dos de los montadores han introducido unas notas que le hacen no poder aceptar la oferta tal y como está planteada, y como el resto de la oferta está en línea, les manda aviso por mail, para que vuelvan a entrar y, si quieren cambien esa parte o justifiquen de alguna forma que no estén en línea con los demás ofertantes.

Las claves definen la visibilidad de las ofertas, quien las ve y quien no, y quien las puede modificar. De lo que se trata es de favorecer el trasiego de datos estructurados (en este caso proyectos que tienen capítulos, capítulos que tienen posiciones, posiciones que tienen inputs, etc..) y poder dedicar menos tiempo a administración y más a formar los presupuestos, a pensarlos, ganando en productividad.

¿Que alguien quiere hacer un megasitio centralizado de presupuestos? Se podría hacer, claro, pero la principal idea no es esa, sino el tener una aplicación que te permita traerte gente a tus presupuestos o ir allí donde el presupuesto está, sin tener que duplicar la info en diferentes sistemas.

---------- Post added 30-jul-2016 at 17:08 ----------

Cifrar la información en la base de datos te va a consumir mucha CPU sencillamente, porque no es información de la NSA ni nada de eso...
¿Quien va a acceder al servidor? Se supone que sólo personal técnico.
Con que haya un sólido acceso autentificado por TLS va que chuta.
De nada te sirve tenerlo todo encriptado si el control de accesos de usuario es débil.

La información la cifra el navegador, antes de mandarla a la base de datos. Las claves las tiene el navegador de cada cual.

En el server hay información de otras empresas, que no tienen por qué confiar en que sus propuestas económicas no sean vistas y que esa información valiosa sea vendida a la competencia. Por esto se cifra. No hace falta tener confianza en los técnicos, solo hay que guardar bien las claves privadas y controlar a quienes das las públicas.

En el server ajeno podrías guardar parte de la oferta con una clave (para los unitarios) y guardar otra parte, por ejemplo la de los precios de los inputs que has aplicado (que no quieres que se sepan cuales son y en qué cantidades), con otra, de manera que si te piden modificar la oferta entras con ambas claves, modificas los inputs y los precios unitarios cambian, sin que en ningún momento reveles lo que no quieras revelar, en este caso la composición en inputs de cada unidad de obra.
.
 
Última edición:
Volver