61°F

Aaron Parecki

  • Articles
  • Notes
  • Photos
  • Scott Kingery https://twitter.com/TechLifeWeb   •   May 9
    #indieweb folks: It appears OwnYourGram is broken for me. Worked up until around the end of March. I think something might have hanged on my host. I’m getting a “Mod_Security” error. What do I need to tell them to fix?
    Aaron Parecki
    Could be a number of things, but here's what we've seen before: https://indieweb.org/Wordpress_IndieAuth_Plugin#Troubleshooting
    Frankfurt am Main, Hessen, DEU
    1 like
    Fri, May 10, 2019 12:32pm +02:00
  • rosemaryorchard https://micro.blog/rosemaryorchard   •   May 8

    @jeremycherfas Not precisely related, but I changed my Instagram to a business account (me being the business), and now I can post to it automatically through Buffer. Just single images, but it's a start! (It notifies me it it's a multi image post and when it can't automatically post, so I can finish it manually.)

    Aaron Parecki
    Have there been any negative side effects of converting to a business account? I've been curious about that but afraid to try it out.
    Portland, Oregon, USA
    2 replies
    Wed, May 8, 2019 8:20pm -07:00
  • Lena Hall https://twitter.com/lenadroid   •   May 8
    I really want to write about everything behind the scenes of #ML4ALL, but things are intense at work.

    While I am multitasking, you can enjoy all of the talk videos on machine learning online thanks to @aaronpk & @backpedaltv!

    https://www.youtube.com/watch?v=xPuVbDfEUvE&list=PLOnHsSCrR68xBQITh2Sf9YjD_z26p0Kt0&index=30
    Aaron Parecki
    Be sure to check out my behind the scenes video of how I filmed all the talks too! https://youtu.be/epKA84wK9ls
    Portland, Oregon, USA
    3 likes
    Wed, May 8, 2019 12:28pm -07:00
  • eneiluj https://framapiaf.org/@eneiluj   •   May 6

    @aaronpk Well I guess it's quite stressful to provide software to such a huge amount of users. Check out the issue counter on Nextcloud server repo. Maybe there's a lack of tact in their answer but it does not justify the aggressive comments they get in return. Free software development is also about respect and constructive criticism IMHO. My (very basic and subjective) perception is that they say it's not fair to be attacked for a delay in the bug resolution. I'm sure the bug will be fixed.

    Aaron Parecki
    Literally even just a "we recognize this is a problem and don't have the resources to fix it right now" response would have been better than staying silent, and would have prevented most of the frustrated responses. I also don't see any attacks there, certainly no personal attacks, just a lot of frustrated and confused people.
    Portland, Oregon
    Mon, May 6, 2019 4:16pm -07:00
  • eneiluj https://framapiaf.org/@eneiluj   •   May 6

    @aaronpk Which part disappoints you? I've red the whole thread and from what I get: When a fix is done, it will be available for everybody. Sounds good to me. I'm rather disappointed by such harsh criticisms. It does not sound fair considering the hard work Nextcloud team/contributors are doing to produce an amazing publicly available Free Software. #ILoveNextcloud 😉

    Aaron Parecki
    Complete lack of acknowledgment of the problem, an accusation that the problem doesn't exist unless you're an enterprise customer paying for support, followed by an abrupt closing of the thread without any real response.
    Portland, Oregon
    1 reply
    Mon, May 6, 2019 3:35pm -07:00
  • 📷 PhotoJoseph https://twitter.com/photojoseph   •   May 6
    Good morning, world! How did you start your week?
    Aaron Parecki
    a run is an excellent idea, but instead I spent the day editing my behind-the-scenes video of last week's shoot: https://www.youtube.com/watch?v=epKA84wK9ls
    Portland, Oregon, USA
    1 like
    Mon, May 6, 2019 8:37am -07:00
  • Even André Fiskvik https://twitter.com/grEvenX   •   May 3
    In the process of changing how we authorize the users in our web app and I’m wondering what route to take. Do you know about any simple proxy-like services for Oauth 2 Auth code flow (not OIDC) that can keep sessions and handle Auth for any SPA ?
    Aaron Parecki
    Plenty of server-side frameworks can do this, I'm not sure about something as a service though. Also not sure if you'd really want to go down the path of offloading that kind of thing to a different site either.
    Portland, Oregon
    1 reply
    Sat, May 4, 2019 9:46am -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk Yep, but in that case the attacker controls the redirect uri right? how can the attacker control the redirect uri without also controlling the pkce secret?

    Aaron Parecki
    I'm trying to explain this in 200 character chunks but it clearly isn't working. I also can't find an existing page quickly that explains it better, so clearly I need to properly write it up.
    San Jose, California • 49°F
    1 reply
    Thu, May 2, 2019 4:41pm -07:00
  • Nico Kaiser https://twitter.com/nicokaiser   •   May 2
    ... assuming I can control what JS code runs on my site (which is a different problem), this should be safe, right?
    Aaron Parecki
    That's a big assumption (you don't know what browser extensions the user is using) but yes that's one way to be more confident. I wouldn't use absolute terms like "safe" though. "Less risky" maybe.
    San Jose, California • 49°F
    Thu, May 2, 2019 4:31pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk you linked to "Insufficient Redirect URI Validation" though? maybe i'm just confused about what you were talking about.

    Aaron Parecki
    Right, that's one way to steal data out of the redirect even if the browser is doing everything right.

    The attacker creates a redirect url at the hostname of the real app but uses an endpoint on the app that can then redirect to the attackers app. Chaining the redirects using an open redirector.
    San Jose, California • 49°F
    1 reply
    Thu, May 2, 2019 4:30pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk Yes, i get that, but the attacker can make the access token request just as easily as the legitimate client.

    Aaron Parecki
    No it can't, because the attacker won't have the PKCE secret at that point. (We're talking about the case where the code is stolen out of the redirect through one of many mechanisms)
    San Jose, California • 49°F
    1 reply
    Thu, May 2, 2019 4:26pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk no, I understand that one, I just still don't see how pkce helps improper redirect validation (since the pkce secret and redirect URI come from the same request)

    Aaron Parecki
    PKCE makes the auth code useless if it's stolen. In PKCE the secret isn't sent out until the access token request.
    San Jose, California • 49°F
    1 reply
    Thu, May 2, 2019 4:21pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk huh? But the redirect_uri is controlled by the same person who controls the code_challenge

    Aaron Parecki
    That particular attack doesn't assume a malicious browser, that one is improper redirect uri validation. I should probably just write up better explanations of all the attacks in that document but they are all described there.
    San Jose, California • 49°F
    1 reply
    Thu, May 2, 2019 4:17pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk isn't the section you linked to just as much of a concern under the authorization code flow as the implicit flow? since javascript clients are public clients no matter what?

    Aaron Parecki
    Nope because PKCE solves the problem of the thing being stolen during the redirect.
    San Jose, California • 49°F
    1 reply
    Thu, May 2, 2019 3:39pm -07:00
  • Nico Kaiser https://twitter.com/nicokaiser   •   May 2
    What is your opinion on refresh tokens in client-side apps? The PKCE Auth Code flow allows issuing refresh tokens, so SPAs can refresh their tokens without relying on web_message (possibly cross-domain) iframes. ...
    Aaron Parecki
    Totally depends on your risk tolerance. Browsers are always a more risky environment, so that's something to keep in mind with refresh tokens.

    If you are going to issue refresh tokens to JS, definitely rotate them after every use.
    Sunnyvale, California • 49°F
    1 like
    Thu, May 2, 2019 3:32pm -07:00
  • Sebastian Lasse https://mastodon.social/@sl007   •   May 2

    @aaronpk This could save you 4 characters ;))
    return btoa(encodeURIComponent(str)
    .replace(/%([0-9A-F]{2})/g, (m, p1) => String.fromCharCode(parseInt(('0x'+p1), 16))));

    Aaron Parecki
    hah clever!
    Sunnyvale, California • 49°F
    Thu, May 2, 2019 3:31pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk sure, but a malicious browser could also save the entire js state to disk in exactly the same way (and some do a limited version of this for caching purposes). so it's hard for me to think of that as a security benefit? this is only more secure if everyone along the line behaves exactly in the way you expect it to

    Aaron Parecki
    Security is never about stopping 100% of attacks, since that's impossible. It's about mitigating risk, and reducing the attack surface.

    It's worth reading this whole document even if it is a bit terse. Here's a good example of an unexpected attack on the Implicit flow: https://tools.ietf.org/html/draft-ietf-oauth-security-topics-12#section-4.1
    Sunnyvale, California • 49°F
    2 replies
    Thu, May 2, 2019 3:30pm -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk but the browser is also the one executing the code that's verifying whether the browser transferred the data correctly? maybe a concrete attack would help me get my head around this better

    Aaron Parecki
    Think of it from the PoV of the thing sending the access token. It wants to make sure the AT ends up in the client and isn't stolen along the way. It can't trust the browser's address bar because the browser isn't the thing it's sending the token to, the code in the browser is.
    Mountain View, California • 49°F
    Thu, May 2, 2019 10:13am -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk but the browser is also the one executing the code that's verifying whether the browser transferred the data correctly? maybe a concrete attack would help me get my head around this better

    Aaron Parecki
    Here's one: The access token is sent in the address bar, so it becomes part of the browser history. This will be written to disk, and possibly even synced to the browser's "cloud" and then even synced down to other devices.
    Mountain View, California • 49°F
    1 reply
    Thu, May 2, 2019 10:07am -07:00
  • alianora https://cybre.space/@nightpool   •   May 2

    @aaronpk sorry I guess I should have specified "with https". doesn't https' security model encompass this one?

    Aaron Parecki
    Nope because the browser is still an unknown there, at least from the point of view of the sender of the sensitive data.
    Mountain View, California • 49°F
    1 reply
    Thu, May 2, 2019 9:03am -07:00
older

Hi, I'm Aaron Parecki, Director of Identity Standards at Okta, and co-founder of IndieWebCamp. I maintain oauth.net, write and consult about OAuth, and participate in the OAuth Working Group at the IETF. I also help people learn about video production and livestreaming. (detailed bio)

I've been tracking my location since 2008 and I wrote 100 songs in 100 days. I've spoken at conferences around the world about owning your data, OAuth, quantified self, and explained why R is a vowel. Read more.

  • Director of Identity Standards at Okta
  • IndieWebCamp Founder
  • OAuth WG Editor
  • OpenID Board Member

  • 🎥 YouTube Tutorials and Reviews
  • 🏠 We're building a triplex!
  • ⭐️ Life Stack
  • ⚙️ Home Automation
  • All
  • Articles
  • Bookmarks
  • Notes
  • Photos
  • Replies
  • Reviews
  • Trips
  • Videos
  • Contact
© 1999-2025 by Aaron Parecki. Powered by p3k. This site supports Webmention.
Except where otherwise noted, text content on this site is licensed under a Creative Commons Attribution 3.0 License.
IndieWebCamp Microformats Webmention W3C HTML5 Creative Commons
WeChat ID
aaronpk_tv