hacktricks/cryptography/certificates.md

180 lines
11 KiB
Markdown
Raw Normal View History

2023-06-06 18:56:34 +00:00
# Certificados
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
2023-01-01 16:19:07 +00:00
![](<../.gitbook/assets/image (9) (1) (2).png>)
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
2023-06-06 18:56:34 +00:00
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
Obtenha acesso hoje:
2022-05-01 16:32:23 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
2023-06-06 18:56:34 +00:00
## O que é um Certificado
2023-06-06 18:56:34 +00:00
Em criptografia, um **certificado de chave pública**, também conhecido como **certificado digital** ou **certificado de identidade**, é um documento eletrônico usado para provar a propriedade de uma chave pública. O certificado inclui informações sobre a chave, informações sobre a identidade do proprietário (chamado de sujeito) e a assinatura digital de uma entidade que verificou o conteúdo do certificado (chamado de emissor). Se a assinatura for válida e o software que examina o certificado confiar no emissor, ele poderá usar essa chave para se comunicar com segurança com o sujeito do certificado.
2023-06-06 18:56:34 +00:00
Em um esquema típico de [infraestrutura de chave pública](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI), o emissor do certificado é uma [autoridade de certificação](https://en.wikipedia.org/wiki/Certificate\_authority) (CA), geralmente uma empresa que cobra dos clientes para emitir certificados para eles. Por outro lado, em um esquema de [rede de confiança](https://en.wikipedia.org/wiki/Web\_of\_trust), os indivíduos assinam as chaves uns dos outros diretamente, em um formato que desempenha uma função semelhante à de um certificado de chave pública.
2023-06-06 18:56:34 +00:00
O formato mais comum para certificados de chave pública é definido por [X.509](https://en.wikipedia.org/wiki/X.509). Como o X.509 é muito geral, o formato é ainda mais restrito por perfis definidos para determinados casos de uso, como [Infraestrutura de Chave Pública (X.509)](https://en.wikipedia.org/wiki/PKIX) conforme definido no RFC 5280.
2023-06-06 18:56:34 +00:00
## Campos Comuns do x509
2023-06-06 18:56:34 +00:00
* **Número da Versão:** Versão do formato x509.
* **Número de Série**: Usado para identificar exclusivamente o certificado nos sistemas de uma CA. Em particular, isso é usado para rastrear informações de revogação.
* **Sujeito**: A entidade a que um certificado pertence: uma máquina, um indivíduo ou uma organização.
* **Nome Comum**: Domínios afetados pelo certificado. Pode ser 1 ou mais e pode conter caracteres curinga.
* **País (C)**: País
* **Nome Distinto (DN)**: O sujeito completo: `C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net`
* **Localidade (L)**: Localização local
* **Organização (O)**: Nome da organização
* **Unidade Organizacional (OU)**: Divisão de uma organização (como "Recursos Humanos").
* **Estado ou Província (ST, S ou P)**: Lista de nomes de estados ou províncias
* **Emissor**: A entidade que verificou as informações e assinou o certificado.
* **Nome Comum (CN)**: Nome da autoridade de certificação
* **País (C)**: País da autoridade de certificação
* **Nome Distinto (DN)**: Nome distinto da autoridade de certificação
* **Localidade (L)**: Localização local onde a organização pode ser encontrada.
* **Organização (O)**: Nome da organização
* **Unidade Organizacional (OU)**: Divisão de uma organização
#### **Formato DER**
2023-06-06 18:56:34 +00:00
* O formato DER é a forma binária do certificado
* Todos os tipos de certificados e chaves privadas podem ser codificados no formato DER
* Certificados formatados em DER não contêm as declarações "BEGIN CERTIFICATE/END CERTIFICATE"
* Certificados formatados em DER geralmente usam as extensões ".cer" e ".der"
* DER é tipicamente usado em plataformas Java
2023-06-06 18:56:34 +00:00
#### **Formato P7B/PKCS#7**
2023-06-06 18:56:34 +00:00
* O formato PKCS#7 ou P7B é armazenado no formato Base64 ASCII e tem uma extensão de arquivo .p7b ou .p7c
* Um arquivo P7B contém apenas certificados e certificados de cadeia (CA intermediários), não a chave privada
* As plataformas mais comuns que suportam arquivos P7B são o Microsoft Windows e o Java Tomcat
2023-06-06 18:56:34 +00:00
#### **Formato PFX/P12/PKCS#12**
2023-06-06 18:56:34 +00:00
* O formato PKCS#12 ou PFX/P12 é um formato binário para armazenar o certificado do servidor, certificados intermediários e a chave privada em um único arquivo criptografável
* Esses arquivos geralmente têm extensões como .pfx e .p12
* Eles são tipicamente usados em máquinas Windows para importar e exportar certificados e chaves privadas
2023-06-06 18:56:34 +00:00
### Conversões de formatos
2023-06-06 18:56:34 +00:00
**Converter x509 para PEM**
```
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
```
2023-06-06 18:56:34 +00:00
#### **Converter PEM para DER**
2023-06-06 18:56:34 +00:00
Para converter um certificado PEM para o formato DER, basta usar o seguinte comando:
2023-06-06 18:56:34 +00:00
```
openssl x509 -outform der -in certificate.pem -out certificate.der
```
Isso irá gerar um arquivo `certificate.der` no formato DER a partir do arquivo `certificate.pem` no formato PEM.
```
openssl x509 -outform der -in certificatename.pem -out certificatename.der
```
2023-06-06 18:56:34 +00:00
**Converter DER para PEM**
2023-06-06 18:56:34 +00:00
Para converter um certificado DER para PEM, você pode usar o seguinte comando:
```
2023-06-06 18:56:34 +00:00
openssl x509 -inform der -in certificate.der -out certificate.pem
```
2023-06-06 18:56:34 +00:00
Substitua `certificate.der` pelo nome do seu certificado DER e `certificate.pem` pelo nome que você deseja dar ao seu certificado PEM convertido.
```
openssl x509 -inform der -in certificatename.der -out certificatename.pem
```
**Converter PEM para P7B**
2023-06-06 18:56:34 +00:00
**Nota:** O formato PKCS#7 ou P7B é armazenado em formato ASCII Base64 e tem uma extensão de arquivo .p7b ou .p7c. Um arquivo P7B contém apenas certificados e cadeias de certificados (ACs intermediárias), não a chave privada. As plataformas mais comuns que suportam arquivos P7B são o Microsoft Windows e o Java Tomcat.
```
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
```
2023-06-06 18:56:34 +00:00
**Converter PKCS7 para PEM**
2023-06-06 18:56:34 +00:00
Para converter um certificado PKCS7 para o formato PEM, você pode usar o seguinte comando:
```
2023-06-06 18:56:34 +00:00
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
```
2023-06-06 18:56:34 +00:00
Isso irá extrair todos os certificados do arquivo PKCS7 e salvá-los em um arquivo PEM.
```
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
```
**Converter pfx para PEM**
2023-06-06 18:56:34 +00:00
**Nota:** O formato PKCS#12 ou PFX é um formato binário para armazenar o certificado do servidor, certificados intermediários e a chave privada em um único arquivo criptografável. Arquivos PFX geralmente têm extensões como .pfx e .p12. Arquivos PFX são tipicamente usados em máquinas Windows para importar e exportar certificados e chaves privadas.
```
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
```
2023-06-06 18:56:34 +00:00
**Converter PFX para PKCS#8**\
**Nota:** Isso requer 2 comandos
2023-06-06 18:56:34 +00:00
**1- Converter PFX para PEM**
```
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
```
2023-06-06 18:56:34 +00:00
**2- Converter PEM para PKCS8**
2023-06-06 18:56:34 +00:00
Para converter um arquivo PEM para PKCS8, você pode usar o OpenSSL com o seguinte comando:
```
2023-06-06 18:56:34 +00:00
openssl pkcs8 -topk8 -inform PEM -outform DER -in private.pem -out private.pk8
```
2023-06-06 18:56:34 +00:00
Isso converterá o arquivo `private.pem` para o formato PKCS8 e o salvará como `private.pk8`.
```
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
```
**Converter P7B para PFX**\
**Nota:** Isso requer 2 comandos
2023-06-06 18:56:34 +00:00
1- **Converter P7B para CER**
```
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
```
2023-06-06 18:56:34 +00:00
**2- Converter CER e Chave Privada para PFX**
2023-06-06 18:56:34 +00:00
Para converter um certificado CER e sua chave privada em um arquivo PFX, você pode usar o OpenSSL. Primeiro, certifique-se de ter o OpenSSL instalado em seu sistema. Em seguida, execute o seguinte comando:
```
2023-06-06 18:56:34 +00:00
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.cer
```
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
Substitua `privateKey.key` pelo caminho para sua chave privada e `certificate.cer` pelo caminho para o certificado CER. O comando acima criará um arquivo `certificate.pfx` que contém o certificado e a chave privada.
```
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
```
2023-01-01 16:19:07 +00:00
![](<../.gitbook/assets/image (9) (1) (2).png>)
2022-06-06 22:28:05 +00:00
2023-06-06 18:56:34 +00:00
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
Obtenha acesso hoje:
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-05-01 16:32:23 +00:00
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-06 18:56:34 +00:00
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>