segurança e criptografia. componentes algoritmos de criptografia o palm os cobalt prevê suporte ao...
TRANSCRIPT
![Page 1: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/1.jpg)
Segurança e Criptografia
![Page 2: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/2.jpg)
Componentes
![Page 3: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/3.jpg)
Algoritmos de Criptografia• O Palm OS
Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados pelo Cryptographic Provider Manager (CPM)
![Page 4: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/4.jpg)
Algoritmos de Criptografia• O provider padrão, que vem com o
Palm OS Cobalt, foi desenvolvido pela RSA Security e inclui um gerador de números pseudo-randômicos e suporte a RC4 de 128 bits, SHA-1 hashing e RSA public key operations
• Se necessário, Providers adicionais podem ser adicionados tanto estática quanto dinamicamente (DLLs assinadas) ao Cryptographic Provider Manager
![Page 5: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/5.jpg)
Cryptographic Provider Manager (CPM)• Provê uma API
unificada para acesso a funções de criptografar, descriptografar, assinar e verificar assinaturas
![Page 6: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/6.jpg)
Cryptographic Provider Manager (CPM)• Seu uso é simples, abstraindo
os detalhes de implementação dos algoritmos de criptografia
![Page 7: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/7.jpg)
CPM - Funcionalidades
1. Permite ao usuário descobrir quais os Providers presentes
![Page 8: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/8.jpg)
CPM - Funcionalidadesuint32_t *providers;APProviderInfoType providerInfo;uint16_t nProviders = 0;
CPMLibOpen(&nProviders);DbgPrintf("SSFD: CPMLibOpen - 0x%x providers returned\n",
nProviders );
providers = MemPtrNew(sizeof(uint32_t) * nProviders );CPMLibEnumerateProviders(providers, &nProviders );DbgPrintf("SSFD: CPMLibEnumerateProviders - 0x%x providers
returned\n", nProviders);
for (i=0; i < temp; i++) {CPMLibGetProviderInfo(providers[i], &providerInfo);DbgPrintf("\t%s\n", providerInfo.name);DbgPrintf("\t%s\n", providerInfo.other);DbgPrintf("\tAlgs: %d\n",providerInfo.numAlgorithms);DbgPrintf("\tHardware?: %s\n", providerInfo.bHardware?"yes":"no");
}
![Page 9: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/9.jpg)
CPM - Funcionalidades
2. Permite gerar chaves abstraindo o algoritmo utilizado
![Page 10: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/10.jpg)
CPM - FuncionalidadesAPKeyInfoType keyInfo;uint8_t *seedData;uint32_t seedDataLength;
/* KeyInfo provê as funcionalidades para as chaves do algoritmo utilizado. */
MemSet(&keyInfo, sizeof(APKeyInfoType), 0);keyInfo.type = apSymmetricTypeRijndael;keyInfo.length = 32; /* bytes */
/* Pega uma seed do gerador pseudo-randomico padrão */
GetSomeSeedData(seedData, seedDataLength);
/* Gera a chave e armazena em KeyInfo */CPMLibGenerateKey(seedData, seedDataLength,
&keyInfo);
![Page 11: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/11.jpg)
CPM - Funcionalidades
3. Permite o uso de Message Digests (hashes)
![Page 12: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/12.jpg)
CPM - Funcionalidadesstatus_t err;uint32_t size;uint8_t data[] = ( 'f', 'o', 'o' );
/* Aloca um buffer de 0 bytes */uint8_t *md = NULL;size = 0;
err = CPMLibHash(apHashTypeSHA1, NULL, data, sizeof(data), md, &size);
/* Se o tamanho do buffer for menor que o necessário (que é o caso), o CPM modifica o valor de size para o tamanho mínimo e retorna um código de erro */
if (err == cpmErrBufTooSmall) {md = MemPtrNew(size);CPMLibHash(apHashTypeSHA1, NULL, data, sizeof(data),
md, &size);}
![Page 13: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/13.jpg)
CPM - Funcionalidades
4. Permite o uso de funções para encriptar dados a partir de uma chave gerada...
![Page 14: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/14.jpg)
CPM - Funcionalidadesstatus_t err;uint8_t key[] = {0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E,0x57};uint8_t plain[] = {0x01, 0xA1, 0xD6, 0xD0, 0x39, 0x77, 0x67,0x42};uint32_t index, size;uint8_t *output = NULL;
APKeyInfoType keyInfo;MemSet(&keyInfo, sizeof(APKeyInfoType), 0);keyInfo.type = apSymmetricTypeDES;CPMLibImportKeyInfo(IMPORT_EXPORT_TYPE_RAW, key, 8,
&keyInfo);
size = 0;err = CPMLibEncrypt(&keyInfo, NULL, plain, 8, output,&size);if (err = cpmErrBufTooSmall) {
output = MemPtrNew(size);if (output != NULL) {
err = CPMLibEncrypt(&keyInfo, NULL, plain, 8, output, &size);MemPtrFree(output);
}
![Page 15: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/15.jpg)
CPM - Funcionalidades
5. ...E descriptografá-los.
![Page 16: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/16.jpg)
CPM - Funcionalidadesstatus_t err;uint8_t key[] = {0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E,0x57};uint8_t cipher[] = {0x69, 0x0F, 0x5B, 0x0D, 0x9A, 0x26,
0x93,0x9B};uint32_t index, size;uint8_t *output = NULL;
/* Obtêm ou inicializa KeyInfo */APKeyInfoType keyInfo;(...)
size = 0;err = CPMLibDecrypt(&keyInfo, NULL, cipher, 8, output,&size);if (err = cpmErrBufTooSmall) {
output = MemPtrNew(size);if (output != NULL) {
err = CPMLibDecrypt(&keyInfo, NULL, cipher, 8, output, &size);
MemPtrFree(output);}
![Page 17: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/17.jpg)
Certificate Manager• Armazena, importa,
exporta e verifica certificados DER-encoded X.509
• Por ter uma funcionalidade muito específica, normalmente é usado apenas pelas APIs de SSL e Signature Verify Library
• Quando necessário, utiliza as funcionalidades da Data Manager para evitar mudanças nos certificados armazenados
![Page 18: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/18.jpg)
SSL• O módulo de
SSL provê suporte nativo ao protocolo de rede homônimo
![Page 19: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/19.jpg)
Signature Verify Library• Provê um
módulo para aplicações acessarem assinaturas e certificados de maneira simples
![Page 20: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/20.jpg)
Autenticação e assinaturas de sistema
![Page 21: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/21.jpg)
Código assinado• Aplicações são assinadas quando a
integridade do código é uma preocupação
• Dependendo do dispositivo, parte do código – como um patch do sistema – deve ser assinado
• Além disso, base de dados seguras podem ser configuradas de maneira a permitir acesso apenas a um grupo particular de aplicações assinadas
![Page 22: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/22.jpg)
O que pode ser assinado?• Applications
• System patches
• Shared libraries
• System components
• System drivers
![Page 23: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/23.jpg)
Para que servem assinaturas?• No Palm, assinaturas
normalmente indicam aprovação e compatibilidade
• Não indicam necessariamente o autor do código ou recurso
![Page 24: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/24.jpg)
Authentication Manager (AM)
• Responsável por autenticar usuários ou aplicações
• Responde a questão “Você é X?” através de métodos como senhas e assinaturas de código
![Page 25: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/25.jpg)
Authentication Manager (AM)• É o AM o responsável por
verificar a assinatura do código, garantindo que os patches e objetos modificáveis mais importantes do sistema tenham uma assinatura de uma autoridade conhecida
![Page 26: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/26.jpg)
Authorization Manager (AZM)
![Page 27: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/27.jpg)
Authorization Manager (AZM)
• Controla árvores baseadas em autenticações
• A árvore ao lado, dá autorização a uma aplicação com a assinatura “A” ou “B”
![Page 28: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/28.jpg)
Data Manager• Dá suporte a
banco de dados seguros
• Utiliza o Authorization Manager para tratar as permissões de acesso aos dados
![Page 29: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/29.jpg)
Banco de dados seguros• Quando se cria uma base de
dados segura, o acesso aos dados é dado apenas ao criador, que é o único que tem permissão de modificar as regras de controle de acesso
• Dessa forma, uma aplicação que crie um banco de dados seguros deve modificar as regras de controle que desejar disponibilizar para outras aplicações
![Page 30: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/30.jpg)
Banco de dados segurosAzmRuleSetType dbRuleSet;AmTokenType usertoken;
UInt32 action = dbActionRead | dbActionWrite | dbActionDelete
| dbActionBackup | dbActionRestore | dbActionEditSchema;
// Create DB – get AZM ruleset referenceDbCreateSecureDatabase(“My DB”, ‘crea’, ‘type’,
numSchemas, schemaList, &dbRuleSet, &dbID);
// Set user password required for ALL actionsAmGetTokenBySystemId(&usertoken,
SysUserToken);AzmAddRule(dbRuleSet, action , "%t", usertoken);
![Page 31: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/31.jpg)
Componentes
![Page 32: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/32.jpg)
Segurança e Criptografia
Dúvidas?
![Page 33: Segurança e Criptografia. Componentes Algoritmos de Criptografia O Palm OS Cobalt prevê suporte ao uso de diversos algoritmos de criptografia, integrados](https://reader038.vdocuments.mx/reader038/viewer/2022103016/552fc142497959413d8df6d2/html5/thumbnails/33.jpg)
Dúvidas