Tanúsítvány ellenőrzésének kikapcsolása webszolgáltatás hívásnál

Nem szeretek alapvetően jó és szükséges biztonsági funkciók kikapcsolásáról írni, de mivel nekünk nem volt más választásunk, másnak is hasznos lehet. Adott egy SOAP kliens, ami hívna egy webszolgáltatást, csakhogy a szerveren lévő tanúsítvány nem érvényes. Szerencsére ezt a .NET Framework kliens oldalon ellenőrzi és normális esetben elszáll a hívás, csakhogy néha sajnos az a kívánság, hogy hibás tanúsítvány esetén is csont nélkül menjen minden. Szerencsére az ellenőrzést ki lehet kapcsolni web.configban a servicePointManager elem segítségével:

<configuration>
  <system.net>
    <settings>
      <servicePointManager
          checkCertificateName="false"
          checkCertificateRevocationList="false" />
    </settings>
  </system.net>
</configuration>

 

Technorati-címkék: ,

4 thoughts on “Tanúsítvány ellenőrzésének kikapcsolása webszolgáltatás hívásnál

  1. kketto

    Én anno kódból a System.Net.ServicePointManager.ServerCertificateValidationCallback (a metódusba, amit értékül adtam lazán egy return true-t írtam :)) ill. a System.Net.ServicePointManager.CheckCertificateRevocatinList property-ket használtam erre a célra.

    1. Tóth Viktor

      Hát, amit te csinálsz, az azért kicsit más, mert minden retket el fog fogadni. A checkCertificateName csak annyit kapcsol ki, hogy nem igényli, hogy a tanusítvány subject mezője megfeleljen a szerver nevének. De ettől függetlenül például olyannak kell lennie a kibocsátójának (vagy magának, ha önaláírt), hogy benne legyen a trusted rootok között. Szóval ez kisebb biztonsági kockázat.
      A te megodlásodnál generálok egy tanusítványt, és már lehet is támadni a kapcsolatot (na majd ha lesz időm, csinálok egy felvételt, hogy megmutassam, mennyire-mennyire egyszerű adatot lopni egy ilyen megoldásnál a “titkosított” csatornáról). A checkCertificateName esetében még mindig olyan tanusítványt kell szereznem, ami benne van a trusted rootban. Ez sem olyan nehéz, veszek egyet például a verisign-tól, de akkor már hozzám köthető a dolog.

      1. kketto

        OK. Ebben igazad van, nyilván a callback megkapja a cert-et, és “agyonra” lehet vizsgálni!🙂 Mindazonáltal csupán jelezni akartam, hogy létezik kód megoldás is.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s