<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.traxel.com/index.php?action=history&amp;feed=atom&amp;title=IdentityManagement</id>
	<title>IdentityManagement - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.traxel.com/index.php?action=history&amp;feed=atom&amp;title=IdentityManagement"/>
	<link rel="alternate" type="text/html" href="https://wiki.traxel.com/index.php?title=IdentityManagement&amp;action=history"/>
	<updated>2026-04-28T19:56:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3328&amp;oldid=prev</id>
		<title>RobertBushman: /* Secret Key Blast Radius */</title>
		<link rel="alternate" type="text/html" href="https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3328&amp;oldid=prev"/>
		<updated>2023-11-08T13:30:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Secret Key Blast Radius&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:30, 8 November 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= JWT =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= JWT =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Secret Key Blast Radius ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Secret Key Blast Radius ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I asked GPT for some tips on minimizing blast radius, to see if I was missing any options. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It &lt;/del&gt;didn't fully grasp that I was &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;talking about &lt;/del&gt;the blast radius of the signing key, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;but &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;list still has some merit&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I asked GPT for some tips on minimizing blast radius, to see if I was missing any options. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I'm not sure if it &lt;/ins&gt;didn't fully grasp that I was &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;thinking of &lt;/ins&gt;the blast radius of the signing key, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or if it is going beyond that scope intentionally (or at least usefully, given &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lack of authentic intention)&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Implement Refresh Tokens''': To complement short-lived access tokens, use longer-lived refresh tokens that are used solely to obtain new access tokens. Refresh tokens can be stored more securely and revoked if necessary. They should be used infrequently, only when the access token expires.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Implement Refresh Tokens''': To complement short-lived access tokens, use longer-lived refresh tokens that are used solely to obtain new access tokens. Refresh tokens can be stored more securely and revoked if necessary. They should be used infrequently, only when the access token expires.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key traxel_wiki:diff::1.12:old-3327:rev-3328 --&gt;
&lt;/table&gt;</summary>
		<author><name>RobertBushman</name></author>
	</entry>
	<entry>
		<id>https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3327&amp;oldid=prev</id>
		<title>RobertBushman: /* Secret Key Blast Radius */</title>
		<link rel="alternate" type="text/html" href="https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3327&amp;oldid=prev"/>
		<updated>2023-11-08T13:28:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Secret Key Blast Radius&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:28, 8 November 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= JWT =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= JWT =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Secret Key Blast Radius ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Secret Key Blast Radius ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I asked GPT for some tips on minimizing blast radius, to see if I was missing any options.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I asked GPT for some tips on minimizing blast radius, to see if I was missing any options&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. It didn't fully grasp that I was talking about the blast radius of the signing key, but the list still has some merit&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Implement Refresh Tokens''': To complement short-lived access tokens, use longer-lived refresh tokens that are used solely to obtain new access tokens. Refresh tokens can be stored more securely and revoked if necessary. They should be used infrequently, only when the access token expires.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Implement Refresh Tokens''': To complement short-lived access tokens, use longer-lived refresh tokens that are used solely to obtain new access tokens. Refresh tokens can be stored more securely and revoked if necessary. They should be used infrequently, only when the access token expires.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key traxel_wiki:diff::1.12:old-3326:rev-3327 --&gt;
&lt;/table&gt;</summary>
		<author><name>RobertBushman</name></author>
	</entry>
	<entry>
		<id>https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3326&amp;oldid=prev</id>
		<title>RobertBushman: /* Token Blast Radius */</title>
		<link rel="alternate" type="text/html" href="https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3326&amp;oldid=prev"/>
		<updated>2023-11-08T13:27:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Token Blast Radius&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:27, 8 November 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Infosec]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Infosec]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= JWT =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= JWT =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Token &lt;/del&gt;Blast Radius ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Secret Key &lt;/ins&gt;Blast Radius ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I asked GPT for some tips on minimizing blast radius, to see if I was missing any options.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;I asked GPT for some tips on minimizing blast radius, to see if I was missing any options.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key traxel_wiki:diff::1.12:old-3325:rev-3326 --&gt;
&lt;/table&gt;</summary>
		<author><name>RobertBushman</name></author>
	</entry>
	<entry>
		<id>https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3325&amp;oldid=prev</id>
		<title>RobertBushman: Created page with &quot;Category:Infosec = JWT = == Token Blast Radius == I asked GPT for some tips on minimizing blast radius, to see if I was missing any options. * '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours. * '''Implement Refresh Tokens''': To complement short-lived access tokens, use longer-lived refresh tokens that are used s...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.traxel.com/index.php?title=IdentityManagement&amp;diff=3325&amp;oldid=prev"/>
		<updated>2023-11-08T13:26:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php/Category:Infosec&quot; title=&quot;Category:Infosec&quot;&gt;Category:Infosec&lt;/a&gt; = JWT = == Token Blast Radius == I asked GPT for some tips on minimizing blast radius, to see if I was missing any options. * &amp;#039;&amp;#039;&amp;#039;Use Short-Lived Access Tokens&amp;#039;&amp;#039;&amp;#039;: By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours. * &amp;#039;&amp;#039;&amp;#039;Implement Refresh Tokens&amp;#039;&amp;#039;&amp;#039;: To complement short-lived access tokens, use longer-lived refresh tokens that are used s...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Infosec]]&lt;br /&gt;
= JWT =&lt;br /&gt;
== Token Blast Radius ==&lt;br /&gt;
I asked GPT for some tips on minimizing blast radius, to see if I was missing any options.&lt;br /&gt;
* '''Use Short-Lived Access Tokens''': By making the JWT access tokens short-lived, you limit the time an attacker has to use a stolen token. Typically, access tokens can have a lifetime of minutes to hours.&lt;br /&gt;
* '''Implement Refresh Tokens''': To complement short-lived access tokens, use longer-lived refresh tokens that are used solely to obtain new access tokens. Refresh tokens can be stored more securely and revoked if necessary. They should be used infrequently, only when the access token expires.&lt;br /&gt;
* '''Token Rotation and Blacklisting''': Regularly rotate JWT secret keys and implement a blacklist of tokens that have been logged out or invalidated. This list needs to be checked whenever tokens are used, which can add some overhead to your application.&lt;br /&gt;
* '''Scope the Tokens''': Include claims in your JWT that define the scope of what the token can do. For instance, a token might grant read access but not write access. This way, even if a token is compromised, it can only be used within its limited scope.&lt;br /&gt;
* '''Use Asymmetric Cryptography''': Instead of using a secret key for signing JWTs (symmetric cryptography), use asymmetric cryptography where a private key signs the token, and a public key verifies it. The public key can be shared freely, and without the private key, a compromised server cannot issue new tokens.&lt;br /&gt;
* '''Secure Key Storage''': Use hardware security modules (HSMs) or services like AWS KMS or HashiCorp Vault for managing the signing keys. These services keep the private key secure and perform signing operations without exposing the key, even to the server that uses it.&lt;br /&gt;
* '''IP Whitelisting and Geofencing''': Restrict the use of tokens to certain IP addresses or geolocations. This isn't always feasible, but for certain applications, it can significantly reduce the risk.&lt;br /&gt;
* '''Per-Session Dynamic Secrets''': For every session, dynamically create a JWT secret that is stored securely on the server and associated with that session. If a key is compromised, it only affects that session and not others.&lt;br /&gt;
* '''Multi-factor Authentication (MFA)''': Require MFA to obtain a JWT, which significantly increases the difficulty of token theft.&lt;br /&gt;
* '''Audit Logs and Anomaly Detection''': Keep detailed logs of token issuance and use, and employ anomaly detection to look for unusual patterns that might indicate a token has been compromised.&lt;br /&gt;
* '''Rate Limiting and Abuse Detection''': Implement rate limiting and abuse detection mechanisms that can identify and block rapid, repeated requests that may suggest token misuse.&lt;/div&gt;</summary>
		<author><name>RobertBushman</name></author>
	</entry>
</feed>