aboutsummaryrefslogtreecommitdiff
path: root/docs/atividades/provedor/cert.md
blob: 2c963904c7b34f08ef1d4f347c0620474794c409 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# Gestão de chave e certificado SSL

{{ info.context.pt }}

{{ warning.needs_work.pt }}

O presente processo trata da gestão de chave e certificado SSL para conexões
ditas seguras entre servidores do Coletivo.

## Considerações

O Coletivo reconhece que

1. O protocolo HTTPS possui sérios problemas de design, impedindo por exemplo
   que diferentes certificados possam ser utilizados num mesmo IP.

2. A indústria da certificação digital representa um sério risco de segurança e
   uma [imposição tecnocrata](http://lair.fifthhorseman.net/~dkg/tls-centralization/) à
   utilização prática do HTTPS. Ela recria um domínio cartorial no cyberespaço e
   pode a qualquer momento [ser utilizada por governos ou corporações para forjar
   certificados autenticados](http://web.monkeysphere.info/news/internet_secret_backdoor/) e
   com isso [grampear](https://secure.wikimedia.org/wikipedia/en/wiki/Man-in-the-middle_attack)
   a conexão entre usuários/as e computadores.

3. Idealmente, a atitude a ser tomada por um coletivo técnico radical deveria
de não utilizar a indústria da certificação como meio de assegurar a
identificação de seus serviços e máquinas. Deveria, ao invés disso, utilizar
apenas esquemas abertos como
    a. Certificadores Comunitários como o [CACert](http://cacert.org).
    b. [Monkeysphere](http://web.monkeysphere.info).
    c. A simples verificação da impressão digital dos certificados mediante
       algum vínculo direto (por exemplo, troca de fingerprints ou validação via
       OpenPGP) com os/as administradores das máquinas.

4. No entanto
    a. Nem todos os navegadores acompanham, por padrão, certificados de
       entidades comunitárias. É o
       [caso do CACert](https://secure.wikimedia.org/wikipedia/en/wiki/Cacert#Inclusion_status).
    b. A adoção de ferramentas livres para HTTPS ainda está muito longe de se
       tornar comum. No presente, haveria pouca possibilidade de que uma metodologia
       livre seja eficiente. Ao invés disso, haveria um involuntário incentivo aos/às
       usuários para que aceitem certificados considerados como inválidos pelos
       navegadores, o que pode facilitar ainda mais o grampo: se os usuário aceitam
       qualquer certificado, então não haveria diferença entre eles aceitarem o
       certificado verdadeiro do falso.

## Conclusões

Portanto, o Coletivo conclui que

1. No momento, ainda importante ter um certificado assinado pela indústria da
   certificação, isto é, por uma entidade autorizada pelo cartel do SSL.
3. A autoridade certificadora a ser utilizada deve obedecer alguns critérios básicos:
  a. Não é diretamente conectada a uma agência governamental.
  b. Não possui problemas políticos óbvios.
  c. Cujo certificado raíz não está encadeado com certificados que não satisfazem os critérios acima.
2. Dada a sua insuficiência, tal certificação corporativa não deve ser o único
   meio para a validação dos certificados SSL e assim esquemas alternativos como o
   [Monkeysphere](http://web.monkeysphere.info) devem ser utilizados e
   encorajados, de modo que haja um aumento da massa crítica necessária para
   tornar tais métodos mais populares. O mesmo se aplica para a verificação da
   impressão digital dos certificados.

## Utilização de HTTPS

Conforme o documento [Best Practices for Online Service
Providers](https://www.eff.org/wp/osp), o Coletivo concorda que conexões HTTPS
devem ser utilizadas o máximo possível.

1. O Coletivo utilizará HTTPS apenas em servidores confiáveis que onde seja
   possível armazenar as chaves SSL de forma criptografada.
2. Utilizar, quando possível, cabeçalhos
   [HSTS](http://www.debian-administration.org/article/Enabling_HTTP_Strict_Transport_Security_on_debian_servers).
2. Considerando que o certificado vale apenas para um único domínio e seus
   subdomínios (isto é, o domínio principal do Coletivo), o Coletivo utilizará
   HTTPS por padrão apenas:
     a. Para serviços, sistemas e sítios que utilizem o domínio principal do
        Coletivo, quando não houver impedimento técnico para tal.
     b. Para outros domínios desde que solicitado pela parte hospedada.
3. Considerar a utilização de [entradas CAA no DNS](https://links.fluxo.info/tags/caa).

## Implementação

A implementação de HTTPS também deve obedecer a uma suite bem estabelecida.

Tal escolha deve desabilitar uma série de cifras ruins e habilitar aquelas que
provém [Perfect Forward Secrecy
(PFS)](https://secure.wikimedia.org/wikipedia/en/wiki/Perfect_forward_secrecy).

## Outros protocolos

A utilização do SSL também deve se estender a outras plataformas, como por
exemplo email (via TLS) desde que possível e que atenda critérios análogos aos
anteriores.

## Escolha de autoridade certificadora

Dentre as autoridades certificadoras, o Coletivo escolhe a [Gandi](https://gandi.net) por:

1. Atender os critérios acima estabelecidos.
2. Diferentemente de outras empresas, possui uma preocupação com privacidade e
   comprometimento com serviços de internet alternativos e independentes.
2. [Contribuir com projetos de código aberto](https://secure.wikimedia.org/wikipedia/en/wiki/Gandi#Gandi_supports ),
   vide [lista](http://en.gandi.net/supports/).

No entanto, é importante notar as limitações envolvidas na escolha do Gandi:

    Q: Por que muitos grupos usam GANDI como registrar?
    R: Porque naqueles tempos (2000), ter seu próprio domínio era tranquilamente
       de 5 a 10 vezes mais caro do que hoje. GANDI acabou com esses preços
       introduzindo ofertas muito baratas no mercado. E como em geral temos
       pouco ou nenhum dinheiro para colocar em projetos, simplemente compramos
       nossos domínios lá.

    Q: O que GANDI significa?
    R: Isso é uma curiosidade, mas GANDI significa "Gestion et Attribution
       des Noms de Domaines Internet", "Atribuição e gestão de nomes de
       domínio de Internet". Como empresa, o modelo de negócios era simples:
       praticamente tudo automatizado, praticamente sem suporte e preços
       baixos.

    Q: Por que GANDI é vista como uma organização política?
    R: Os fundadores originais do GANDI tinham idéias políticas sobre bens
       comuns e como todo o negócio de nomes de domínio da Internet era
       baseado em escassez virtual. Um deles até escreveu um livro,
       "Confessions d'un voleur" ("Confissões de um ladrão") no qual ele
       descreve extensamente sobre como fez um monte de dinheiro exatamente
       vendendo algo que não existia e que não havia sentido em vender.

    Q: Por que GANDI é visto como "descolado"?
    R: Alguns dos fundadores originais também eram envolvidos na cena
       alternativa da Internet na França. Parte do dinheiro obtida pelo
       GANDI ajudou outros projetos, um dos quais o operador sem fins
       lucrativos Gitoyen.

    Q: Onde estão esses fundadores agora?
    R: Em algum outro lugar! Como não foram capazes de concordar em onde
       o dinheiro deveria ir, os quatro fundadores resolveram vender o
       GANDI. Eles fizeram isso até por um preço justo. Tentaram vender
       para pessoas que respeitariam o espírito original, e em certo
       sentido o fizeram. Parece que o GANDI ainda contribui para
       projetos de software livre e relacionados, tanto em tempo de
       trabalho quanto em dinheiro.

    Q: Devo confiar no GANDI?
    R: Da mesma forma que você confia em qualquer companhia capitalista.
       Eles preferirão preservar seu negócio ao invés de ajudar você.

## Responsabilização

O Grupo de Trabalho formado pelas pessoas responsáveis pelo presente processo deve:

1. Caso o Coletivo disponha de recursos financeiros, manter certificado SSL
   assinado para `*.dominio` via [Gandi](https://gandi.net). O Coletivo arcará com
   os custos. Caso contrário, adotar a certificação
   [CACert](http://www.cacert.org/) como padrão.
2. Manter formas alternativas de certificação via:
     a. [Monkeysphere](http://web.monkeysphere.info).
     b. A simples verificação da impressão digital dos certificados mediante
        algum vínculo direto (por exemplo, troca de fingerprints ou validação via
        OpenPGP) com os/as administradores das máquinas.
     c. Manter, na medida do possível, o público informado das mundanças nas
        haves de acesso, utilizando para isso OpenPGP. Como exemplo, manter uma página
        ública e atualizada sobre os atuais certificados utilizados e também informar
        rupos e pessoas próximas sobre mudanças em certificados.
3. Opcionalmente, manter também a assinatura via [http://www.cacert.org/ CaCert].
4. Evitar o vencimento da validade dos certificados, utilizando para isso
   métodos como o [http://prefetch.net/articles/checkcertificate.html
   ssl-cert-check], implementado por exemplo no
   [http://git.fluxo.info/puppet-ssl puppet-ssl].
5. Observar a aplicação dos critérios e determinações do presente processo,
   operando conjuntamente com o GT de [wiki:Camadas Configuração de sistemas
   padronizada e centralizada].