Certificados digitais no Windows

Pra onde vai os certificados digitais instalados no Windows? Pro registro?? pq o firefox nao carrega a mesma lista de certificados do IE? Alguém sabe??

Estou desenvolvendo uma aplicação que precisa listar todos certificados “instalados na máquina”, em .NET eles usam a DLL CAPICOM pra isso, é a mesma fonte q o IE usa pra carregar essa lista. Mas o Firefox nao usa, nao consigo importar estes certificados da máquina pro Firefox nem muito menos listá-los sem usar essa tal CAPICOM. Alguém pode me elucidar melhor sobre isso???

Desde já agradeço a atenção

Para uma conta do titio Bill, que agora está nas Ilhas Cayman, mas vai ser transferida para um outro paraíso fiscal.

Brincadeirinha - eles ficam implantados no Registry, em formato criptografado. É necessário usar a MS CryptoAPI para acessá-los.

Se você puder usar o Mustang, ele disponibiliza um novo provedor (SunMSCAPI) que pode acessar esses tais certificados via MS CryptoAPI.

Senão, você vai ter de meter a mão no bolso para pagar alguém que forneça um JCE Provider que acesse a CryptoAPI. Não sei assim de “bate-pronto” quem fornece esse tal provider.

Vlw Thingoll!! Salvando minha pele denovo!! ^^

Os certificados instalados no Firefox estão em um outro lugar, e são acessados via NSAPI (API do Netscape para segurança).
Eles ficam em um arquivo do tipo BerkeleyDB, só que criptografados também.
Se você precisa listar os certificados do Firefox, faça uma aplicação em JavaScript do Firefox mesmo, não em Java.

O q vc quis dizer com JavaScript do Firefox?? Não entendi bem, eu sei q usando em JavaScript “navigator.algumaCoisa” eu pego familia, versao e etc do browser. Mas eu consigo usar a NSAPI via JavaScript tbm??

O JavaScript do Firefox tem um caminhão de objetos prontos, só não sei se ele tem algum que manipula certificados digitais. Se não houver isso é necessário escrever uma extensão do Firefox em C (XPI). Não cheguei a mexer com isso, por isso é que estou só dizendo as linhas gerais.

Tu indica um site onde eu possa pegar a referencia desses objetos do javaScript do firefox?? tipo o da api da sun… aki no google ta duído

Baixe o fonte do Firefox e procure (he he he) - brincadeirinha, deve haver alguma área do site www.mozilla.com que seja para “developers”. Faz tanto tempo que não visito a parte de “developers” do site Mozilla que nem sei mais onde é que fica isso.

Repositório do windows:

  1. Use o mustang (conforme indicado pelo thingol)
  2. https://download.assembla.se/jceprovider/, não é fantástico (pelo menos quando eu usei, já faz um tempo) mas para listar certificados funciona.

Firefox:

  1. http://www.mozilla.org/projects/security/pki/jss/, em especial org.mozilla.jss.CryptoManager
  2. Use via pkcs11 - o jdk 1.5+ tem um provider para pkcs11 e para jdk’s anteriores a ibm tinha um (esqueci o link) - e monte no soft-token que a NSS usa para ser o repositório de chaves e certificados.

qualquer coisa grita…

ps- a “NSAPI” é um termo altamente dilatado, normalmente associado ao processamento de request/response do http server da netscape, à la ISAPI do IIS, para catar no google essa parte de segurança do mozilla procure por “NSS” (http://www.mozilla.org/projects/security/pki/nss/)

ps2- se tiver alguma viagem (não duvido nada :lol: ) nesse post, manda pirão - eu sou o 1o. interessado :wink:

Obrigado, IndyanaJones.
a) Não lembrava mais que era NSS (NSAPI é o ISAPI do Netscape/Sun Web Server).
b) Não lembrava mais que o provider era o tal do Assembla.

:wink:

eu tive a minha via crucis quando eu tive que escrever um módulo pkcs11 para a NSS e um CSP para o explorer. Ainda acordo gritando no meio da noite por causa daquelas coisas :smiley:
Por incrível que possa parecer, neste ponto em particular, a documentação da mozilla é bem, bem melhor do que a da microsoft - tanto em termos de clareza como riqueza de detalhes…

Se você precisa de algo da Microsoft a respeito de CSPs, tem de contratar um especialista deles. Acho que no Brasil a Microsoft só tem um especialista sobre isso, e a Microsoft cobra caríssimo - só para contratá-lo é necessário pagar uma reunião com o superior dele. (Participei da tal reunião também).

Brigado indyana e thingol… agora to procurando e lendo aki… qualquer coisa volto a incomodar vcs…^^

E quanto a essa tal de Bouncy Castle? Ela só manipula certificados que nao estejam criptografados ou só q nao estejam no registro do windows??

O BouncyCastle não lida com essa parte de hardware.
É mais especializada em implementar algoritmos e formatos de dados criptográficos. Por exemplo, se você quiser mandar um email PGP ou S/MIME criptografado e assinado, é a biblioteca a ser usada.

Certo… entendi… agora estou começando a entender ao menos pra q serve cada uma desses tantas APIS, JCEs, Providers e etc.^^

já é um bom começo!!

Vcs ainda vão me ver fazendo algo útil a nao ser perguntar… hehehe

Cara, essa Assembla faz tudo q eu tava precisando com relação a Certificados no registro do windows.
Esse código abaixo lista os certificados instalados dependendo do tipo q vc expecifica, ex. Se MY ele exibe todos “pessoais”.
Muito bom!! Perfeito!! ^^

[code]
//Print out information of each certificate that
//is stored in your ‘Other People’ store.
//The following stores are supported:
// MY = Personal
// ADDRESSBOOK = Other People
// CA = Intermediate Certification Authorities
// ROOT = Trusted Root Certification Authorities
import java.security.;
import java.security.cert.
;
import java.util.;
import se.assembla.jce.provider.ms.
;

public class CertStoreTest {
public static void main(String[] args) {

	try {
		Security.insertProviderAt(new MSProvider(), 2);
		CertStore store = CertStore.getInstance("MY",
				new CollectionCertStoreParameters(), "assembla");
		Collection c = store.getCertificates(null);
		System.out.println("Found " + c.size()
				+ " certificate(s) in 'Other People' store");
		Iterator i = c.iterator();
		while (i.hasNext()) {
			System.out.println("\nCertificate:\n"
					+ (X509Certificate) i.next());
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}[/code]

E como eu faço para listar os certificados revogados que estão dentro do registro do windows?

Liste os certificados, e cheque um por um se eles estão revogados. Para checar isso é necessário obter a informação de CRL, recuperar a CRL, e verificar na CRL se ele está revogado. (argh)

Aproveitando o tópico, utilizo a assembla para listar os certificados pessoais, e estou tentando fazer o mesmo só que utilizando SunMSCapi só que até o momento não obtive sucesso. alguém de vcs já conseguiram fazer esse feito !?