elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 26
71  Comunicaciones / Redes / Re: Software mapa de una red en: 9 Febrero 2011, 16:41 pm
Okis, muchas gracias por el aoporte.

Ya tengo el crack de ManageEngine OpManager pero me gustaria saber donde se pega el .xml.

Salu2

alzehimer_cerebral
72  Programación / Java / Certificados autofirmados Java en: 8 Febrero 2011, 20:56 pm
Hola foro,

llevo bastante tiempo intentando programar una conexion Https con certificados autofirmados..  Haber si alguien me puede aclarar un par de dudas para rematar las clases.

Los clientes que utilizan las clases que posteo a continuacion tiene el certificado autofirmado añadido al cacerts (key store por defecto de la maquina virtual Java donde se encuentran los certificados de confianza).

De momento estoy intentando conectar a dicho un servidor mediante Https para descargar archivos xml. La duda que tengo es si la interfaz X509TrustManager permite realizar conexiones con certificados autofirmados que han sido autofirmados (Lo pregunto porque he leido en algunos sitios que no se puede, pero me surje la duda de que tal vez si se añaden al cacerts si lo permite).

Si se diera el caso de que dicha interfaz no permite las conexiones con certificados autofirmados entonces que interfaz debo utilizar???

Os dejo las clases que estoy implementando por si os sirven de ayuda:

Código
  1. public class Https {
  2.  
  3.  
  4.  
  5.  
  6.     public static void main(String args[]) throws MalformedURLException, NoSuchAlgorithmException, Exception {
  7.  
  8.        //System.setProperty("javax.net.ssl.trustStore","tomcatKeystore");
  9.        //System.setProperty("javax.net.ssl.keyStore", "/usr/jdk1.5.0_11/jre/lib/security/cacerts");
  10.        //System.setProperty("javax.net.ssl.keyStorePassword","changeit");
  11.  
  12.        // java -Djavax.net.ssl.trustStore=truststore -Djavax.net.ssl.trustStorePassword=123456 MyApp
  13.  
  14.        //System.setProperty("javax.net.ssl.trustStore","C:\\Archivos de Programa\\Java\\jre1.6.0_07\\lib\\security\\cacerts");
  15.        //System.setProperty("javax.net.ssl.trustStorePassword","changeit"");
  16.  
  17.        //Para aceptar certificados que no estan en el keystore del cliente
  18.        SSLContext sc = SSLContext.getInstance("TLS");
  19.        sc.init(null, new TrustManager[] { new SimpleTrustManager1() }, null);
  20.        SSLSocketFactory ssf = sc.getSocketFactory();
  21.  
  22.        System.out.println("Antes URL");
  23.        URL url = new URL("https://loquesea.es");
  24.        HttpsURLConnection urlConection = (HttpsURLConnection) url.openConnection();
  25.  
  26.        urlConection.setSSLSocketFactory(ssf);
  27.  
  28.  
  29.        urlConection.setHostnameVerifier(new SimpleHostnameVerifier());
  30.  
  31.        //urlConection.connect();
  32.  
  33.  
  34.        System.out.println("Antes INPUTSTREAM");
  35.        InputStream is = urlConection.getInputStream();
  36.        System.out.println("Despues INPUTSTREAM");
  37.  
  38.  
  39.        System.out.println("Antes leer fichero");
  40.        File fichero = new File("pruebas_ssl.xml");
  41.        FileOutputStream fos = new FileOutputStream(fichero);
  42.        byte[] bytes = new byte[1024];
  43.        int leidos;
  44.        while ((leidos = is.read(bytes)) != -1){
  45.            fos.write(bytes, 0, leidos);
  46.        }
  47.        fos.close();
  48.        is.close();
  49.  
  50.  
  51.     }
  52.  
  53. }
  54.  
  55.  
  56.  
  57.  
  58. public class SimpleTrustManager1 implements X509TrustManager   {
  59.  
  60.    private Set<X509Certificate> certs = new HashSet<X509Certificate>();
  61.  
  62.  
  63.    public SimpleTrustManager1() throws Exception {
  64.        System.out.println("Entra en constructor SimpleTrustManager1()");
  65.        //Falta Cargar los certificados del Keystore en el atributo certs
  66.        KeyStore ks = KeyStore.getInstance("JKS");
  67.        String cacerts = "C:\\Archivos de Programa\\Java\\jre1.6.0_07\\lib\\security\\cacerts";
  68.        FileInputStream stream = new FileInputStream(new File(cacerts));
  69.        ks.load(stream, "changeit".toCharArray());
  70.        stream.close();
  71.  
  72.        //Comprobamos si cacerts se ha cargado correctamente en el KeyStore
  73.  
  74.  
  75.  
  76.        // KeyStore.TrustedCertificateEntry certificateEntry = (KeyStore.TrustedCertificateEntry)ks.getCertificateAlias("alias_certificado");
  77.  
  78.        //certs.addAll();
  79.  
  80.   }
  81.  
  82.   public void checkClientTrusted(X509Certificate[] chain, String authType)
  83.      throws CertificateException {
  84.   }
  85.  
  86.   public X509Certificate[] getAcceptedIssuers() {
  87.        System.out.println("Entra en getAcceptedIssuers");
  88.     return certs.toArray(new X509Certificate[certs.size()]);
  89.   }
  90.  
  91.   public void checkServerTrusted(X509Certificate[] chain, String authType)
  92.      throws CertificateException {
  93.        Boolean trusted =false;
  94.        //try {
  95.  
  96.            System.out.println("chain.length="+chain.length);
  97.            System.out.println("authType:" + authType);
  98.  
  99.            for (int i = 0; i < chain.length; i++) {
  100.                System.out.println("Entra en checkServerTrusted" + i);
  101.                X509Certificate aux = chain[i];
  102.                Principal prueba=aux.getIssuerDN();
  103.                System.out.println(prueba.getName());
  104.  
  105.                if (certs.contains(chain[i])) {
  106.                    System.out.println("certs.contains(chain[i])");
  107.                    trusted=true;
  108.                    return;
  109.                }
  110.            }
  111.  
  112.            if(!trusted){
  113.  
  114.                int x = JOptionPane.showConfirmDialog(null, "El servidor " + chain[0].getIssuerDN() + " no se puede verificar. " + "¿Desde realizar la conexión de todas formas?", "TITULO", JOptionPane.YES_NO_OPTION);
  115.                if (x == JOptionPane.OK_OPTION) {
  116.                //throw new CertificateException("La clave no está en el trustore");
  117.                certs.add(chain[0]);
  118.                trusted=true;
  119.                System.out.println("Despues certs.add(chain[0]); ");
  120.                }
  121.  
  122.                else{
  123.  
  124.                }
  125.                /**System.out.println("El servidor " + chain[0].getIssuerDN() + " no se puede verificar. " + "¿Desde realizar la conexión de todas formas?");
  126.                 //Scanner s = new Scanner(System.in).useDelimiter("\r\n");
  127.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  128.                 String linea = br.readLine();
  129.                 System.out.println("Despues Scanner");
  130.                 //String opcion = s.next();
  131.                 System.out.println("opcion:" + linea);
  132.                 if (!linea.equalsIgnoreCase("si")) {
  133.                     throw new CertificateException("La clave no está en el trustore");
  134.                 }
  135.  
  136.                 * */
  137.                /**
  138.             } catch (IOException ex) {
  139.                 Logger.getLogger(SimpleTrustManager1.class.getName()).log(Level.SEVERE, null, ex);
  140.             }**/
  141.  
  142.       }
  143.   }
  144.  
  145.  
  146. }
  147.  
  148.  
  149.  
  150. public class SimpleHostnameVerifier implements HostnameVerifier {
  151.  
  152.    @Override
  153.  public boolean verify(String hostname, SSLSession session) {
  154.     System.out.println("Host: "+hostname);
  155.     try {
  156.        X509Certificate cert = (X509Certificate)session.getPeerCertificates()[0];
  157.        System.out.println("DN:"+cert.getIssuerDN());
  158.     } catch (SSLPeerUnverifiedException e) {
  159.        e.printStackTrace();
  160.     }
  161.     return true;
  162.  }
  163.  
  164.  
  165. }
  166.  

Cada clase se encuentra en un fichero por lo cual no se pueden compartir variables.

Cualquier aclaracion para encaminarme sera mas que agradecida.

Gracias de antemano.

Salu2.

alzehimer_cerebral
73  Programación / Java / Re: Añadir certificado al truststore de Java en: 8 Febrero 2011, 20:46 pm
Las clases que te pueden interesar son KeyStore y las interfaces X509TrustManager y HostnameVerifier...

Cualquier cosa me comentas.

Un saludo.

alzehimer_cerebral
74  Comunicaciones / Redes / Software mapa de una red en: 1 Febrero 2011, 19:19 pm
Hola foro,

ando buscando un SW para sacar mapas de red, es decir un diagrama con los equipos, dispositivos, routers, switches, etc..

Me recomendais alguno, preferiblemente gratuito!!

Salu2

alzehimer_cerebral
75  Programación / Java / Re: Añadir certificado al truststore de Java en: 1 Febrero 2011, 18:45 pm
Concreta un poco sobre que necesitas informacion y te dejo algun link..

Salu2

alzehimer_cerebral
76  Sistemas Operativos / GNU/Linux / Configurar Sendmail para el envio de correos a una cuenta en: 24 Enero 2011, 20:09 pm
Hola foro,

estoy teniendo problemas para configurar sendmail para que tan solo realize envios de correos electronicos.  Os cuento, tengo en un server una pagina albergada, la cual ofrece mediante un formulario enviar un correo a una cuenta de correo cuyo servidor es ajeno al mio.

Lo que necesito es configurar el sendmail para que realize los envios de los emails hacia el server de correo en la cual esta dada de alta la cuenta de correo que debe recibir los mails.

Es decir mi server tan solo debe poder enviar correos a traves de sendmail, no me interesa que los usuarios de mi server tengan cuentas de entrada.  Me he instalado el webmin con el objetivo de simplificar dicha tarea, he buscado informacion al respecto pero no encuentro nada que explique claramente la configuracion de envios.

Esta claro que debo autenticarme de alguna forma al server en el cual se deben guardar los correos que genera mi server. 

Si alguien tiene algo de documentacion al respecto se lo agradeceria ya que he googleado y probado varias configuraciones sin exito, y la verdad que voy un poco mal de tiempo.

Gracias de antemano. Un saludo.

alzehimer_cerebral :)
77  Programación / Java / Añadir certificado al truststore de Java en: 20 Enero 2011, 11:57 am
Hola foro,

debo correr una aplicacion en mi equipo que realiza conexiones remotas a un servidor remoto por el protocolo HTTPS.  El servidor HTTPS al que deseo conectarme tiene un certificado autofirmado creado mediante openssl (se trata de .crt).  Con el objetivo de que mi maquina se pueda conectar a dicho servidor debo añadir una copia del certificado en el truststore de la maquina virtual Java.

He indagado como puedo añadir el certificado al truststore por defecto de la maquina virtual Java (cacerts), pero me gustaria saber si los siguientes pasos son suficientes antes de lanzar el comando:

keytool -import -keystore cacerts -file cert.crt - alias https

El programa lo ejecuto desde Netbeans, debo configurar algo en el IDE o solo con el comando es suficiente???

Salu2.

alzehimer_cerebral
78  Programación / Desarrollo Web / Re: Busco un hosting gratuito en: 18 Enero 2011, 16:21 pm
Alguien mas ha tenido problemas con el hosting de la compañia 000webhost ya que estoy a punto de migrar una web a dicho hosting gratuito, si da fallos al acceder al servidor de BD no me gustaria llevar acabo la migracion.

Dejar opiniones sobre dicho provedor please.

Salu2.

alzehimer_cerebral
79  Seguridad Informática / Criptografía / Re: Certificados digitales autofirmados en: 14 Enero 2011, 14:07 pm
Jajajaj es un tema muy lioso. He leido mucho y cuando digo mucho es mucho y sigo sin tener las cosas claras.

En el supuesto caso de que distribuya mis certificados autofirmados de forma personal, darselos mediante un soporte fisico en la mano, y que luego los clientes lo añadieran a su truststore via keytool por ejemplo...

Yo considero que la comunicacion podria garantizar las 4 caracteristicas del protocolo SSL:

-Autenticidad.
-Privacidad.
-No repudio.
-Integridad del mensaje.

Si el certificado autofirmado llega por un medio electronico entonces pienso que la autenticidad no se garantiza, ya que no sabes si donde te conectas es realmente quien el certificado dice ser..  En realidad esto no me afecta ya que la aplicacion de la cual hablo se conecta a mi servidor por lo tanto si que se que es realmente mio ;).

Me parece una tonteria gastarme dinero en que me lo firme una CA...

Si alguien tiene buena informacion sobre el dialogo SSL estaria interesado el hecharle un vistazo para profundizar un poco mas en el tema, cualquier cosa dejais un enlace si no os importa.

Un saludo foreros.

alzehimer_cerebral
80  Seguridad Informática / Criptografía / Re: Certificados digitales autofirmados en: 9 Enero 2011, 21:29 pm
Gracias por las respuestas...

Voy hacer un esfuerzo en dejar claro lo que quiero hacer y se haciendo esto la conexion es segura!!!

Estoy programando una aplicacion en Java que se conecta a un servidor por Https, dicho servidor tiene un servidor autofirmado creado por mi.  Las personas que quieran utilizar la aplicacion de la que hablo deben añadir manualmente el certificado automirmado al truststore de sus ordenadores (para que confien en el certificado autofirmado del server).  Partiendo de que los clientes añadan el certificado autofirmado a sus truststores... entonces la comunicacion seria autentificada?? seria cifrada?? seria propensa a modificaciones de los datos sin que los clientes lo detectaran??

Yo pienso que no, ademas la aplicacion se encarga de conectar a servidores con certificados que han sido creados por mi, por lo tanto apuntan a servers mios no ha servers de otros que se harian pasar por mi...

Haber si me podeis asegurar si este tipo de comunicaciones serian seguras, me encuentro en una etapa de pruebas en la cual no quiero invertir en gastos de CA pero en la cual necesito saber si estoy garantizando la seguridad que acredita el protocolo SSL a pesar de que use certificados autofirmados.

Saludos y gracias por los aportes.

alzehimer_cerebral
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 26
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines