Jump to content

Recommended Posts

Posted
Em 20/11/2023 às 12:07, edith disse:

Esqueçam o meu certificado expirou ontem.

Já fiz o pedido, agora não sei quanto tempo a AT demora a enviar o novo.

Estou tramada!

Tem sido numa questão de horas.

Posted
Em 20/11/2023 às 12:07, edith disse:

Esqueçam o meu certificado expirou ontem.

Já fiz o pedido, agora não sei quanto tempo a AT demora a enviar o novo.

Estou tramada!


A resposta da AT costuma ser rápida, depois demora é atualizar os cliente ….


Para nunca acontecer isto, a cada 6 meses pedimos um novo Certificado, assim para além de termos mais que um Certificado válido, nunca temos nenhum cliente que ao atualizar o programa fique com um Certificado com menos de 6 meses 

 

Para além disso temos sempre o software a avisar que o Certificado vai caducar no dia tal, quando faltam menos de 30 dias para terminar 

 

Assim nunca mais tivemos problemas com a expiração do Certificado

Posted

Boa tarde pessoal,

 

Desenvolvi há uns tempos uma ferramenta para comunicar guias de transporte à AT. Recentemente, foi alvo de SAST/Pentest e regressou com o seguinte issue:

CipherMode.ECB

 

Estou a usar o seguinte código (C#) para tratar das cifras:

 

 public void BuildCredentials(string passwordFinancas, byte[] encryptedPublickey, WebProxy proxy, out string encryptedSimetricKey, out string encryptedPassword, out string encryptedCreationDate)
        {
            X509Certificate2 certCP = new X509Certificate2();
            certCP.Import(encryptedPublickey);
            String publicKey = certCP.PublicKey.Key.ToXmlString(false);

            string DataCriacao = "";
            string sUseOAL = "TRUE";

            DataCriacao = GetOALDateTime("http://www.oal.ul.pt/HoraLegalOAL/gettime_new.php", proxy);

            RijndaelManaged rijndaelCipher = new RijndaelManaged();
            rijndaelCipher.GenerateKey();
            rijndaelCipher.Mode = CipherMode.ECB;
            rijndaelCipher.Padding = PaddingMode.PKCS7;
            string simetrickey = rijndaelCipher.Key.ToString();
            Byte[] chaveSimetrica = rijndaelCipher.Key;
            SymmetricAlgorithm rijn = SymmetricAlgorithm.Create();
            rijn.Key = rijndaelCipher.IV;
            rijn.IV = rijndaelCipher.IV;
            rijn.Mode = CipherMode.ECB;
            MemoryStream msPassFinancas = new MemoryStream();
            CryptoStream csPassFinancas = new CryptoStream(msPassFinancas, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write);
            using (StreamWriter swPassFinancas = new StreamWriter(csPassFinancas))
            {
                swPassFinancas.Write(passwordFinancas);
            }
            MemoryStream msDataCriacao = new MemoryStream();
            CryptoStream csDataCriacao = new CryptoStream(msDataCriacao, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write);
            using (StreamWriter swDataCriacao = new StreamWriter(csDataCriacao))
            {
                swDataCriacao.Write(DataCriacao);
            }
            encryptedPassword = Convert.ToBase64String(msPassFinancas.ToArray());
            encryptedCreationDate = Convert.ToBase64String(msDataCriacao.ToArray());
            RSACryptoServiceProvider AlgRSA = new RSACryptoServiceProvider();
            AlgRSA.FromXmlString(publicKey);
            Byte[] Chave = AlgRSA.Encrypt(rijn.Key, false);
            encryptedSimetricKey = Convert.ToBase64String(Chave);
        }

 

A issue prende-se com a linha 

rijndaelCipher.Mode = CipherMode.ECB;

 

 

Existe há data outra biblioteca para fazer o que a RijndaelManaged faz? Ou seja, uma alternativa ao uso do CipherMode.ECB?

 

Obrigado.

 

Pessoal que tenha código em c# e que queira partilhar aqui uma alternativa, eu agradecia.

 

Obrigado e continuação de boa semana.

Posted
Em 20/11/2023 às 16:18, sjorgeal disse:

Boa tarde, a vossa ajuda por favor.

Não estou a conseguir comunicar com o portal de testes

https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte

Devolve o erro "Server replied with 5XX status code".

Alguém sabe se o portal de testes está em baixo ? 

Obrigado

Não tive reporte de nenhum cliente, consultando um cliente, não tem guias por comunicar. (e comunica muitas 😄)

  • Vote 1
Posted
Em 20/11/2023 às 16:28, mjjferreira disse:

Desenvolvi há uns tempos uma ferramenta para comunicar guias de transporte à AT. Recentemente, foi alvo de SAST/Pentest e regressou com o seguinte issue:

CipherMode.ECB

Quem respondeu a isso como sendo um problema, envia para eles o manual técnico da AT e que para funcionar tem que ser dessa forma. 😅

Em 20/11/2023 às 16:56, Reboot disse:

é só em testes

haaaaaaaaaaaa, isso é normal 🤣

Posted
Em 20/11/2023 às 16:57, Sergio. disse:

Quem respondeu a isso como sendo um problema, envia para eles o manual técnico da AT e que para funcionar tem que ser dessa forma. 😅

Pois, foi o que deduzi. Ou é ECB ou nada feito. Vou reportar à equipa de segurança.

 

Entretanto, na pesquisa que fui fazendo, em relação à biblioteca RijndaelManaged como está "deprecated", no código podemos alterar de:

 RijndaelManaged rijndaelCipher = new RijndaelManaged();

Para:

 var rijndaelCipher = Aes.Create("AesManaged");

 

Posted
On 11/20/2023 at 4:56 PM, Reboot said:

é só em testes

Acho que realmente o ambiente de testes deve estar em baixo. Também estou a receber para todas as chamadas o mesmo:

Quote

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://autenticacao.portaldasfinancas.gov.pt/services/ValidateCredencialService/2012/11" xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>33</faultcode>
<faultstring>Falha comunicacao com Servidor de Autenticacao (500)</faultstring>
<detail>
<ns:transactionID>0000000:5c457ae9655b9bf40beacae1</ns:transactionID>
<ns:timestamp>2023-11-20 17:48:36.000+00:00</ns:timestamp></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

 

Posted
Em 20/11/2023 às 17:22, desconfiado disse:

Alguém está com problemas a registar séries de Auto-Faturação com acordo?

O serviço está a devolver "Erro - Pedido de Cliente" e não estou a entender porquê. 

Eu estou, ja tinha colocado aqui a questao. Falei com a AT e disseram que "Pela a análise da comunicação o erro parece que estão a enviar a tag paisEstrangeiro sem dados pelo que sugerimos que não seja enviado essa tag. <35>2023-11-02T16:39:04.776216+00:00 [request][] gtid(97442b6f6543d0a898b9fb4f): 'INPUT wsdl PIPE' failed: cvc-simple-type 1: element paisEstrangeiro of type {http://at.gov.pt/}paisType may not be empty". Respondi que "a equipa de desenvolvimento informou-me que esses campos sao gerados automaticamente pelo wdsl", e a AT respondeu novamente que "Neste momento se quiserem comunicar via webservice terão que efetuar esse ajuste."

Posted
Em 20/11/2023 às 18:09, cavada disse:

Eu estou, ja tinha colocado aqui a questao. Falei com a AT e disseram que "Pela a análise da comunicação o erro parece que estão a enviar a tag paisEstrangeiro sem dados pelo que sugerimos que não seja enviado essa tag. <35>2023-11-02T16:39:04.776216+00:00 [request][] gtid(97442b6f6543d0a898b9fb4f): 'INPUT wsdl PIPE' failed: cvc-simple-type 1: element paisEstrangeiro of type {http://at.gov.pt/}paisType may not be empty". Respondi que "a equipa de desenvolvimento informou-me que esses campos sao gerados automaticamente pelo wdsl", e a AT respondeu novamente que "Neste momento se quiserem comunicar via webservice terão que efetuar esse ajuste."

Nem sabia que isso era enviado. Como resolveram?

Posted
Em 20/11/2023 às 18:13, desconfiado disse:

Nem sabia que isso era enviado. Como resolveram?

ainda nao resolvemos ... sempre funcionou, menos recentemente

...

<comunicarEmNomeDe>FN</comunicarEmNomeDe>
<nifAssociadoAoAcordo>198894252</nifAssociadoAoAcordo>
<paisEstrangeiro/> 
<nomeEstrangeiro/>

</ns2:registarSerieAutofaturacao>
</S:Body>
</S:Envelope>

 

Posted (edited)
Em 20/11/2023 às 18:41, cavada disse:

ainda nao resolvemos ... sempre funcionou, menos recentemente

...

<comunicarEmNomeDe>FN</comunicarEmNomeDe>
<nifAssociadoAoAcordo>198894252</nifAssociadoAoAcordo>
<paisEstrangeiro/> 
<nomeEstrangeiro/>

</ns2:registarSerieAutofaturacao>
</S:Body>
</S:Envelope>

 

E o problema não é esse. Fiz uns testes sem essas tags e o erro continua.

Ou seja, o contribuinte que se .... mais uma vez.

Isto esteve a funcionar até finais de Setembro. A partir dai nunca mais funcionou.

 

PS: para onde enviaste o pedido de esclarecimento á AT?

Edited by desconfiado
Posted
Em 20/11/2023 às 20:00, desconfiado disse:

E o problema não é esse. Fiz uns testes sem essas tags e o erro continua.

Ou seja, o contribuinte que se .... mais uma vez.

Isto esteve a funcionar até finais de Setembro. A partir dai nunca mais funcionou.

 

PS: para onde enviaste o pedido de esclarecimento á AT?

Ebalcao

Posted
On 11/20/2023 at 12:07 PM, edith said:

Esqueçam o meu certificado expirou ontem.

Já fiz o pedido, agora não sei quanto tempo a AT demora a enviar o novo.

Estou tramada!

E que tal a implementação de um aviso (pelo menos da versão "developer" interna) de proximidade de expiração dos certificados usados pela aplicação?

The simplest explanation is usually the correct one

JAVA Utilities: https://github.com/marcolopes/dma

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.