PKCS 12

PKCS #12
Extensão dos arquivos
.p12, .pfx
Internet media type
application/x-pkcs12
Uniform Type Identifier (UTI) com.rsa.pkcs-12
Desenvolvido por RSA Security
Lançamento 1996
Versão mais recente
PKCS #12 v1.1

27 October 2012
Tipo de arquivo Archive file format
Container for X.509 public key certificates, X.509 private keys, X.509 CRLs, generic data
Estendido por Microsoft PFX file format

Em criptografia, o PKCS #12 define um formato de arquivo para armazenar muitos objetos de criptografia como um único arquivo. E tal arquivo é usado para agrupar uma chave privada com seu certificado X.509 ou todos os membros de uma cadeia de confiança .

Um arquivo PKCS #12 pode ser criptografado e assinado, assim como seus contêineres de armazenamento interno (também chamados de "SafeBags"). Alguns SafeBags são predefinidos para armazenar certificados, chaves privadas e CRLs . Outro SafeBag é fornecido para armazenar quaisquer outros dados à escolha do implementador individual.[1][2]

O PKCS #12 faz parte da família de padrões chamados Public-Key Cryptography Standards (PKCS) publicados pela RSA Laboratories, com a extensão de arquivo para arquivos PKCS #12 é .p12 ou .pfx .[3]

Esses arquivos podem ser criados, analisados e lidos com o comando OpenSSL pkcs12 .[4]

Relação com o formato de arquivo PFX

PKCS #12 é o sucessor do "PFX" da Microsoft ;[5] no entanto, os termos "arquivo PKCS #12" e "arquivo PFX" às vezes são usados de forma intercambiável.[3][4][6]

O formato PFX foi criticado por ser um dos protocolos criptográficos mais complexos.[6]

Uso normal

O PKCS completo O padrão nº 12 é muito complexo. Ele permite baldes de objetos complexos, como PKCS<span typeof="mw:Entity" id="mwOA">&nbsp;</span># 8 estruturas, aninhadas profundamente. Mas, na prática, normalmente é usado para armazenar apenas uma chave privada e sua cadeia de certificados associada.

PKCS Os arquivos nº 12 geralmente são criados usando o OpenSSL, que suporta apenas uma única chave privada na interface da linha de comando. A keytool Java pode ser usada para criar várias "entradas", pois Java 8, mas isso pode ser incompatível com muitos outros sistemas. A partir de Java 9, PKCS #12 é o formato de armazenamento de chave padrão.[7][8]

Um formato alternativo mais simples ao PKCS #12 é o PEM que apenas lista os certificados e possivelmente as chaves privadas como Base 64 strings em um arquivo de texto.

O certtool do GnuTLS também pode ser usado para criar PKCS #12 arquivos incluindo certificados, chaves e certificados CA via --to-p12 . No entanto, esteja ciente de que, para intercambiabilidade com outro software, se as fontes estiverem no texto PEM Base64, então --outder também deve ser usado.

Referências

  1. ↑ «PKCS #12: Personal Information Exchange Syntax Standard». RSA Laboratories. Arquivado do original em 17 de abril de 2017
  2. ↑ «PKCS 12 v1.0: Personal Information Exchange Syntax» (PDF). RSA Laboratories. 24 de junho de 1999. Consultado em 16 de janeiro de 2020
  3. 1 2 Michel I. Gallant (março 2004). «PKCS #12 File Types: Portable Protected Keys in .NET». Microsoft Corporation. Consultado em 14 de março de 2013
  4. 1 2 «openssl-cmds: pkcs12». OpenSSL Project. 2019. Consultado em 16 de janeiro de 2020
  5. ↑ Peter Gutmann (agosto 2002). «Lessons Learned in Implementing and Deploying Crypto Software» (PDF). The USENIX Association. Consultado em 16 de janeiro de 2020
  6. 1 2 Peter Gutmann (12 de março de 1998). «PFX - How Not to Design a Crypto Protocol/Standard». Consultado em 16 de janeiro de 2020
  7. ↑ «JEP 229: Create PKCS12 Keystores by Default». OpenJDK JEPs. Oracle Corporation. 30 de maio de 2014
  8. ↑ Ryan, Vincent (30 de maio de 2014). «Bug JDK-8044445: Create PKCS12 Keystores by Default». JDK Bug System

Ligações externas

Predefinição:PKCS navbox