Pesquisar este blog

domingo, 27 de julho de 2025

O golpe do engajamento, nada menos que um ponzi dos dias atuais

Como Proteger Idosos de Golpes: O Caso do Falso Magazine Luiza

Como Proteger Idosos de Golpes: O Caso do Falso Magazine Luiza

O Relato: Quando Minha Mãe Caiu no Golpe

Hoje mais cedo minha mãe mandou um áudio super empolgado falando de um golpe que ela caiu.

Quer dizer, ela não sabia que era golpe, então tive que explicar pra ela com toda minha calma e paciência hercúlea, mas olha, o negócio é complexo quando a pessoa diz que tá entendendo que pensou nisso também, mas que quando perguntada sobre porque que fez, não sabe responder.

Sou bom dos achismos, geralmente é achismo puro, mas indo atrás acabo achando algum artigo ou mesmo um bom livro que serviria perfeitamente pra embasar meu achismo, mas vamos lá, o que acontece é que a pessoa quando vai envelhecendo perde alguma coisa que tinha na vida adulta, não sei como chama, mas isso é certo, perde e perde pra sempre, fica igual criança, por isso os malditos golpistas deitam e rolam com os velhinhos.

Enfim, é como se o filtro de 'opa, tem algo errado aqui.' não existisse mais, fica ingênuo, não vê/enxerga/sente maldade, vê, analisa, mas não liga mais o botão do não vou fazer isso porque tá errado. Fica igual criança.

Minha mãe nem é das mais velhas, hoje 2025 está com uns 70, saúde debilitada, sedentária, alimentação inadequada, sono excessivo, e pra completar uma cirurgia bariátrica que fez faz uns 20 anos, que não era recomendada por uns 3 ou 4 médicos, nem médico precisava, gordo que faz bariátrica, e dos bem gordos, mas ela achou um médico que gosta do tal do dinheiro e embarcou no plano, mas isso é outro papo, pra outro dia.

A Transcrição do Golpe

Voltando ao golpe, vou transcrever:

"Filho sabe aquele negócio de impulsionar as vendas na internet a gente ganha dinheiro com isso me mandaram o convite ontem para participar de impulsionar as vendas do Magazine Luiza aí eu entrei para participar né aí cumpriu algumas tarefas lá tipo assim é você quando você curte manda tela para eles eles já te pagam um valor aí depois eles te mandam link para você comprar um produto se compra e eles colocam mais mais dinheiro do que você comprou olha quanto quanto eu eu investi quanto eu ganhei hoje vou te passar o print da tela."

Bom, não sou nem um pouco a melhor pessoa pra entender/detectar o tom que uma pessoa fala, mas a mamãe tava feliz, feliz de verdade!

O print era da calculadora do iPhone mostrando os lucros exorbitantes angariados, depois que conversei pra tentar entender a dinâmica dos fatos, em apenas 2 dias.

Bom, se você chegou até aqui e a transcrição não te parece um golpe, deixa eu te avisar, você é uma presa fácil pra essa galera!

Basicamente é o golpe do biscoito na cidade do interior mas sem nada físico, muito mais veloz e bem mais rápido, só não dá pra saber se a firma vai parar o golpe com o clássico sumiu e levou o dinheiro de todo mundo ou se já tá tão zona aqui no Brazil que continuam usando normalmente os contatos/números de celular/sites/grupos e só deixam o que caiu no golpe a ver navios.

→ procurar vocábulo de quem caiu no golpe sem ser vítima, deve ter algum específico.

A Dificuldade de Explicar o Óbvio

Voltando, expliquei pra mamãe calmamente que olha, é assim, assim, assim e assado, mas o negócio é complicado, deve ter algum viés de confirmação, quase uma negação cognitiva, o racional foi pro espaço, mesmo repetindo o que acabou de falar não consegue perceber/notar o erro, muito doido, não tinha passado por isso ainda! E é minha mãe, sempre foi ligeira com as ideias, se virou muito bem a vida toda (dentro da normalidade), mas a velhice chegou e chegou com força.

Resumi pra ela assim, o Magazine Luiza não sabe de nada, ninguém comprou produto nenhum, seu convite recebido da pessoa conhecida e confiável é só mais uma vítima que também vai cair no golpe, no grupo deve do zap/telegram do raio que o parta tem alguns membros que estão ajudando os golpistas, o site não era do Magalu (isso é muita sacanagem hoje em dia, ainda mais que todo mundo o celular e não mostra nem dá pra ver o endereço mais dos sites, é batata pra cair em golpe) e que infelizmente, estamos aqui em Brazil e nada a ser feito, perdeu!

Meme com pessoa falando 'Fui otário' - ilustra situação de quem caiu em golpe
Figura 1: Fui otário.

Outros Golpes Comuns

Sem listar esse que é golpe puro, tem aqueles clássicos do Russomano, de trocar o óleo do carro por 4 mil, os pneus por 7.

Digitar em outras épocas um código de barras inteiro pra pagar uma conta que nem era da pessoa.

Receber ligação de atendente de banco ou de cartão de crédito pra confirmar compra que nunca fez.

E por aí vai...

Boa sorte aos velhos e o certo, certo mesmo era prender tudo os golpistas, mudar lei mesmo! Ah, os bancos podiam investir pra coibir esse tipo de golpe, não é muito difícil, é trabalhoso, custa uma grana mas como na curva ainda sai mais barato ressarcir os que reclamarem (muito ou forem na justiça), deixa do jeito que está!

Referências e Casos Similares

Pesquisei rapidinho e achei 2 textos sobre o tema.

quinta-feira, 19 de junho de 2025

Buga, o reclamador. Capitulo - COBASI - Compilado de rusgas, desisteligencias, reclamações recentes (2024-2025)

Ninhada de Hamsters, Reclamação e Pequenas Causas: Relato Completo

Bom, vamos lá!

Quem me conhece das antigas sabe que eu sempre reclamei do que julgava nao estar correto. Não sei ao certo se era um hiperfoco ou apenas uma ansia de corrigir, seja pra resolver meu problema (ou o que eu julguei ser um problema) ou pra que nao acontecesse com o proximo, ou mesmo comigo novamente no futuro.

Melhorei bastate ao longo dos anos, nunca fui chato, tipo de sair conversando sobre o tema com as pessoas, ficava na minha, reclamava com quem eu achava que era a pessoa/setor/organizacao que pudesse resolver, nunca fiquei, na minha visao, 'gastando polvora com chimango' como diria o Gabriel.

No começo era cruel, tipo nos idos dos anos 2000, sac nem era moda ainda, quase ninguem tinhas, era complicado achar a pessoa pra conseguir encaminhar uma reclamação, mas eu me virava e me sentia bem quando tinha um retorno, tipo sensação de dever cumprido.

Quando comecou o Reclame Aqui, ficou show, dava pra estruturar, ter um histórico, acompanhar, mas no frigir dos ovos, pelo menos pra mim, resolvia muito pouco, procon tive algumas experiencias, umas boas outras nem tanto e na justiça teve uma vez que fomos no 'pequenas causas' acho que nem chamava juizado especial civil ainda, quando passou o onibus la em recanto das emas procurando reclamadores, no caso processadores e embarcamos nessa, acho que foi um dos primeiros processos judiciais que tivemos, bom, vida que segue...

Bora parar com historinha do passado e ir pro recente.

Ninhada de Hamsters!

As crianças encheram a paciencia porque queriam um ratinho, conversei com a Ju, ela deu aval, que depois achou que eu estava brincando... resumindo, fui com as crianças comprar o tal do hamster, fomos numas 3 lojas e nada, ai achamos na COBASI de Paulinia, tinham 2 exemplares, um pequenininho e um outro maior que pelo papo nao seria vendido porque ja era 'grande/adulto', conversa vai, conversa vem, pergunto se sao os 2 exemplares do mesmo sexo, porque é de conhecimento publico que roedores, em geral, se reproduzem muito rapidamente e em quantidade exorbitante. Bom, confirmado que eram duas femeas, bora comprar uns negocinhos, tipo gaiola, ração, serragem, casinha, bola de entrar dentro... tudo ok, assino uns papeis, recebo orientação e bora pra casa com os exemplares!

Figura 1 - Informacoes sobre o Hamster Sirio em cima da gaiola la na COBASI
Figura 1 - Informacoes sobre o Hamster Sirio em cima da gaiola la na COBASI

Tudo ia bem até que um dia, menos de um mes da chegada deles, a Ane liga pra Ju e avisa que a gaiola ta fazendo uns barulhos, investigamos a noite e olha, tem filhotinho! Eita, para como assim!?!??!? Olha, acho que a paçoca é o paçoca, penelope estava parindo, ao final do processo, 13 novos filhotes vieram alegrar nossa vida!...

Banheira das crianças com a ninhada toda, sao 13 hamsters + a Paçoca que é a mamae, pode de agua e muita movimentacao
Figura 2 - Dia que conseguimos separar todos eles
13 hamster numa banheira
Figura 3 : Da pra contar, são 13!
Penelope e seus 13 filhotes
Figura 4: Penelope é o nome da mamae da galera

Foi uma correria dos infernos, semanas intensas até conseguirmos nos livrar, opa, digo, doar, dar a destinação adequada a 12 deles, recebemos inumeras visitas lá em casa ao longo de 2 finais de semana, tinha familia que ia completa, tanto em membros (mãe, pai, filho, filha, cachorro) como em apatrechos para os hamsters (gaiola, comida, serragem que desfaz quando recebe xixi e vira pó) e individuos solo com uma mera caixa de sapatos.


Video 1 - Helena filmando a Penelope e os filhotes

Ao final ficamos com o menorzinho deles, teve até que separar depois que a penelope tentou matar ele, deu uma bela esfolada de tirar pele e sair sangue, igual depois descobrirmos ter no paçoca tambem... enfim, o pipoca ficou com a gente, compramos mais uma gaiola, já tinham as 2 que quando apareceu o primeiro filhote a gente separou eles... e por fim um dia o paçoca saiu da gaiola que tinha soltado um dos canos de sair pra fora dela, caiu la de cima, a Wendy pegou, a Helena avisou que achava que a Wendy tinha pegado um rato, vishi, foi um show de horroes, Paçoca jaz enterrado no nosso quintal. Wendy eu quero entender que queria só brincar, embora sempre que ve eles fica extremamente agitada e eu acho que ela quer é matar mesmo, mas bora que bora.


Video 2 - Eita familia grande essa!...

Nisso eu ja tinha conversado com a Cobasi (tipo pelo SAC primeiro que me mandou falar com a loja, coisa que era justamente o que eu nao queria, porque o erro crasso que deu inicio a jornada tinha sido justamente da loja), resumindo, expliquei que comprei duas femeas e tals, pedi ajuda, mas nao fui atendido, isso antes de sair distribuindo hasmters pelos grupos tudo de whatsapp de pais de alunos das escolas de campinas e cercanias.

Nem lembro direito o que me retornaram direito, mas era tipo olha nao da pra voce "devolver" os hasmters pra gente, nao da pra eles ficarem com a ninhada, nao iam fornecer ração, resumindo, me mandaram se phoder.

Ai entrou em ação o modo reclamador, fui no reclame aqui, conversa daqui, conversa dali, nada.

https://www.reclameaqui.com.br/cobasi/duas-hamsters-femeas-reproduziram-por-obra-do-divino-e-um-milagre_jt91_sU1dUb80-pJ/

Esses dias reclamei do reclame aqui pro reclame aqui, tipo esse link ai de cima, um belo dia vai parar de funcionar, sumir e nao vai aparecer a reclamacao nem em meu historico, e fica/ficou por isso mesmo, azar o meu de nao ter salvo em pdf à época, simples assim, reclamacoes S O M E M ! E nao pedi pra desativar ou algo do tipo, só era antiga, agora nao consigo lembrar do que era, mas foi isso, sumiu! Não vou colocar o pdf porque ta no processo da justiça e esse eu acho que tenho quase toda certeza certissima que nunca, jamais, vai sumir, desaparecer, ainda mais agora que é digital, antes sumia, perdia, era surrupiado, mas hoje nao, hoje estamos seguros! Quer dizer, é o que vendem, uma hora deve sumir tambem.

Bom, nao deu nada certo em conversar com a Cobasi diretamente, pelo reclame aqui idem, as pessoas que me conhecem e ficaram sabendo da historia me deram bons conselhos mas vale a maxima de era melhor ter falado nao pras crianças e nao comprado os bichinhos.

Eu tava com uma outra reclamacao na agulha que era da GOL que tinha cancelado 4 voos meus no ano que fiquei la no Rio e nao tinha dado safistação alguma, soube do primeiro que foi cancelado quando tava no aeroporto Santos Dummont pra fazer o check in que tinha dado erro no site, no celular, no totem, e ai no guiche a moça me mandou que a passagem tava cancelada! Esse dia foi dureza, ledo engano era feriado ainda por cima, foi uma correria eu conseguir voltar pra casa, mas essa é outra historia e essa aqui das passagens da GOL tambem, mas lembrei porque resolvi reclamar no nivel profissional, na justiça!

Pesquisei um bocado, li bastante, juntei os 'documentos' e bora abrir esse tal de processo no 'pequenas causas', vou falar aqui especificamente do caso dos ratos da Cobasi que o da Gol foi praticamente o mesmo procedimento, mas deram dois processos totalmente diferentes e com caminhos e acoes bem diferentes, no frigir dos ovos, nao tem um padrao, as duas causas deram bom, mas seguiram uma sequencia que eu sempre achei que fosse padronizada/analoga/igual... mas nao é, cada juiz faz de um jeito, deve ter um balizador, mas nao me aprofundei. Voltando a minha ideia de abrir o processo.

Lá fui eu, fiz tudo certinho e puf, processo aberto sozinho, eu mesmo, só precisei do meu certificado digital do serpro que ja tinha feito seila pra que e que é na nuvem, mas seila como funciona com push no computador tambem, nao só no celular. Bom, ai foi dada a largada, processo
1025554-32.2024.8.26.0016
da pra consultar em https://eproc1g.tjsp.jus.br/eproc/externo_controlador.php?acao=tjsp@consulta_unificada_publica/consultar no site procura tanto ePROC (que ainda nao fui apresentado e to triste porque os que fiz foi no eSAJ (que entendi que foi sunsetado - como diriam na IBM quando um software/sigla/programa/aplicacao vai pro mundo dos não existe mais). Bom, me cadastrei no PUSH pra receber informações sobre o processo e um belo dia chega um e-mail que fiquei sem entender, tipo processo extinto por incompetencia! Fui ver o que se tratava, se tinha alguma punicao, mas minha incompetencia era boba, tipo no site quando fui abrir o processo, a tal da peticao inicial eu abri pro Juizado Especial Civil generico, tipo seila de onde, caiu no de sao paulo capital, nem sei como o sistema permitiu, mas enfim, foi errado e nao era pra lá, nao deu nada, só trabalho desnecessario pro judiciario, que senha sido tudo automatico via sistema, porque se teve gente envolvida ai é triste, mas vida que segue, sou mais a favor de ter transferido o processo pra onde ser o certo mas isso é outra discussao, processo foi extinto, transitado em julgado, fim.

Bom ai fui atras vi direitinho o que mais poderia estar errado e boa - nossa, isso aqui é algo que sempre fiquei muito puto quando acontece, o 'papel' ou o que o valha vai ser analisado e o caboclo/ser/pessoa/nego, nem sei que denominacao se usa corretamente, sem preconceito hoje em dia, mas enfim, a pessoa pegou o primeiro erro que achou, escreve o parecer, e fim, encerrou a analise! puf, retorna e vai fumar um cigarro, tomar um cafe, ir no banheiro, feliz, trabalho cumprido com sucesso. Ai voce vai la revisa, arruma o erro apontado e submete novamente, e agora crente que ta de boa, hahahahahahahahahaha, nao poderia estar mais enganado, puf! Toma gordo, aqui ó, logo na sequencia tem mais erro, o revisor/analista, segue feliz, aponta o erro, nao segue nem uma linha a mais no documento e o devolve. PORRA! Faz o trabalho todo e revisa tudo! Fica melhor pra todo mundo! Isso acontecia muito no BB na analise de PROCLIB e DOCLIB, e essa semana tive um episodio com uma guia de exame que foi pedido pelo médico lá do sao luiz e que tenho que pedir 'transcricao' na UNIMED pra poder fazer pela rede da Unimed, nem imaginava isso, ta aqui o pedido a clinica que se vire pra pedir a autorizacao, mas nao, aqui a logica é invertida, se o medico que voce passou nao é coopperado da unimed deixa eu atrasar seu lado, sua vida pra voce ficar esperto e deixar de ir em medico nao unimed. enfim, foi esse esquema ai que falei, foi e voltou 3 vezes, e nessa ultima nao tem como resolver! Terei de ir no medico novamente pedir a solicitacao de exames com tudo que a unimed pede/precisa pra poder autorizar o exame vindo de medico nao cooperado, mas isso é pra outro dia tambem, outra longa história).

Retomando ai processo. Abri um certinho, pedi tramitação prioritaria porque sou PCD, refiz o documento da peticao inicial, anexei os documentos pessoais, o bate papo no zap com a cobasi, o historico do reclame aqui, o cupom fiscal da compra, o documento que assinei ciente de como cuidar dos ratinhos e puf, novo processo aberto com sucesso!... Foi o

1043357-25.2024.8.26.0114

Logo de cara, pediram pra mandar um comprovante de endereço, que eu nao lembro de ter lido em local algum que precisava, ai fiz uma 'emenda a inicial' pra incluir a conta da CPFL,que embora tenha meu nome junto com o da Ju la em baixo no 'dados da unidade consumidora' vira e mexe da problema que falam que nao ta no meu nome, já ligeiro e sabendo disso, inclui a conta da Sanasa que essa sim, ta certinha no meu nome.

Na sequencia, poucos dias depois teve um outro pedido pra fornecer dados para uma audiencia de conciliacao, beleza, agora envio uma 'peticao intermediaria' com os dados. A Cobasi anexa uma tonelada de documentos entre Procurações/Contratos/Certidoes, acho que deve ser de praxe e nada me acrescenta. Sei que no dia da audiencia entrei no link (foi virtual, grande ideia essa, ajuda bastante) e tinha la o conciliador e um advogado e um preposto da Cobasi, nao apresentaram nada, sem acordo... deveriam perguntar antes e nem precisava da audiencia, mas deixa pra lá, isso é pra reclamar em outro fórum, já seria a sugestao/reclamacao dois sobre os processos e procedimentos da "JUSTIÇA", seguindo...

A Cobasi entra com uma contestação, acho que deve ser algo normal, fala aqui, fala ali, inventa acola, anexa nota fiscal de compra de uns hamsters pra tentar provar que nao da pra saber o sexo - grande tese essa - copia e cola de um outro processo, enfim, fez seu papel, que dava pra ser bem melhor dava, mas nao sou a COBASI entao que siga a vida.

Uns dias depois publicam o termo da audiencia falando que foi infrutifera, passam uns dias e tem uma publicacao pra eu me manifestar contra as contestações, vou la monto um documento rechaçando as alegaçoes.

Sai uma decisao falando que vai ter audiencia pra incluir testemunhas e o que mais achar pertinente, vou la eu, todo célere e incluo agora um "elementos de prova", essas paradas ai de peticao inicial, intermediaria, emenda e outros, tudo fui tendo ajuda das tais IAs generativas, porque, olha, o negocio é complicado, nao tem exemplo, documento de como fazer, tutorial, nada, dureza, as vezes deve ser algo que ensinam na faculdade de direito, eu acho, mas me sai bem, aos trancos e barrancos mas foi indo, o processo fluiu.

Bom, no documento da indicacao de provas, reafirmei onde estava no processo as provas documentais, arrolei a ju como prova testemunhal e falei que tava de boa em ser uma audiencia pro video conferencia.

Ai do nada um mes se passa, e vem uma publicacao que tinha decorrido o prazo eu nao tinha me manifestado... GELEI, falei poutz, perdi o processo, dancei, onde fiz a caca... e nao tinha caca nenhuma, tava tudo certinho, ai fui lá e fiz outra peticao intermediaria, colocando que era de esclarecimento que eu tinha me manifestado, folhas tais e tais e que alguem no meio do processo tinha comido bola e errado nisso, que era pra desconsiderar que eu nao tinha me manifestado.

Mais ou menos um mes depois sai a SENTENÇA, a juiza achou, juiz acha ??!!?!? Nao sei, nao deve ser achar, deve ser algum outro vocabulo mais elaborado e juridicom; enfim, achou que nao precisava da audiencia e saiu proferindo as suas conclusoes, gostei do que li, só nao fiquei feliz com o valor monetario, mas vida que segue, a justiça ficou do meu lado e eu nao estava maluco em reclamar de terem me vendido hamsters com sexo errado e serem culpados de toda a dor de cabeça que me causaram.

A Ju, sempre com seu senso de humor e justiça peculiar deixou uma bela avaliacao no google maps sobre a loja da COBASI PAULINIA

https://g.co/kgs/xKLSnQd

Review da Ju no google maps - Obrigada, Cobasi Paulinia.  Paguei 2 e levei 15!  Em 04/04/2024 compramos duas hamsters "fêmeas" nessa loja. Acreditamos na vendedora, que passou muita segurança nas informações.  Na noite de 30/04/2024 assistimos o milagre da vida acontecendo em nossa casa. Temos 15 hamsters agora!
Figura 5 - Review da Ju no google maps

Depois da sentença a COBASI demora nem um mes e ja adiciona mais documentos ao processo inclusive um boleto do BB de guia de deposito judicial (tava com valor atualizado da sentença da juiza e tudo) e boa. Eu nem imaginava como ia receber esse dinheiro, lá se vai mais pesquisa e conversa com os bons amigos chats GPTs da vida e descubro o que tenho que fazer na sequencia.

Entrei com mais um pedido no processo, agora foi um 'Pedido de Expedição de Guia de Levantamento Eletronico' ou algo assim, que é um formulario (dureza de achar e sem anda de mais) que informo o processo, meus dados e que quero receber via pix e fim.

Sabe-se la porque mas nesse meio tempo apareceu um oficial de justiça lá em casa pra me entregar uma intimicao do processo que nem sei o que seria o conteudo, mas nao deu certo, marquei de encontrar ela depois, sei que acabei nao conseguindo encontrar a dona Cacilda e pedi pra ela falar que tinha me intimado pelo Zap mesmo, o que ela acabou fazendo um tempo depois que lembro de ter lido algo assim no processo.

Na sequencia sai outra decisao, que fala pra aguardar a baixa do MLE (mandado de levantamento eletronico) que é o pegar o valor que a Cobasi pagou no boleto do BB e depoistar na minha conta e encerrar o processo, teve varias certidoes de publicacao, que nao abriam e fiquei meio bravo pra saber o que era, mas é o mero suco da burocracia falando que foi publicado xpto do processo em algum diario que nenhum humano mais lê.

O dinheiro entrou na minha conta do BB, entrei com outro pedido, esse agora um 'Pedido de Extinção do Processo", afinal de contas vamos sair do automatico, se da pra avisar que ta tudo ok, que assim seja!

No dia seguinte sai nova sentença falando que a 'obrigacao foi satisfeita' e que o processo tava extinto, que depois do transito em julgado que arquive-se!...

Teve mais um montao de certicao expedidas e nem sei a quantas anda, mas pra mim depois do deposito e eu avisando que tava ok, é fim!

Depois escrevo dos outros casos, acabou que ficou gigante esse relato!

quarta-feira, 4 de junho de 2025

Manuais HSM PayShield 9000 da Thales

Manuais HSM PayShield 9000 da Thales | Dicas Pro Buga

Andei vasculhando meus HDs de backup e achei um monte de coisa interessante, fiquei focado ultimamente em criptografica, mais especificamente em HSM, achei um projeto no GitHub de um simulador do Thales, que puxou um outro que puxou um outro, enfim, cheguei a publicar isso aqui

https://dicasprobuga2.blogspot.com/2025/05/como-gerar-cvvcvc-codigo-de-seguranca.html 


e já tinha publicado isso aqui, quando consegui achar uma versao da calculadora de criptografia BPTools

https://dicasprobuga2.blogspot.com/2024/04/bp-tools-bptools-excelente-ferramenta.html

Fim de papo, segue os manuais para download.



Nome Size
PDF 1270A542-037 - payShield 9000 Host Programmer’s Manual v3.4.pdf 4.705 KB Baixar
PDF 1270A546-037 - payShield 9000 Host Command Reference Manual v3.4.pdf 8.368 KB Baixar
PDF 1270A646-037 - payShield 9000 Host Command Examples v3.4.pdf 1.486 KB Baixar
PDF 1270A647-037 - payShield 9000 Applications Using the payShield 9000 v3.4.pdf 2.126 KB Baixar
PDF PPRN0523-079 - payShield 9000 Release Note - Base Software Version 3.5b.pdf 1.743 KB Baixar
PDF PWPR0536-002 - payShield 9000 Application Note - Secure Host Communications.pdf 772 KB Baixar



Se tiver algum ai com voce, manda pra mim (buga.buga.buga@gmail.com), desde já agradeço.


quinta-feira, 29 de maio de 2025

Como gerar CVV/CVC - código de segurança cartão de crédito - moleza moleza

Bom vamos direto ao ponto... vou tentar achar a documentação sobre o algoritmo certinho, lembro de já ter lido alguma vez em algum manual da VISA que acabamos copiando pro ELO, na AMEX eu lembro bem, mas é outro esquema diferente da Visa e da Mastercard.


Basicamente precisa do:
-  CARTAO, vulgo PAN
- Vencimento 
e das chaves de criptografia 
o código de segurança varia de acordo com o que vamos calcular, mas bora deixar fixo em 999 que acho era o valor pra quando formos calcular o que fica atrás do cartao, o CVV2/CVC2/CVE2.

Vamos usar esses dados aqui

5067240000000019 --> confere pra ver se é 9 mesmo o digito verificador!
2512

CVK A - (em claro) - 0123456789012345
CVK B - (em claro) - ABCDEF0123456789

Beleza, nao precisamos de mais nada, só isso já basta

Agora é pra quem é virjão de tudo, pode ir nesse site aqui

http://software.codemagus.com/WebTools/cgi-bin/cmlvccomputevisacvv

e colocar os dados tudo e clicar em compute, puf, código gerado!

Figura 1 - Screen Shot site Code Magus


ou pode ser aqui
https://paymentcardtools.com/card-security-values/cvv-calculator
Figura 2 - Print Screen geracao do CVC pelo paymentcardtools.com


esse até mais legal que mostra até um KCV - key check value de cada chave! e valida o numero do cartao!


temos ainda outras opções, como o
https://fint-1227.appspot.com/cvvcalc/

Figura 3 - Geracao de código de segurança pelo site https://fint-1227.appspot.com/


Mas voce é curioso e quer saber como as coisas funcionam, fazer um código, um programa! Mas antes disso, vamos executar o calculo usando um grande companheiro, o BPTools

Figura 4 - Geracao do CVV usando o BPTools - módulo de Calculadora Criptografica


Mas poderiamos tambem gerar isso na mão, usando o 3DES aplicado igual mandam no figurino, só lembrando que o Triple DES nao é nada mais nada menos que o DES usado 3 vezes!!! 

Criptografa com a chave 1 -> Descriptografa com a chave 2 -> Criptografa com a chave 1


O algoritmo pra calcular o CVV é basicamente isso aqui

Dados necessários
- Chave em claro (2 componentes)
- Cartao
- Vencimento
- Código de serviço


Preparação dos Dados -> DATA
Combine os dados: Concatene o Número do Cartão (PAN), a data de validade e o código de serviço.
Complete com zeros: Adicione zeros à direita dessa sequência até que ela tenha 32 caracteres no total.

Processo de Criptografia 
Com a "DATA" preparada, o processo de criptografia e descriptografia é o seguinte:

- Criptografe a primeira metade da "DATA" (parte da esquerda) usando a primeira metade da chave, bom deixar claro, parte da esquerda é a primeira! (é uma operação DES) .
- Aplique uma operação XOR no resultado com a segunda metade da "DATA".
==> aqui é o tal do Triple DES (3DES)
- Criptografe novamente o resultado utilizando a primeira metade da chave (DES).
- Descriptografe o resultado com a segunda metade da chave (DES).
- Criptografe mais uma vez o valor obtido, usando a primeira metade da chave (DES).

Geração do CVV
Extraia apenas os dígitos da ultima operacao de DES, os primeiros três números correspondem ao CVV.




Segue o código abaixo de exemplo
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

from Crypto.Cipher import DES
import binascii
import re

# Função para verificar o dígito verificador - mod 10
def luhn_check(card_number):
    digits = [int(d) for d in card_number]
    checksum = 0
    parity = len(digits) % 2
    for i, d in enumerate(digits):
        if i % 2 == parity:
            d *= 2
            if d > 9:
                d -= 9
        checksum += d
    return checksum % 10 == 0

# Função para preencher à direita com zeros      
def pad_right(s, length, pad_char='0'):
    return s.ljust(length, pad_char)


# Funções de criptografia DES - encriptar
def des_encrypt(key, data):
    cipher = DES.new(key, DES.MODE_ECB)
    return cipher.encrypt(data)

# Funções de criptografia DES - decriptar
def des_decrypt(key, data):
    cipher = DES.new(key, DES.MODE_ECB)
    return cipher.decrypt(data)

# Função para converter string hexadecimal em bytes
def hexstr_to_bytes(hexstr):
    return binascii.unhexlify(hexstr)

# Função para gerar o código de segurança!
# CVV (Card Verification Value) CVC (Card Verification Code) CVE (Código de Verificacao ELO)

def generate_cvv(pan, expiry, service_code, key_hex):
    # Quebra a chave em duas partes ("chave a e chave b") com 16 caracteres cada
    key_a = hexstr_to_bytes(key_hex[:16])
    key_b = hexstr_to_bytes(key_hex[16:32])

    # Concatena Cartao, vencimento (AAMM) e código de serviço
    data = pan + expiry + service_code
    # "pad" com zeros até 32 caracteres
    data = pad_right(data, 32, '0')  
   
    # Quebra em duas metades left e right halves com 16 caracteres cada
    left = data[:16]
    right = data[16:]
   
    # Converte para hexadecimal
    left_bytes = binascii.unhexlify(left)
    right_bytes = binascii.unhexlify(right)
   
    # Criptografa a parte da esqueda com a "chave_a"
    encrypted_left = des_encrypt(key_a, left_bytes)

    # Faz XOR com o resultado com a parte direita
    xor_result = bytes([a ^ b for a, b in zip(encrypted_left, right_bytes)])
   
    # Criptografa com a "chave a"
    TDES_passo1 = des_encrypt(key_a, xor_result)
   
    # Decriptografa com a "chave b"
    TDES_passo2 = des_decrypt(key_b, TDES_passo1)

    # Criptografa novamente com a "chave a"
    TDES_passo3 = des_encrypt(key_a, TDES_passo2)

    # Pega apenas os dígitos do resultado, afinal estavamos trabalhando com hexadecimal
    digits = re.sub(r'\D', '', TDES_passo3.hex())

    # e queremos os primeiros 3 dígitos que é nosso CVV
    return digits[:3]  

# Nossos dados de entrada #
key_hex = "0123456789012345ABCDEF0123456789"
pan = "5067240000000019"
expiry = "2512"      
service_code = "999"  

# Validações dos dados de entrada #
if not luhn_check(pan):
    raise ValueError("Número do cartão inválido (verifique o dígito verificador).")
if len(pan) != 16 or not pan.isdigit():
    raise ValueError("O PAN deve ter 16 dígitos numéricos.")
if len(expiry) != 4 or not expiry.isdigit():
    raise ValueError("A data de validade deve ter 4 dígitos numéricos (YYMM).")
if len(service_code) != 3 or not service_code.isdigit():
    raise ValueError("O código de serviço deve ter 3 dígitos numéricos.")
if len(key_hex) != 32 or not all(c in '0123456789ABCDEF' for c in key_hex.upper()):
    raise ValueError("A chave deve ter 32 caracteres hexadecimais (16 bytes).")
if not key_hex.isalnum():
    raise ValueError("A chave deve conter apenas caracteres alfanuméricos (hexadecimais).")
if not key_hex.isupper():
    raise ValueError("A chave deve estar em letras maiúsculas (hexadecimais).")
# Se todos os dados de entrada forem válidos, gera o CVV
else:
    cvv = generate_cvv(pan, expiry, service_code, key_hex)
    print("CVV gerado :", cvv)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

que da um belo display de saida 

CVV gerado : 728


ou podemos usar um HSM, ai é coisa séria, bonita de ver!

Digamos que voce vá usar o Thales Payshield 9000 (que ja ta fora de linha e acho que é bem bom pra ilustrar os comandos e mesmo ser simulado), bom, nao vou dar aula de chaves aqui, mas a de CVV é do esquema U, e do tipo 402, variante 4 e o setimo par de chaves de LMK, que sao {"E0E0010101010101", "F1F1010101010101"} e  usando novamente nosso amigo BP-TOOLS, vai dar isso aqui!

UC68879EF8F0E22A2B8A51FE73409DC16

na real nao estou importando, o comando seria o A4, se nao me engano!

Figura 5 - "Importação da Chave" no HSM


Poderia "importar" de verdade ou usar um outro simulador, igual esse aqui em go, por exemplo

root@Tecladinho:/mnt/c/Windows/System32/go_hsm/bin#
./go_hsm keys import --key 0123456789012345ABCDEF0123456789 --type 402 --scheme U
Key Type: Name: CVK/CSCK, Code: 402, LMKPairIndex: 7, VariantID: 4
Key Scheme: U
Encrypted Key: UC68879EF8F0E22A2B8A51FE73409DC16
KCV: 7FFC84
root@Tecladinho:/mnt/c/Windows/System32/go_hsm/bin#    

que gera a mesma coisa, bom sinal!


Agora usando o comando CW do HSM pra verificar se o valor que a gente ta calculando ta correto!

Figura 6 - Execucao do comando CW pelo BPTools


mas nao to ligado num HSM de verdade, é um Thales Payshield HSM Simulator!

Figura 7 - Thales Simulator

e olha ai, 728! Grande numero!


é isso, grandes lembranças!

Ah, a importação da chave no HSM faz mais ou menos isso aqui

#!/usr/bin/env python3
"""
HSM Thales PayShield - Cálculo de Chave Criptografada

Este script simula o processo de criptografia de uma chave (ex: CVK/CSCK)
sob LMK, seguindo o padrão do HSM Thales PayShield, incluindo aplicação de variants
e cálculo de Key Check Value (KCV).

Ideal para estudos, troubleshooting e validação de processos de importação de chaves.
"""

from Crypto.Cipher import DES3
import binascii

def hex_to_bytes(hex_str):
    """Converte uma string hexadecimal para bytes."""
    return binascii.unhexlify(hex_str)

def bytes_to_hex(data):
    """Converte bytes para uma string hexadecimal maiúscula."""
    return binascii.hexlify(data).decode().upper()

def apply_key_type_variant(lmk_left, lmk_right, variant_id):
    """
    Aplica o variant_id no primeiro byte do LMK LEFT.
    Exemplo: Variant 4 = 0xDE (usado para CVK/CSCK).
    Retorna LMK LEFT modificado e LMK RIGHT inalterado.
    """
    variant_map = {
        0: 0x00,  # Sem variant
        1: 0xA6,
        2: 0x5A,
        3: 0x6A,
        4: 0xDE,  # Usado para CVK/CSCK
        5: 0x2B,
        6: 0x50,
        7: 0x74,
        8: 0x9C,
        9: 0xFA,
    }
   
    if variant_id == 0:
        return lmk_left[:], lmk_right[:]  # Sem alteração
   
    variant_value = variant_map.get(variant_id, 0x00)
   
    # Aplica XOR no primeiro byte do LMK LEFT
    modified_left = bytearray(lmk_left)
    modified_left[0] ^= variant_value
   
    return bytes(modified_left), lmk_right[:]

def encrypt_under_variant_lmk(input_key, lmk_left, lmk_right, scheme_tag):
    """
    Criptografa a chave de entrada sob LMK modificado, usando o esquema 'U' (double-length).
    Para cada metade da chave, aplica um variant diferente no LMK RIGHT.
    """
    if scheme_tag == 'U':
        if len(input_key) != 16:
            raise ValueError("Double-length key necessária para o scheme U")
        scheme_variants = [0xA6, 0x5A]  # Variants padrão do scheme U
    else:
        raise ValueError(f"Unknown scheme tag: {scheme_tag}")
   
    encrypted = bytearray()
   
    for i, scheme_variant in enumerate(scheme_variants):
        # Monta LMK para este segmento (LEFT + RIGHT)
        variant_lmk = bytearray(16)
        variant_lmk[:8] = lmk_left
        variant_lmk[8:16] = lmk_right
       
        # Aplica o variant no primeiro byte do LMK RIGHT
        variant_lmk[8] ^= scheme_variant
       
        # Cria chave 3DES (K1-K2-K1)
        triple_des_key = bytes(variant_lmk) + bytes(variant_lmk[:8])
       
        # Criptografa 8 bytes do segmento da chave
        cipher = DES3.new(triple_des_key, DES3.MODE_ECB)
        segment = input_key[i*8:(i+1)*8]
        encrypted_segment = cipher.encrypt(segment)
        encrypted.extend(encrypted_segment)
   
    return bytes(encrypted)

def calculate_thales_payshield_key():
    """
    Simula o cálculo da chave criptografada sob LMK, conforme o HSM Thales PayShield.
    Mostra passo a passo do processo, incluindo aplicação de variants e análise detalhada.
    """
    print("=== CÁLCULO THALES PAYSHIELD ===\n")
   
    # 1. Dados de entrada (exemplo de CVK double-length)
    clear_key = "0123456789012345ABCDEF0123456789"
    key_type_code = "402"  # CVK/CSCK
    scheme_tag = 'U'       # Esquema double-length
   
    print(f"Chave original: {clear_key}")
    print(f"Key Type: {key_type_code} (CVK/CSCK)")
    print(f"Scheme: {scheme_tag}")
   
    # 2. Detalhes do tipo de chave (exemplo baseado em tabela Go)
    # "402": {Name: "CVK/CSCK", Code: "402", LMKPair: 7, VariantID: 4}
    lmk_pair_index = 7    # LMK 14-15
    variant_id = 4        # Variant 4 = 0xDE
   
    print(f"LMK Pair Index: {lmk_pair_index} (LMK 14-15)")
    print(f"Variant ID: {variant_id}")
   
    # 3. LMKs originais (exemplo)
    lmk_14 = "E0E0010101010101"
    lmk_15 = "F1F1010101010101"
   
    print(f"\nLMK 14 (original): {lmk_14}")
    print(f"LMK 15 (original): {lmk_15}")
   
    lmk_14_bytes = hex_to_bytes(lmk_14)
    lmk_15_bytes = hex_to_bytes(lmk_15)
   
    # 4. Aplica o variant do tipo de chave no LMK LEFT
    modified_lmk_14, modified_lmk_15 = apply_key_type_variant(
        lmk_14_bytes, lmk_15_bytes, variant_id
    )
   
    print(f"\nApós aplicar Variant {variant_id} (0xDE):")
    print(f"LMK 14 modificado: {bytes_to_hex(modified_lmk_14)}")
    print(f"LMK 15 (inalterado): {bytes_to_hex(modified_lmk_15)}")
   
    # Verificação do XOR aplicado
    print(f"Verificação: 0xE0 XOR 0xDE = 0x{0xE0 ^ 0xDE:02X}")
   
    # 5. Prepara a chave de entrada (em bytes)
    input_key_bytes = hex_to_bytes(clear_key)
   
    print(f"\nChave de entrada ({len(input_key_bytes)} bytes): {bytes_to_hex(input_key_bytes)}")
   
    # 6. Criptografa a chave sob LMK modificado, usando o scheme U
    encrypted_key = encrypt_under_variant_lmk(
        input_key_bytes,
        modified_lmk_14,
        modified_lmk_15,
        scheme_tag
    )
   
    print(f"\n=== PROCESSO DE ENCRIPTAÇÃO ===")
    print(f"Scheme '{scheme_tag}' usa variants: [0xA6, 0x5A]")
    print(f"Cada variant encripta 8 bytes da chave")
   
    # 7. Monta resultado final (scheme tag + chave criptografada)
    result = scheme_tag + bytes_to_hex(encrypted_key)

    # 8. Análise detalhada dos segmentos
    print(f"\n=== ANÁLISE DETALHADA ===")
    cvk_a = clear_key[:16]
    cvk_b = clear_key[16:]
    encrypted_a = bytes_to_hex(encrypted_key[:8])
    encrypted_b = bytes_to_hex(encrypted_key[8:16])
   
    print(f"CVK A: {cvk_a} -> {encrypted_a}")
    print(f"CVK B: {cvk_b} -> {encrypted_b}")
   
    # 9. Mostra os LMKs usados para cada segmento (com variants)
    print(f"\n=== VARIANTS DE SCHEME ===")
    base_lmk = modified_lmk_14 + modified_lmk_15
   
    # Para primeiro segmento (variant 0xA6)
    variant_1 = bytearray(base_lmk)
    variant_1[8] ^= 0xA6
    print(f"LMK para CVK A (variant 0xA6): {bytes_to_hex(variant_1)}")
   
    # Para segundo segmento (variant 0x5A)
    variant_2 = bytearray(base_lmk)
    variant_2[8] ^= 0x5A
    print(f"LMK para CVK B (variant 0x5A): {bytes_to_hex(variant_2)}")
   
    return result

def calculate_kcv(key_hex):
    """
    Calcula o Key Check Value (KCV) de uma chave.
    O KCV é obtido criptografando 8 bytes zero com a chave e pegando os 6 primeiros hex.
    """
    key_bytes = hex_to_bytes(key_hex)
    zeros = b'\x00' * 8
   
    if len(key_bytes) == 16:
        # Double-length key - usa 3DES (K1-K2-K1)
        triple_key = key_bytes + key_bytes[:8]
        cipher = DES3.new(triple_key, DES3.MODE_ECB)
    else:
        cipher = DES3.new(key_bytes, DES3.MODE_ECB)
   
    encrypted = cipher.encrypt(zeros)
    return bytes_to_hex(encrypted)[:6]

if __name__ == "__main__":
    # Executa o cálculo principal e mostra resultados
    result = calculate_thales_payshield_key()
   
    print(f"\n=== RESULTADO FINAL ===")
    print(f"Chave criptografada: {result}")
    print(f"Esperado:           UC68879EF8F0E22A2B8A51FE73409DC16")
    print(f"Match? {result == 'UC68879EF8F0E22A2B8A51FE73409DC16'}")
   
    # Calcula e mostra o KCV da chave original
    original_key = "0123456789012345ABCDEF0123456789"
    kcv = calculate_kcv(original_key)
    print(f"\n=== KEY CHECK VALUE ===")
    print(f"KCV calculado: {kcv}")
    print(f"KCV esperado:  7FFC84")
    print(f"KCV Match? {kcv == '7FFC84'}")