{"id":297,"date":"2026-09-04T22:44:14","date_gmt":"2026-09-04T22:44:14","guid":{"rendered":"https:\/\/neodata.com.uy\/labs\/?page_id=297"},"modified":"2026-09-05T18:13:50","modified_gmt":"2026-09-05T18:13:50","slug":"research","status":"publish","type":"page","link":"https:\/\/neodata.com.uy\/labs\/research\/","title":{"rendered":"Research"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section preset--module--divi-section--e6d0238b-0826-4bc4-b282-4f3465d736ab\">\n<div class=\"et_pb_row_0 et_pb_row et_block_row preset--module--divi-row--092c31a3-22e4-47b6-9fba-2fb635036442\">\n<div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough preset--module--divi-column--f4a0218b-8c4f-4446-99b3-9843739053a9\">\n<div class=\"et_pb_blog_0 et_pb_blog et_pb_bg_layout_light et_pb_posts et_pb_module preset--module--divi-blog--86f4aba0-8d86-463f-bf93-e6b07b878c8c\"><div class=\"et_pb_ajax_pagination_container\"><div class=\"et_pb_blog_posts et_block_module\"><article class=\"et_pb_post et_pb_post_id_407 clearfix et_pb_blog_item_0_0 post-407 post type-post status-publish format-standard has-post-thumbnail hentry category-featured_research\"><a href=\"https:\/\/neodata.com.uy\/labs\/mobile-secure-key-containers-capability-detection-and-key-attestation-part-1\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-mobile-secure-key-containers-attestation-part-1.webp\" width=\"1000\" height=\"350\" alt=\"Three layered mobile key containers with sealed cryptographic cores and a certificate chain under laboratory inspection.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/mobile-secure-key-containers-capability-detection-and-key-attestation-part-1\/\">Mobile Secure Key Containers, Capability Detection, and Key Attestation: A Technical Reference for Credential Wallet SDKs \u2014 Part I<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Android, iOS, and HarmonyOS expose different assurance paths for wallet keys. This reference maps secure containers, capability detection, attestation chains, and fallback tiers.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_234 clearfix et_pb_blog_item_0_1 post-234 post type-post status-publish format-standard has-post-thumbnail hentry category-featured_research\"><a href=\"https:\/\/neodata.com.uy\/labs\/toward-an-open-cryptographic-workbench\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/electron_microscope.webp\" width=\"1000\" height=\"340\" alt=\"A microscope examines the circuitry of a gold integrated circuit on a laboratory stage.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/toward-an-open-cryptographic-workbench\/\">Toward an open cryptographic workbench.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Cryptographic tools explain algorithms, transform data and visualise workflows. A protocol workbench could connect those strengths while keeping exact bytes visible.<\/p>\n<\/div><\/div><\/article><\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_block_section preset--module--divi-section--e6d0238b-0826-4bc4-b282-4f3465d736ab\">\n<div class=\"et_pb_row_1 et_pb_row et_block_row preset--module--divi-row--092c31a3-22e4-47b6-9fba-2fb635036442\">\n<div class=\"et_pb_column_1 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough preset--module--divi-column--f4a0218b-8c4f-4446-99b3-9843739053a9\">\n<div class=\"et_pb_blog_1 et_pb_blog et_pb_bg_layout_light et_pb_posts et_pb_module neodata-lista-articulos preset--module--divi-blog--86f4aba0-8d86-463f-bf93-e6b07b878c8c\"><div class=\"et_pb_ajax_pagination_container\"><div class=\"et_pb_blog_posts et_block_module\"><article class=\"et_pb_post et_pb_post_id_395 clearfix et_pb_blog_item_1_0 post-395 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/sign-the-same-message-twice\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-10-sign-the-same-message-twice.webp\" width=\"1000\" height=\"350\" alt=\"Two embossed paper strips emerging from a precision press while a magnifier reveals their surface detail.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/sign-the-same-message-twice\/\">Sign the same message twice.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Repeated signing reveals whether output varies. Across a population, repeated ECDSA values can expose nonce reuse, compromise and implementation anomalies.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_396 clearfix et_pb_blog_item_1_1 post-396 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/the-ciphertext-does-not-say-which-mode-produced-it\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-11-ciphertext-does-not-say-which-mode.webp\" width=\"1000\" height=\"350\" alt=\"Identical white capsules held by different ceramic, metal and acrylic mechanisms on a pale measuring grid.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/the-ciphertext-does-not-say-which-mode-produced-it\/\">The ciphertext does not say which mode produced it.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Format-preserving ciphertext carries no mode, key or tweak metadata. That convenience makes FF1 and FF3 migration difficult to scope from the data alone.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_390 clearfix et_pb_blog_item_1_2 post-390 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/the-verifier-and-the-parser-disagree\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-09-verifier-and-parser-disagree.webp\" width=\"1000\" height=\"350\" alt=\"One translucent sheet passing through two metal frames that reveal different blue and red geometric regions.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/the-verifier-and-the-parser-disagree\/\">The verifier and the parser disagree.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Signature verification fails as a security boundary when the verifier and the application resolve different meanings from the same document.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_391 clearfix et_pb_blog_item_1_3 post-391 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/sms-otp-is-now-a-restricted-authenticator\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-08-sms-otp-restricted.webp\" width=\"1000\" height=\"350\" alt=\"A feature phone, modern smartphone and hardware security key connected by a pale migration ribbon.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/sms-otp-is-now-a-restricted-authenticator\/\">SMS OTP is now a restricted authenticator. The hard part is what replaces it.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Leaving SMS removes the telephony channel, but phishing resistance depends on origin binding and on every recovery path that can create a session.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_392 clearfix et_pb_blog_item_1_4 post-392 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/audit-the-attributes-not-the-datasheet\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-07-audit-the-attributes.webp\" width=\"1000\" height=\"350\" alt=\"Machined metal and translucent policy tokens with abstract switches arranged on white graph paper.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/audit-the-attributes-not-the-datasheet\/\">Audit the attributes, not the datasheet.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>PKCS #11 key policy is expressed through attributes and mechanisms inside the token. An inventory can reveal permissions that a product datasheet cannot.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_384 clearfix et_pb_blog_item_1_5 post-384 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/a-face-fits-in-960-bytes\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-04-a-face-fits-in-960-bytes.webp\" width=\"1000\" height=\"350\" alt=\"A tiny anonymous portrait on translucent film viewed through a precision magnifier on a pale laboratory table.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/a-face-fits-in-960-bytes\/\">A face fits in 960 bytes.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>A signed QR can carry an offline face credential, but signature, encoding and card geometry leave roughly one kilobyte for the image.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_385 clearfix et_pb_blog_item_1_6 post-385 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/what-survives-the-print-the-scan-and-the-phone\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-05-what-survives-the-print.webp\" width=\"1000\" height=\"350\" alt=\"A worn abstract matrix code specimen under laboratory inspection, with phone camera lenses softly out of focus.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/what-survives-the-print-the-scan-and-the-phone\/\">What survives the print, the scan and the phone.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Error correction can recover exact codewords from a damaged symbol. It cannot recover biometric detail removed before the credential was printed.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_386 clearfix et_pb_blog_item_1_7 post-386 post type-post status-publish format-standard has-post-thumbnail hentry category-research\"><a href=\"https:\/\/neodata.com.uy\/labs\/colour-buys-capacity-in-exchange-for-illumination\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-research-06-colour-buys-capacity.webp\" width=\"1000\" height=\"350\" alt=\"Three groups of coloured matrix swatches observed under neutral, warm and cool laboratory illumination.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/colour-buys-capacity-in-exchange-for-illumination\/\">Colour buys capacity in exchange for illumination.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Polychrome barcodes can multiply payload density, but they exchange binary contrast for dependence on inks, cameras and uncontrolled light.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_380 clearfix et_pb_blog_item_1_8 post-380 post type-post status-publish format-standard has-post-thumbnail hentry category-research tag-marginalia\"><a href=\"https:\/\/neodata.com.uy\/labs\/a-cose-sign1-object-is-not-its-signing-input\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-marginalia-cose-sign1.webp\" width=\"1000\" height=\"350\" alt=\"Translucent layers are rearranged in a precision fixture and bound with a blue filament before a signature press.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/a-cose-sign1-object-is-not-its-signing-input\/\">A COSE_Sign1 object is not its signing input.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Four transmitted fields become a different CBOR structure before signature verification.<\/p>\n<\/div><\/div><\/article><article class=\"et_pb_post et_pb_post_id_379 clearfix et_pb_blog_item_1_9 post-379 post type-post status-publish format-standard has-post-thumbnail hentry category-research tag-marginalia\"><a href=\"https:\/\/neodata.com.uy\/labs\/verification-is-not-authorization\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/neodata.com.uy\/labs\/wp-content\/uploads\/2026\/09\/nlabs-marginalia-verification-authorization.webp\" width=\"1000\" height=\"350\" alt=\"A sealed translucent document passes through a blue inspection ring before reaching a separate policy gate.\" class=\"et_pb_post_main_image\" \/><span data-icon=\"\ue050\" class=\"et_overlay et_pb_inline_icon\"><\/span><\/a><h2 class=\"entry-title\"><a href=\"https:\/\/neodata.com.uy\/labs\/verification-is-not-authorization\/\">Verification is not authorization.<\/a><\/h2><p class=\"post-meta\"><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>A valid signature answers a narrower question than most applications need to decide.<\/p>\n<\/div><\/div><\/article><\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-297","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages\/297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/comments?post=297"}],"version-history":[{"count":14,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages\/297\/revisions"}],"predecessor-version":[{"id":424,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/pages\/297\/revisions\/424"}],"wp:attachment":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/media?parent=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}