931 lines
191 KiB
Plaintext
931 lines
191 KiB
Plaintext
|
||
|
||
|
||
[38;5;12m [39m
|
||
[48;5;235m[38;5;249m[49m[39m
|
||
[38;5;12m [39m
|
||
|
||
|
||
|
||
[38;5;12m [39m
|
||
[38;5;12m [39m
|
||
|
||
|
||
|
||
[38;5;12m [39m
|
||
|
||
|
||
|
||
[38;5;12m [39m
|
||
[48;5;235m[38;5;249m[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m [49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m [49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m [49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249mAdd authentication, user management, and authorization to your app with a few lines of code.[49m[39m
|
||
[38;5;12m [39m
|
||
[38;5;12m [39m
|
||
|
||
|
||
|
||
[38;5;12m [39m
|
||
[48;5;235m[38;5;249m[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249mBuild scalable, fine-grained authorization for your apps. , an authorization management system for authoring, testing, and deploying access policies.[49m[39m
|
||
[38;5;12m [39m
|
||
[38;5;12m [39m
|
||
|
||
|
||
|
||
|
||
[38;5;12m<!--[39m
|
||
|
||
[38;5;12m [39m
|
||
[48;5;235m[38;5;249m[49m[39m
|
||
[48;5;235m[38;5;249m[49m[39m
|
||
[48;5;235m[38;5;249m[49m[39m
|
||
[38;5;12m [39m
|
||
[38;5;12m [39m
|
||
|
||
[38;5;12m-->[39m
|
||
|
||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||
|
||
|
||
[38;5;12m [39m
|
||
[38;5;12m — Maria V. Snyder[39m
|
||
|
||
|
||
|
||
|
||
[38;5;14m[1mIAM[0m[38;5;12m [39m[38;5;12m(https://en.wikipedia.org/wiki/Identity_management)[39m[38;5;12m [39m[38;5;12mstands[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mIdentity[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mAccess[39m[38;5;12m [39m[38;5;12mManagement.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mdomain[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;14m[1muser[0m[38;5;14m[1m [0m[38;5;14m[1maccounts,[0m[38;5;14m[1m [0m[38;5;14m[1mauthentication,[0m[38;5;14m[1m [0m[38;5;14m[1mauthorization,[0m[38;5;14m[1m [0m[38;5;14m[1mroles,[0m[38;5;14m[1m [0m[38;5;14m[1mpermissions[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mprivacy[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12messential[39m[38;5;12m [39m[38;5;12mpillar[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||
[38;5;12mcloud[39m[38;5;12m [39m[38;5;12mstack,[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m[38;5;12musers,[39m[38;5;12m [39m[38;5;12mproducts[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mmeets.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;14m[1mother[0m[38;5;14m[1m [0m[38;5;14m[1mpillar[0m[38;5;14m[1m [0m[38;5;14m[1mbeing[0m[38;5;14m[1m [0m[38;5;14m[1mbilling[0m[38;5;14m[1m [0m[38;5;14m[1m&[0m[38;5;14m[1m [0m[38;5;14m[1mpayments[0m[38;5;14m[1m [0m[38;5;14m[1m💰[0m[38;5;12m [39m[38;5;12m(https://github.com/kdeldycke/awesome-billing/).[39m
|
||
|
||
[38;5;12mThis curated [39m[38;5;14m[1m![0m[38;5;12mAwesome[39m[38;5;14m[1m (https://awesome.re/badge-flat.svg)[0m[38;5;12m (https://github.com/sindresorhus/awesome) list expose all the technologies, protocols and jargon of the domain in a comprehensive and actionable manner.[39m
|
||
|
||
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOverview[0m[38;5;12m (#overview)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSecurity[0m[38;5;12m (#security)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAccount Management[0m[38;5;12m (#account-management)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCryptography[0m[38;5;12m (#cryptography)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mIdentifiers[0m[38;5;12m (#identifiers)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mZero-trust Network[0m[38;5;12m (#zero-trust-network)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAuthentication[0m[38;5;12m (#authentication)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPassword-based auth[0m[38;5;12m (#password-based-auth)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mMulti-factor auth[0m[38;5;12m (#multi-factor-auth)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mSMS-based[0m[38;5;12m (#sms-based)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPassword-less auth[0m[38;5;12m (#password-less-auth)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mWebAuthn[0m[38;5;12m (#webauthn)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mSecurity key[0m[38;5;12m (#security-key)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mPublic-Key Infrastructure (PKI)[0m[38;5;12m (#public-key-infrastructure-pki)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mJWT[0m[38;5;12m (#jwt)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAuthorization[0m[38;5;12m (#authorization)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mPolicy models[0m[38;5;12m (#policy-models)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mRBAC frameworks[0m[38;5;12m (#rbac-frameworks)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mABAC frameworks[0m[38;5;12m (#abac-frameworks)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mReBAC frameworks[0m[38;5;12m (#rebac-frameworks)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mAWS policy tools[0m[38;5;12m (#aws-policy-tools)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mMacaroons[0m[38;5;12m (#macaroons)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mOther tools[0m[38;5;12m (#other-tools)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOAuth2 & OpenID[0m[38;5;12m (#oauth2--openid)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSAML[0m[38;5;12m (#saml)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSecret Management[0m[38;5;12m (#secret-management)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mHardware Security Module (HSM)[0m[38;5;12m (#hardware-security-module-hsm)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTrust & Safety[0m[38;5;12m (#trust--safety)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mUser Identity[0m[38;5;12m (#user-identity)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mFraud[0m[38;5;12m (#fraud)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mModeration[0m[38;5;12m (#moderation)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mThreat Intelligence[0m[38;5;12m (#threat-intelligence)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mCaptcha[0m[38;5;12m (#captcha)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mBlocklists[0m[38;5;12m (#blocklists)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mHostnames and Subdomains[0m[38;5;12m (#hostnames-and-subdomains)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mEmails[0m[38;5;12m (#emails)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mReserved IDs[0m[38;5;12m (#reserved-ids)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mProfanity[0m[38;5;12m (#profanity)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPrivacy[0m[38;5;12m (#privacy)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mAnonymization[0m[38;5;12m (#anonymization)[39m
|
||
[38;5;12m - [39m[38;5;14m[1mGDPR[0m[38;5;12m (#gdpr)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mUX/UI[0m[38;5;12m (#uxui)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCompetitive Analysis[0m[38;5;12m (#competitive-analysis)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mHistory[0m[38;5;12m (#history)[39m
|
||
|
||
|
||
|
||
[38;2;255;187;0m[4mOverview[0m
|
||
|
||
|
||
|
||
[38;5;12mIn a Stanford class providing an [39m[38;5;14m[1moverview of cloud computing[0m[38;5;12m (https://web.stanford.edu/class/cs349d/docs/L01_overview.pdf), the software architecture of the platform is described as in the right diagram →[39m
|
||
|
||
[38;5;12mHere we set out the big picture: definition and strategic importance of the domain, its place in the larger ecosystem, plus some critical features.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe EnterpriseReady SaaS Feature Guides[0m[38;5;12m (https://www.enterpriseready.io) - The majority of the features making B2B users happy will be implemented by the IAM perimeter.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mIAM[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mhard.[0m[38;5;14m[1m [0m[38;5;14m[1mIt's[0m[38;5;14m[1m [0m[38;5;14m[1mreally[0m[38;5;14m[1m [0m[38;5;14m[1mhard.[0m[38;5;12m [39m[38;5;12m(https://web.archive.org/web/20200809095434/https://twitter.com/kmcquade3/status/1291801858676228098)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Overly[39m[38;5;12m [39m[38;5;12mpermissive[39m[38;5;12m [39m[38;5;12mAWS[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mpolicies[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mallowed[39m[38;5;12m [39m[48;5;235m[38;5;249ms3:GetObject[49m[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[48;5;235m[38;5;249m*[49m[39m[38;5;12m [39m[38;5;12m(all)[39m[38;5;12m [39m[38;5;12mresources”,[39m[38;5;12m [39m[38;5;12mled[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12m\$80[39m[38;5;12m [39m[38;5;12mmillion[39m[38;5;12m [39m[38;5;12mfine[39m
|
||
[38;5;12mfor[39m[38;5;12m [39m[38;5;12mCapital[39m[38;5;12m [39m[38;5;12mOne.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mreason[39m[38;5;12m [39m[38;5;12mwhy[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan't[39m[38;5;12m [39m[38;5;12moverlook[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbusiness[39m[38;5;12m [39m[38;5;12mowner.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mIAM[0m[38;5;14m[1m [0m[38;5;14m[1mIs[0m[38;5;14m[1m [0m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mReal[0m[38;5;14m[1m [0m[38;5;14m[1mCloud[0m[38;5;14m[1m [0m[38;5;14m[1mLock-In[0m[38;5;12m [39m[38;5;12m(https://forrestbrazeal.com/2019/02/18/cloud-irregular-iam-is-the-real-cloud-lock-in/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlittle[39m[38;5;12m [39m[48;2;30;30;40m[38;5;13m[3mclick-baity[0m[38;5;12m,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mauthor[39m[38;5;12m [39m[38;5;12madmit[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12m“It[39m[38;5;12m [39m[38;5;12mdepends[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mmuch[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mtrust[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12m1.[39m[38;5;12m [39m[38;5;12mStay[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mbusiness;[39m[38;5;12m [39m[38;5;12m2.[39m[38;5;12m [39m[38;5;12mNot[39m[38;5;12m [39m[38;5;12mjack[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m
|
||
[38;5;12myour[39m[38;5;12m [39m[38;5;12mprices;[39m[38;5;12m [39m[38;5;12m3.[39m[38;5;12m [39m[38;5;12mNot[39m[38;5;12m [39m[38;5;12mdeprecate[39m[38;5;12m [39m[38;5;12mservices[39m[38;5;12m [39m[38;5;12mout[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12munder[39m[38;5;12m [39m[38;5;12myou;[39m[38;5;12m [39m[38;5;12m4.[39m[38;5;12m [39m[38;5;12mProvide[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mvalue[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mbusiness[39m[38;5;12m [39m[38;5;12macceleration[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mtake[39m[38;5;12m [39m[38;5;12maway[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mflexibility.”[39m
|
||
|
||
[38;2;255;187;0m[4mSecurity[0m
|
||
|
||
[38;5;12mSecurity is one of the most central pillar of IAM foundations. Here are some broad concepts.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mEnterprise Information Security[0m[38;5;12m (https://infosec.mozilla.org) - Mozilla's security and access guidelines.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMitigating[0m[38;5;14m[1m [0m[38;5;14m[1mCloud[0m[38;5;14m[1m [0m[38;5;14m[1mVulnerabilities[0m[38;5;12m [39m[38;5;12m(https://web.archive.org/web/20250529050934/https://media.defense.gov/2020/Jan/22/2002237484/-1/-1/0/CSI-MITIGATING-CLOUD-VULNERABILITIES_20200121.PDF)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“This[39m[38;5;12m [39m[38;5;12mdocument[39m[38;5;12m [39m[38;5;12mdivides[39m[38;5;12m [39m[38;5;12mcloud[39m[38;5;12m [39m[38;5;12mvulnerabilities[39m[38;5;12m [39m[38;5;12minto[39m[38;5;12m [39m[38;5;12mfour[39m[38;5;12m [39m
|
||
[38;5;12mclasses[39m[38;5;12m [39m[38;5;12m(misconfiguration,[39m[38;5;12m [39m[38;5;12mpoor[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mcontrol,[39m[38;5;12m [39m[38;5;12mshared[39m[38;5;12m [39m[38;5;12mtenancy[39m[38;5;12m [39m[38;5;12mvulnerabilities,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msupply[39m[38;5;12m [39m[38;5;12mchain[39m[38;5;12m [39m[38;5;12mvulnerabilities)”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCartography[0m[38;5;12m (https://github.com/lyft/cartography) - A Neo4J-based tool to map out dependencies and relationships between services and resources. Supports AWS, GCP, GSuite, Okta and GitHub.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOpen guide to AWS Security and IAM[0m[38;5;12m (https://github.com/open-guides/og-aws#security-and-iam)[39m
|
||
|
||
[38;2;255;187;0m[4mAccount Management[0m
|
||
|
||
[38;5;12mThe foundation of IAM: the definition and life-cycle of users, groups, roles and permissions.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAs[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1muser,[0m[38;5;14m[1m [0m[38;5;14m[1mI[0m[38;5;14m[1m [0m[38;5;14m[1mwant…[0m[38;5;12m [39m[38;5;12m(https://mobile.twitter.com/oktopushup/status/1030457418206068736)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mmeta-critic[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12maccount[39m[38;5;12m [39m[38;5;12mmanagement,[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mexpected[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbusiness[39m[38;5;12m [39m[38;5;12mclash[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mreal[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mneeds,[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mform[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mstories[39m[38;5;12m [39m[38;5;12mwritten[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m
|
||
[38;5;12mfictional[39m[38;5;12m [39m[38;5;12mproject[39m[38;5;12m [39m[38;5;12mmanager.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThings[0m[38;5;14m[1m [0m[38;5;14m[1mend[0m[38;5;14m[1m [0m[38;5;14m[1musers[0m[38;5;14m[1m [0m[38;5;14m[1mcare[0m[38;5;14m[1m [0m[38;5;14m[1mabout[0m[38;5;14m[1m [0m[38;5;14m[1mbut[0m[38;5;14m[1m [0m[38;5;14m[1mprogrammers[0m[38;5;14m[1m [0m[38;5;14m[1mdon't[0m[38;5;12m [39m[38;5;12m(https://instadeq.com/blog/posts/things-end-users-care-about-but-programmers-dont/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mspirit[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mabove,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mbroader:[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlittle[39m[38;5;12m [39m[38;5;12mthings[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12moverlook[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mdevelopers[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mreally[39m[38;5;12m [39m
|
||
[38;5;12mcare[39m[38;5;12m [39m[38;5;12mabout.[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtop[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mlies[39m[38;5;12m [39m[38;5;12maccount-centric[39m[38;5;12m [39m[38;5;12mfeatures,[39m[38;5;12m [39m[38;5;12mdiverse[39m[38;5;12m [39m[38;5;12mintegration[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mimport/export[39m[38;5;12m [39m[38;5;12mtools.[39m[38;5;12m [39m[38;5;12mI.e.[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12menterprise[39m[38;5;12m [39m[38;5;12mcustomers[39m[38;5;12m [39m[38;5;12mneeds[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcover.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSeparate the account, user and login/auth details[0m[38;5;12m (https://news.ycombinator.com/item?id=21151830) - Sound advice to lay down the foundation of a future-proof IAM API.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mIdentity Beyond Usernames[0m[38;5;12m (https://lord.io/blog/2020/usernames/) - On the concept of usernames as identifiers, and the complexities introduced when unicode characters meets uniqueness requirements.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKratos[0m[38;5;12m (https://github.com/ory/kratos) - User login, user registration, 2FA and profile management.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mConjur[0m[38;5;12m (https://github.com/cyberark/conjur) - Automatically secures secrets used by privileged users and machine identities.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSuperTokens[0m[38;5;12m (https://github.com/supertokens/supertokens-core) - Open-source project for login and session management which supports passwordless, social login, email and phone logins.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mUserFrosting[0m[38;5;12m (https://github.com/userfrosting/UserFrosting) - Modern PHP user login and management framework.[39m
|
||
|
||
[38;2;255;187;0m[4mCryptography[0m
|
||
|
||
[38;5;12mThe whole authentication stack is based on cryptography primitives. This can't be overlooked.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCryptographic[0m[38;5;14m[1m [0m[38;5;14m[1mRight[0m[38;5;14m[1m [0m[38;5;14m[1mAnswers[0m[38;5;12m [39m[38;5;12m(https://latacora.micro.blog/2018/04/03/cryptographic-right-answers.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdate[39m[38;5;12m [39m[38;5;12mset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mrecommendations[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdevelopers[39m[38;5;12m [39m[38;5;12mwho[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mcryptography[39m[38;5;12m [39m[38;5;12mengineers.[39m[38;5;12m [39m[38;5;12mThere's[39m[38;5;12m [39m[38;5;12meven[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;14m[1mshorter[0m[38;5;14m[1m [0m[38;5;14m[1msummary[0m[38;5;12m [39m
|
||
[38;5;12m(https://news.ycombinator.com/item?id=16749140)[39m[38;5;12m [39m[38;5;12mavailable.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mReal World Crypto Symposium[0m[38;5;12m (https://rwc.iacr.org) - Aims to bring together cryptography researchers with developers, focusing on uses in real-world environments such as the Internet, the cloud, and embedded devices.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAn[0m[38;5;14m[1m [0m[38;5;14m[1mOverview[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mCryptography[0m[38;5;12m [39m[38;5;12m(https://www.garykessler.net/library/crypto.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“This[39m[38;5;12m [39m[38;5;12mpaper[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mtwo[39m[38;5;12m [39m[38;5;12mmajor[39m[38;5;12m [39m[38;5;12mpurposes.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdefine[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mterms[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mconcepts[39m[38;5;12m [39m[38;5;12mbehind[39m[38;5;12m [39m[38;5;12mbasic[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mmethods,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12moffer[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcompare[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||
[38;5;12mmyriad[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mschemes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mtoday.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12msecond[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mreal[39m[38;5;12m [39m[38;5;12mexamples[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcryptography[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mtoday.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPapers we love: Cryptography[0m[38;5;12m (https://github.com/papers-we-love/papers-we-love/blob/master/cryptography/README.md) - Foundational papers of cryptography.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mLifetimes[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mcryptographic[0m[38;5;14m[1m [0m[38;5;14m[1mhash[0m[38;5;14m[1m [0m[38;5;14m[1mfunctions[0m[38;5;12m [39m[38;5;12m(http://valerieaurora.org/hash.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“If[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mcompare-by-hash[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mgenerate[39m[38;5;12m [39m[38;5;12maddresses[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12msupplied[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mmalicious[39m[38;5;12m [39m[38;5;12musers,[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mplan[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmigrate[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mnew[39m[38;5;12m [39m[38;5;12mhash[39m[38;5;12m [39m[38;5;12mevery[39m[38;5;12m [39m[38;5;12mfew[39m
|
||
[38;5;12myears”.[39m
|
||
|
||
[38;2;255;187;0m[4mIdentifiers[0m
|
||
|
||
[38;5;12mTokens, primary keys, UUIDs, … Whatever the end use, you'll have to generate these numbers with some randomness and uniqueness properties.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSecurity[0m[38;5;14m[1m [0m[38;5;14m[1mRecommendations[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mAny[0m[38;5;14m[1m [0m[38;5;14m[1mDevice[0m[38;5;14m[1m [0m[38;5;14m[1mthat[0m[38;5;14m[1m [0m[38;5;14m[1mDepends[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mRandomly-Generated[0m[38;5;14m[1m [0m[38;5;14m[1mNumbers[0m[38;5;12m [39m[38;5;12m(https://www.av8n.com/computer/htm/secure-random.htm)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“The[39m[38;5;12m [39m[38;5;12mphrase[39m[38;5;12m [39m[38;5;12m‘random[39m[38;5;12m [39m[38;5;12mnumber[39m[38;5;12m [39m[38;5;12mgenerator’[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mparsed[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mfollows:[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mrandom[39m[38;5;12m [39m[38;5;12mgenerator[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mnumbers.[39m[38;5;12m [39m
|
||
[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgenerator[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mrandom[39m[38;5;12m [39m[38;5;12mnumbers.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mRFC[0m[38;5;14m[1m [0m[38;5;14m[1m#4122:[0m[38;5;14m[1m [0m[38;5;14m[1mUUID[0m[38;5;14m[1m [0m[38;5;14m[1m-[0m[38;5;14m[1m [0m[38;5;14m[1mSecurity[0m[38;5;14m[1m [0m[38;5;14m[1mConsiderations[0m[38;5;12m [39m[38;5;12m(https://www.rfc-editor.org/rfc/rfc4122#section-6)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Do[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12massume[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mUUIDs[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mhard[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mguess;[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mcapabilities[39m[38;5;12m [39m[38;5;12m(identifiers[39m[38;5;12m [39m[38;5;12mwhose[39m[38;5;12m [39m[38;5;12mmere[39m[38;5;12m [39m[38;5;12mpossession[39m[38;5;12m [39m[38;5;12mgrants[39m[38;5;12m [39m[38;5;12maccess)”.[39m[38;5;12m [39m
|
||
[38;5;12mUUIDs[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12munique,[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mrandom[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12munpredictable:[39m[38;5;12m [39m[38;5;12mdo[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mUUIDs[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msecret.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome Identifiers[0m[38;5;12m (https://adileo.github.io/awesome-identifiers/) - A benchmark of all identifier formats.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome GUID[0m[38;5;12m (https://github.com/secretGeek/AwesomeGUID) - Funny take on the global aspect of unique identifiers.[39m
|
||
|
||
[38;2;255;187;0m[4mZero-trust Network[0m
|
||
|
||
[38;5;12mZero trust network security operates under the principle “never trust, always verify”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBeyondCorp: A New Approach to Enterprise Security[0m[38;5;12m (https://www.usenix.org/system/files/login/articles/login_dec14_02_ward.pdf) - Quick overview of Google's Zero-trust Network initiative.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhat[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mBeyondCorp?[0m[38;5;14m[1m [0m[38;5;14m[1mWhat[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mIdentity-Aware[0m[38;5;14m[1m [0m[38;5;14m[1mProxy?[0m[38;5;12m [39m[38;5;12m(https://medium.com/google-cloud/what-is-beyondcorp-what-is-identity-aware-proxy-de525d9b3f90)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mMore[39m[38;5;12m [39m[38;5;12mcompanies[39m[38;5;12m [39m[38;5;12madd[39m[38;5;12m [39m[38;5;12mextra[39m[38;5;12m [39m[38;5;12mlayers[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mVPNs,[39m[38;5;12m [39m[38;5;12mfirewalls,[39m[38;5;12m [39m[38;5;12mrestrictions[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mconstraints,[39m[38;5;12m [39m[38;5;12mresulting[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m
|
||
[38;5;12mterrible[39m[38;5;12m [39m[38;5;12mexperience[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mslight[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mgain.[39m[38;5;12m [39m[38;5;12mThere's[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbetter[39m[38;5;12m [39m[38;5;12mway.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1moathkeeper[0m[38;5;12m (https://github.com/ory/oathkeeper) - Identity & Access Proxy and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP requests. Inspired by the BeyondCorp / Zero Trust white paper.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mtranscend[0m[38;5;12m (https://github.com/cogolabs/transcend) - BeyondCorp-inspired Access Proxy server.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPomerium[0m[38;5;12m (https://github.com/pomerium/pomerium) - An identity-aware proxy that enables secure access to internal applications.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mheimdall[0m[38;5;12m (https://github.com/dadrus/heimdall) - A cloud-native, identity-aware proxy and policy enforcement point that orchestrates authentication and authorization systems via versatile rules, supporting protocol-agnostic identity propagation.[39m
|
||
|
||
[38;2;255;187;0m[4mAuthentication[0m
|
||
|
||
[38;5;12mProtocols and technologies to verify that you are who you pretend to be.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAPI Tokens: A Tedious Survey[0m[38;5;12m (https://fly.io/blog/api-tokens-a-tedious-survey/) - An overview and comparison of all token-based authentication schemes for end-user APIs.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mA Child's Garden of Inter-Service Authentication Schemes[0m[38;5;12m (https://web.archive.org/web/20200507173734/https://latacora.micro.blog/a-childs-garden/) - In the same spirit as above, but this time at the service level.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mScaling[0m[38;5;14m[1m [0m[38;5;14m[1mbackend[0m[38;5;14m[1m [0m[38;5;14m[1mauthentication[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mFacebook[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=kY-Bkv3qxMc)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mHow-to[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mnutshell:[39m[38;5;12m [39m[38;5;12m1.[39m[38;5;12m [39m[38;5;12mSmall[39m[38;5;12m [39m[38;5;12mroot[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtrust;[39m[38;5;12m [39m[38;5;12m2.[39m[38;5;12m [39m[38;5;12mTLS[39m[38;5;12m [39m[38;5;12misn't[39m[38;5;12m [39m[38;5;12menough;[39m[38;5;12m [39m[38;5;12m3.[39m[38;5;12m [39m[38;5;12mCertificate-based[39m[38;5;12m [39m[38;5;12mtokens;[39m[38;5;12m [39m[38;5;12m4.[39m[38;5;12m [39m[38;5;12mCrypto[39m[38;5;12m [39m[38;5;12mAuth[39m[38;5;12m [39m[38;5;12mTokens[39m[38;5;12m [39m[38;5;12m(CATs).[39m[38;5;12m [39m[38;5;12mSee[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mslides[0m[38;5;12m [39m
|
||
[38;5;12m(https://rwc.iacr.org/2018/Slides/Lewi.pdf)[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mdetails.[39m
|
||
|
||
[38;2;255;187;0m[4mPassword-based auth[0m
|
||
|
||
[38;5;12mThe oldest scheme for auth.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mnew[0m[38;5;14m[1m [0m[38;5;14m[1mNIST[0m[38;5;14m[1m [0m[38;5;14m[1mpassword[0m[38;5;14m[1m [0m[38;5;14m[1mguidance[0m[38;5;12m [39m[38;5;12m(https://pciguru.wordpress.com/2019/03/11/the-new-nist-password-guidance/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12msummary[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;14m[1mNIST[0m[38;5;14m[1m [0m[38;5;14m[1mSpecial[0m[38;5;14m[1m [0m[38;5;14m[1mPublication[0m[38;5;14m[1m [0m[38;5;14m[1m800-63B[0m[38;5;12m [39m[38;5;12m(https://pages.nist.gov/800-63-3/sp800-63b.html)[39m[38;5;12m [39m[38;5;12mcovering[39m[38;5;12m [39m[38;5;12mnew[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m[38;5;12mcomplexity[39m[38;5;12m [39m
|
||
[38;5;12mguidelines.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPassword Storage Cheat Sheet[0m[38;5;12m (https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) - The only way to slow down offline attacks is by carefully choosing hash algorithms that are as resource intensive as possible.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPassword[0m[38;5;14m[1m [0m[38;5;14m[1mexpiration[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mdead[0m[38;5;12m [39m[38;5;12m(https://techcrunch.com/2019/06/02/password-expiration-is-dead-long-live-your-passwords/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mRecent[39m[38;5;12m [39m[38;5;12mscientific[39m[38;5;12m [39m[38;5;12mresearch[39m[38;5;12m [39m[38;5;12mcalls[39m[38;5;12m [39m[38;5;12minto[39m[38;5;12m [39m[38;5;12mquestion[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mvalue[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mlong-standing[39m[38;5;12m [39m[38;5;12mpassword-security[39m[38;5;12m [39m[38;5;12mpractices[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m
|
||
[38;5;12mexpiration[39m[38;5;12m [39m[38;5;12mpolicies,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpoints[39m[38;5;12m [39m[38;5;12minstead[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbetter[39m[38;5;12m [39m[38;5;12malternatives[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12menforcing[39m[38;5;12m [39m[38;5;12mbanned-password[39m[38;5;12m [39m[38;5;12mlists[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mMFA.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPractical[0m[38;5;14m[1m [0m[38;5;14m[1mRecommendations[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mStronger,[0m[38;5;14m[1m [0m[38;5;14m[1mMore[0m[38;5;14m[1m [0m[38;5;14m[1mUsable[0m[38;5;14m[1m [0m[38;5;14m[1mPasswords[0m[38;5;12m [39m[38;5;12m(http://www.andrew.cmu.edu/user/nicolasc/publications/Tan-CCS20.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mstudy[39m[38;5;12m [39m[38;5;12mrecommend[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12massociation[39m[38;5;12m [39m[38;5;12mof:[39m[38;5;12m [39m[38;5;12mblocklist[39m[38;5;12m [39m[38;5;12mchecks[39m[38;5;12m [39m[38;5;12magainst[39m[38;5;12m [39m[38;5;12mcommonly[39m[38;5;12m [39m[38;5;12mleaked[39m[38;5;12m [39m[38;5;12mpasswords,[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m[38;5;12mpolicies[39m[38;5;12m [39m
|
||
[38;5;12mwithout[39m[38;5;12m [39m[38;5;12mcharacter-class[39m[38;5;12m [39m[38;5;12mrequirements,[39m[38;5;12m [39m[38;5;12mminimum-strength[39m[38;5;12m [39m[38;5;12mpolicies.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBanks,[0m[38;5;14m[1m [0m[38;5;14m[1mArbitrary[0m[38;5;14m[1m [0m[38;5;14m[1mPassword[0m[38;5;14m[1m [0m[38;5;14m[1mRestrictions[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mWhy[0m[38;5;14m[1m [0m[38;5;14m[1mThey[0m[38;5;14m[1m [0m[38;5;14m[1mDon't[0m[38;5;14m[1m [0m[38;5;14m[1mMatter[0m[38;5;12m [39m[38;5;12m(https://www.troyhunt.com/banks-arbitrary-password-restrictions-and-why-they-dont-matter/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Arbitrary[39m[38;5;12m [39m[38;5;12mlow[39m[38;5;12m [39m[38;5;12mlimits[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mlength[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcharacter[39m[38;5;12m [39m[38;5;12mcomposition[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mbad.[39m[38;5;12m [39m[38;5;12mThey[39m[38;5;12m [39m[38;5;12mlook[39m[38;5;12m [39m[38;5;12mbad,[39m[38;5;12m [39m[38;5;12mthey[39m
|
||
[38;5;12mlead[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mnegative[39m[38;5;12m [39m[38;5;12mspeculation[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mposture[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mbreak[39m[38;5;12m [39m[38;5;12mtools[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m[38;5;12mmanagers.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mDumb Password Rules[0m[38;5;12m (https://github.com/dumb-password-rules/dumb-password-rules) - Shaming sites with dumb password rules.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPlain Text Offenders[0m[38;5;12m (https://plaintextoffenders.com/about/) - Public shaming of websites storing passwords in plain text.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPassword Manager Resources[0m[38;5;12m (https://github.com/apple/password-manager-resources) - A collection of password rules, change URLs and quirks by sites.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mA Well-Known URL for Changing Passwords[0m[38;5;12m (https://github.com/WICG/change-password-url) - Specification defining site resource for password updates.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mchange[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mhashing[0m[38;5;14m[1m [0m[38;5;14m[1mscheme[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1malready[0m[38;5;14m[1m [0m[38;5;14m[1mhashed[0m[38;5;14m[1m [0m[38;5;14m[1muser's[0m[38;5;14m[1m [0m[38;5;14m[1mpasswords[0m[38;5;12m [39m[38;5;12m(https://news.ycombinator.com/item?id=20109360)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mGood[39m[38;5;12m [39m[38;5;12mnews:[39m[38;5;12m [39m[38;5;12myou're[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mstuck[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlegacy[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m[38;5;12msaving[39m[38;5;12m [39m[38;5;12mscheme.[39m[38;5;12m [39m[38;5;12mHere[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtrick[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mtransparently[39m[38;5;12m [39m[38;5;12mupgrade[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mstronger[39m[38;5;12m [39m[38;5;12mhashing[39m
|
||
[38;5;12malgorithm.[39m
|
||
|
||
[38;2;255;187;0m[4mMulti-factor auth[0m
|
||
|
||
[38;5;12mBuilding upon password-only auth, users are requested in these schemes to present two or more pieces of evidence (or factors).[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBreaking[0m[38;5;14m[1m [0m[38;5;14m[1mPassword[0m[38;5;14m[1m [0m[38;5;14m[1mDependencies:[0m[38;5;14m[1m [0m[38;5;14m[1mChallenges[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mFinal[0m[38;5;14m[1m [0m[38;5;14m[1mMile[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mMicrosoft[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=B_mhJO2qHlQ)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mprimary[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12maccount[39m[38;5;12m [39m[38;5;12mhacks[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m[38;5;12mspraying[39m[38;5;12m [39m[38;5;12m(on[39m[38;5;12m [39m[38;5;12mlegacy[39m[38;5;12m [39m[38;5;12mauth[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mSMTP,[39m[38;5;12m [39m[38;5;12mIMAP,[39m[38;5;12m [39m[38;5;12mPOP,[39m[38;5;12m [39m[38;5;12metc.),[39m[38;5;12m [39m[38;5;12msecond[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mreplay[39m[38;5;12m [39m
|
||
[38;5;12mattack.[39m[38;5;12m [39m[38;5;12mTakeaway:[39m[38;5;12m [39m[38;5;12mpassword[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12minsecure,[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12menforce[39m[38;5;12m [39m[38;5;12mMFA.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBeyond Passwords: 2FA, U2F and Google Advanced Protection[0m[38;5;12m (https://www.troyhunt.com/beyond-passwords-2fa-u2f-and-google-advanced-protection/) - An excellent walk-trough over all these technologies.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mComparative[0m[38;5;14m[1m [0m[38;5;14m[1mLong-Term[0m[38;5;14m[1m [0m[38;5;14m[1mStudy[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mFallback[0m[38;5;14m[1m [0m[38;5;14m[1mAuthentication[0m[38;5;12m [39m[38;5;12m(https://maximiliangolla.com/files/2019/papers/usec2019-30-wip-fallback-long-term-study-finalv5.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mKey[39m[38;5;12m [39m[38;5;12mtake-away:[39m[38;5;12m [39m[38;5;12m“schemes[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mSMS[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12musable.[39m[38;5;12m [39m[38;5;12mMechanisms[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m
|
||
[38;5;12mdesignated[39m[38;5;12m [39m[38;5;12mtrustees[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpersonal[39m[38;5;12m [39m[38;5;12mknowledge[39m[38;5;12m [39m[38;5;12mquestions,[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mhand,[39m[38;5;12m [39m[38;5;12mfall[39m[38;5;12m [39m[38;5;12mshort,[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mterms[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mconvenience[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mefficiency.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSecrets,[0m[38;5;14m[1m [0m[38;5;14m[1mLies,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mAccount[0m[38;5;14m[1m [0m[38;5;14m[1mRecovery:[0m[38;5;14m[1m [0m[38;5;14m[1mLessons[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mUse[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mPersonal[0m[38;5;14m[1m [0m[38;5;14m[1mKnowledge[0m[38;5;14m[1m [0m[38;5;14m[1mQuestions[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mGoogle[0m[38;5;12m [39m[38;5;12m(https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/43783.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Our[39m[38;5;12m [39m[38;5;12manalysis[39m[38;5;12m [39m[38;5;12mconfirms[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12msecret[39m[38;5;12m [39m[38;5;12mquestions[39m[38;5;12m [39m
|
||
[38;5;12mgenerally[39m[38;5;12m [39m[38;5;12moffer[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mlevel[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mfar[39m[38;5;12m [39m[38;5;12mlower[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12muser-chosen[39m[38;5;12m [39m[38;5;12mpasswords.[39m[38;5;12m [39m[38;5;12m(…)[39m[38;5;12m [39m[38;5;12mSurprisingly,[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mfound[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msignificant[39m[38;5;12m [39m[38;5;12mcause[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12minsecurity[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12moften[39m[38;5;12m [39m[38;5;12mdon't[39m[38;5;12m [39m[38;5;12manswer[39m[38;5;12m [39m[38;5;12mtruthfully.[39m[38;5;12m [39m[38;5;12m(…)[39m[38;5;12m [39m[38;5;12mOn[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12musability[39m[38;5;12m [39m[38;5;12mside,[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mshow[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12msecret[39m[38;5;12m [39m
|
||
[38;5;12manswers[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12msurprisingly[39m[38;5;12m [39m[38;5;12mpoor[39m[38;5;12m [39m[38;5;12mmemorability”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHow effective is basic account hygiene at preventing hijacking[0m[38;5;12m (https://security.googleblog.com/2019/05/new-research-how-effective-is-basic.html) - Google security team's data shows 2FA blocks 100% of automated bot hacks.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mYour[0m[38;5;14m[1m [0m[38;5;14m[1mPa\$\$word[0m[38;5;14m[1m [0m[38;5;14m[1mdoesn't[0m[38;5;14m[1m [0m[38;5;14m[1mmatter[0m[38;5;12m [39m[38;5;12m(https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Your-Pa-word-doesn-t-matter/ba-p/731984)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mSame[39m[38;5;12m [39m[38;5;12mconclusion[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mabove[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mMicrosoft:[39m[38;5;12m [39m[38;5;12m“Based[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mour[39m[38;5;12m [39m[38;5;12mstudies,[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12maccount[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12m99.9%[39m[38;5;12m [39m
|
||
[38;5;12mless[39m[38;5;12m [39m[38;5;12mlikely[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mcompromised[39m[38;5;12m [39m[38;5;12mif[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mMFA.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAttacking Google Authenticator[0m[38;5;12m (https://unix-ninja.com/p/attacking_google_authenticator) - Probably on the verge of paranoia, but might be a reason to rate limit 2FA validation attempts.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCompromising[0m[38;5;14m[1m [0m[38;5;14m[1monline[0m[38;5;14m[1m [0m[38;5;14m[1maccounts[0m[38;5;14m[1m [0m[38;5;14m[1mby[0m[38;5;14m[1m [0m[38;5;14m[1mcracking[0m[38;5;14m[1m [0m[38;5;14m[1mvoicemail[0m[38;5;14m[1m [0m[38;5;14m[1msystems[0m[38;5;12m [39m[38;5;12m(https://www.martinvigo.com/voicemailcracker/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mOr[39m[38;5;12m [39m[38;5;12mwhy[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mrely[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mautomated[39m[38;5;12m [39m[38;5;12mphone[39m[38;5;12m [39m[38;5;12mcalls[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmethod[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mreach[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mreset[39m[38;5;12m [39m[38;5;12mpasswords,[39m[38;5;12m [39m[38;5;12m2FA[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mkind[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m
|
||
[38;5;12mverification.[39m[38;5;12m [39m[38;5;12mNot[39m[38;5;12m [39m[38;5;12munlike[39m[38;5;12m [39m[38;5;12mSMS-based[39m[38;5;12m [39m[38;5;12m2FA,[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mcurrently[39m[38;5;12m [39m[38;5;12minsecure[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mcompromised[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mweakest[39m[38;5;12m [39m[38;5;12mlink:[39m[38;5;12m [39m[38;5;12mvoicemail[39m[38;5;12m [39m[38;5;12msystems.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGetting 2FA Right in 2019[0m[38;5;12m (https://blog.trailofbits.com/2019/06/20/getting-2fa-right-in-2019/) - On the UX aspects of 2FA.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1m2FA is missing a key feature[0m[38;5;12m (https://syslog.ravelin.com/2fa-is-missing-a-key-feature-c781c3861db) - “When my 2FA code is entered incorrectly I'd like to know about it”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSMS Multifactor Authentication in Antarctica[0m[38;5;12m (https://brr.fyi/posts/sms-mfa) - Doesn't work because there are no cellphone towers at stations in Antarctica.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAuthelia[0m[38;5;12m (https://github.com/authelia/authelia) - Open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKanidm[0m[38;5;12m (https://github.com/kanidm/kanidm) - Simple, secure and fast identity management platform.[39m
|
||
|
||
[38;2;255;187;0m[4mSMS-based[0m
|
||
|
||
[38;5;12mTL;DR: don't. For details, see articles below.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSMS 2FA auth is deprecated by NIST[0m[38;5;12m (https://techcrunch.com/2016/07/25/nist-declares-the-age-of-sms-based-2-factor-authentication-over/) - NIST has said that 2FA via SMS is bad and awful since 2016.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSMS: The most popular and least secure 2FA method[0m[38;5;12m (https://www.allthingsauth.com/2018/02/27/sms-the-most-popular-and-least-secure-2fa-method/)[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mIs SMS 2FA Secure? No.[0m[38;5;12m (https://www.issms2fasecure.com) - Definitive research project demonstrating successful attempts at SIM swapping.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHackers Hit Twitter C.E.O. Jack Dorsey in a 'SIM Swap.' You're at Risk, Too.[0m[38;5;12m (https://archive.ph/AhNAI)[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAT&T rep handed control of his cellphone account to a hacker[0m[38;5;12m (https://www.theregister.co.uk/2017/07/10/att_falls_for_hacker_tricks/)[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe Most Expensive Lesson Of My Life: Details of SIM port hack[0m[38;5;12m (https://medium.com/coinmonks/the-most-expensive-lesson-of-my-life-details-of-sim-port-hack-35de11517124)[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSIM swap horror story[0m[38;5;12m (https://www.zdnet.com/article/sim-swap-horror-story-ive-lost-decades-of-data-and-google-wont-lift-a-finger/)[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAWS[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mits[0m[38;5;14m[1m [0m[38;5;14m[1mway[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mdeprecate[0m[38;5;14m[1m [0m[38;5;14m[1mSMS-based[0m[38;5;14m[1m [0m[38;5;14m[1m2FA[0m[38;5;12m [39m[38;5;12m(https://aws.amazon.com/iam/details/mfa/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“We[39m[38;5;12m [39m[38;5;12mencourage[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mMFA[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mU2F[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mkey,[39m[38;5;12m [39m[38;5;12mhardware[39m[38;5;12m [39m[38;5;12mdevice,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mvirtual[39m[38;5;12m [39m[38;5;12m(software-based)[39m[38;5;12m [39m[38;5;12mMFA[39m[38;5;12m [39m[38;5;12mdevice.[39m[38;5;12m [39m[38;5;12mYou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mcontinue[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mfeature[39m[38;5;12m [39m[38;5;12muntil[39m
|
||
[38;5;12mJanuary[39m[38;5;12m [39m[38;5;12m31,[39m[38;5;12m [39m[38;5;12m2019.”[39m
|
||
|
||
[38;2;255;187;0m[4mPassword-less auth[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAn argument for passwordless[0m[38;5;12m (https://web.archive.org/web/20190515230752/https://biarity.gitlab.io/2018/02/23/passwordless/) - Passwords are not the be-all and end-all of user authentication. This article tries to tell you why.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mMagic Links – Are they Actually Outdated?[0m[38;5;12m (https://zitadel.com/blog/magic-links) - What are magic links, their origin, pros and cons.[39m
|
||
|
||
[38;2;255;187;0m[4mWebAuthn[0m
|
||
|
||
[38;5;12mPart of the [39m[38;5;14m[1mFIDO2 project[0m[38;5;12m (https://en.wikipedia.org/wiki/FIDO_Alliance#FIDO2), and also known under the user-friendly name of [39m[48;2;30;30;40m[38;5;13m[3mpasskeys[0m[38;5;12m.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mWebAuthn guide[0m[38;5;12m (https://webauthn.guide) - Introduce WebAuthn as a standard supported by all major browsers, and allowing “servers to register and authenticate users using public key cryptography instead of a password”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mClearing up some misconceptions about Passkeys[0m[38;5;12m (https://www.stavros.io/posts/clearing-up-some-passkeys-misconceptions/) - Or why passkeys are not worse than passwords.[39m
|
||
|
||
[38;2;255;187;0m[4mSecurity key[0m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWebauthn[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1msecurity[0m[38;5;14m[1m [0m[38;5;14m[1mkeys[0m[38;5;12m [39m[38;5;12m(https://www.imperialviolet.org/2018/03/27/webauthn.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mDescribe[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mauthentication[39m[38;5;12m [39m[38;5;12mworks[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mkeys,[39m[38;5;12m [39m[38;5;12mdetails[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mprotocols,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12marticulates[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mWebAuthn.[39m[38;5;12m [39m[38;5;12mKey[39m[38;5;12m [39m[38;5;12mtakeaway:[39m[38;5;12m [39m[38;5;12m“There[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mno[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m
|
||
[38;5;12ma[39m[38;5;12m [39m[38;5;12mU2F[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mwebauthn[39m[38;5;12m [39m[38;5;12mhowever.[39m[38;5;12m [39m[38;5;12m(…)[39m[38;5;12m [39m[38;5;12mSo[39m[38;5;12m [39m[38;5;12mcomplete[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtransition[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwebauthn[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12mprocess[39m[38;5;12m [39m[38;5;12mfirst,[39m[38;5;12m [39m[38;5;12mthen[39m[38;5;12m [39m[38;5;12mtransition[39m[38;5;12m [39m[38;5;12mregistration.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGetting started with security keys[0m[38;5;12m (https://paulstamatiou.com/getting-started-with-security-keys/) - A practical guide to stay safe online and prevent phishing with FIDO2, WebAuthn and security keys.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSolo[0m[38;5;12m (https://github.com/solokeys/solo) - Open security key supporting FIDO2 & U2F over USB + NFC.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOpenSK[0m[38;5;12m (https://github.com/google/OpenSK) - Open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mYubiKey[0m[38;5;14m[1m [0m[38;5;14m[1mGuide[0m[38;5;12m [39m[38;5;12m(https://github.com/drduh/YubiKey-Guide)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mGuide[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mYubiKey[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mSmartCard[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mstoring[39m[38;5;12m [39m[38;5;12mGPG[39m[38;5;12m [39m[38;5;12mencryption,[39m[38;5;12m [39m[38;5;12msigning[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mauthentication[39m[38;5;12m [39m[38;5;12mkeys,[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mSSH.[39m[38;5;12m [39m[38;5;12mMany[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mprinciples[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mdocument[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mapplicable[39m[38;5;12m [39m
|
||
[38;5;12mto[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12msmart[39m[38;5;12m [39m[38;5;12mcard[39m[38;5;12m [39m[38;5;12mdevices.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mYubiKey at Datadog[0m[38;5;12m (https://github.com/DataDog/yubikey) - Guide to setup Yubikey, U2F, GPG, git, SSH, Keybase, VMware Fusion and Docker Content Trust.[39m
|
||
|
||
[38;2;255;187;0m[4mPublic-Key Infrastructure (PKI)[0m
|
||
|
||
[38;5;12mCertificate-based authentication.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPKI for busy people[0m[38;5;12m (https://gist.github.com/hoffa/5a939fd0f3bcd2a6a0e4754cb2cf3f1b) - Quick overview of the important stuff.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mEverything you should know about certificates and PKI but are too afraid to ask[0m[38;5;12m (https://smallstep.com/blog/everything-pki.html) - PKI lets you define a system cryptographically. It's universal and vendor neutral.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mlemur[0m[38;5;12m (https://github.com/Netflix/lemur) - Acts as a broker between CAs and environments, providing a central portal for developers to issue TLS certificates with 'sane' defaults.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCFSSL[0m[38;5;12m (https://github.com/cloudflare/cfssl) - A swiss army knife for PKI/TLS by CloudFlare. Command line tool and an HTTP API server for signing, verifying, and bundling TLS certificates.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mJA3[0m[38;5;12m (https://github.com/salesforce/ja3) - Method for creating SSL/TLS client fingerprints that should be easy to produce on any platform and can be easily shared for threat intelligence.[39m
|
||
|
||
[38;2;255;187;0m[4mJWT[0m
|
||
|
||
[38;5;14m[1mJSON Web Token[0m[38;5;12m (https://en.wikipedia.org/wiki/JSON_Web_Token) is a bearer's token.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mIntroduction to JSON Web Tokens[0m[38;5;12m (https://jwt.io/introduction/) - Get up to speed on JWT with this article.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mLearn how to use JWT for Authentication[0m[38;5;12m (https://github.com/dwyl/learn-json-web-tokens) - Learn how to use JWT to secure your web app.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mUsing[0m[38;5;14m[1m [0m[38;5;14m[1mJSON[0m[38;5;14m[1m [0m[38;5;14m[1mWeb[0m[38;5;14m[1m [0m[38;5;14m[1mTokens[0m[38;5;14m[1m [0m[38;5;14m[1mas[0m[38;5;14m[1m [0m[38;5;14m[1mAPI[0m[38;5;14m[1m [0m[38;5;14m[1mKeys[0m[38;5;12m [39m[38;5;12m(https://auth0.com/blog/using-json-web-tokens-as-api-keys/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mCompared[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mAPI[39m[38;5;12m [39m[38;5;12mkeys,[39m[38;5;12m [39m[38;5;12mJWTs[39m[38;5;12m [39m[38;5;12moffers[39m[38;5;12m [39m[38;5;12mgranular[39m[38;5;12m [39m[38;5;12msecurity,[39m[38;5;12m [39m[38;5;12mhomogeneous[39m[38;5;12m [39m[38;5;12mauth[39m[38;5;12m [39m[38;5;12marchitecture,[39m[38;5;12m [39m[38;5;12mdecentralized[39m[38;5;12m [39m[38;5;12missuance,[39m[38;5;12m [39m[38;5;12mOAuth2[39m[38;5;12m [39m[38;5;12mcompliance,[39m[38;5;12m [39m[38;5;12mdebuggability,[39m[38;5;12m [39m
|
||
[38;5;12mexpiration[39m[38;5;12m [39m[38;5;12mcontrol,[39m[38;5;12m [39m[38;5;12mdevice[39m[38;5;12m [39m[38;5;12mmanagement.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHardcoded secrets, unverified tokens, and other common JWT mistakes[0m[38;5;12m (https://r2c.dev/blog/2020/hardcoded-secrets-unverified-tokens-and-other-common-jwt-mistakes/) - A good recap of all JWT pitfalls.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAdding JSON Web Token API Keys to a DenyList[0m[38;5;12m (https://auth0.com/blog/denylist-json-web-token-api-keys/) - On token invalidation.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mStop[0m[38;5;14m[1m [0m[38;5;14m[1musing[0m[38;5;14m[1m [0m[38;5;14m[1mJWT[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1msessions[0m[38;5;12m [39m[38;5;12m(http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAnd[39m[38;5;12m [39m[38;5;14m[1mwhy[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1m"solution"[0m[38;5;14m[1m [0m[38;5;14m[1mdoesn't[0m[38;5;14m[1m [0m[38;5;14m[1mwork[0m[38;5;12m [39m
|
||
[38;5;12m(http://cryto.net/%7Ejoepie91/blog/2016/06/19/stop-using-jwt-for-sessions-part-2-why-your-solution-doesnt-work/),[39m[38;5;12m [39m[38;5;12mbecause[39m[38;5;12m [39m[38;5;14m[1mstateless[0m[38;5;14m[1m [0m[38;5;14m[1mJWT[0m[38;5;14m[1m [0m[38;5;14m[1mtokens[0m[38;5;14m[1m [0m[38;5;14m[1mcannot[0m[38;5;14m[1m [0m[38;5;14m[1mbe[0m[38;5;14m[1m [0m[38;5;14m[1minvalidated[0m[38;5;14m[1m [0m[38;5;14m[1mor[0m[38;5;14m[1m [0m[38;5;14m[1mupdated[0m[38;5;12m [39m[38;5;12m(https://news.ycombinator.com/item?id=18354141).[39m[38;5;12m [39m[38;5;12mThey[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mintroduce[39m[38;5;12m [39m
|
||
[38;5;12meither[39m[38;5;12m [39m[38;5;12msize[39m[38;5;12m [39m[38;5;12missues[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12missues[39m[38;5;12m [39m[38;5;12mdepending[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mstore[39m[38;5;12m [39m[38;5;12mthem.[39m[38;5;12m [39m[38;5;12mStateful[39m[38;5;12m [39m[38;5;12mJWT[39m[38;5;12m [39m[38;5;12mtokens[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mfunctionally[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12msession[39m[38;5;12m [39m[38;5;12mcookies,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mwithout[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbattle-tested[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mwell-reviewed[39m[38;5;12m [39m[38;5;12mimplementations[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mclient[39m[38;5;12m [39m[38;5;12msupport.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mJWT,[0m[38;5;14m[1m [0m[38;5;14m[1mJWS[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mJWE[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mNot[0m[38;5;14m[1m [0m[38;5;14m[1mSo[0m[38;5;14m[1m [0m[38;5;14m[1mDummies![0m[38;5;12m [39m[38;5;12m(https://medium.facilelogin.com/jwt-jws-and-jwe-for-not-so-dummies-b63310d201a3)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12msigned[39m[38;5;12m [39m[38;5;12mJWT[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mknown[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mJWS[39m[38;5;12m [39m[38;5;12m(JSON[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mSignature).[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mfact[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mJWT[39m[38;5;12m [39m[38;5;12mdoes[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mexist[39m[38;5;12m [39m[38;5;12mitself[39m[38;5;12m [39m[38;5;12m—[39m[38;5;12m [39m[38;5;12meither[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mJWS[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m
|
||
[38;5;12mJWE[39m[38;5;12m [39m[38;5;12m(JSON[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mEncryption).[39m[38;5;12m [39m[38;5;12mIts[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mabstract[39m[38;5;12m [39m[38;5;12mclass[39m[38;5;12m [39m[38;5;12m—[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mJWS[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mJWE[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mconcrete[39m[38;5;12m [39m[38;5;12mimplementations.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mJOSE is a Bad Standard That Everyone Should Avoid[0m[38;5;12m (https://paragonie.com/blog/2017/03/jwt-json-web-tokens-is-bad-standard-that-everyone-should-avoid) - The standards are either completely broken or complex minefields hard to navigate.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mJWT.io[0m[38;5;12m (https://jwt.io) - Allows you to decode, verify and generate JWT.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[48;5;235m[38;5;249m[1mloginsrv[0m[38;5;12m [39m[38;5;12m(https://github.com/tarent/loginsrv)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mStandalone[39m[38;5;12m [39m[38;5;12mminimalistic[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12mserver[39m[38;5;12m [39m[38;5;12mproviding[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mJWT[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmultiple[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12mbackends[39m[38;5;12m [39m[38;5;12m(htpasswd,[39m[38;5;12m [39m[38;5;12mOSIAM,[39m[38;5;12m [39m[38;5;12muser/password,[39m[38;5;12m [39m[38;5;12mHTTP[39m[38;5;12m [39m[38;5;12mbasic[39m[38;5;12m [39m[38;5;12mauthentication,[39m[38;5;12m [39m[38;5;12mOAuth2:[39m[38;5;12m [39m[38;5;12mGitHub,[39m[38;5;12m [39m[38;5;12mGoogle,[39m[38;5;12m [39m[38;5;12mBitbucket,[39m[38;5;12m [39m[38;5;12mFacebook,[39m[38;5;12m [39m
|
||
[38;5;12mGitLab).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mjwtXploiter[0m[38;5;12m (https://github.com/DontPanicO/jwtXploiter) - A tool to test security of json web token.[39m
|
||
|
||
[38;2;255;187;0m[4mAuthorization[0m
|
||
|
||
[38;5;12mNow we know you are you. But are you allowed to do what you want to do?[39m
|
||
|
||
[38;5;12mPolicy specification is the science, enforcement is the art.[39m
|
||
|
||
[38;2;255;187;0m[4mPolicy models[0m
|
||
|
||
[38;5;12mAs[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mconcept,[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mcontrol[39m[38;5;12m [39m[38;5;12mpolicies[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfollow[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12marchetypes,[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mclassic[39m[38;5;12m [39m[38;5;14m[1mAccess[0m[38;5;14m[1m [0m[38;5;14m[1mControl[0m[38;5;14m[1m [0m[38;5;14m[1mLists[0m[38;5;12m [39m[38;5;12m(https://en.wikipedia.org/wiki/Access-control_list)[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mRole[39m[38;5;12m [39m[38;5;12mBased[39m[38;5;12m [39m[38;5;12mAccess[39m[38;5;12m [39m[38;5;12mControl.[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12msection[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mexplore[39m[38;5;12m [39m[38;5;12mlots[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m
|
||
[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mpatterns[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12marchitectures.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhy[0m[38;5;14m[1m [0m[38;5;14m[1mAuthorization[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mHard[0m[38;5;12m [39m[38;5;12m(https://www.osohq.com/post/why-authorization-is-hard)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mBecause[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mneeds[39m[38;5;12m [39m[38;5;12mmultiple[39m[38;5;12m [39m[38;5;12mtradeoffs[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mEnforcement[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mrequired[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mso[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mplaces,[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mDecision[39m[38;5;12m [39m[38;5;12marchitecture[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msplit[39m[38;5;12m [39m[38;5;12mbusiness[39m[38;5;12m [39m[38;5;12mlogic[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m
|
||
[38;5;12mlogic,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mModeling[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbalance[39m[38;5;12m [39m[38;5;12mpower[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcomplexity.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mnever-ending[0m[38;5;14m[1m [0m[38;5;14m[1mproduct[0m[38;5;14m[1m [0m[38;5;14m[1mrequirements[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1muser[0m[38;5;14m[1m [0m[38;5;14m[1mauthorization[0m[38;5;12m [39m[38;5;12m(https://alexolivier.me/posts/the-never-ending-product-requirements-of-user-authorization)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mHow[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msimple[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mmodel[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mroles[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12menough[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mgets[39m[38;5;12m [39m[38;5;12mcomplicated[39m[38;5;12m [39m[38;5;12mfast[39m[38;5;12m [39m[38;5;12mdue[39m
|
||
[38;5;12mto[39m[38;5;12m [39m[38;5;12mproduct[39m[38;5;12m [39m[38;5;12mpackaging,[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mlocality,[39m[38;5;12m [39m[38;5;12menterprise[39m[38;5;12m [39m[38;5;12morganizations[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcompliance.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mRBAC[0m[38;5;14m[1m [0m[38;5;14m[1mlike[0m[38;5;14m[1m [0m[38;5;14m[1mit[0m[38;5;14m[1m [0m[38;5;14m[1mwas[0m[38;5;14m[1m [0m[38;5;14m[1mmeant[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mbe[0m[38;5;12m [39m[38;5;12m(https://tailscale.com/blog/rbac-like-it-was-meant-to-be/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mHow[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mgot[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mDAC[39m[38;5;12m [39m[38;5;12m(unix[39m[38;5;12m [39m[38;5;12mpermissions,[39m[38;5;12m [39m[38;5;12msecret[39m[38;5;12m [39m[38;5;12mURL),[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mMAC[39m[38;5;12m [39m[38;5;12m(DRM,[39m[38;5;12m [39m[38;5;12mMFA,[39m[38;5;12m [39m[38;5;12m2FA,[39m[38;5;12m [39m[38;5;12mSELinux),[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mRBAC.[39m[38;5;12m [39m[38;5;12mDetails[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlatter[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mbetter[39m[38;5;12m [39m[38;5;12mmodeling[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m
|
||
[38;5;12mpolicies,[39m[38;5;12m [39m[38;5;12mACLs,[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mgroups.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe Case for Granular Permissions[0m[38;5;12m (https://cerbos.dev/blog/the-case-for-granular-permissions) - Discuss the limitations of RBAC and how ABAC (Attribute-Based Access Control) addresses them.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mIn[0m[38;5;14m[1m [0m[38;5;14m[1mSearch[0m[38;5;14m[1m [0m[38;5;14m[1mFor[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mPerfect[0m[38;5;14m[1m [0m[38;5;14m[1mAccess[0m[38;5;14m[1m [0m[38;5;14m[1mControl[0m[38;5;14m[1m [0m[38;5;14m[1mSystem[0m[38;5;12m [39m[38;5;12m(https://web.archive.org/web/20240421203937/https://goteleport.com/blog/access-controls/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mhistorical[39m[38;5;12m [39m[38;5;12morigins[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mschemes.[39m[38;5;12m [39m[38;5;12mHints[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfuture[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12msharing,[39m[38;5;12m [39m[38;5;12mtrust[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdelegation[39m[38;5;12m [39m
|
||
[38;5;12mbetween[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mteams[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12morganizations.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGCP's IAM syntax is better than AWS's[0m[38;5;12m (https://ucarion.com/iam-operation-syntax) - The minutiae of permission design in GCP improves the developer's experience.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSemantic-based[0m[38;5;14m[1m [0m[38;5;14m[1mAutomated[0m[38;5;14m[1m [0m[38;5;14m[1mReasoning[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mAWS[0m[38;5;14m[1m [0m[38;5;14m[1mAccess[0m[38;5;14m[1m [0m[38;5;14m[1mPolicies[0m[38;5;14m[1m [0m[38;5;14m[1musing[0m[38;5;14m[1m [0m[38;5;14m[1mSMT[0m[38;5;12m [39m[38;5;12m(https://d1.awsstatic.com/Security/pdfs/Semantic_Based_Automated_Reasoning_for_AWS_Access_Policies_Using_SMT.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mZelkova[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mAWS[39m[38;5;12m [39m[38;5;12mdoes[39m[38;5;12m [39m[38;5;12mit.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12mperform[39m[38;5;12m [39m[38;5;12msymbolic[39m[38;5;12m [39m
|
||
[38;5;12manalysis[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mpolicies,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msolve[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mreachability[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mresources[39m[38;5;12m [39m[38;5;12maccording[39m[38;5;12m [39m[38;5;12muser's[39m[38;5;12m [39m[38;5;12mrights[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mconstraints.[39m[38;5;12m [39m[38;5;12mAlso[39m[38;5;12m [39m[38;5;12msee[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhigher-level[39m[38;5;12m [39m[38;5;14m[1mintroduction[0m[38;5;14m[1m [0m[38;5;14m[1mgiven[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mre:inforce[0m[38;5;14m[1m [0m[38;5;14m[1m2019[0m[38;5;12m [39m[38;5;12m(https://youtu.be/x6wsTFnU3eY?t=2111).[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAuthorization[0m[38;5;14m[1m [0m[38;5;14m[1mAcademy[0m[38;5;12m [39m[38;5;12m(https://www.osohq.com/academy)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12min-depth,[39m[38;5;12m [39m[38;5;12mvendor-agnostic[39m[38;5;12m [39m[38;5;12mtreatment[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12memphasizes[39m[38;5;12m [39m[38;5;12mmental[39m[38;5;12m [39m[38;5;12mmodels.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mguide[39m[38;5;12m [39m[38;5;12mshows[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mreader[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthink[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mneeds[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12morder[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmake[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m
|
||
[38;5;12mdecisions[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12marchitecture[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmodel.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mService-to-service[0m[38;5;14m[1m [0m[38;5;14m[1mauthorization:[0m[38;5;14m[1m [0m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mguide[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mnon-user[0m[38;5;14m[1m [0m[38;5;14m[1mprincipals[0m[38;5;12m [39m[38;5;12m(https://www.cerbos.dev/blog/service-to-service-authorization)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mDiscover[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12massigning[39m[38;5;12m [39m[38;5;12midentities[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mservices[39m[38;5;12m [39m[38;5;12m(non-user[39m[38;5;12m [39m[38;5;12mprincipals)[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12msimplify[39m[38;5;12m [39m[38;5;12mauthentication,[39m[38;5;12m [39m[38;5;12menhance[39m[38;5;12m [39m[38;5;12msecurity,[39m
|
||
[38;5;12mand[39m[38;5;12m [39m[38;5;12mstreamline[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mdistributed[39m[38;5;12m [39m[38;5;12msystems.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12museful[39m[38;5;12m [39m[38;5;12mguide[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mteams[39m[38;5;12m [39m[38;5;12mmanaging[39m[38;5;12m [39m[38;5;12mmicroservices[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mAPIs.[39m
|
||
|
||
[38;2;255;187;0m[4mRBAC frameworks[0m
|
||
|
||
[38;5;14m[1mRole-Based Access Control[0m[38;5;12m (https://en.wikipedia.org/wiki/Role-based_access_control) is the classical model to map users to permissions by the way of roles.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAthenz[0m[38;5;12m (https://github.com/yahoo/athenz) - Set of services and libraries supporting service authentication and role-based authorization for provisioning and configuration.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBiscuit[0m[38;5;12m [39m[38;5;12m(https://www.clever-cloud.com/blog/engineering/2021/04/12/introduction-to-biscuit/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mBiscuit[39m[38;5;12m [39m[38;5;12mmerge[39m[38;5;12m [39m[38;5;12mconcepts[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mcookies,[39m[38;5;12m [39m[38;5;12mJWTs,[39m[38;5;12m [39m[38;5;12mmacaroons[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mOpen[39m[38;5;12m [39m[38;5;12mPolicy[39m[38;5;12m [39m[38;5;12mAgent.[39m[38;5;12m [39m[38;5;12m“It[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlogic[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mDatalog[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m
|
||
[38;5;12mpolicies.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mstore[39m[38;5;12m [39m[38;5;12mdata,[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mJWT,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12msmall[39m[38;5;12m [39m[38;5;12mconditions[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mMacaroons,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mable[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mrepresent[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mrules[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mrole-based[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mcontrol,[39m[38;5;12m [39m[38;5;12mdelegation,[39m[38;5;12m [39m[38;5;12mhierarchies.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOso[0m[38;5;12m (https://github.com/osohq/oso) - A batteries-included library for building authorization in your application.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCerbos[0m[38;5;12m (https://github.com/cerbos/cerbos) - An authorization endpoint to write context-aware access control policies.[39m
|
||
|
||
[38;2;255;187;0m[4mABAC frameworks[0m
|
||
|
||
[38;5;14m[1mAttribute-Based Access Control[0m[38;5;12m (https://en.wikipedia.org/wiki/Attribute-based_access_control) is an evolution of RBAC, in which roles are replaced by attributes, allowing the implementation of more complex policy-based access control.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKeto[0m[38;5;12m (https://github.com/ory/keto) - Policy decision point. It uses a set of access control policies, similar to AWS policies, in order to determine whether a subject is authorized to perform a certain action on a resource.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mLadon[0m[38;5;12m (https://github.com/ory/ladon) - Access control library, inspired by AWS.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCasbin[0m[38;5;12m (https://github.com/casbin/casbin) - Open-source access control library for Golang projects.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOpen Policy Agent[0m[38;5;12m (https://github.com/open-policy-agent/opa) - An open-source general-purpose decision engine to create and enforce ABAC policies.[39m
|
||
|
||
[38;2;255;187;0m[4mReBAC frameworks[0m
|
||
|
||
[38;5;12mThe [39m[38;5;14m[1mRelationship-Based Access Control[0m[38;5;12m (https://en.wikipedia.org/wiki/Relationship-based_access_control) model is a more flexible and powerful version of RBAC and is the preferred one for cloud systems.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mZanzibar:[0m[38;5;14m[1m [0m[38;5;14m[1mGoogle's[0m[38;5;14m[1m [0m[38;5;14m[1mConsistent,[0m[38;5;14m[1m [0m[38;5;14m[1mGlobal[0m[38;5;14m[1m [0m[38;5;14m[1mAuthorization[0m[38;5;14m[1m [0m[38;5;14m[1mSystem[0m[38;5;12m [39m[38;5;12m(https://ai.google/research/pubs/pub48190)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mScales[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mtrillions[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mcontrol[39m[38;5;12m [39m[38;5;12mlists[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmillions[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mrequests[39m[38;5;12m [39m[38;5;12mper[39m[38;5;12m [39m[38;5;12msecond[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mservices[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mbillions[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m
|
||
[38;5;12mpeople.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mmaintained[39m[38;5;12m [39m[38;5;12m95th-percentile[39m[38;5;12m [39m[38;5;12mlatency[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mless[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12m10[39m[38;5;12m [39m[38;5;12mmilliseconds[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mavailability[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mgreater[39m[38;5;12m [39m[38;5;12mthan[39m[38;5;12m [39m[38;5;12m99.999%[39m[38;5;12m [39m[38;5;12mover[39m[38;5;12m [39m[38;5;12m3[39m[38;5;12m [39m[38;5;12myears[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mproduction[39m[38;5;12m [39m[38;5;12muse.[39m[38;5;12m [39m[38;5;14m[1mOther[0m[38;5;14m[1m [0m[38;5;14m[1mbits[0m[38;5;14m[1m [0m[38;5;14m[1mnot[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mpaper[0m[38;5;12m [39m[38;5;12m(https://twitter.com/LeaKissner/status/1136626971566149633).[39m[38;5;12m [39m
|
||
[38;5;14m[1mZanzibar[0m[38;5;14m[1m [0m[38;5;14m[1mAcademy[0m[38;5;12m [39m[38;5;12m(https://zanzibar.academy/)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msite[39m[38;5;12m [39m[38;5;12mdedicated[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mexplaining[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mZanzibar[39m[38;5;12m [39m[38;5;12mworks.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSpiceDB[0m[38;5;12m (https://github.com/authzed/spicedb) - An open source database system for managing security-critical application permissions inspired by Zanzibar.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPermify[0m[38;5;12m [39m[38;5;12m(https://github.com/Permify/permify)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAnother[39m[38;5;12m [39m[38;5;12mopen-source[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mservice[39m[38;5;12m [39m[38;5;12minspired[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mGoogle[39m[38;5;12m [39m[38;5;12mZanzibar,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msee[39m[38;5;12m [39m[38;5;14m[1mhow[0m[38;5;14m[1m [0m[38;5;14m[1mit[0m[38;5;14m[1m [0m[38;5;14m[1mcompares[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mother[0m[38;5;14m[1m [0m[38;5;14m[1mZanzibar-inspired[0m[38;5;14m[1m [0m[38;5;14m[1mtools[0m[38;5;12m [39m
|
||
[38;5;12m(https://permify.notion.site/Differentiation-Between-Zanzibar-Products-ad4732da62e64655bc82d3abe25f48b6).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mTopaz[0m[38;5;12m (https://github.com/aserto-dev/topaz) - An open-source project which combines the policy-as-code and decision logging of OPA with a Zanzibar-modeled directory.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOpen[0m[38;5;14m[1m [0m[38;5;14m[1mPolicy[0m[38;5;14m[1m [0m[38;5;14m[1mAdministration[0m[38;5;14m[1m [0m[38;5;14m[1mLayer[0m[38;5;12m [39m[38;5;12m(https://github.com/permitio/opal)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mOpen[39m[38;5;12m [39m[38;5;12mSource[39m[38;5;12m [39m[38;5;12madministration[39m[38;5;12m [39m[38;5;12mlayer[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOPA,[39m[38;5;12m [39m[38;5;12mdetecting[39m[38;5;12m [39m[38;5;12mchanges[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[38;5;12mpolicy[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpolicy[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mrealtime[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpushing[39m[38;5;12m [39m[38;5;12mlive[39m[38;5;12m [39m[38;5;12mupdates[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mOPA[39m[38;5;12m [39m[38;5;12magents.[39m[38;5;12m [39m[38;5;12mOPAL[39m[38;5;12m [39m[38;5;12mbrings[39m[38;5;12m [39m[38;5;12mopen-policy[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||
[38;5;12mthe[39m[38;5;12m [39m[38;5;12mspeed[39m[38;5;12m [39m[38;5;12mneeded[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mlive[39m[38;5;12m [39m[38;5;12mapplications.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mWarrant[0m[38;5;12m (https://github.com/warrant-dev/warrant) - A relationship based access control (ReBAC) engine (inspired by Google Zanzibar) also capable of enforcing any authorization paradigm, including RBAC and ABAC.[39m
|
||
|
||
[38;2;255;187;0m[4mAWS policy tools[0m
|
||
|
||
[38;5;12mTools and resources exclusively targeting the [39m[38;5;14m[1mAWS IAM policies[0m[38;5;12m (http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) ecosystem.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAn AWS IAM Security Tooling Reference[0m[38;5;12m (https://ramimac.me/aws-iam-tools-2024) - A comprehensive list of (maintained) tools for AWS IAM.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBecome[0m[38;5;14m[1m [0m[38;5;14m[1man[0m[38;5;14m[1m [0m[38;5;14m[1mAWS[0m[38;5;14m[1m [0m[38;5;14m[1mIAM[0m[38;5;14m[1m [0m[38;5;14m[1mPolicy[0m[38;5;14m[1m [0m[38;5;14m[1mNinja[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=y7-fAT3z8Lo)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“In[39m[38;5;12m [39m[38;5;12mmy[39m[38;5;12m [39m[38;5;12mnearly[39m[38;5;12m [39m[38;5;12m5[39m[38;5;12m [39m[38;5;12myears[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mAmazon,[39m[38;5;12m [39m[38;5;12mI[39m[38;5;12m [39m[38;5;12mcarve[39m[38;5;12m [39m[38;5;12mout[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlittle[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12meach[39m[38;5;12m [39m[38;5;12mday,[39m[38;5;12m [39m[38;5;12meach[39m[38;5;12m [39m[38;5;12mweek[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlook[39m[38;5;12m [39m[38;5;12mthrough[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mforums,[39m[38;5;12m [39m[38;5;12mcustomer[39m[38;5;12m [39m[38;5;12mtickets[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mtry[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfind[39m[38;5;12m [39m[38;5;12mout[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m[38;5;12mpeople[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m
|
||
[38;5;12mhaving[39m[38;5;12m [39m[38;5;12mtrouble.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAWS IAM Roles, a tale of unnecessary complexity[0m[38;5;12m (https://infosec.rodeo/posts/thoughts-on-aws-iam/) - The history of fast-growing AWS explains how the current scheme came to be, and how it compares to GCP's resource hierarchy.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPolicy Sentry[0m[38;5;12m (https://github.com/salesforce/policy_sentry) - Writing security-conscious IAM Policies by hand can be very tedious and inefficient. Policy Sentry helps users to create least-privilege policies in a matter of seconds.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPolicyUniverse[0m[38;5;12m (https://github.com/Netflix-Skunkworks/policyuniverse) - Parse and process AWS policies, statements, ARNs, and wildcards.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mIAM[0m[38;5;14m[1m [0m[38;5;14m[1mFloyd[0m[38;5;12m [39m[38;5;12m(https://github.com/udondan/iam-floyd)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAWS[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mpolicy[39m[38;5;12m [39m[38;5;12mstatement[39m[38;5;12m [39m[38;5;12mgenerator[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mfluent[39m[38;5;12m [39m[38;5;12minterface.[39m[38;5;12m [39m[38;5;12mHelps[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mcreating[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12msafe[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mpolicies[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mwriting[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mrestrictive/secure[39m[38;5;12m [39m[38;5;12mstatements[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12moffering[39m[38;5;12m [39m[38;5;12mconditions[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mARN[39m[38;5;12m [39m[38;5;12mgeneration[39m[38;5;12m [39m[38;5;12mvia[39m
|
||
[38;5;12mIntelliSense.[39m[38;5;12m [39m[38;5;12mAvailable[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mNode.js,[39m[38;5;12m [39m[38;5;12mPython,[39m[38;5;12m [39m[38;5;12m.Net[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mJava.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mConsoleMe[0m[38;5;12m [39m[38;5;12m(https://github.com/Netflix/consoleme)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mself-service[39m[38;5;12m [39m[38;5;12mtool[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mAWS[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12mend-users[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12madministrators[39m[38;5;12m [39m[38;5;12mcredentials[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mconsole[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12monboarded[39m[38;5;12m [39m[38;5;12maccounts[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mlevel[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmanaging[39m[38;5;12m [39m[38;5;12mpermissions[39m[38;5;12m [39m[38;5;12macross[39m
|
||
[38;5;12mmultiple[39m[38;5;12m [39m[38;5;12maccounts,[39m[38;5;12m [39m[38;5;12mwhile[39m[38;5;12m [39m[38;5;12mencouraging[39m[38;5;12m [39m[38;5;12mleast-privilege[39m[38;5;12m [39m[38;5;12mpermissions.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mIAMbic[0m[38;5;12m [39m[38;5;12m(https://github.com/noqdev/iambic)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mGitOps[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mIAM.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mTerraform[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mCloud[39m[38;5;12m [39m[38;5;12mIAM.[39m[38;5;12m [39m[38;5;12mIAMbic[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmulti-cloud[39m[38;5;12m [39m[38;5;12midentity[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mmanagement[39m[38;5;12m [39m[38;5;12m(IAM)[39m[38;5;12m [39m[38;5;12mcontrol[39m[38;5;12m [39m[38;5;12mplane[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcentralizes[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msimplifies[39m[38;5;12m [39m[38;5;12mcloud[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpermissions.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mmaintains[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m
|
||
[38;5;12meventually[39m[38;5;12m [39m[38;5;12mconsistent,[39m[38;5;12m [39m[38;5;12mhuman-readable,[39m[38;5;12m [39m[38;5;12mbi-directional[39m[38;5;12m [39m[38;5;12mrepresentation[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mversion[39m[38;5;12m [39m[38;5;12mcontrol.[39m
|
||
|
||
[38;2;255;187;0m[4mMacaroons[0m
|
||
|
||
[38;5;12mA clever curiosity to distribute and delegate authorization.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mGoogle's[0m[38;5;14m[1m [0m[38;5;14m[1mMacaroons[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mFive[0m[38;5;14m[1m [0m[38;5;14m[1mMinutes[0m[38;5;14m[1m [0m[38;5;14m[1mor[0m[38;5;14m[1m [0m[38;5;14m[1mLess[0m[38;5;12m [39m[38;5;12m(https://blog.bren2010.io/blog/googles-macaroons)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIf[39m[38;5;12m [39m[38;5;12mI'm[39m[38;5;12m [39m[38;5;12mgiven[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mMacaroon[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mauthorizes[39m[38;5;12m [39m[38;5;12mme[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mperform[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12maction(s)[39m[38;5;12m [39m[38;5;12munder[39m[38;5;12m [39m[38;5;12mcertain[39m[38;5;12m [39m[38;5;12mrestrictions,[39m[38;5;12m [39m[38;5;12mI[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mnon-interactively[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12msecond[39m[38;5;12m [39m[38;5;12mMacaroon[39m[38;5;12m [39m[38;5;12mwith[39m
|
||
[38;5;12mstricter[39m[38;5;12m [39m[38;5;12mrestrictions[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mI[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mthen[39m[38;5;12m [39m[38;5;12mgive[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12myou.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mMacaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud[0m[38;5;12m (https://ai.google/research/pubs/pub41892) - Google's original paper.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mGoogle[0m[38;5;14m[1m [0m[38;5;14m[1mpaper's[0m[38;5;14m[1m [0m[38;5;14m[1mauthor[0m[38;5;14m[1m [0m[38;5;14m[1mcompares[0m[38;5;14m[1m [0m[38;5;14m[1mMacaroons[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mJWTs[0m[38;5;12m [39m[38;5;12m(https://news.ycombinator.com/item?id=14294463)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAs[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mconsumer/verifier[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmacaroons,[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mallow[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12m(through[39m[38;5;12m [39m[38;5;12mthird-party[39m[38;5;12m [39m[38;5;12mcaveats)[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdefer[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mauthorization[39m[38;5;12m [39m[38;5;12mdecisions[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msomeone[39m[38;5;12m [39m[38;5;12melse.[39m[38;5;12m [39m[38;5;12mJWTs[39m[38;5;12m [39m
|
||
[38;5;12mdon't.[39m
|
||
|
||
[38;2;255;187;0m[4mOther tools[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGubernator[0m[38;5;12m (https://github.com/gubernator-io/gubernator) - High performance rate-limiting micro-service and library.[39m
|
||
|
||
[38;2;255;187;0m[4mOAuth2 & OpenID[0m
|
||
|
||
[38;5;14m[1mOAuth 2.0[0m[38;5;12m (https://en.wikipedia.org/wiki/OAuth#OAuth_2.0) is a [39m[48;2;30;30;40m[38;5;13m[3mdelegated authorization[0m[38;5;12m framework. [39m[38;5;14m[1mOpenID Connect (OIDC)[0m[38;5;12m (https://en.wikipedia.org/wiki/OpenID_Connect) is an [39m[48;2;30;30;40m[38;5;13m[3mauthentication[0m[38;5;12m layer on top of it.[39m
|
||
|
||
[38;5;12mThe old [39m[48;2;30;30;40m[38;5;13m[3mOpenID[0m[38;5;12m is dead; the new [39m[48;2;30;30;40m[38;5;13m[3mOpenID Connect[0m[38;5;12m is very much not-dead.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome OpenID Connect[0m[38;5;12m (https://github.com/cerberauth/awesome-openid-connect) - A curated list of providers, services, libraries, and resources for OpenID Connect.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAn Illustrated Guide to OAuth and OpenID Connect[0m[38;5;12m (https://developer.okta.com/blog/2019/10/21/illustrated-guide-to-oauth-and-oidc) - Explain how these standards work using simplified illustrations.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOAuth 2 Simplified[0m[38;5;12m (https://aaronparecki.com/oauth-2-simplified/) - A reference article describing the protocol in simplified format to help developers and service providers implement it.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOAuth[0m[38;5;14m[1m [0m[38;5;14m[1m2.0[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mOpenID[0m[38;5;14m[1m [0m[38;5;14m[1mConnect[0m[38;5;14m[1m [0m[38;5;14m[1m(in[0m[38;5;14m[1m [0m[38;5;14m[1mplain[0m[38;5;14m[1m [0m[38;5;14m[1mEnglish)[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=996OiexHze0)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mStarts[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mhistorical[39m[38;5;12m [39m[38;5;12mcontext[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mstandards[39m[38;5;12m [39m[38;5;12mcame[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe,[39m[38;5;12m [39m[38;5;12mclears[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12minnacuracies[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mvocabulary,[39m[38;5;12m [39m[38;5;12mthen[39m[38;5;12m [39m[38;5;12mdetails[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mprotocols[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||
[38;5;12mits[39m[38;5;12m [39m[38;5;12mpitfalls[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmake[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mless[39m[38;5;12m [39m[38;5;12mintimidating.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mOAuth in one picture[0m[38;5;12m (https://mobile.twitter.com/kamranahmedse/status/1276994010423361540) - A nice summary card.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mImplement[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mSecure[0m[38;5;14m[1m [0m[38;5;14m[1mCentral[0m[38;5;14m[1m [0m[38;5;14m[1mAuthentication[0m[38;5;14m[1m [0m[38;5;14m[1mService[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mSix[0m[38;5;14m[1m [0m[38;5;14m[1mSteps[0m[38;5;12m [39m[38;5;12m(https://shopify.engineering/implement-secure-central-authentication-service-six-steps)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mGot[39m[38;5;12m [39m[38;5;12mmultiple[39m[38;5;12m [39m[38;5;12mlegacy[39m[38;5;12m [39m[38;5;12msystems[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmerge[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mown[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12mmethods[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12maccounts?[39m[38;5;12m [39m[38;5;12mHere[39m
|
||
[38;5;12mis[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmerge[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mmess[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mOIDC.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOpen-Sourcing[0m[38;5;14m[1m [0m[38;5;14m[1mBuzzFeed's[0m[38;5;14m[1m [0m[38;5;14m[1mSSO[0m[38;5;14m[1m [0m[38;5;14m[1mExperience[0m[38;5;12m [39m[38;5;12m(https://increment.com/security/open-sourcing-buzzfeeds-single-sign-on-process/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mOAuth2-friendly[39m[38;5;12m [39m[38;5;12madaptation[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCentral[39m[38;5;12m [39m[38;5;12mAuthentication[39m[38;5;12m [39m[38;5;12mService[39m[38;5;12m [39m[38;5;12m(CAS)[39m[38;5;12m [39m[38;5;12mprotocol.[39m[38;5;12m [39m[38;5;12mYou'll[39m[38;5;12m [39m[38;5;12mfind[39m[38;5;12m [39m[38;5;12mthere[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12mOAuth[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mflow[39m[38;5;12m [39m
|
||
[38;5;12mdiagrams.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOAuth[0m[38;5;14m[1m [0m[38;5;14m[1m2.0[0m[38;5;14m[1m [0m[38;5;14m[1mSecurity[0m[38;5;14m[1m [0m[38;5;14m[1mBest[0m[38;5;14m[1m [0m[38;5;14m[1mCurrent[0m[38;5;14m[1m [0m[38;5;14m[1mPractice[0m[38;5;12m [39m[38;5;12m(https://datatracker.ietf.org/doc/html/rfc9700)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Updates[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mextends[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mOAuth[39m[38;5;12m [39m[38;5;12m2.0[39m[38;5;12m [39m[38;5;12mSecurity[39m[38;5;12m [39m[38;5;12mThreat[39m[38;5;12m [39m[38;5;12mModel[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mincorporate[39m[38;5;12m [39m[38;5;12mpractical[39m[38;5;12m [39m[38;5;12mexperiences[39m[38;5;12m [39m[38;5;12mgathered[39m[38;5;12m [39m[38;5;12msince[39m[38;5;12m [39m[38;5;12mOAuth[39m[38;5;12m [39m[38;5;12m2.0[39m[38;5;12m [39m[38;5;12mwas[39m[38;5;12m [39m[38;5;12mpublished[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12mnew[39m[38;5;12m [39m
|
||
[38;5;12mthreats[39m[38;5;12m [39m[38;5;12mrelevant[39m[38;5;12m [39m[38;5;12mdue[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbroader[39m[38;5;12m [39m[38;5;12mapplication”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHidden OAuth attack vectors[0m[38;5;12m (https://portswigger.net/web-security/oauth) - How to identify and exploit some of the key vulnerabilities found in OAuth 2.0 authentication mechanisms.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPKCE Explained[0m[38;5;12m (https://www.loginradius.com/blog/engineering/pkce/) - “PKCE is used to provide one more security layer to the authorization code flow in OAuth and OpenID Connect.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHydra[0m[38;5;12m (https://www.ory.sh/hydra) - Open-source OIDC & OAuth2 Server Provider.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKeycloak[0m[38;5;12m (https://www.keycloak.org) - Open-source Identity and Access Management. Supports OIDC, OAuth 2 and SAML 2, LDAP and AD directories, password policies.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCasdoor[0m[38;5;12m (https://github.com/casbin/casdoor) - A UI-first centralized authentication / Single-Sign-On (SSO) platform based. Supports OIDC and OAuth 2, social logins, user management, 2FA based on Email and SMS.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mauthentik[0m[38;5;12m (https://goauthentik.io/) - Open-source Identity Provider similar to Keycloak.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mZITADEL[0m[38;5;12m [39m[38;5;12m(https://github.com/zitadel/zitadel)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mOpen-Source[39m[38;5;12m [39m[38;5;12msolution[39m[38;5;12m [39m[38;5;12mbuilt[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mGo[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mAngular[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmanage[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12msystems,[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mservice[39m[38;5;12m [39m[38;5;12maccounts[39m[38;5;12m [39m[38;5;12mtogether[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mroles[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mexternal[39m[38;5;12m [39m[38;5;12midentities.[39m[38;5;12m [39m[38;5;12mZITADEL[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mOIDC,[39m[38;5;12m [39m[38;5;12mOAuth[39m[38;5;12m [39m
|
||
[38;5;12m2.0,[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12m&[39m[38;5;12m [39m[38;5;12mregister[39m[38;5;12m [39m[38;5;12mflows,[39m[38;5;12m [39m[38;5;12mpasswordless[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mMFA[39m[38;5;12m [39m[38;5;12mauthentication.[39m[38;5;12m [39m[38;5;12mAll[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mbuilt[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mtop[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12meventsourcing[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mcombination[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mCQRS[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgreat[39m[38;5;12m [39m[38;5;12maudit[39m[38;5;12m [39m[38;5;12mtrail.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1ma12n-server[0m[38;5;12m (https://github.com/curveball/a12n-server) - A simple authentication system which only implements the relevant parts of the OAuth2 standards.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mLogto[0m[38;5;12m (https://github.com/logto-io/logto) - An IAM infrastructure for modern apps and SaaS products, supporting OIDC, OAuth 2.0 and SAML for authentication and authorization.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAuthgear[0m[38;5;12m (https://github.com/authgear/authgear-server) - Open-source authentication-as-a-service solution. It includes the code for the server, AuthUI, the Portal, and Admin API.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAzure Entra ID[0m[38;5;12m (https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) - Microsoft's cloud-based identity and access management service for employees and external partners that supports OIDC, OAuth 2.0, and SAML.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPing Identity[0m[38;5;12m (https://www.pingidentity.com) - Enterprise Identity and Access Management platform supporting OpenID Connect protocol.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mFusionAuth[0m[38;5;12m (https://fusionauth.io/) - Customer Identity and Access Management solution supporting OIDC.[39m
|
||
|
||
[38;2;255;187;0m[4mSAML[0m
|
||
|
||
[38;5;12mSecurity Assertion Markup Language (SAML) 2.0 is a means to exchange authorization and authentication between services, like OAuth/OpenID protocols above.[39m
|
||
|
||
[38;5;12mTypical SAML identity provider is an institution or a big corporation's internal SSO, while the typical OIDC/OAuth provider is a tech company that runs a data silo.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSAML[0m[38;5;14m[1m [0m[38;5;14m[1mvs.[0m[38;5;14m[1m [0m[38;5;14m[1mOAuth[0m[38;5;12m [39m[38;5;12m(https://web.archive.org/web/20230327071347/https://www.cloudflare.com/learning/access-management/what-is-oauth/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“OAuth[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mprotocol[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mauthorization:[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mensures[39m[38;5;12m [39m[38;5;12mBob[39m[38;5;12m [39m[38;5;12mgoes[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mright[39m[38;5;12m [39m[38;5;12mparking[39m[38;5;12m [39m[38;5;12mlot.[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mcontrast,[39m[38;5;12m [39m[38;5;12mSAML[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m
|
||
[38;5;12mprotocol[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mauthentication,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mallowing[39m[38;5;12m [39m[38;5;12mBob[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mget[39m[38;5;12m [39m[38;5;12mpast[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mguardhouse.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mDifference[0m[38;5;14m[1m [0m[38;5;14m[1mBetween[0m[38;5;14m[1m [0m[38;5;14m[1mSAML[0m[38;5;14m[1m [0m[38;5;14m[1m2.0[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mOAuth[0m[38;5;14m[1m [0m[38;5;14m[1m2.0[0m[38;5;12m [39m[38;5;12m(https://www.ubisecure.com/uncategorized/difference-between-saml-and-oauth/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Even[39m[38;5;12m [39m[38;5;12mthough[39m[38;5;12m [39m[38;5;12mSAML[39m[38;5;12m [39m[38;5;12mwas[39m[38;5;12m [39m[38;5;12mactually[39m[38;5;12m [39m[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwidely[39m[38;5;12m [39m[38;5;12mapplicable,[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mcontemporary[39m[38;5;12m [39m[38;5;12musage[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mtypically[39m[38;5;12m [39m[38;5;12mshifted[39m[38;5;12m [39m[38;5;12mtowards[39m[38;5;12m [39m
|
||
[38;5;12menterprise[39m[38;5;12m [39m[38;5;12mSSO[39m[38;5;12m [39m[38;5;12mscenarios.[39m[38;5;12m [39m[38;5;12mOn[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mhand,[39m[38;5;12m [39m[38;5;12mOAuth[39m[38;5;12m [39m[38;5;12mwas[39m[38;5;12m [39m[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mapplications[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mInternet,[39m[38;5;12m [39m[38;5;12mespecially[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdelegated[39m[38;5;12m [39m[38;5;12mauthorisation.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhat's[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mDifference[0m[38;5;14m[1m [0m[38;5;14m[1mBetween[0m[38;5;14m[1m [0m[38;5;14m[1mOAuth,[0m[38;5;14m[1m [0m[38;5;14m[1mOpenID[0m[38;5;14m[1m [0m[38;5;14m[1mConnect,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mSAML?[0m[38;5;12m [39m[38;5;12m(https://www.okta.com/identity-101/whats-the-difference-between-oauth-openid-connect-and-saml/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIdentity[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mhard.[39m[38;5;12m [39m[38;5;12mAnother[39m[38;5;12m [39m[38;5;12mtake[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mprotocol[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12malways[39m[38;5;12m [39m[38;5;12mwelcome[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m
|
||
[38;5;12mmakes[39m[38;5;12m [39m[38;5;12msense[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mall.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHow SAML 2.0 Authentication Works[0m[38;5;12m (https://web.archive.org/web/20240421215604/https://goteleport.com/blog/how-saml-authentication-works/) - Overview of the how and why of SSO and SAML.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mWeb Single Sign-On, the SAML 2.0 perspective[0m[38;5;12m (https://blog.theodo.com/2019/06/web-single-sign-on-the-saml-2-0-perspective/) - Another naive explanation of SAML workflow in the context of corporate SSO implementation.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe Beer Drinker's Guide to SAML[0m[38;5;12m (https://duo.com/blog/the-beer-drinkers-guide-to-saml) - SAML is arcane at times. A another analogy might helps get more sense out of it.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSAML[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1minsecure[0m[38;5;14m[1m [0m[38;5;14m[1mby[0m[38;5;14m[1m [0m[38;5;14m[1mdesign[0m[38;5;12m [39m[38;5;12m(https://joonas.fi/2021/08/saml-is-insecure-by-design/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mNot[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mweird,[39m[38;5;12m [39m[38;5;12mSAML[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12minsecure[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mdesign,[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mrelies[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12msignatures[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mXML[39m[38;5;12m [39m[38;5;12mcanonicalization,[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mXML[39m[38;5;12m [39m[38;5;12mbyte[39m[38;5;12m [39m[38;5;12mstream.[39m[38;5;12m [39m[38;5;12mWhich[39m[38;5;12m [39m[38;5;12mmeans[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mexploit[39m[38;5;12m [39m[38;5;12mXML[39m
|
||
[38;5;12mparser/encoder[39m[38;5;12m [39m[38;5;12mdifferences.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe Difficulties of SAML Single Logout[0m[38;5;12m (https://wiki.shibboleth.net/confluence/display/CONCEPT/SLOIssues) - On the technical and UX issues of single logout implementations.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mSSO[0m[38;5;14m[1m [0m[38;5;14m[1mWall[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mShame[0m[38;5;12m [39m[38;5;12m(https://sso.tax)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mdocumented[39m[38;5;12m [39m[38;5;12mrant[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mexcessive[39m[38;5;12m [39m[38;5;12mpricing[39m[38;5;12m [39m[38;5;12mpracticed[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mSaaS[39m[38;5;12m [39m[38;5;12mproviders[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mactivate[39m[38;5;12m [39m[38;5;12mSSO[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mproduct.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mauthor's[39m[38;5;12m [39m[38;5;12mpoint[39m[38;5;12m [39m[38;5;12mis,[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcore[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mfeature,[39m[38;5;12m [39m[38;5;12mSSO[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mreasonably[39m[38;5;12m [39m[38;5;12mpriced[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mpart[39m[38;5;12m [39m
|
||
[38;5;12mof[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mexclusive[39m[38;5;12m [39m[38;5;12mtier.[39m
|
||
|
||
[38;2;255;187;0m[4mSecret Management[0m
|
||
|
||
[38;5;12mArchitectures, software and hardware allowing the storage and usage of secrets to allow for authentication and authorization, while maintaining the chain of trust.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSecret at Scale at Netflix[0m[38;5;12m (https://www.youtube.com/watch?v=K0EOPddWpsE) - Solution based on blind signatures. See the [39m[38;5;14m[1mslides[0m[38;5;12m (https://rwc.iacr.org/2018/Slides/Mehta.pdf).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHigh Availability in Google's Internal KMS[0m[38;5;12m (https://www.youtube.com/watch?v=5T_c-lqgjso) - Not GCP's KMS, but the one at the core of their infrastructure. See the [39m[38;5;14m[1mslides[0m[38;5;12m (https://rwc.iacr.org/2018/Slides/Kanagala.pdf).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHashiCorp Vault[0m[38;5;12m (https://www.vaultproject.io) - Secure, store and tightly control access to tokens, passwords, certificates, encryption keys.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mInfisical[0m[38;5;12m (https://github.com/Infisical/infisical) - An alternative to HashiCorp Vault.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1msops[0m[38;5;12m (https://github.com/mozilla/sops) - Editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault, age, and PGP.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mgitleaks[0m[38;5;12m (https://github.com/zricethezav/gitleaks) - Audit git repos for secrets.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mtruffleHog[0m[38;5;12m (https://github.com/dxa4481/truffleHog) - Searches through git repositories for high entropy strings and secrets, digging deep into commit history.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKeywhiz[0m[38;5;12m (https://square.github.io/keywhiz/) - A system for managing and distributing secrets, which can fit well with a service oriented architecture (SOA).[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mroca[0m[38;5;12m (https://github.com/crocs-muni/roca) - Python module to check for weak RSA moduli in various key formats.[39m
|
||
|
||
[38;2;255;187;0m[4mHardware Security Module (HSM)[0m
|
||
|
||
[38;5;12mHSMs are physical devices guaranteeing security of secret management at the hardware level.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHSM: What they are and why it's likely that you've (indirectly) used one today[0m[38;5;12m (https://rwc.iacr.org/2015/Slides/RWC-2015-Hampton.pdf) - Really basic overview of HSM usages.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mTidbits on AWS Cloud HSM hardware[0m[38;5;12m (https://news.ycombinator.com/item?id=16759383) - AWS CloudHSM Classic is backed by SafeNet's Luna HSM, current CloudHSM rely on Cavium's Nitrox, which allows for partitionable "virtual HSMs".[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCrypTech[0m[38;5;12m (https://cryptech.is) - An open hardware HSM.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mKeystone[0m[38;5;12m (https://keystone-enclave.org) - Open-source project for building trusted execution environments (TEE) with secure hardware enclaves, based on the RISC-V architecture.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mProject Oak[0m[38;5;12m (https://github.com/project-oak/oak) - A specification and a reference implementation for the secure transfer, storage and processing of data.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mEverybody be cool, this is a robbery![0m[38;5;12m (https://www.sstic.org/2019/presentation/hsm/) - A case study of vulnerability and exploitability of a HSM (in French, sorry).[39m
|
||
|
||
[38;2;255;187;0m[4mTrust & Safety[0m
|
||
|
||
[38;5;12mOnce you've got a significant user base, it is called a community. You'll then be responsible to protect it: the customer, people, the company, the business, and facilitate all interactions and transactions happening therein.[39m
|
||
|
||
[38;5;12mA[39m[38;5;12m [39m[38;5;12mcritical[39m[38;5;12m [39m[38;5;12mintermediation[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mdriven[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mpolicy[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mconstraint[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mlocal[39m[38;5;12m [39m[38;5;12mlaws,[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mTrust[39m[38;5;12m [39m[38;5;12m&[39m[38;5;12m [39m[38;5;12mSafety[39m[38;5;12m [39m[38;5;12mdepartment[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mlikely[39m[38;5;12m [39m[38;5;12membodied[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcross-functional[39m[38;5;12m [39m[38;5;12mteam[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m24/7[39m[38;5;12m [39m[38;5;12moperators[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msystems[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mhighly[39m[38;5;12m [39m[38;5;12madvanced[39m[38;5;12m [39m[38;5;12mmoderation[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12madministration[39m[38;5;12m [39m[38;5;12mtools.[39m[38;5;12m [39m
|
||
[38;5;12mYou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12msee[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mextension[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcustomer[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mservices,[39m[38;5;12m [39m[38;5;12mspecialized[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12medge-cases[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12mmanual[39m[38;5;12m [39m[38;5;12midentity[39m[38;5;12m [39m[38;5;12mchecks,[39m[38;5;12m [39m[38;5;12mmoderation[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mharmful[39m[38;5;12m [39m[38;5;12mcontent,[39m[38;5;12m [39m[38;5;12mstopping[39m[38;5;12m [39m[38;5;12mharassment,[39m[38;5;12m [39m[38;5;12mhandling[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mwarrants[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcopyright[39m[38;5;12m [39m[38;5;12mclaims,[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12msequestration[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mcredit[39m
|
||
[38;5;12mcard[39m[38;5;12m [39m[38;5;12mdisputes.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mTrust and safety 101[0m[38;5;12m (https://www.csoonline.com/article/3206127/trust-and-safety-101.html) - A great introduction on the domain and its responsibilities.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mWhat the Heck is Trust and Safety?[0m[38;5;12m (https://www.linkedin.com/pulse/what-heck-trust-safety-kenny-shi) - A couple of real use-case to demonstrate the role of a TnS team.[39m
|
||
|
||
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome List of Billing and Payments: Fraud links[0m[38;5;12m (https://github.com/kdeldycke/awesome-billing#fraud) - Section dedicated to fraud management for billing and payment, from our sister repository.[39m
|
||
|
||
|
||
|
||
[38;2;255;187;0m[4mUser Identity[0m
|
||
|
||
[38;5;12mMost[39m[38;5;12m [39m[38;5;12mbusinesses[39m[38;5;12m [39m[38;5;12mdo[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mcollect[39m[38;5;12m [39m[38;5;12mcustomer's[39m[38;5;12m [39m[38;5;12midentity[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mprofiles[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msell[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthird[39m[38;5;12m [39m[38;5;12mparty,[39m[38;5;12m [39m[38;5;12mno.[39m[38;5;12m [39m[38;5;12mBut[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mstill[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mto:[39m[38;5;12m [39m[38;5;12mlocal[39m[38;5;12m [39m[38;5;12mlaws[39m[38;5;12m [39m[38;5;12mrequire[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mkeep[39m[38;5;12m [39m[38;5;12mtrack[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcontract[39m[38;5;12m [39m[38;5;12mrelationships[39m[38;5;12m [39m[38;5;12munder[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlarge[39m[38;5;12m [39m[38;5;14m[1mKnow[0m[38;5;14m[1m [0m[38;5;14m[1mYou[0m[38;5;14m[1m [0m[38;5;14m[1mCustomer[0m[38;5;14m[1m [0m[38;5;14m[1m(KYC)[0m[38;5;12m [39m
|
||
[38;5;12m(https://en.wikipedia.org/wiki/Know_your_customer)[39m[38;5;12m [39m[38;5;12mbanner.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mLaws[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mIdentity[0m[38;5;12m [39m[38;5;12m(https://www.identityblog.com/stories/2005/05/13/TheLawsOfIdentity.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIs[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mpaper[39m[38;5;12m [39m[38;5;12maims[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12midentity[39m[38;5;12m [39m[38;5;12mmetasystem,[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mlaws[39m[38;5;12m [39m[38;5;12mstill[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12mgreat[39m[38;5;12m [39m[38;5;12minsights[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12msmaller[39m[38;5;12m [39m[38;5;12mscale,[39m[38;5;12m [39m[38;5;12mespecially[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mlaw:[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12malways[39m[38;5;12m [39m[38;5;12mallow[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m
|
||
[38;5;12mcontrol[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mask[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mconsent[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mearn[39m[38;5;12m [39m[38;5;12mtrust.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mUber[0m[38;5;14m[1m [0m[38;5;14m[1mGot[0m[38;5;14m[1m [0m[38;5;14m[1mLost[0m[38;5;12m [39m[38;5;12m(https://archive.ph/hvjKl)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“To[39m[38;5;12m [39m[38;5;12mlimit[39m[38;5;12m [39m[38;5;12m"friction"[39m[38;5;12m [39m[38;5;12mUber[39m[38;5;12m [39m[38;5;12mallowed[39m[38;5;12m [39m[38;5;12mriders[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msign[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mwithout[39m[38;5;12m [39m[38;5;12mrequiring[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12midentity[39m[38;5;12m [39m[38;5;12mbeyond[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12m—[39m[38;5;12m [39m[38;5;12measily[39m[38;5;12m [39m[38;5;12mfaked[39m[38;5;12m [39m[38;5;12m—[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mphone[39m[38;5;12m [39m[38;5;12mnumber.[39m[38;5;12m [39m[38;5;12m(…)[39m[38;5;12m [39m[38;5;12mVehicles[39m[38;5;12m [39m[38;5;12mwere[39m[38;5;12m [39m[38;5;12mstolen[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mburned;[39m[38;5;12m [39m[38;5;12mdrivers[39m[38;5;12m [39m[38;5;12mwere[39m[38;5;12m [39m
|
||
[38;5;12massaulted,[39m[38;5;12m [39m[38;5;12mrobbed[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12moccasionally[39m[38;5;12m [39m[38;5;12mmurdered.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mcompany[39m[38;5;12m [39m[38;5;12mstuck[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlow-friction[39m[38;5;12m [39m[38;5;12msign-up[39m[38;5;12m [39m[38;5;12msystem,[39m[38;5;12m [39m[38;5;12meven[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mviolence[39m[38;5;12m [39m[38;5;12mincreased.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mA[0m[38;5;14m[1m [0m[38;5;14m[1mComparison[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mPersonal[0m[38;5;14m[1m [0m[38;5;14m[1mName[0m[38;5;14m[1m [0m[38;5;14m[1mMatching:[0m[38;5;14m[1m [0m[38;5;14m[1mTechniques[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mPractical[0m[38;5;14m[1m [0m[38;5;14m[1mIssues[0m[38;5;12m [39m[38;5;12m(http://users.cecs.anu.edu.au/~Peter.Christen/publications/tr-cs-06-02.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mCustomer[39m[38;5;12m [39m[38;5;12mname[39m[38;5;12m [39m[38;5;12mmatching[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mlots[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mapplication,[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12maccount[39m[38;5;12m [39m[38;5;12mdeduplication[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfraud[39m[38;5;12m [39m
|
||
[38;5;12mmonitoring.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mStatistically Likely Usernames[0m[38;5;12m (https://github.com/insidetrust/statistically-likely-usernames) - Wordlists for creating statistically likely usernames for use in username-enumeration, simulated password-attacks and other security testing tasks.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mFacebook[0m[38;5;14m[1m [0m[38;5;14m[1mDangerous[0m[38;5;14m[1m [0m[38;5;14m[1mIndividuals[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mOrganizations[0m[38;5;14m[1m [0m[38;5;14m[1mList[0m[38;5;12m [39m[38;5;12m(https://theintercept.com/document/facebook-dangerous-individuals-and-organizations-list-reproduced-snapshot/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mSome[39m[38;5;12m [39m[38;5;12mgroups[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcontent[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12millegal[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mjuridictions.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mexample[39m[38;5;12m [39m
|
||
[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mblocklist.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBallerine[0m[38;5;12m (https://github.com/ballerine-io/ballerine) - An open-source infrastructure for user identity and risk management.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mSherlock[0m[38;5;12m (https://github.com/sherlock-project/sherlock) - Hunt down social media accounts by username across social networks.[39m
|
||
|
||
[38;2;255;187;0m[4mFraud[0m
|
||
|
||
[38;5;12mAs an online service provider, you're exposed to fraud, crime and abuses. You'll be surprised by how much people gets clever when it comes to money. Expect any bug or discrepancies in your workflow to be exploited for financial gain.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAfter[0m[38;5;14m[1m [0m[38;5;14m[1mCar2Go[0m[38;5;14m[1m [0m[38;5;14m[1meased[0m[38;5;14m[1m [0m[38;5;14m[1mits[0m[38;5;14m[1m [0m[38;5;14m[1mbackground[0m[38;5;14m[1m [0m[38;5;14m[1mchecks,[0m[38;5;14m[1m [0m[38;5;14m[1m75[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mits[0m[38;5;14m[1m [0m[38;5;14m[1mvehicles[0m[38;5;14m[1m [0m[38;5;14m[1mwere[0m[38;5;14m[1m [0m[38;5;14m[1mstolen[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mone[0m[38;5;14m[1m [0m[38;5;14m[1mday.[0m[38;5;12m [39m[38;5;12m(https://web.archive.org/web/20230526073109/https://www.bloomberg.com/news/articles/2019-07-11/mercedes-thieves-showed-just-how-vulnerable-car-sharing-can-be)[39m[38;5;12m [39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12mWhy[39m[38;5;12m [39m[38;5;12mbackground[39m[38;5;12m [39m[38;5;12mcheck[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12msometimes[39m[38;5;12m [39m[38;5;12mnecessary.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mInvestigation[0m[38;5;14m[1m [0m[38;5;14m[1minto[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mUnusual[0m[38;5;14m[1m [0m[38;5;14m[1mSignups[0m[38;5;12m [39m[38;5;12m(https://openstreetmap.lu/MWGGlobalLogicReport20181226.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mreally[39m[38;5;12m [39m[38;5;12mdetailed[39m[38;5;12m [39m[38;5;12manalysis[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12msuspicious[39m[38;5;12m [39m[38;5;12mcontributor[39m[38;5;12m [39m[38;5;12msignups[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mOpenStreetMap.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mbeautiful[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhigh-level[39m[38;5;12m [39m[38;5;12mreport[39m[38;5;12m [39m[38;5;12mdemonstrating[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m
|
||
[38;5;12morchestrated[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdirected[39m[38;5;12m [39m[38;5;12mcampaign[39m[38;5;12m [39m[38;5;12mmight[39m[38;5;12m [39m[38;5;12mserve[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtemplate[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mfraud[39m[38;5;12m [39m[38;5;12mreports.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMIDAS:[0m[38;5;14m[1m [0m[38;5;14m[1mDetecting[0m[38;5;14m[1m [0m[38;5;14m[1mMicrocluster[0m[38;5;14m[1m [0m[38;5;14m[1mAnomalies[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mEdge[0m[38;5;14m[1m [0m[38;5;14m[1mStreams[0m[38;5;12m [39m[38;5;12m(https://github.com/bhatiasiddharth/MIDAS)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mproposed[39m[38;5;12m [39m[38;5;12mmethod[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12m“detects[39m[38;5;12m [39m[38;5;12mmicrocluster[39m[38;5;12m [39m[38;5;12manomalies,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12msuddenly[39m[38;5;12m [39m[38;5;12marriving[39m[38;5;12m [39m[38;5;12mgroups[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12msuspiciously[39m[38;5;12m [39m[38;5;12msimilar[39m[38;5;12m [39m[38;5;12medges,[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12medge[39m[38;5;12m [39m[38;5;12mstreams,[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m
|
||
[38;5;12mconstant[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmemory.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGephi[0m[38;5;12m (https://github.com/gephi/gephi) - Open-source platform for visualizing and manipulating large graphs.[39m
|
||
|
||
[38;2;255;187;0m[4mModeration[0m
|
||
|
||
[38;5;12mAny online communities, not only those related to gaming and social networks, requires their operator to invest a lot of resource and energy to moderate it.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mStill[0m[38;5;14m[1m [0m[38;5;14m[1mLogged[0m[38;5;14m[1m [0m[38;5;14m[1mIn:[0m[38;5;14m[1m [0m[38;5;14m[1mWhat[0m[38;5;14m[1m [0m[38;5;14m[1mAR[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mVR[0m[38;5;14m[1m [0m[38;5;14m[1mCan[0m[38;5;14m[1m [0m[38;5;14m[1mLearn[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mMMOs[0m[38;5;12m [39m[38;5;12m(https://youtu.be/kgw8RLHv1j4?t=534)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“If[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mhost[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12monline[39m[38;5;12m [39m[38;5;12mcommunity,[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m[38;5;12mpeople[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mharm[39m[38;5;12m [39m[38;5;12manother[39m[38;5;12m [39m[38;5;12mperson:[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhook.[39m[38;5;12m [39m[38;5;12mAnd[39m[38;5;12m [39m[38;5;12mif[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan't[39m[38;5;12m [39m[38;5;12mafford[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhook,[39m[38;5;12m [39m[38;5;12mdon't[39m[38;5;12m [39m[38;5;12mhost[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m
|
||
[38;5;12monline[39m[38;5;12m [39m[38;5;12mcommunity”.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mYou[0m[38;5;14m[1m [0m[38;5;14m[1meither[0m[38;5;14m[1m [0m[38;5;14m[1mdie[0m[38;5;14m[1m [0m[38;5;14m[1man[0m[38;5;14m[1m [0m[38;5;14m[1mMVP[0m[38;5;14m[1m [0m[38;5;14m[1mor[0m[38;5;14m[1m [0m[38;5;14m[1mlive[0m[38;5;14m[1m [0m[38;5;14m[1mlong[0m[38;5;14m[1m [0m[38;5;14m[1menough[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mbuild[0m[38;5;14m[1m [0m[38;5;14m[1mcontent[0m[38;5;14m[1m [0m[38;5;14m[1mmoderation[0m[38;5;12m [39m[38;5;12m(https://mux.com/blog/you-either-die-an-mvp-or-live-long-enough-to-build-content-moderation/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“You[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mthink[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msolution[39m[38;5;12m [39m[38;5;12mspace[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mproblem[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mconsidering[39m[38;5;12m [39m[38;5;12mthree[39m[38;5;12m [39m
|
||
[38;5;12mdimensions:[39m[38;5;12m [39m[38;5;12mcost,[39m[38;5;12m [39m[38;5;12maccuracy[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mspeed.[39m[38;5;12m [39m[38;5;12mAnd[39m[38;5;12m [39m[38;5;12mtwo[39m[38;5;12m [39m[38;5;12mapproaches:[39m[38;5;12m [39m[38;5;12mhuman[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmachine[39m[38;5;12m [39m[38;5;12mreview.[39m[38;5;12m [39m[38;5;12mHumans[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mgreat[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mdimensions:[39m[38;5;12m [39m[38;5;12maccuracy.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mdownside[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mhumans[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mexpensive[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mslow.[39m[38;5;12m [39m[38;5;12mMachines,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mrobots,[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mgreat[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mtwo[39m[38;5;12m [39m
|
||
[38;5;12mdimensions:[39m[38;5;12m [39m[38;5;12mcost[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mspeed[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mthey're[39m[38;5;12m [39m[38;5;12mmuch[39m[38;5;12m [39m[38;5;12mcheaper[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mfaster.[39m[38;5;12m [39m[38;5;12mBut[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mgoal[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfind[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mrobot[39m[38;5;12m [39m[38;5;12msolution[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12msufficiently[39m[38;5;12m [39m[38;5;12maccurate[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mneeds.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mdespair[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mdarkness[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mpeople[0m[38;5;14m[1m [0m[38;5;14m[1mwill[0m[38;5;14m[1m [0m[38;5;14m[1mget[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1myou[0m[38;5;12m [39m[38;5;12m(https://restofworld.org/2020/facebook-international-content-moderators/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mModeration[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mhuge[39m[38;5;12m [39m[38;5;12msocial[39m[38;5;12m [39m[38;5;12mnetworks[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mperformed[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12marmy[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12moutsourced[39m[38;5;12m [39m[38;5;12msubcontractors.[39m[38;5;12m [39m[38;5;12mThese[39m[38;5;12m [39m[38;5;12mpeople[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mexposed[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||
[38;5;12mthe[39m[38;5;12m [39m[38;5;12mworst[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mgenerally[39m[38;5;12m [39m[38;5;12mends[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mPTSD.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe Cleaners[0m[38;5;12m (https://thoughtmaybe.com/the-cleaners/) - A documentary on these teams of underpaid people removing posts and deleting accounts.[39m
|
||
|
||
[38;2;255;187;0m[4mThreat Intelligence[0m
|
||
|
||
[38;5;12mHow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdetect,[39m[38;5;12m [39m[38;5;12munmask[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mclassify[39m[38;5;12m [39m[38;5;12moffensive[39m[38;5;12m [39m[38;5;12monline[39m[38;5;12m [39m[38;5;12mactivities.[39m[38;5;12m [39m[38;5;12mMost[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mmonitored[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12msecurity,[39m[38;5;12m [39m[38;5;12mnetworking[39m[38;5;12m [39m[38;5;12mand/or[39m[38;5;12m [39m[38;5;12minfrastructure[39m[38;5;12m [39m[38;5;12mengineering[39m[38;5;12m [39m[38;5;12mteams.[39m[38;5;12m [39m[38;5;12mStill,[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12mresources[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mT&S[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mpeople,[39m[38;5;12m [39m[38;5;12mwho[39m[38;5;12m [39m[38;5;12mmight[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mcalled[39m[38;5;12m [39m[38;5;12mupon[39m
|
||
[38;5;12mfor[39m[38;5;12m [39m[38;5;12madditional[39m[38;5;12m [39m[38;5;12mexpertise[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12manalysis[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhandling[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthreats.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAwesome[0m[38;5;14m[1m [0m[38;5;14m[1mThreat[0m[38;5;14m[1m [0m[38;5;14m[1mIntelligence[0m[38;5;12m [39m[38;5;12m(https://github.com/hslatman/awesome-threat-intelligence)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“A[39m[38;5;12m [39m[38;5;12mconcise[39m[38;5;12m [39m[38;5;12mdefinition[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mThreat[39m[38;5;12m [39m[38;5;12mIntelligence:[39m[38;5;12m [39m[38;5;12mevidence-based[39m[38;5;12m [39m[38;5;12mknowledge,[39m[38;5;12m [39m[38;5;12mincluding[39m[38;5;12m [39m[38;5;12mcontext,[39m[38;5;12m [39m[38;5;12mmechanisms,[39m[38;5;12m [39m[38;5;12mindicators,[39m[38;5;12m [39m[38;5;12mimplications[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mactionable[39m[38;5;12m [39m[38;5;12madvice,[39m[38;5;12m [39m[38;5;12mabout[39m
|
||
[38;5;12man[39m[38;5;12m [39m[38;5;12mexisting[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12memerging[39m[38;5;12m [39m[38;5;12mmenace[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mhazard[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12massets[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12minform[39m[38;5;12m [39m[38;5;12mdecisions[39m[38;5;12m [39m[38;5;12mregarding[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msubject's[39m[38;5;12m [39m[38;5;12mresponse[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mmenace[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mhazard.”[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSpiderFoot[0m[38;5;12m [39m[38;5;12m(https://github.com/smicallef/spiderfoot)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mopen[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mintelligence[39m[38;5;12m [39m[38;5;12m(OSINT)[39m[38;5;12m [39m[38;5;12mautomation[39m[38;5;12m [39m[38;5;12mtool.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mintegrates[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mjust[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mevery[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mavailable[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mrange[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmethods[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mmaking[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12measy[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||
[38;5;12mnavigate.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mStandards related to Threat Intelligence[0m[38;5;12m (https://www.threat-intelligence.eu/standards/) - Open standards, tools and methodologies to support threat intelligence analysis.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mMISP taxonomies and classification[0m[38;5;12m (https://www.misp-project.org/taxonomies.html) - Tags to organize information on “threat intelligence including cyber security indicators, financial fraud or counter-terrorism information.”[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBrowser Fingerprinting: A survey[0m[38;5;12m (https://arxiv.org/pdf/1905.01051.pdf) - Fingerprints can be used as a source of signals to identify bots and fraudsters.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mchallenges[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mfile[0m[38;5;14m[1m [0m[38;5;14m[1mformats[0m[38;5;12m [39m[38;5;12m(https://speakerdeck.com/ange/the-challenges-of-file-formats)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAt[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mpoint[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mlet[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mupload[39m[38;5;12m [39m[38;5;12mfiles[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12msystem.[39m[38;5;12m [39m[38;5;12mHere[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;14m[1mcorpus[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1msuspicious[0m[38;5;14m[1m [0m[38;5;14m[1mmedia[0m[38;5;14m[1m [0m[38;5;14m[1mfiles[0m[38;5;12m [39m[38;5;12m(https://github.com/corkami/pocs)[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m
|
||
[38;5;12mleveraged[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mscammers[39m[38;5;12m [39m[38;5;12m=to[39m[38;5;12m [39m[38;5;12mbypass[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mfool[39m[38;5;12m [39m[38;5;12musers.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSecLists[0m[38;5;12m [39m[38;5;12m(https://github.com/danielmiessler/SecLists)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mCollection[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmultiple[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mlists[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mduring[39m[38;5;12m [39m[38;5;12msecurity[39m[38;5;12m [39m[38;5;12massessments,[39m[38;5;12m [39m[38;5;12mcollected[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mplace.[39m[38;5;12m [39m[38;5;12mList[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12minclude[39m[38;5;12m [39m[38;5;12musernames,[39m[38;5;12m [39m[38;5;12mpasswords,[39m[38;5;12m [39m[38;5;12mURLs,[39m[38;5;12m [39m[38;5;12msensitive[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mpatterns,[39m[38;5;12m [39m[38;5;12mfuzzing[39m[38;5;12m [39m[38;5;12mpayloads,[39m[38;5;12m [39m
|
||
[38;5;12mweb[39m[38;5;12m [39m[38;5;12mshells,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mmore.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPhishingKitTracker[0m[38;5;12m (https://github.com/neonprimetime/PhishingKitTracker) - CSV database of email addresses used by threat actor in phishing kits.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPhoneInfoga[0m[38;5;12m [39m[38;5;12m(https://github.com/sundowndev/PhoneInfoga)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mTools[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mscan[39m[38;5;12m [39m[38;5;12mphone[39m[38;5;12m [39m[38;5;12mnumbers[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mfree[39m[38;5;12m [39m[38;5;12mresources.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mgoal[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mgather[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mcountry,[39m[38;5;12m [39m[38;5;12marea,[39m[38;5;12m [39m[38;5;12mcarrier[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mline[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12minternational[39m[38;5;12m [39m[38;5;12mphone[39m[38;5;12m [39m[38;5;12mnumbers[39m[38;5;12m [39m
|
||
[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12maccuracy.[39m[38;5;12m [39m[38;5;12mThen[39m[38;5;12m [39m[38;5;12msearch[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mfootprints[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12msearch[39m[38;5;12m [39m[38;5;12mengines[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mtry[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfind[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mVoIP[39m[38;5;12m [39m[38;5;12mprovider[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12midentify[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mowner.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mConfusable Homoglyphs[0m[38;5;12m (https://github.com/vhf/confusable_homoglyphs) - Homoglyphs is a common phishing trick.[39m
|
||
|
||
[38;2;255;187;0m[4mCaptcha[0m
|
||
|
||
[38;5;12mAnother line of defense against spammers.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome Captcha[0m[38;5;12m (https://github.com/ZYSzys/awesome-captcha) - Reference all open-source captcha libraries, integration, alternatives and cracking tools.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mreCaptcha[0m[38;5;12m (https://www.google.com/recaptcha) - reCaptcha is still an effective, economical and quick solution when your company can't afford to have a dedicated team to fight bots and spammers at internet scale.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mYou (probably) don't need ReCAPTCHA[0m[38;5;12m (https://web.archive.org/web/20190611190134/https://kevv.net/you-probably-dont-need-recaptcha/) - Starts with a rant on how the service is a privacy nightmare and is tedious UI-wise, then list alternatives.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAnti-captcha[0m[38;5;12m (https://anti-captcha.com) - Captchas solving service.[39m
|
||
|
||
[38;2;255;187;0m[4mBlocklists[0m
|
||
|
||
[38;5;12mThe first mechanical line of defense against abuses consist in plain and simple deny-listing. This is the low-hanging fruit of fraud fighting, but you'll be surprised how they're still effective.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBloom Filter[0m[38;5;12m (https://en.wikipedia.org/wiki/Bloom_filter) - Perfect for this use-case, as bloom filters are designed to quickly check if an element is not in a (large) set. Variations of bloom filters exist for specific data types.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHow Radix trees made blocking IPs 5000 times faster[0m[38;5;12m (https://blog.sqreen.com/demystifying-radix-trees/) - Radix trees might come handy to speed-up IP blocklists.[39m
|
||
|
||
[38;2;255;187;0m[4mHostnames and Subdomains[0m
|
||
|
||
[38;5;12mUseful to identified clients, catch and block swarms of bots, and limit effects of dDOS.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mhosts[0m[38;5;12m (https://github.com/StevenBlack/hosts) - Consolidates reputable hosts files, and merges them into a unified hosts file with duplicates removed.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mnextdns/metadata[0m[38;5;12m (https://github.com/nextdns/metadata) - Extensive collection of list for security, privacy and parental control.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe Public Suffix List[0m[38;5;12m (https://publicsuffix.org) - Mozilla's registry of public suffixes, under which Internet users can (or historically could) directly register names.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCountry IP Blocks[0m[38;5;12m (https://github.com/herrbischoff/country-ip-blocks) - CIDR country-level IP data, straight from the Regional Internet Registries, updated hourly.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mCertificate Transparency Subdomains[0m[38;5;12m (https://github.com/internetwache/CT_subdomains) - An hourly updated list of subdomains gathered from certificate transparency logs.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;12mSubdomain[39m[38;5;12m [39m[38;5;12mdenylists:[39m[38;5;12m [39m[38;5;14m[1m#1[0m[38;5;12m [39m[38;5;12m(https://gist.github.com/artgon/5366868),[39m[38;5;12m [39m[38;5;14m[1m#2[0m[38;5;12m [39m[38;5;12m(https://github.com/sandeepshetty/subdomain-blacklist/blob/master/subdomain-blacklist.txt),[39m[38;5;12m [39m[38;5;14m[1m#3[0m[38;5;12m [39m
|
||
[38;5;12m(https://github.com/nccgroup/typofinder/blob/master/TypoMagic/datasources/subdomains.txt),[39m[38;5;12m [39m[38;5;14m[1m#4[0m[38;5;12m [39m[38;5;12m(https://www.quora.com/How-do-sites-prevent-vanity-URLs-from-colliding-with-future-features).[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mcommon-domain-prefix-suffix-list.tsv[0m[38;5;12m (https://gist.github.com/erikig/826f49442929e9ecfab6d7c481870700) - Top-5000 most common domain prefix/suffix list.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mhosts-blocklists[0m[38;5;12m (https://github.com/notracking/hosts-blocklists) - No more ads, tracking and other virtual garbage.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mxkeyscorerules100.txt[0m[38;5;12m (https://gist.github.com/sehrgut/324626fa370f044dbca7) - NSA's [39m[38;5;14m[1mXKeyscore[0m[38;5;12m (https://en.wikipedia.org/wiki/XKeyscore) matching rules for TOR and other anonymity preserving tools.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mpyisp[0m[38;5;12m (https://github.com/ActivisionGameScience/pyisp) - IP to ISP lookup library (includes ASN).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAMF site blocklist[0m[38;5;12m (https://www.amf-france.org/Epargne-Info-Service/Proteger-son-epargne/Listes-noires) - Official French denylist of money-related fraud sites.[39m
|
||
|
||
[38;2;255;187;0m[4mEmails[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBurner email providers[0m[38;5;12m (https://github.com/wesbos/burner-email-providers) - A list of temporary email providers. And its [39m[38;5;14m[1mderivative Python module[0m[38;5;12m (https://github.com/martenson/disposable-email-domains).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mMailChecker[0m[38;5;12m (https://github.com/FGRibreau/mailchecker) - Cross-language temporary (disposable/throwaway) email detection library.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mTemporary[0m[38;5;14m[1m [0m[38;5;14m[1mEmail[0m[38;5;14m[1m [0m[38;5;14m[1mAddress[0m[38;5;14m[1m [0m[38;5;14m[1mDomains[0m[38;5;12m [39m[38;5;12m(https://gist.github.com/adamloving/4401361)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mdomains[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdisposable[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtemporary[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12maddresses.[39m[38;5;12m [39m[38;5;12mUseful[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mfiltering[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mincrease[39m[38;5;12m [39m[38;5;12mopen[39m[38;5;12m [39m[38;5;12mrates[39m[38;5;12m [39m[38;5;12m(sending[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mdomains[39m[38;5;12m [39m[38;5;12mlikely[39m[38;5;12m [39m
|
||
[38;5;12mwill[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mopened).[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[48;5;235m[38;5;249m[1mgman[0m[38;5;12m [39m[38;5;12m(https://github.com/benbalter/gman)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“A[39m[38;5;12m [39m[38;5;12mruby[39m[38;5;12m [39m[38;5;12mgem[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcheck[39m[38;5;12m [39m[38;5;12mif[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mowner[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgiven[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12maddress[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mwebsite[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mworking[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mTHE[39m[38;5;12m [39m[38;5;12mMAN[39m[38;5;12m [39m[38;5;12m(a.k.a[39m[38;5;12m [39m[38;5;12mverifies[39m[38;5;12m [39m[38;5;12mgovernment[39m[38;5;12m [39m[38;5;12mdomains).”[39m[38;5;12m [39m[38;5;12mGood[39m[38;5;12m [39m[38;5;12mresource[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhunt[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mpotential[39m[38;5;12m [39m[38;5;12mgovernment[39m[38;5;12m [39m[38;5;12mcustomers[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m
|
||
[38;5;12mbase.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mSwot[0m[38;5;12m (https://github.com/leereilly/swot) - In the same spirit as above, but this time to flag academic users.[39m
|
||
|
||
[38;2;255;187;0m[4mReserved IDs[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGeneral List of Reserved Words[0m[38;5;12m (https://gist.github.com/stuartpb/5710271) - This is a general list of words you may want to consider reserving, in a system where users can pick any name.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHostnames and usernames to reserve[0m[38;5;12m (https://ldpreload.com/blog/names-to-reserve) - List of all the names that should be restricted from registration in automated systems.[39m
|
||
|
||
[38;2;255;187;0m[4mProfanity[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mList of Dirty, Naughty, Obscene, and Otherwise Bad Words[0m[38;5;12m (https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words) - Profanity blocklist from Shutterstock.[39m
|
||
|
||
[38;5;12m- [39m[48;5;235m[38;5;249m[1mprofanity-check[0m[38;5;12m (https://github.com/vzhou842/profanity-check) - Uses a linear SVM model trained on 200k human-labeled samples of clean and profane text strings.[39m
|
||
|
||
[38;2;255;187;0m[4mPrivacy[0m
|
||
|
||
[38;5;12mAs the guardian of user's data, the IAM stack is deeply bounded by the respect of privacy.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPrivacy Enhancing Technologies Decision Tree[0m[38;5;12m (https://www.private-ai.com/wp-content/uploads/2021/10/PETs-Decision-Tree.pdf) - A flowchart to select the right tool depending on data type and context.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPaper we love: Privacy[0m[38;5;12m (https://github.com/papers-we-love/papers-we-love/tree/master/privacy) - A collection of scientific studies of schemes providing privacy by design.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mHave I been Pwned?[0m[38;5;12m (https://haveibeenpwned.com) - Data breach index.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAutomated[0m[38;5;14m[1m [0m[38;5;14m[1msecurity[0m[38;5;14m[1m [0m[38;5;14m[1mtesting[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mSoftware[0m[38;5;14m[1m [0m[38;5;14m[1mDevelopers[0m[38;5;12m [39m[38;5;12m(https://fahrplan.events.ccc.de/camp/2019/Fahrplan/system/event_attachments/attachments/000/003/798/original/security_cccamp.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mMost[39m[38;5;12m [39m[38;5;12mprivacy[39m[38;5;12m [39m[38;5;12mbreaches[39m[38;5;12m [39m[38;5;12mwere[39m[38;5;12m [39m[38;5;12mallowed[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mknown[39m[38;5;12m [39m[38;5;12mvulnerabilities[39m[38;5;12m [39m
|
||
[38;5;12min[39m[38;5;12m [39m[38;5;12mthird-party[39m[38;5;12m [39m[38;5;12mdependencies.[39m[38;5;12m [39m[38;5;12mHere[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdetect[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mway[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mCI/CD.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mEmail marketing regulations around the world[0m[38;5;12m (https://github.com/threeheartsdigital/email-marketing-regulations) - As the world becomes increasingly connected, the email marketing regulation landscape becomes more and more complex.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mWorld's Biggest Data Breaches & Hacks[0m[38;5;12m (https://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/) - Don't be the next company leaking your customer's data.[39m
|
||
|
||
[38;2;255;187;0m[4mAnonymization[0m
|
||
|
||
[38;5;12mAs a central repository of user data, the IAM stack stakeholders have to prevent any leakage of business and customer data. To allow for internal analytics, anonymization is required.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mFalse[0m[38;5;14m[1m [0m[38;5;14m[1mAllure[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mHashing[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mAnonymization[0m[38;5;12m [39m[38;5;12m(https://web.archive.org/web/20220927004103/https://goteleport.com/blog/hashing-for-anonymization/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mHashing[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12msufficient[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12manonymization[39m[38;5;12m [39m[38;5;12mno.[39m[38;5;12m [39m[38;5;12mBut[39m[38;5;12m [39m[38;5;12mstill[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12menough[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mpseudonymization[39m
|
||
[38;5;12m(which[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mallowed[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mGDPR).[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mFour[0m[38;5;14m[1m [0m[38;5;14m[1mcents[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mdeanonymize:[0m[38;5;14m[1m [0m[38;5;14m[1mCompanies[0m[38;5;14m[1m [0m[38;5;14m[1mreverse[0m[38;5;14m[1m [0m[38;5;14m[1mhashed[0m[38;5;14m[1m [0m[38;5;14m[1memail[0m[38;5;14m[1m [0m[38;5;14m[1maddresses[0m[38;5;12m [39m[38;5;12m(https://freedom-to-tinker.com/2018/04/09/four-cents-to-deanonymize-companies-reverse-hashed-email-addresses/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“Hashed[39m[38;5;12m [39m[38;5;12memail[39m[38;5;12m [39m[38;5;12maddresses[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12measily[39m[38;5;12m [39m[38;5;12mreversed[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlinked[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12man[39m
|
||
[38;5;12mindividual”.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhy[0m[38;5;14m[1m [0m[38;5;14m[1mdifferential[0m[38;5;14m[1m [0m[38;5;14m[1mprivacy[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mawesome[0m[38;5;12m [39m[38;5;12m(https://desfontain.es/privacy/differential-privacy-awesomeness.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mExplain[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mintuition[39m[38;5;12m [39m[38;5;12mbehind[39m[38;5;12m [39m[38;5;14m[1mdifferential[0m[38;5;14m[1m [0m[38;5;14m[1mprivacy[0m[38;5;12m [39m[38;5;12m(https://en.wikipedia.org/wiki/Differential_privacy),[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtheoretical[39m[38;5;12m [39m[38;5;12mframework[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m
|
||
[38;5;12mallow[39m[38;5;12m [39m[38;5;12msharing[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12maggregated[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mwithout[39m[38;5;12m [39m[38;5;12mcompromising[39m[38;5;12m [39m[38;5;12mconfidentiality.[39m[38;5;12m [39m[38;5;12mSee[39m[38;5;12m [39m[38;5;12mfollow-up[39m[38;5;12m [39m[38;5;12marticles[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;14m[1mmore[0m[38;5;14m[1m [0m[38;5;14m[1mdetails[0m[38;5;12m [39m[38;5;12m(https://desfontain.es/privacy/differential-privacy-in-more-detail.html)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mpractical[0m[38;5;14m[1m [0m[38;5;14m[1maspects[0m[38;5;12m [39m
|
||
[38;5;12m(https://desfontain.es/privacy/differential-privacy-in-practice.html).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mk-anonymity: an introduction[0m[38;5;12m (https://www.privitar.com/listing/k-anonymity-an-introduction) - An alternative anonymity privacy model.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPresidio[0m[38;5;12m (https://github.com/microsoft/presidio) - Context aware, pluggable and customizable data protection and PII data anonymization service for text and images.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mDiffix:[0m[38;5;14m[1m [0m[38;5;14m[1mHigh-Utility[0m[38;5;14m[1m [0m[38;5;14m[1mDatabase[0m[38;5;14m[1m [0m[38;5;14m[1mAnonymization[0m[38;5;12m [39m[38;5;12m(https://aircloak.com/wp-content/uploads/apf17-aspen.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mDiffix[39m[38;5;12m [39m[38;5;12mtry[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12manonymization,[39m[38;5;12m [39m[38;5;12mavoid[39m[38;5;12m [39m[38;5;12mpseudonymization[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpreserve[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mquality.[39m[38;5;12m [39m[38;5;14m[1mWritten[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mElixir[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mAircloak[0m[38;5;12m [39m
|
||
[38;5;12m(https://elixirforum.com/t/aircloak-anonymized-analitycs/10930),[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12macts[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mSQL[39m[38;5;12m [39m[38;5;12mproxy[39m[38;5;12m [39m[38;5;12mbetween[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12manalyst[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12munmodified[39m[38;5;12m [39m[38;5;12mlive[39m[38;5;12m [39m[38;5;12mdatabase.[39m
|
||
|
||
[38;2;255;187;0m[4mGDPR[0m
|
||
|
||
[38;5;12mThe well-known European privacy framework[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGDPR Tracker[0m[38;5;12m (https://gdpr.eu) - Europe's reference site.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGDPR Developer Guide[0m[38;5;12m (https://github.com/LINCnil/GDPR-Developer-Guide) - Best practices for developers.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGDPR – A Practical guide for Developers[0m[38;5;12m (https://techblog.bozho.net/gdpr-practical-guide-developers/) - A one-page summary of the above.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGDPR documents[0m[38;5;12m (https://github.com/good-lly/gdpr-documents) - Templates for personal use to have companies comply with "Data Access" requests.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mDark Patterns after the GDPR[0m[38;5;12m (https://arxiv.org/pdf/2001.02479.pdf) - This paper demonstrates that, because of the lack of GDPR law enforcements, dark patterns and implied consent are ubiquitous.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGDPR Enforcement Tracker[0m[38;5;12m (http://enforcementtracker.com) - List of GDPR fines and penalties.[39m
|
||
|
||
[38;2;255;187;0m[4mUX/UI[0m
|
||
|
||
[38;5;12mAs[39m[38;5;12m [39m[38;5;12mstakeholder[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mIAM[39m[38;5;12m [39m[38;5;12mstack,[39m[38;5;12m [39m[38;5;12myou're[39m[38;5;12m [39m[38;5;12mgoing[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mimplement[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbackend[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mmajority[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mprimitives[39m[38;5;12m [39m[38;5;12mrequired[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbuild-up[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msign-up[39m[38;5;12m [39m[38;5;12mtunnel[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12monboarding.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mimpression[39m[38;5;12m [39m[38;5;12mcustomers[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mget[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mproduct,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcan't[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m
|
||
[38;5;12moverlooked:[39m[38;5;12m [39m[38;5;12myou'll[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcarefully[39m[38;5;12m [39m[38;5;12mdesign[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mfront-end[39m[38;5;12m [39m[38;5;12mexperts.[39m[38;5;12m [39m[38;5;12mHere[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcouple[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mguides[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mpolish[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mexperience.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mThe 2020 State of SaaS Product Onboarding[0m[38;5;12m (https://userpilot.com/saas-product-onboarding/) - Covers all the important facets of user onboarding.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mUser Onboarding Teardowns[0m[38;5;12m (https://www.useronboard.com/user-onboarding-teardowns/) - A huge list of deconstructed first-time user signups.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mDiscover UI Design Decisions Of Leading Companies[0m[38;5;12m (https://goodui.org/leaks/) - From Leaked Screenshots & A/B Tests.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mConversion Optimization[0m[38;5;12m (https://www.nickkolenda.com/conversion-optimization-psychology/#cro-tactic11) - A collection of tactics to increase the chance of users finishing the account creation funnel.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mTrello User Onboarding[0m[38;5;12m (https://growth.design/case-studies/trello-user-onboarding/) - A detailed case study, nicely presented, on how to improve user onboarding.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1m11 Tips for Better Signup / Login UX[0m[38;5;12m (https://learnui.design/blog/tips-signup-login-ux.html) - Some basic tips on the login form.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mDon't get clever with login forms[0m[38;5;12m (http://bradfrost.com/blog/post/dont-get-clever-with-login-forms/) - Create login forms that are simple, linkable, predictable, and play nicely with password managers.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhy[0m[38;5;14m[1m [0m[38;5;14m[1mare[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1musername[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mpassword[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mtwo[0m[38;5;14m[1m [0m[38;5;14m[1mdifferent[0m[38;5;14m[1m [0m[38;5;14m[1mpages?[0m[38;5;12m [39m[38;5;12m(https://www.twilio.com/blog/why-username-and-password-on-two-different-pages)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mTo[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[38;5;12mSSO[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpassword-based[39m[38;5;12m [39m[38;5;12mlogin.[39m[38;5;12m [39m[38;5;12mNow[39m[38;5;12m [39m[38;5;12mif[39m[38;5;12m [39m[38;5;12mbreaking[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlogin[39m[38;5;12m [39m[38;5;12mfunnel[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12m2[39m[38;5;12m [39m[38;5;12msteps[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mtoo[39m[38;5;12m [39m
|
||
[38;5;12minfuriating[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12musers,[39m[38;5;12m [39m[38;5;12msolve[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mDropbox[39m[38;5;12m [39m[38;5;12mdoes:[39m[38;5;12m [39m[38;5;14m[1man[0m[38;5;14m[1m [0m[38;5;14m[1mAJAX[0m[38;5;14m[1m [0m[38;5;14m[1mrequest[0m[38;5;14m[1m [0m[38;5;14m[1mwhen[0m[38;5;14m[1m [0m[38;5;14m[1myou[0m[38;5;14m[1m [0m[38;5;14m[1menter[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1musername[0m[38;5;12m [39m[38;5;12m(https://news.ycombinator.com/item?id=19174355).[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHTML[0m[38;5;14m[1m [0m[38;5;14m[1mattributes[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mimprove[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1musers'[0m[38;5;14m[1m [0m[38;5;14m[1mtwo[0m[38;5;14m[1m [0m[38;5;14m[1mfactor[0m[38;5;14m[1m [0m[38;5;14m[1mauthentication[0m[38;5;14m[1m [0m[38;5;14m[1mexperience[0m[38;5;12m [39m[38;5;12m(https://www.twilio.com/blog/html-attributes-two-factor-authentication-autocomplete)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12m“In[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mpost[39m[38;5;12m [39m[38;5;12mwe[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mlook[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhumble[39m[38;5;12m [39m[38;5;12m [39m[38;5;12melement[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mHTML[39m[38;5;12m [39m[38;5;12mattributes[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m
|
||
[38;5;12mwill[39m[38;5;12m [39m[38;5;12mhelp[39m[38;5;12m [39m[38;5;12mspeed[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mour[39m[38;5;12m [39m[38;5;12musers'[39m[38;5;12m [39m[38;5;12mtwo[39m[38;5;12m [39m[38;5;12mfactor[39m[38;5;12m [39m[38;5;12mauthentication[39m[38;5;12m [39m[38;5;12mexperience”.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mRemove password masking[0m[38;5;12m (http://passwordmasking.com) - Summarizes the results from an academic study investigating the impact removing password masking has on consumer trust.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mFor anybody who thinks "I could build that in a weekend," this is how Slack decides to send a notification[0m[38;5;12m (https://twitter.com/ProductHunt/status/979912670970249221) - Notifications are hard. Really hard.[39m
|
||
|
||
[38;2;255;187;0m[4mCompetitive Analysis[0m
|
||
|
||
[38;5;12mKeep track on the activity of open-source projects and companies operating in the domain.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mBest-of Digital Identity[0m[38;5;12m (https://github.com/jruizaranguren/best-of-digital-identity) - Ranking, popularity and activity status of open-source digital identity projects.[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAWS Security, Identity & Compliance announcements[0m[38;5;12m (https://aws.amazon.com/about-aws/whats-new/security_identity_and_compliance/) - The source of all new features added to the IAM perimeter.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mGCP[0m[38;5;14m[1m [0m[38;5;14m[1mIAM[0m[38;5;14m[1m [0m[38;5;14m[1mrelease[0m[38;5;14m[1m [0m[38;5;14m[1mnotes[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/iam/docs/release-notes)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAlso[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mnote:[39m[38;5;12m [39m[38;5;14m[1mIdentity[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/identity/docs/release-notes),[39m[38;5;12m [39m[38;5;14m[1mIdentity[0m[38;5;14m[1m [0m[38;5;14m[1mPlatform[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/identity-platform/docs/release-notes),[39m[38;5;12m [39m[38;5;14m[1mResource[0m
|
||
[38;5;14m[1mManager[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/resource-manager/docs/release-notes),[39m[38;5;12m [39m[38;5;14m[1mKey[0m[38;5;14m[1m [0m[38;5;14m[1mManagement[0m[38;5;14m[1m [0m[38;5;14m[1mService/HSM[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/kms/docs/release-notes),[39m[38;5;12m [39m[38;5;14m[1mAccess[0m[38;5;14m[1m [0m[38;5;14m[1mContext[0m[38;5;14m[1m [0m[38;5;14m[1mManager[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/access-context-manager/docs/release-notes),[39m[38;5;12m [39m
|
||
[38;5;14m[1mIdentity-Aware[0m[38;5;14m[1m [0m[38;5;14m[1mProxy[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/iap/docs/release-notes),[39m[38;5;12m [39m[38;5;14m[1mData[0m[38;5;14m[1m [0m[38;5;14m[1mLoss[0m[38;5;14m[1m [0m[38;5;14m[1mPrevention[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/dlp/docs/release-notes)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mSecurity[0m[38;5;14m[1m [0m[38;5;14m[1mScanner[0m[38;5;12m [39m[38;5;12m(https://cloud.google.com/security-scanner/docs/release-notes).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mUnofficial Weekly Google Cloud Platform newsletter[0m[38;5;12m (https://www.gcpweekly.com) - Relevant keywords: [39m[48;5;235m[38;5;249m[1mIAM[0m[38;5;12m (https://www.gcpweekly.com/gcp-resources/tag/iam/) and [39m[48;5;235m[38;5;249m[1mSecurity[0m[38;5;12m (https://www.gcpweekly.com/gcp-resources/tag/security/).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mDigitalOcean Accounts changelog[0m[38;5;12m (http://docs.digitalocean.com/release-notes/accounts/) - All the latest accounts updates on DO.[39m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1m163[0m[38;5;14m[1m [0m[38;5;14m[1mAWS[0m[38;5;14m[1m [0m[38;5;14m[1mservices[0m[38;5;14m[1m [0m[38;5;14m[1mexplained[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mone[0m[38;5;14m[1m [0m[38;5;14m[1mline[0m[38;5;14m[1m [0m[38;5;14m[1meach[0m[38;5;12m [39m[38;5;12m(https://adayinthelifeof.nl/2020/05/20/aws.html#discovering-aws)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mHelp[39m[38;5;12m [39m[38;5;12mmakes[39m[38;5;12m [39m[38;5;12msense[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mhuge[39m[38;5;12m [39m[38;5;12mservice[39m[38;5;12m [39m[38;5;12mcatalog.[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mspirit:[39m[38;5;12m [39m[38;5;14m[1mAWS[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1msimple[0m[38;5;14m[1m [0m[38;5;14m[1mterms[0m[38;5;12m [39m
|
||
[38;5;12m(https://netrixllc.com/blog/aws-services-in-simple-terms/)[39m[38;5;12m [39m[38;5;12m&[39m[38;5;12m [39m[38;5;14m[1mAWS[0m[38;5;14m[1m [0m[38;5;14m[1mIn[0m[38;5;14m[1m [0m[38;5;14m[1mPlain[0m[38;5;14m[1m [0m[38;5;14m[1mEnglish[0m[38;5;12m [39m[38;5;12m(https://expeditedsecurity.com/aws-in-plain-english/).[39m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mGoogle Cloud Developer's Cheat Sheet[0m[38;5;12m (https://github.com/gregsramblings/google-cloud-4-words#the-google-cloud-developers-cheat-sheet) - Describe all GCP products in 4 words or less.[39m
|
||
|
||
[38;2;255;187;0m[4mHistory[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mcryptoanarchy.wiki[0m[38;5;12m (https://cryptoanarchy.wiki) - Cypherpunks overlaps with security. This wiki compiles information about the movement, its history and the people/events of note.[39m
|
||
|
||
[38;2;255;187;0m[4mContributing[0m
|
||
|
||
[38;5;12mYour contributions are always welcome! Please take a look at the [39m[38;5;14m[1mcontribution guidelines[0m[38;5;12m (.github/contributing.md) first.[39m
|
||
|
||
[38;2;255;187;0m[4mFootnotes[0m
|
||
|
||
[38;5;12mThe [39m[38;5;14m[1mheader image[0m[38;5;12m (https://github.com/kdeldycke/awesome-iam/blob/main/assets/awesome-iam-header.jpg) is based on a modified [39m[38;5;14m[1mphoto[0m[38;5;12m (https://unsplash.com/photos/2LowviVHZ-E) by [39m[38;5;14m[1mBen Sweet[0m[38;5;12m (https://unsplash.com/@benjaminsweet).[39m
|
||
|
||
|
||
|
||
[38;5;12m. [39m[38;5;12m↑[39m[38;5;14m[1m [0m[38;5;12m (#sponsor-ref)[39m
|
||
|
||
[38;5;12m: [39m[48;2;30;30;40m[38;5;14m[1m[3mPoison Study[0m[38;5;12m (https://www.amazon.com/dp/0778324338?&linkCode=ll1&tag=kevideld-20&linkId=0b92c3d92371bd53daca5457bdad327e&language=en_US&ref_=as_li_ss_tl) (Mira, 2007). [39m[38;5;12m↑[39m[38;5;14m[1m [0m[38;5;12m (#intro-quote-ref)[39m
|
||
|
||
[38;5;12miam Github: https://github.com/kdeldycke/awesome-iam[39m
|