<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Latacora</title><link>https://www.latacora.com/blog/</link><description>Recent content in Blog on Latacora</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://www.latacora.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Latacora Achieves AWS Advanced Tier Services Partner Status</title><link>https://www.latacora.com/blog/2026/01/27/aws-advanced-tier-status/</link><pubDate>Tue, 27 Jan 2026 15:00:00 -0600</pubDate><guid>https://www.latacora.com/blog/2026/01/27/aws-advanced-tier-status/</guid><description>&lt;p&gt;We are thrilled to announce a major milestone for Latacora: we have achieved
the &lt;strong&gt;Amazon Web Services (AWS) Advanced Tier Services Partner status&lt;/strong&gt; within
the AWS Partner Network (APN).&lt;/p&gt;
&lt;p&gt;This designation reflects Latacora’s technical expertise and diligence in
delivering exceptional cloud security and compliance solutions to our clients,
and confirms that we have successfully completed a rigorous validation process
demonstrating a proven track record of customer success delivered by a team of
AWS-certified professionals with specialized technical capabilities.&lt;/p&gt;</description></item><item><title>Writing MCP servers in Clojure with Ring and Malli</title><link>https://www.latacora.com/blog/2025/11/10/mcp-sdk/</link><pubDate>Mon, 10 Nov 2025 10:00:00 -0500</pubDate><guid>https://www.latacora.com/blog/2025/11/10/mcp-sdk/</guid><description>&lt;h2 id="introduction" class="heading-with-anchor"&gt;
&lt;a href="#introduction" class="heading-anchor-link" aria-label="Link to Introduction"&gt;
Introduction
&lt;span class="heading-anchor-icon" aria-hidden="true"&gt;#&lt;/span&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Large language models, agents, and
&lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro" target="_blank" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt;
are impossible to escape in today&amp;rsquo;s tech climate. At Latacora, we take a
thoughtful and pragmatic approach towards new technologies like these. Are they
going to solve all the world&amp;rsquo;s problems? &lt;em&gt;No&lt;/em&gt;. Is it important that we
understand them and be able to build software that integrates into emerging
ecosystems? &lt;em&gt;Yes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Internally we&amp;rsquo;ve built a MCP server to query our Datomic databases using
natural language, but now we&amp;rsquo;re open sourcing the underlying Clojure library so
others can easily build robust MCP servers for the emerging LLM agent ecosystem
too.&lt;/p&gt;</description></item><item><title>OIDC workload identity on AWS</title><link>https://www.latacora.com/blog/2025/11/04/aws-oidc-workload-identity/</link><pubDate>Tue, 04 Nov 2025 10:00:00 -0500</pubDate><guid>https://www.latacora.com/blog/2025/11/04/aws-oidc-workload-identity/</guid><description>&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: after years of being on the wish list of a ton of top AWS teams, AWS
released &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_outbound.html" target="_blank" rel="noopener noreferrer"&gt;a built-in version of this feature&lt;/a&gt; about two weeks
after we published this. Never let it be said gentle ribbing doesn&amp;rsquo;t work.
Also, thanks AWS! We meant it when we said that the only thing better than
having something easy to deploy was not needing to deploy anything at all.
Everything in this post about workload identity is still relevant but you
should probably use upstream&amp;rsquo;s implementation unless you have a good reason not
to (for example, private validators for whom you need a VPC endpoint).&lt;/p&gt;</description></item><item><title>ECS on EC2: Covering Gaps in IMDS Hardening</title><link>https://www.latacora.com/blog/2025/10/02/ecs-on-ec2-covering-gaps-in-imds-hardening/</link><pubDate>Thu, 02 Oct 2025 11:18:59 -0700</pubDate><guid>https://www.latacora.com/blog/2025/10/02/ecs-on-ec2-covering-gaps-in-imds-hardening/</guid><description>&lt;h2 id="introduction" class="heading-with-anchor"&gt;
&lt;a href="#introduction" class="heading-anchor-link" aria-label="Link to Introduction"&gt;
Introduction
&lt;span class="heading-anchor-icon" aria-hidden="true"&gt;#&lt;/span&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;AWS ECS is a widely-adopted service across industries. To illustrate the scale
and ubiquity of this service, over 2.4 billion Amazon Elastic Container Service
tasks are launched every week (&lt;a href="https://containersonaws.com" target="_blank" rel="noopener noreferrer"&gt;source&lt;/a&gt;) and over 65% of all
new AWS containers customers use Amazon ECS (&lt;a href="https://www.youtube.com/watch?v=C7HUkG_tu90" target="_blank" rel="noopener noreferrer"&gt;source&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;There are two primary &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html" target="_blank" rel="noopener noreferrer"&gt;launch types&lt;/a&gt; for ECS: Fargate and
EC2. The choice between them depends on &lt;a href="https://containersonaws.com/blog/2023/ec2-or-aws-fargate/" target="_blank" rel="noopener noreferrer"&gt;factors&lt;/a&gt; like
&lt;a href="https://aws.amazon.com/blogs/containers/theoretical-cost-optimization-by-amazon-ecs-launch-type-fargate-vs-ec2/" target="_blank" rel="noopener noreferrer"&gt;cost&lt;/a&gt;, performance, operational overhead, and the
variability of your workload.&lt;/p&gt;</description></item><item><title>Introducing Replik8s, a Modern Security Tool for Kubernetes</title><link>https://www.latacora.com/blog/2025/09/22/introducing-replik8s/</link><pubDate>Mon, 22 Sep 2025 12:00:00 -0400</pubDate><guid>https://www.latacora.com/blog/2025/09/22/introducing-replik8s/</guid><description>&lt;h2 id="introduction" class="heading-with-anchor"&gt;
&lt;a href="#introduction" class="heading-anchor-link" aria-label="Link to Introduction"&gt;
Introduction
&lt;span class="heading-anchor-icon" aria-hidden="true"&gt;#&lt;/span&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Security tools are often designed to highlight specific issues by consuming
APIs and applying predefined logic. Each tool implements its own data
structures, storage formats, and evaluation logic. While effective in narrow
contexts, this approach creates challenges for teams managing a diverse
toolset. Moreover, most tools are optimized to fetch only the data needed for
specific findings, limiting their utility in broader contexts such as incident
response or historical analysis.&lt;/p&gt;</description></item><item><title>Bit by bit: how Latacora helped Notion build security that scales</title><link>https://www.latacora.com/blog/2025/08/29/bit-by-bit-latacora-notion/</link><pubDate>Fri, 29 Aug 2025 11:55:00 -0500</pubDate><guid>https://www.latacora.com/blog/2025/08/29/bit-by-bit-latacora-notion/</guid><description>&lt;p&gt;&lt;strong&gt;Security rarely tops the priority list for startups - but that doesn&amp;rsquo;t make
it optional.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Running a startup is no small feat. Facing enormous pressure to address a
never-ending list of priorities (finding market fit, fundraising, launching new
features, scaling infrastructure, etc.) security often becomes a “later”
issue……until it can’t be. Even when companies know they need help, the breadth
of the problem can be intimidating. Application security, cloud infrastructure,
third-party vendors, compliance, cryptography: any resource-constrained startup
will be hard-pressed to find a unicorn hire who can own all these
responsibilities equally well.&lt;/p&gt;</description></item><item><title>Privacy for the newly appointed (and already exasperated) DPO</title><link>https://www.latacora.com/blog/2025/06/27/privacy-for-the-newly-appointed-and-already-exasperated-dpo/</link><pubDate>Fri, 27 Jun 2025 11:09:35 -0500</pubDate><guid>https://www.latacora.com/blog/2025/06/27/privacy-for-the-newly-appointed-and-already-exasperated-dpo/</guid><description>&lt;p&gt;Every other week, regulators around the world bombard their constituents with
new data protection laws and acronyms. As the person who was just &lt;em&gt;voluntold&lt;/em&gt;
you’re now responsible for privacy at your startup, in addition to all your
other duties and without any additional resources, how can you possibly be
expected to keep up—let alone contextualize that information to maintain
compliance?&lt;/p&gt;
&lt;p&gt;Privacy, at its core, is an ethical issue, which means the solution to your
privacy challenges is deceptively simple: &lt;strong&gt;do the right thing and be
transparent with your customers.&lt;/strong&gt; That’s it. That’s what everyone means when
they say “privacy by design.”&lt;/p&gt;</description></item><item><title>Lessons in logging, part 2: mapping your path to a mature security program with logs and audit trails</title><link>https://www.latacora.com/blog/2024/10/23/mapping-your-path-to-a-more-mature-security-program-with-logs-and-audit-trails/</link><pubDate>Wed, 23 Oct 2024 11:00:00 -0400</pubDate><guid>https://www.latacora.com/blog/2024/10/23/mapping-your-path-to-a-more-mature-security-program-with-logs-and-audit-trails/</guid><description>&lt;p&gt;&lt;em&gt;This post is the second in a series about logging and audit trails from a security perspective. For the first post in the series, see &lt;a href="https://www.latacora.com/blog/2023/11/28/lessons-in-logging-chopping-down-security-risks-using-audit-trails/" target="_self" rel=""&gt;Lessons in Logging: Chopping Down Security Risks Using Audit Trails&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you’re looking to level up your security practices, logging is a good place to focus your attention. Just as logging is a core pillar of observability, comprehensive audit trails are a core pillar of a strong security program. Logs and audit trails are separate but overlapping concepts, and most companies can improve their security posture by investing in this area.&lt;/p&gt;</description></item><item><title>Datomic and Content Addressable Techniques: An Ultimate Data Wonderland</title><link>https://www.latacora.com/blog/2024/09/13/datomic-and-content-addressable-techniques/</link><pubDate>Fri, 13 Sep 2024 12:00:00 -0500</pubDate><guid>https://www.latacora.com/blog/2024/09/13/datomic-and-content-addressable-techniques/</guid><description>&lt;p&gt;Latacora collects and analyzes data about services our clients use. You may
have read about &lt;a href="https://www.latacora.com/blog/2023/11/01/our-approach-to-building-security-tooling/" target="_self" rel=""&gt;our approach to building security
tooling&lt;/a&gt;, but the tl;dr
is we make requests to all the (configuration metadata) read-only APIs available
to us and store the results in S3. We leverage the data to understand our clients'
infrastructure and identify security issues and misconfigurations. We retain the
files (&amp;ldquo;snapshots&amp;rdquo;) to support future IR/forensics efforts.&lt;/p&gt;
&lt;p&gt;This approach has served us well, but the limited scope of a snapshot meant
there was always a problem of first needing to figure out which files to look
at. We love &lt;code&gt;aws s3 sync&lt;/code&gt; and &lt;code&gt;grep&lt;/code&gt; as much as anyone but security analysis
requires looking for complex relationships between resources; text search is,
at best, only a Bloom filter. What we really wanted was a performant way to ask
any question across all the data we have for a client that would support
complex queries using logic programming.&lt;/p&gt;</description></item><item><title>Latacora &amp; Vanta - Howdy (Managed Service) Partner!</title><link>https://www.latacora.com/blog/2024/09/09/latacora-vanta-howdy-msp/</link><pubDate>Mon, 09 Sep 2024 11:30:00 -0500</pubDate><guid>https://www.latacora.com/blog/2024/09/09/latacora-vanta-howdy-msp/</guid><description>&lt;p&gt;Exciting news! Latacora is teaming up with Vanta to supercharge your
compliance game. We now combine Latacora&amp;rsquo;s security expertise with Vanta&amp;rsquo;s
compliance platform to help you reach your compliance goals faster than ever.
As a Vanta managed service provider (MSP), Latacora can help you tackle your
compliance goals quickly and efficiently, freeing you to focus on growing your
business and building trust with your customers.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the scoop on why using Vanta through Latacora is a game-changer:&lt;/p&gt;</description></item><item><title>Cryptographic Right Answers: Post Quantum Edition</title><link>https://www.latacora.com/blog/post-quantum-cryptographic-right-answers/</link><pubDate>Mon, 29 Jul 2024 12:25:48 -0500</pubDate><guid>https://www.latacora.com/blog/post-quantum-cryptographic-right-answers/</guid><description>&lt;p&gt;One of our favorite blog posts is our
&amp;ldquo;&lt;a href="https://www.latacora.com/blog/2018/04/03/cryptographic-right-answers/" target="_blank" rel="noopener noreferrer"&gt;crypto right answers&lt;/a&gt;&amp;rdquo;
post. It&amp;rsquo;s intended to be an easy-to-use guide to help engineers pick the best
cryptography choices without needing to go too far down a rabbit hole. With
post-quantum cryptography (PQC) recently transitioning from an academic
research topic to a more practical cryptography concern we figured it’s time
for an update of our cryptography recommendations.&lt;/p&gt;
&lt;p&gt;One thing that makes recommending PQC challenging is that historically, we’ve
been able to provide “better” answers for classical cryptography. Faster and
bigger hashes, stronger password KDFs, easier-to-use primitives… These things
all have the same fundamental “shape”: you can take an existing design and drop
in something else to make it better. MD5 and BLAKE3 are not comparable in
strength, but you can just use BLAKE3 in place of MD5 and get something that’s
just far better with minimal API changes.&lt;/p&gt;</description></item><item><title>Real World Crypto 2024</title><link>https://www.latacora.com/blog/2024/05/07/real-world-crypto-2024/</link><pubDate>Tue, 07 May 2024 07:00:17 -0400</pubDate><guid>https://www.latacora.com/blog/2024/05/07/real-world-crypto-2024/</guid><description>&lt;p&gt;We traveled to Toronto this year to attend
&lt;a href="https://rwc.iacr.org/2024/program.php" target="_blank" rel="noopener noreferrer"&gt;RWC 2024&lt;/a&gt;. The conference was held in
&lt;a href="https://en.wikipedia.org/wiki/TIFF_Lightbox" target="_blank" rel="noopener noreferrer"&gt;TIFF Lightbox&lt;/a&gt; located in the
city’s downtown; the venue is the headquarters for the Toronto Film Festival
and contains five cinema rooms. RWC is a single-tracked conference and there’s
no hard requirement that talks are backed by papers. Each RWC includes the
&lt;a href="https://rwc.iacr.org/LevchinPrize/" target="_blank" rel="noopener noreferrer"&gt;Levchin prize&lt;/a&gt; ceremony for major
achievements in applied cryptography, several invited talks and the lightning
talks session.&lt;/p&gt;</description></item><item><title>A case for password hashing with delegation</title><link>https://www.latacora.com/blog/2023/12/22/case-for-password-hashing/</link><pubDate>Fri, 22 Dec 2023 10:18:16 -0500</pubDate><guid>https://www.latacora.com/blog/2023/12/22/case-for-password-hashing/</guid><description>&lt;p&gt;When people talk about PBKDFs (Password Based Key Derivation Functions), this
is usually either in the context of secure password storage, or in the context
of how to derive cryptographic keys from potentially low-entropy passwords. The
Password Hashing Competition (PHC, 2013-2015) was an open competition to derive
new password hashing algorithms, resulting in Argon2 hash as its winner. Apart
from achieving general hash security, many of the candidates focused on
achieving resistance to parallel attacks on available hardware such as GPUs.&lt;/p&gt;</description></item><item><title>Lessons in logging: chopping down security risks using audit trails</title><link>https://www.latacora.com/blog/2023/11/28/lessons-in-logging-chopping-down-security-risks-using-audit-trails/</link><pubDate>Tue, 28 Nov 2023 10:30:00 -0500</pubDate><guid>https://www.latacora.com/blog/2023/11/28/lessons-in-logging-chopping-down-security-risks-using-audit-trails/</guid><description>&lt;p&gt;&lt;em&gt;This post is the first in a series about logging and audit trails from a security perspective. For the next post in the series, see &lt;a href="https://www.latacora.com/blog/2024/10/23/mapping-your-path-to-a-more-mature-security-program-with-logs-and-audit-trails/" target="_self" rel=""&gt;Lessons in Logging, Part 2: Mapping Your Path to a Mature Security Program with Logs and Audit Trails&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;At Latacora, we bootstrap security practices. We partner with companies that frequently have minimally developed security programs, work with them to figure out the right security practices for their current size, and then help them evolve and scale those practices as their business matures.&lt;/p&gt;</description></item><item><title>Our Approach to Building Security Tooling</title><link>https://www.latacora.com/blog/2023/11/01/our-approach-to-building-security-tooling/</link><pubDate>Wed, 01 Nov 2023 12:00:00 -0400</pubDate><guid>https://www.latacora.com/blog/2023/11/01/our-approach-to-building-security-tooling/</guid><description>&lt;h2 id="introduction" class="heading-with-anchor"&gt;
&lt;a href="#introduction" class="heading-anchor-link" aria-label="Link to Introduction"&gt;
Introduction
&lt;span class="heading-anchor-icon" aria-hidden="true"&gt;#&lt;/span&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Most &amp;ldquo;security tools&amp;rdquo; today are typically composed by code that consumes an API
and applies predefined logic to identify issues. This is generally accomplished
by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fetching a subset of the endpoints exposed by the service / API being
audited (that is, the information required for the evaluation logic, such as
a list of the EC2 instances deployed in an AWS account, as well as their
configuration)&lt;/li&gt;
&lt;li&gt;Storing the data retrieved&lt;/li&gt;
&lt;li&gt;Evaluating this data to produce &amp;ldquo;findings&amp;rdquo; (this is the added value provided
by the tool)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Integrating third party tools into our monitoring platform isn&amp;rsquo;t always
straightforward, as each tool:&lt;/p&gt;</description></item><item><title>Frequently Asked Questions from Strange Loop 2023</title><link>https://www.latacora.com/blog/2023/09/27/strange-loop-2023/</link><pubDate>Wed, 27 Sep 2023 15:37:33 -0500</pubDate><guid>https://www.latacora.com/blog/2023/09/27/strange-loop-2023/</guid><description>&lt;p&gt;The last Strange Loop conference was held September 21-22, 2023 at St. Louis
Union Station. The conference is targeted towards developers; the speakers are
often sharing their knowledge on new and inventive ways to use technology. At
our sponsor booth at Union Station, attendees asked two (okay, three) questions
most often:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What is Latacora? Your name is on the lanyards, and I’m curious to know what
you do.&lt;/li&gt;
&lt;li&gt;Why &lt;a href="https://www.thestrangeloop.com/sponsors.html" target="_blank" rel="noopener noreferrer"&gt;sponsor Strange Loop&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Can I take a plant?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first one isn’t hard for the folks from our team: Latacora is a consultancy
that bootstraps security for startups. We have a team of experts helping our
clients with most security-related things: application security, cloud
security, corporate security, compliance, and more. We also have a team of
security architects, cryptographers, and project managers supporting our
clients. These professionals are equipped with power tools built to make their
jobs more efficient and to help our clients improve their security posture.&lt;/p&gt;</description></item><item><title>Remediating AWS IMDSv1</title><link>https://www.latacora.com/blog/2021/08/11/remediating-aws-imdsv1/</link><pubDate>Wed, 11 Aug 2021 12:16:23 -0400</pubDate><guid>https://www.latacora.com/blog/2021/08/11/remediating-aws-imdsv1/</guid><description>&lt;p&gt;&lt;em&gt;2024-12-17 Updated to include &lt;a href="#declarative-policies" target="_self" rel=""&gt;Declarative Policies&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Compute resources in AWS (for example, EC2 instances, ECS tasks/services, etc.)
get access to AWS credentials, such as temporary instance role credentials, via
the &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html" target="_blank" rel="noopener noreferrer"&gt;Instance Metadata Service (IMDS)&lt;/a&gt;. The compute resources use these
credentials to access other AWS services such as SQS, DynamoDB and Secrets
Manager.&lt;/p&gt;
&lt;h2 id="introduction-problems-with-imdsv1" class="heading-with-anchor"&gt;
&lt;a href="#introduction-problems-with-imdsv1" class="heading-anchor-link" aria-label="Link to Introduction: Problems with IMDSv1"&gt;
Introduction: Problems with IMDSv1
&lt;span class="heading-anchor-icon" aria-hidden="true"&gt;#&lt;/span&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;There was originally only one version of IMDS, now called &amp;ldquo;v1,&amp;rdquo; which
unfortunately many people still use. The technical risks and high profile
incidents (the Capital One breach comes to mind) associated with v1, as well as
the existence of &lt;a href="https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/" target="_blank" rel="noopener noreferrer"&gt;v2&lt;/a&gt; are well-documented. When an application hosted on an
EC2 instance is vulnerable to &lt;a href="https://owasp.org/www-community/attacks/Server_Side_Request_Forgery" target="_blank" rel="noopener noreferrer"&gt;SSRF&lt;/a&gt;, &lt;a href="https://owasp.org/www-community/vulnerabilities/XML_External_Entity_%28XXE%29_Processing" target="_blank" rel="noopener noreferrer"&gt;XXE&lt;/a&gt; or &lt;a href="https://owasp.org/www-community/attacks/Code_Injection" target="_blank" rel="noopener noreferrer"&gt;RCE&lt;/a&gt;, attackers
can likely steal the temporary AWS credentials of the &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html" target="_blank" rel="noopener noreferrer"&gt;IAM role&lt;/a&gt;
configured for the instance. This service is a particularly interesting target
for attackers:&lt;/p&gt;</description></item><item><title>The SOC2 starting seven</title><link>https://www.latacora.com/blog/2020/03/12/soc2-starting-seven/</link><pubDate>Thu, 12 Mar 2020 13:49:00 -0400</pubDate><guid>https://www.latacora.com/blog/2020/03/12/soc2-starting-seven/</guid><description>&lt;p&gt;So, you plan to sell your startup’s product to big companies one day.
Congratu-dolences!&lt;/p&gt;
&lt;p&gt;Really, that’s probably the only reason you should care about this article. If
that’s not you, go forth and live your life! We’ll ask no more of your time.&lt;/p&gt;
&lt;p&gt;For the rest of you: Industry people talk about SOC2 a lot, and it’s taken on a
quasi-mystical status, not least because it’s the product of the quasi-mystical
accounting industry. But what it all boils down to is: eventually you’ll run
into big-company clients demanding a SOC2 report to close a sale. You know this
and worry about it.&lt;/p&gt;</description></item><item><title>Stop using encrypted email</title><link>https://www.latacora.com/blog/2020/02/19/stop-using-encrypted-email/</link><pubDate>Wed, 19 Feb 2020 14:50:00 -0400</pubDate><guid>https://www.latacora.com/blog/2020/02/19/stop-using-encrypted-email/</guid><description>&lt;p&gt;Email is unsafe and cannot be made safe. The tools we have today to encrypt
email are badly flawed. Even if those flaws were fixed, email would remain
unsafe. Its problems cannot plausibly be mitigated. Avoid encrypted email.&lt;/p&gt;
&lt;p&gt;Technologists hate this argument. Few of them specialize in cryptography or
privacy, but all of them are interested in it, and many of them tinker with
encrypted email tools.&lt;/p&gt;
&lt;p&gt;Most email encryption on the Internet is performative, done as a status signal
or show of solidarity. Ordinary people don’t exchange email messages that any
powerful adversary would bother to read, and for those people, encrypted email
is &lt;a href="https://www.google.com/search?q=larp" target="_blank" rel="noopener noreferrer"&gt;LARP&lt;/a&gt; security. It doesn’t matter
whether or not these emails are safe, which is why they’re encrypted so
shoddily.&lt;/p&gt;</description></item><item><title>How (not) to sign a JSON object</title><link>https://www.latacora.com/blog/2019/07/24/how-not-to-sign-json/</link><pubDate>Wed, 24 Jul 2019 08:50:00 -0400</pubDate><guid>https://www.latacora.com/blog/2019/07/24/how-not-to-sign-json/</guid><description>&lt;p&gt;Last year we did a blog post on interservice auth. This post is mostly about
authenticating consumers to an API. That’s a related but subtly different
problem: you can probably impose more requirements on your internal users than
your customers. The idea is the same though: you’re trying to differentiate
between a legitimate user and an attacker, usually by getting the legitimate
user to prove that they know a credential that the attacker doesn’t.&lt;/p&gt;</description></item><item><title>The PGP problem</title><link>https://www.latacora.com/blog/2019/07/16/the-pgp-problem/</link><pubDate>Tue, 16 Jul 2019 21:14:00 -0400</pubDate><guid>https://www.latacora.com/blog/2019/07/16/the-pgp-problem/</guid><description>&lt;p&gt;&lt;a href="https://blog.cryptographyengineering.com/2014/08/13/whats-matter-with-pgp/" target="_blank" rel="noopener noreferrer"&gt;Cryptography engineers have been tearing their hair out over PGP’s deficiencies&lt;/a&gt;
for (literally) decades. When other kinds of engineers get wind of this,
they’re shocked. PGP is bad? Why do people keep telling me to use PGP? The
answer is that they shouldn’t be telling you that, because PGP is bad and needs
to go away.&lt;/p&gt;
&lt;p&gt;There are, as you’re about to see, lots of problems with PGP. Fortunately, if
you’re not morbidly curious, there’s a simple meta-problem with it: it was
designed in the 1990s, before serious modern cryptography. No competent crypto
engineer would design a system that looked like PGP today, nor tolerate most of
its defects in any other design. Serious cryptographers have largely given up
on PGP and don’t spend much time publishing on it anymore
(&lt;a href="https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-poddebniak.pdf" target="_blank" rel="noopener noreferrer"&gt;with a notable exception&lt;/a&gt;).
Well-understood problems in PGP have gone unaddressed for over a decade because
of this.&lt;/p&gt;</description></item><item><title>Analyzing a simple encryption scheme using GitHub SSH keys</title><link>https://www.latacora.com/blog/2018/09/30/analyzing-github-ssh-key-encryption/</link><pubDate>Sun, 30 Sep 2018 13:54:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/09/30/analyzing-github-ssh-key-encryption/</guid><description>&lt;p&gt;(This is an introductory level analysis of a scheme involving RSA. If you&amp;rsquo;re
already comfortable with Bleichenbacher oracles you should skip it.)&lt;/p&gt;
&lt;p&gt;Someone pointed me at the following suggestion on the Internet for encrypting
secrets to people based on their GitHub SSH keys. I like the idea of making it
easier for people to leverage key material and tools they already have. The
encryption instructions are:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my secret&amp;#34;&lt;/span&gt; &amp;gt; message.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -q &lt;span class="s2"&gt;&amp;#34;https://github.com/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.keys&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;gt; recipient.pub
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-keygen -e -m pkcs8 -f recipient.pub &amp;gt; recipient.pem
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openssl rsautl &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -encrypt &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -pubin &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -inkey recipient.pem &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -ssl &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -in message.txt &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -out encrypted.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Anything using an openssl command line tool makes me a little uncomfortable.
Let’s poke at it a little.&lt;/p&gt;</description></item><item><title>ROCA vs. ROBOT: An Eternal Golden Braid</title><link>https://www.latacora.com/blog/2018/08/08/roca-vs-robot/</link><pubDate>Wed, 08 Aug 2018 18:52:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/08/08/roca-vs-robot/</guid><description>&lt;p&gt;The ROCA RSA key generation flaw or ROBOT, the “Return Of Bleichenbacher”
attack: which is most deserving of the “Best Cryptographic Attack” Pwnie award
at the 2018 Black Hat USA conference? Only one can survive. Let us consider.&lt;/p&gt;
&lt;p&gt;Assume for the moment that it’s down to those two: ROBOT and ROCA. But first
take a moment to consider the best cases for the “runners up”. They are all
excellent; it was a very good year for crypto research.&lt;/p&gt;</description></item><item><title>The default OpenSSH key encryption is worse than plaintext</title><link>https://www.latacora.com/blog/2018/08/03/default-openssh-key-encryption/</link><pubDate>Fri, 03 Aug 2018 10:02:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/08/03/default-openssh-key-encryption/</guid><description>&lt;p&gt;Update: I don&amp;rsquo;t know if we can take credit for it or if it&amp;rsquo;s random chance, but
I note OpenSSH changed its default in the release after this blog post. The
system works!&lt;/p&gt;
&lt;p&gt;The eslint-scope npm package got compromised recently, stealing npm credentials
from your home directory. We started running tabletop exercises: what else
would you smash-and-grab, and how can we mitigate that risk?&lt;/p&gt;
&lt;p&gt;Most people have an RSA SSH key laying around. That SSH key has all sorts of
privileges: typically logging into prod and GitHub access. Unlike an npm
credential, an SSH key is encrypted, so perhaps it’s safe even if it leaks?
Let’s find out!&lt;/p&gt;</description></item><item><title>Factoring the Noise protocol matrix</title><link>https://www.latacora.com/blog/2018/07/18/factoring-the-noise/</link><pubDate>Wed, 18 Jul 2018 11:59:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/07/18/factoring-the-noise/</guid><description>&lt;p&gt;TL;DR: if I ever told you to use Noise, I probably meant Noise_IK and should
have been more specific.&lt;/p&gt;
&lt;p&gt;The Noise protocol is one of the best things to happen to encrypted protocol
design. &lt;a href="https://www.wireguard.com" target="_blank" rel="noopener noreferrer"&gt;WireGuard&lt;/a&gt; inherits its elegance from
Noise. Noise is a cryptography engineer’s darling spec. It’s important not to
get blindsided while fawning over it and to pay attention to where implementers
run into trouble. Someone raised a concern I had run into before: Noise has a
matrix.&lt;/p&gt;</description></item><item><title>Loud subshells</title><link>https://www.latacora.com/blog/2018/06/21/loud-subshells/</link><pubDate>Thu, 21 Jun 2018 12:21:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/06/21/loud-subshells/</guid><description>&lt;p&gt;Default shells usually end in &lt;code&gt;$&lt;/code&gt;. Unless you’re root and it’s &lt;code&gt;#&lt;/code&gt;. That
tradition has been around forever: people recognized the need to highlight
you’re not just some random shmoe.&lt;/p&gt;
&lt;p&gt;These days we have lots of snazzy shell magic. You might still su, but you’re
more likely to sudo. We still temporarily assume extra privileges. If you have
access to more than one set of systems, like production and staging, you
probably have ways of putting on a particular hat. Some combination of setting
an environment variable, adding a key to ssh-agent, or assuming an AWS role
with &lt;a href="https://github.com/99designs/aws-vault" target="_blank" rel="noopener noreferrer"&gt;aws-vault&lt;/a&gt;. You know, so you
don&amp;rsquo;t accidentally blow away prod.&lt;/p&gt;</description></item><item><title>A Child's Garden of Inter-Service Authentication Schemes</title><link>https://www.latacora.com/blog/2018/06/12/inter-service-authentication-schemes/</link><pubDate>Tue, 12 Jun 2018 16:27:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/06/12/inter-service-authentication-schemes/</guid><description>&lt;p&gt;Modern applications tend to be composed from relationships between smaller
applications. Secure modern applications thus need a way to express and enforce
security policies that span multiple services. This is the “server-to-server”
(S2S) authentication and authorization problem (for simplicity, I’ll mash both
concepts into the term “auth” for most of this post).&lt;/p&gt;
&lt;p&gt;Designers today have a lot of options for S2S auth, but there isn’t much
clarity about what the options are or why you’d select any of them. Bad
decisions sometimes result. What follows is a stab at clearing the question up.&lt;/p&gt;</description></item><item><title>Gripes with Google Groups</title><link>https://www.latacora.com/blog/2018/05/29/gripes-with-google-groups/</link><pubDate>Tue, 29 May 2018 17:14:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/05/29/gripes-with-google-groups/</guid><description>&lt;p&gt;If you&amp;rsquo;re like me, you think of Google Groups as the Usenet client turned
mailing list manager. If you&amp;rsquo;re a GCP (Google Cloud Platform) user or maybe one
of a handful of SAML (Security Assertion Markup Language) users you probably
know Google Groups as an access control mechanism. The bad news is we&amp;rsquo;re both
right.&lt;/p&gt;
&lt;p&gt;This can blow up if permissions on those groups aren&amp;rsquo;t set right. Your groups
were probably originally created by a sleep-deprived founder way before anyone
was worried about access control. It’s been lovingly handcrafted and never
audited ever since. Let’s say their configuration is, uh, “inconsistent”. If an
administrator adds people to the right groups as part of their on-boarding,
it’s not obvious when group membership is secretly self-service. Even if
someone can’t &lt;em&gt;join&lt;/em&gt; a group, they might still be able to read it.&lt;/p&gt;</description></item><item><title>There will be WireGuard</title><link>https://www.latacora.com/blog/2018/05/16/there-will-be-wireguard/</link><pubDate>Wed, 16 May 2018 21:56:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/05/16/there-will-be-wireguard/</guid><description>&lt;p&gt;Amidst the hubbub of the Efail PGP/SMIME debacle yesterday, the WireGuard
project made a pretty momentous announcement: a MacOS command line version of
the &lt;a href="https://www.wireguard.com/" target="_blank" rel="noopener noreferrer"&gt;WireGuard VPN&lt;/a&gt; is
&lt;a href="https://lists.zx2c4.com/pipermail/wireguard/2018-May/002854.html" target="_blank" rel="noopener noreferrer"&gt;now available for testing&lt;/a&gt;,
and should stabilize in the coming few months. I’m prepared to be wrong, but I
think that for a lot of young tech companies, this might be the biggest thing
to happen to remote access in decades.&lt;/p&gt;
&lt;p&gt;WireGuard is a modern, streamlined VPN protocol that Jason Donenfeld developed
based on Trevor Perrin’s &lt;a href="http://noiseprotocol.org/" target="_blank" rel="noopener noreferrer"&gt;Noise protocol framework&lt;/a&gt;.
Imagine a VPN with the cryptographic sophistication of Signal Protocol and
you’re not far off. Here are the important details:&lt;/p&gt;</description></item><item><title>Dumb security questionnaires</title><link>https://www.latacora.com/blog/2018/05/04/dumb-security-questionnaires/</link><pubDate>Fri, 04 May 2018 21:46:00 -0400</pubDate><guid>https://www.latacora.com/blog/2018/05/04/dumb-security-questionnaires/</guid><description>&lt;p&gt;It’s weird to say this but a significant part of the value we provide clients
is filling out Dumb Security Questionnaires (hereafter DSQs, since the only
thing more irritating than a questionnaire is spelling “questionnaire”).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://web.archive.org/web/20230520010350/https://danielmiessler.com/blog/third-party-security-questionnaires-are-security-theater/" target="_blank" rel="noopener noreferrer"&gt;Daniel Meiessler complains&lt;/a&gt;
about DSQs, arguing that self-assessment is an intrinsically flawed concept.&lt;/p&gt;
&lt;p&gt;Meh. I have bigger problems with them.&lt;/p&gt;
&lt;p&gt;First, most DSQs are terrible. We get on calls with prospective clients, tell
them “these DSQs were all first written in the early 1990s and lovingly handed
down from generation to generation of midwestern IT secops staff. Oh, how
clients laugh and laugh. But, not joking. That’s really how those DSQs got
written.&lt;/p&gt;</description></item><item><title>Cryptographic right answers</title><link>https://www.latacora.com/blog/cryptographic-right-answers/</link><pubDate>Tue, 03 Apr 2018 15:25:00 -0400</pubDate><guid>https://www.latacora.com/blog/cryptographic-right-answers/</guid><description>&lt;p&gt;We’re less interested in empowering developers and a lot more pessimistic about
the prospects of getting this stuff right.&lt;/p&gt;
&lt;p&gt;There are, in the literature and in the most sophisticated modern systems,
“better” answers for many of these items. If you’re building for low-footprint
embedded systems, you can use STROBE and a sound, modern, authenticated
encryption stack entirely out of a single SHA-3-like sponge constructions. You
can use NOISE to build a secure transport protocol with its own AKE. Speaking
of AKEs, there are, like, 30 different password AKEs you could choose from.&lt;/p&gt;</description></item></channel></rss>